نظام إدارة العيادات الطبية — Clinic Management System
وصف المشروع
نظام متكامل لإدارة العيادات الطبية مبني بـ Node.js + TypeScript + PostgreSQL، يدعم إدارة أكثر من عيادة (Multi-tenant) تحت علامات تجارية مختلفة.
المميزات الرئيسية
1. إدارة المواعيد
حجز المواعيد بالتاريخ والوقت مع التحقق من توافر الأطباء
منع التعارض في المواعيد تلقائيًا
دعم المناوبات الليلية (overnight shifts)
إلغاء الموعد مع تحديث الزيارة والطابور تلقائيًا
عرض الأوقات المتاحة حسب جدول العيادة
2. إدارة قوائم الانتظار (Queue)
إضافة المرضى للطابور (حجز مسبق أو walk-in)
ترتيب الطابور حسب الأولوية (urgent أولًا) ثم وقت الوصول
تأجيل الطابور تلقائيًا خارج أوقات العمل
تتبع حالة كل مريض (waiting / in_progress / done)
3. إدارة المرضى
تسجيل بيانات المرضى مع التحقق من رقم الهاتف (Egyptian format)
تشفير البيانات الحساسة (الرقم القومي) بـ AES-256-GCM
حساب العمر تلقائيًا (بالسنوات أو الأشهر)
البحث بالاسم أو الهاتف أو الرقم القومي
4. إدارة الزيارات الطبية
تسجيل الزيارة والشكوى الرئيسية
إرفاق ملفات الفحص والأشعة والوثائق
الوصفات الطبية مع تفاصيل الأدوية
5. إدارة أوقات العيادة
ضبط مواعيد الفتح والإغلاق لكل يوم في الأسبوع
دعم المناوبات الليلية (تمتد لليوم التالي)
تحديد مدة الفتحة الواحدة (slot duration)
6. نظام الصلاحيات (RBAC)
أدوار متعددة: Super Admin, Admin, Doctor, Nurse, Receptionist
صلاحيات دقيقة على مستوى كل وظيفة (patient.create, visit.view…)
Wildcard permissions (*.*, module.*, module.manage)
تخصيص صلاحيات إضافية لكل مستخدم بشكل منفرد
7. التقارير والإحصائيات
تقارير يومية للزيارات والإيرادات (استشارة / كشف / أشعة)
حساب الإيرادات مع مراعاة timezone العيادة
تقارير مجمعة لفترة زمنية مخصصة
8. إدارة العلامات التجارية والفروع
إنشاء علامة تجارية (Brand) تحتها فروع متعددة
كل فرع له timezone مستقل
تفعيل وتعطيل الفروع والعلامات التجارية
9. الأمان والمصادقة
JWT Authentication مع Cache للأداء
Rate Limiting لحماية API
تشفير الحقول الحساسة في قاعدة البيانات
Audit Log لتتبع التغييرات
10. رفع الملفات
رفع ملفات الأشعة والوثائق على Cloudflare R2 (S3-compatible)
التقنيات المستخدمة
Node.js · TypeScript · Express.js · PostgreSQL · Prisma ORM · JWT · Zod · Socket.io · AWS S3 / Cloudflare R2 · Docker