بنية النظام البرمجي

صُممت منصة ICARE لتكون قائمة على واجهات برمجة التطبيقات أولاً (API-first) باستخدام إطار عمل لارافل مع التحقق عبر Sanctum لإدارة المجموعات والاشتراكات وسجلات المرضى بشكل آمن ومستقل لكل عيادة.

التقنيات والمكتبات المستخدمة

الطبقة البرمجية التقنية المستخدمة الوصف / التفاصيل الإضافية
بيئة التشغيل PHP 8.2+ البيئة الأساسية التي تُشغل الأكواد والمنطق البرمجي للمنصة.
إطار العمل Laravel 11.x هيكلية برمجية حديثة تسهل التوجيه (Routing) والهجرات وقاعدة البيانات والتحكم عبر الأوامر.
قاعدة البيانات MySQL 8.0 تخزين ملفات المرضى، الفواتير، جداول المواعيد، وبارامترات الفحوصات المخبرية.
المصادقة والأمان Laravel Sanctum نظام مصادقة بالاعتماد على التوكين (Token-based) لتأمين واجهات الـ REST API.
مكالمات الفيديو Zoom OAuth Integration إنشاء وتحديث وحذف جلسات الاستشارة عن بعد تلقائياً بالتنسيق مع حسابات الأطباء.
بوابات الدفع Stripe & Razorpay تكامل عبر الويب هوكس (Webhooks) لتلقي معلومات الدفع وتفعيل خطط الاشتراكات وفواتير المرضى.
نظام الإشعارات FCM (Firebase Cloud Messaging) إرسال إشعارات فورية مباشرة إلى تطبيق المريض وهواتف الأطباء والمساعدين.

الهيكل العام للمجلدات

تنظم المكونات الأساسية للنظام داخل مجلدات لارافل القياسية:

بنية التوجيه وحواجز الحماية (Middleware)

يتم فرض قيود الأمان وحدود الاشتراك على مستويات متعددة. يجب أن تعبر الطلبات عبر طبقات الحماية التالية:

graph TD REQ["طلب API جديد وارد"] --> FILTER{"فحص طريقة المصادقة"} subgraph "طبقة الخدمات العامة (API Key)" FILTER -->|طلب عام| APIKEY["برمجية api.key"] APIKEY -->|مفتاح صحيح| PUB_RES["تسجيل الدخول، إنشاء الحساب، خطط الاشتراك، الاستعلام العام"] end subgraph "طبقة الخدمات المحمية (Sanctum)" FILTER -->|طلب يتطلب توكين| SANCTUM["برمجية auth:sanctum"] SANCTUM -->|توكين صحيح| SUB_CHECK{"فحص حالة الاشتراك"} SUB_CHECK -->|إدارة الفواتير والاشتراكات| NO_SUB["شاشات الدفع والاشتراك"] SUB_CHECK -->|طلب إضافة أو تعديل طبي| ENFORCE["برمجية check.subscription"] ENFORCE -->|عيادة مشتركة ونشطة| WRITE_RES["تعديل، إضافة وحذف السجلات الطبية"] ENFORCE -->|اشتراك منتهي أو معلق| BLOCKED["استجابة 201 - قفل العمليات التشغيلية"] end
برمجية فحص الاشتراك والتراخيص

تقوم برمجية check.subscription باعتراض كافة عمليات الكتابة (كإنشاء المواعيد، إضافة الأطباء، وحفظ الوصفات). إذا انتهى اشتراك العيادة أو تجاوزت الحد الأقصى للأطباء أو المرضى المسموح بهم، يقوم النظام بتعليق الخدمة فوراً ويسمح فقط بعمليات القراءة والاطلاع (GET requests) خلال فترة السماح.