# نظام إدارة العيادات والأطباء
## Clinic Management System (CMS)

---

## 📋 نظرة عامة

نظام متكامل لإدارة العيادات الطبية والأطباء، مبني على نفس البنية التحتية لنظام المختبرات الطبية. يدعم:
- إدارة متعددة العيادات (Multi-clinic)
- إدارة الأطباء وجداولهم
- نظام حجز المواعيد
- السجلات الطبية الإلكترونية (EMR)
- النظام المالي مع تقاسم الأرباح
- الصيدلية داخل العيادة
- التكامل مع نظام المختبر

---

## 🗄️ هيكل قاعدة البيانات

### 1. إدارة العيادات

#### جدول `clinics`
- معلومات العيادة الأساسية (اسم، تخصص، ترخيص)
- معلومات الاتصال (هاتف، بريد، موقع)
- الموقع الجغرافي (Latitude, Longitude) لربط Google Maps
- دعم الفروع المتعددة (parent_clinic_id)
- ربط مع نظام الفروع (branch_id)

#### جدول `clinic_working_hours`
- أوقات الدوام لكل يوم من الأسبوع
- دعم الاستراحات (break_start, break_end)

### 2. إدارة الأطباء

#### جدول `clinic_doctors`
- بيانات الطبيب (اسم، اختصاص، رقم نقابة)
- صورة شخصية وتوقيع إلكتروني
- نسبة الأرباح (profit_percentage)
- رسوم الاستشارة (consultation_fee)
- ربط مع العيادة

#### جدول `doctor_schedules`
- جدول أسبوعي للطبيب
- أوقات الدوام لكل يوم
- مدة الموعد (appointment_duration)
- الحد الأقصى للمواعيد

#### جدول `doctor_schedule_exceptions`
- استثناءات في الجدول (إجازات، مواعيد خاصة)

### 3. نظام الحجز والمواعيد

#### جدول `appointments`
- معلومات الموعد (تاريخ، وقت، حالة)
- أنواع المواعيد (consultation, follow_up, emergency, online)
- نظام الطوابير (queue_number)
- تذكيرات SMS/WhatsApp

#### جدول `clinic_queue`
- نظام طوابير منفصل
- عرض على الشاشة (display_screen)
- حالات الطابور (waiting, in_progress, completed)

### 4. السجلات الطبية الإلكترونية (EMR)

#### جدول `patient_visits`
- معلومات الزيارة (شكوى، فحص، تشخيص)
- ربط مع الموعد
- حالة الزيارة

#### جدول `prescriptions`
- الوصفات الطبية
- ربط مع الزيارة
- حالة الصرف (is_dispensed)

#### جدول `prescription_items`
- أدوية الوصفة
- الجرعة والتكرار والمدة

#### جدول `visit_attachments`
- مرفقات الزيارة (تحاليل، أشعة، صور)
- أنواع المرفقات (lab_result, xray, image, document)

#### تحديث جدول `patients`
- فصيلة الدم (blood_type)
- الحساسيات (allergies) - JSON
- الأمراض المزمنة (chronic_diseases) - JSON
- الأدوية الحالية (medications) - JSON
- معلومات الطوارئ

### 5. النظام المالي

#### جدول `clinic_invoices`
- فواتير العيادة
- تفصيل الرسوم (استشارة، إجراءات، أدوية، تحاليل)
- الخصومات والضرائب
- تقاسم الأرباح (doctor_share, clinic_share)

#### جدول `clinic_payments`
- المدفوعات
- طرق الدفع (نقدي، كارد، تحويل، تأمين)

#### جدول `clinic_expenses`
- مصاريف العيادة
- تصنيف المصاريف (راتب، إيجار، كهرباء، إلخ)

### 6. الصيدلية داخل العيادة

#### جدول `clinic_pharmacy_items`
- أدوية الصيدلية
- المخزون الحالي والحد الأدنى
- أسعار الشراء والبيع

#### جدول `clinic_pharmacy_batches`
- دفعات الأدوية
- تاريخ انتهاء الصلاحية
- تتبع الصلاحية (FEFO)

#### جدول `clinic_pharmacy_movements`
- حركات الصيدلية (شراء، بيع، تعديل)
- ربط مع الوصفات والفواتير

### 7. التكامل مع المختبر

#### جدول `clinic_lab_requests`
- طلبات تحاليل من العيادة
- ربط مع زيارة العيادة
- ربط مع طلب المختبر (lab_order_id)
- الأولوية (normal, urgent, stat)

#### جدول `clinic_lab_request_items`
- فحوصات طلب التحليل

---

## 🔐 الصلاحيات

تم إضافة الصلاحيات التالية:

### إدارة العيادات
- `clinics.view` - عرض العيادات
- `clinics.create` - إضافة العيادات
- `clinics.update` - تعديل العيادات
- `clinics.delete` - حذف العيادات

### إدارة الأطباء
- `doctors.view` - عرض الأطباء
- `doctors.create` - إضافة الأطباء
- `doctors.update` - تعديل الأطباء
- `doctors.delete` - حذف الأطباء
- `doctors.schedule` - إدارة جدول الأطباء

### المواعيد
- `appointments.view` - عرض المواعيد
- `appointments.create` - إضافة المواعيد
- `appointments.update` - تعديل المواعيد
- `appointments.cancel` - إلغاء المواعيد

### السجلات الطبية
- `visits.view` - عرض الزيارات
- `visits.create` - إضافة الزيارات
- `visits.update` - تعديل الزيارات
- `visits.delete` - حذف الزيارات

### الوصفات
- `prescriptions.view` - عرض الوصفات
- `prescriptions.create` - إضافة الوصفات
- `prescriptions.dispense` - صرف الوصفات

### الفواتير
- `clinic_invoices.view` - عرض فواتير العيادة
- `clinic_invoices.create` - إضافة فواتير العيادة
- `clinic_invoices.update` - تعديل فواتير العيادة

### الصيدلية
- `pharmacy.view` - عرض الصيدلية
- `pharmacy.manage` - إدارة الصيدلية

### الطوابير
- `queue.view` - عرض الطوابير
- `queue.manage` - إدارة الطوابير

### التقارير
- `clinic_reports.view` - عرض تقارير العيادة

---

## 📁 الوحدات (Modules)

### ✅ المكتملة

1. **`modules/clinics.php`** - إدارة العيادات
   - عرض قائمة العيادات
   - إضافة/تعديل/حذف عيادة
   - عرض تفاصيل العيادة
   - إدارة أوقات الدوام

2. **`modules/clinic_doctors.php`** - إدارة أطباء العيادات
   - عرض قائمة الأطباء
   - إضافة/تعديل/حذف طبيب
   - عرض تفاصيل الطبيب
   - إدارة جدول الطبيب

### ⏳ قيد التطوير

3. **`modules/appointments.php`** - نظام الحجز والمواعيد
4. **`modules/patient_visits.php`** - السجلات الطبية الإلكترونية
5. **`modules/clinic_invoices.php`** - النظام المالي
6. **`modules/clinic_pharmacy.php`** - الصيدلية
7. **`modules/clinic_queue.php`** - نظام الطوابير
8. **`modules/clinic_dashboard.php`** - لوحة التحكم
9. **Integration API** - ربط مع نظام المختبر

---

## 🚀 التثبيت والتشغيل

### 1. تشغيل Migration

```bash
php migrations/run_017_clinic_management_system.php
```

هذا الأمر سيقوم بـ:
- إنشاء جميع الجداول المطلوبة
- إضافة الصلاحيات الجديدة
- تحديث جدول المرضى

### 2. إعداد الصلاحيات

اذهب إلى `index.php?page=roles` وقم بتعيين الصلاحيات للأدوار المختلفة:
- **مدير**: جميع الصلاحيات
- **طبيب**: `visits.*`, `prescriptions.*`, `appointments.view`
- **موظف استقبال**: `appointments.*`, `queue.*`
- **محاسب**: `clinic_invoices.*`, `clinic_payments.*`
- **صيدلي**: `pharmacy.*`, `prescriptions.dispense`

### 3. إضافة عيادة أولى

1. اذهب إلى `index.php?page=clinics&action=create`
2. أدخل بيانات العيادة
3. أضف أوقات الدوام

### 4. إضافة أطباء

1. اذهب إلى `index.php?page=clinic_doctors&action=create`
2. اختر العيادة
3. أدخل بيانات الطبيب
4. حدد نسبة الأرباح ورسوم الاستشارة

---

## 📊 الميزات المخطط لها

### المرحلة 1 (الأساسية) ✅
- [x] إدارة العيادات
- [x] إدارة الأطباء
- [ ] نظام الحجز
- [ ] السجلات الطبية (EMR)
- [ ] النظام المالي الأساسي

### المرحلة 2 (المتقدمة)
- [ ] نظام الطوابير مع شاشة عرض
- [ ] الصيدلية داخل العيادة
- [ ] التكامل مع المختبر
- [ ] Dashboard وتحليلات

### المرحلة 3 (احترافية)
- [ ] حجز أونلاين للمرضى
- [ ] تطبيق موبايل للمريض
- [ ] دفع أونلاين
- [ ] أرشفة PDF للزيارات
- [ ] AI للتنبؤ بضغط المرضى
- [ ] تحليل الأمراض الموسمية

---

## 🔗 التكامل مع نظام المختبر

### API للعيادات

يمكن للعيادات طلب تحاليل من خلال:
1. إنشاء طلب تحليل (`clinic_lab_requests`)
2. إرسال الطلب للمختبر عبر API
3. استلام النتائج تلقائياً
4. عرض النتائج في ملف المريض

### Webhook للمختبر

يمكن للمختبر إرسال النتائج للعيادة عبر webhook:
- عند اعتماد النتيجة
- إرسال تلقائي للعيادة المرتبطة
- تحديث ملف المريض في العيادة

---

## 📝 ملاحظات مهمة

1. **Multi-tenant Support**: النظام يدعم عزل كامل بين المختبرات (tenants)
2. **Multi-branch Support**: كل عيادة يمكن ربطها بفرع
3. **Audit Log**: جميع العمليات مسجلة في سجل التدقيق
4. **Security**: جميع الصلاحيات محمية بـ RBAC

---

## 🐛 المشاكل المعروفة

- [ ] واجهة إدارة جدول الطبيب غير مكتملة
- [ ] نظام الطوابير يحتاج شاشة عرض منفصلة
- [ ] ربط Google Maps يحتاج API key
- [ ] نظام الصرف من الصيدلية غير مكتمل

---

## 📞 الدعم

للمساعدة أو الإبلاغ عن مشاكل، راجع:
- `docs/LIMS2_DEVELOPMENT_GUIDE.md` - دليل التطوير العام
- `docs/README.md` - الوثائق الرئيسية

---

**آخر تحديث**: 2024
**الإصدار**: 1.0.0
