نفس الثماني خطوات: «المريضة داخلة بشكوى إيه؟» → الأسئلة → الفحص → الفحوصات → التشخيص → العلاج → المتابعة → Summary. الـ UI والـ Database بيطلعوا من الفلو ده.
كل بند في رسايل الدكتورة ← فين اتغطّى في النموذج. الجدول بيتولّد من الـ Schema نفسها، فلو Module ناقص هيبان.
الأرقام دي بتتحسب في البرنامج من البيانات المدخلة، ومرجعها مكتوب. الدكتورة بتأكّد التصنيفات اللي العيادة بتستخدمها فعلاً قبل التنفيذ.
مبني على الإطار الموجود في Moon Clinic (نوع التخصص على القسم + محرك الحقول الديناميكية) — مش بناء من الصفر. الجديد الجوهري: المنطق الشرطي، والمجموعات المتكررة، والحسابات، والكيانات اللي محتاجة جداول خاصة.
الـ MODULES اللي في الصفحة دي (قسم ٨) هي نفسها اللي بتتنزل في الباك إند كـ definitions وبتتعرض في الفرونت بـ renderer واحد. إضافة Module جديد أو حقل جديد = صف في الـ definitions، مش شاشة جديدة.
| الجدول | الأعمدة الأساسية | ليه جدول |
|---|---|---|
| gyn_episodes | patient_id · type (gyn/fertility/pregnancy/urogyn/sexual/operation) · categories (JSON) · opened_at · closed_at · status · primary_doctor_id · team (JSON) | حلقة الـ Timeline وتسلسل الحالة من العقم للحمل للولادة |
| patient_alerts | patient_id · code (drug_allergy/dvt_pe/thrombophilia/anticoag/transfusion/airway/custom) · label · severity · source_field · active · set_by | شريط التنبيهات الثابت فوق كل الشاشات |
| obstetric_history_rows | patient_id · year · ga_weeks · outcome (SVD/CS/instrumental/abortion/ectopic/molar/stillbirth/NND) · cs_indication · birth_weight · neonatal_outcome · nicu · pph (JSON: cause/treatment/products) · sepsis (JSON) · transfusion · notes | G/P/A/L بتتحسب منه، وبيظهر في header كل الشاشات |
| pregnancies + antenatal_visits | lmp · edd · dating_method · risk_level · categories · conditions (JSON) · status / visit: ga · bp · weight · fhr · fh · urine · symptoms · plan · next_visit | EDD/GA، جدول متابعة ديناميكي، تقرير المواليد المتوقعة (زي الجينا) |
| treatment_cycles + cycle_visits + follicles | cycle_no · kind (OI/IUI/IVF/ICSI/FET) · cd1 · protocol · meds (JSON) · trigger (JSON) · luteal (JSON) · outcome / visit: cd · et_mm · decision / follicle: side · size_mm | كارت لكل دورة + timeline + إحصائيات IVF |
| operations + operation_procedures | episode_id · date · indication · approach · anesthesia · surgeon/assistant/anesthetist · ebl · blood_products (JSON) · complications (JSON, Clavien) · specimens (JSON) · postop_plan · status / procedure: code · side · fields (JSON) | تقرير عملية، سجل العمليات اليومي، PROMs قبل/بعد |
| popq_measurements | patient_id · episode_id · phase (pre/post) · aa ba c d ap bp tvl gh pb · stage (محسوب) · measured_at | مقارنة قبل/بعد بالأرقام |
| prom_scores | patient_id · instrument (ICIQ-UI-SF/UDI-6/PGI-I/FSFI/FSDS-R/OAB-q) · items (JSON) · total · domains (JSON) · phase · scored_at | baseline vs follow-up، نسبة التحسن |
| urodynamic_studies | pretest (JSON) · filling (JSON) · stress (JSON) · pressure_flow (JSON) · urethral (JSON) · diagnoses (JSON) · interpretation · report_status | تقرير UDS مولّد + قابل للتعديل قبل الاعتماد |
| team_referrals | episode_id · team · reason · requested_at · status (requested/seen/opinion/joint/back) · member · plan | يظهر في الـ Timeline والـ dashboard |
| follow_up_tasks | patient_id · source (operation/cycle/pregnancy/urogyn/sexual) · due_at · template (JSON) · status (due_soon/overdue/done) · done_encounter_id | بتتعمل تلقائي حسب العملية/العلاج وتتعدّل |
| clinical_notes | record_type/id · module_key · body · is_private · author_id · created_at (immutable, addendum فقط) | بوكس الـ Notes لكل Module + Private clinical note |
| media (موجود: attachments) | + record_type/id · module_key · kind (photo/video/link/pdf) · external_url · is_private · access_level | مربوطة بالعملية/الـ Module، مفيش public link |
| access_audit | user_id · patient_id · action (view/export/download/upload/share/print) · record_type/id · ip · at | Audit للاطلاع — ناقص في النظام دلوقتي |
المبدأ: السجل السريري للعملية (ليه · لقينا إيه · عملنا إيه · النتيجة) كيان واحد في الكور اسمه clinical_procedures — مش جزء من موديول المستشفى. موديول المستشفى (hospital_surgeries: الجدول، الغرفة، الفريق، الأتعاب، المستهلكات، الفاتورة) اختياري بيتربط بيه لو موجود. كده نفس الشاشة ونفس البيانات بتشتغل في الثلاث حالات من غير ما نغيّر كود لكل عميل — الفرق بإعداد.
| الإعداد clinic.procedures.mode | عيادة (العمليات في مستشفى بره) | مركز (يوم واحد / منظار) | مستشفى كامل |
|---|---|---|---|
| الحجز | تاريخ + اسم المستشفى + الجرّاح (نص) — مفيش جدول غرف | حجز في جدول غرف المركز (hospital_surgeries بدون إقامة، needs_admission=false) | حجز + إقامة + سرير (الموجود) |
| السجل السريري | واحد: clinical_procedures + حقول الإجراء من الـ Schema (findings منظّمة · حقول خاصة لكل إجراء · Clavien · عيّنات/histopath · ميديا · خطة ما بعد العملية) | ||
| الفريق والأتعاب | أسماء بس (لا أتعاب) | الموجود: hospital_surgery_team + FeeCalculator (6 طرق) | |
| المستهلكات والزرعات | نص (نوع الـ mesh مثلاً) | الموجود: hospital_surgery_items بـ lot / serial / expiry + صرف من المخزن | |
| WHO checklist · الأوقات | اختياري (مخفي افتراضياً) | الموجود | |
| الفاتورة | كشف/خدمة في العيادة | الموجود: باكدج / باكدج دكتور / itemized / تأمين + preauth | |
| الخروج والمتابعة | واحد: Discharge template + follow_up_tasks تلقائي + Operative summary + Timeline | ||
| الجزء | موجود في Moon Clinic | جديد في الموديول ده |
|---|---|---|
| المريض والحجز والكاشير والباكدج | ✓ كما هو | حقول: الزوج (اسم/سن/تليفون/وظيفة)، الزواج (أول/تاني + مدة)، زواج سابق للطرفين، Rh |
| الزيارة (encounter) + التوقيع + addendum | ✓ | workspace لنوع gyn_ob بدل الشاشة العامة |
| محرك الحقول (history_questions) | ✓ CRUD/renderer/seeder | show_if · repeat · calc · module/section · private · lookups بإضافة inline + favorites |
| الروشتة والطلبات والتحاليل والأشعة | ✓ | Subject toggle (المريضة/الزوج) على الروشتة والطلب · Discharge template بأدوية جاهزة · شبكة اختيار قصوى للتحاليل بفئات ANC/ICSI/ذكورة |
| المرفقات + activity log | ✓ | ربط بالـ Module/العملية · video/link · access audit للاطلاع والتحميل · private |
| الأدوار والصلاحيات وData scope | ✓ | gyn.* · assigned-team scope · صلاحيات upload/download/export منفصلة |
| Timeline · Summary generator · Follow-up tasks · Alerts · PROMs · Cycles · Operations · Pregnancy · UDS | — | كله جديد (جدول ٧.٢) |
دي اللي الوكيل هياخدها وينفّذ.
إجابة على كل نقطة في رسالة الدكتورة: متوفر شغال في النظام دلوقتي، وقبل التشغيل هيتعمل كجزء من المشروع قبل ما تدخل بيانات مرضى.
| المطلوب | الحل | الحالة |
|---|---|---|
| Roles & Permissions | صلاحية لكل شاشة ولكل إجراء (View / Add / Edit / Delete)، والدور بيتظبط حسب العيادة | متوفر |
| Export / Download / Upload / Share media | صلاحيات منفصلة لكل واحدة (gyn.media.* · gyn.export.*) | قبل التشغيل |
| نطاق البيانات | كل دور ليه نطاق: اللي سجّله / الفرع / الكل | متوفر |
| الفريق يشوف حالاته بس | الحالة بتتسند لفريق (team_referrals)، وكل عضو بيشوف الحالات المسندة ليه | قبل التشغيل |
| Reception بدون تفاصيل طبية | دور الاستقبال مالوش أي صلاحية gyn.* | متوفر |
| Sexual health module | صلاحية منفصلة + Private clinical note لا تظهر في أي Summary/Export إلا بإذن الطبيبة | قبل التشغيل |
| Audit log للتعديلات | مين ضاف أو عدّل وإمتى، والقيمة قبل وبعد | متوفر |
| Audit log للاطلاع | مين فتح ملف المريضة، ومين حمّل ميديا، ومين عمل Export/Share/Print (access_audit) | قبل التشغيل |
| الـ History ماتختفيش | الكشف بعد الاعتماد بيتقفل، وأي إضافة بتبقى Addendum بتاريخها واسمها؛ القيم بـ version | متوفر |
| Login | اسم مستخدم وباسورد، وقفل الحساب مؤقتاً بعد محاولات غلط | متوفر |
| MFA / Two-factor | كود من تطبيق Authenticator للحسابات اللي ليها وصول طبي | قبل التشغيل |
| Automatic logout | خروج تلقائي بعد مدة عدم استخدام (افتراضي 15 دقيقة على الموبايل)، وانتهاء للـ token | قبل التشغيل |
| Staff مشي | إيقاف الحساب فوراً مع قفل كل جلساته، والسجلات تفضل باسمه وتاريخها (مفيش حذف مستخدمين) | قبل التشغيل |
| Encryption أثناء النقل | HTTPS / TLS بين الجهاز والسيرفر | متوفر |
| Encryption وهي متخزنة | تشفير الحقول الحساسة (اسم/تليفون/رقم قومي/Private notes) والميديا والنسخ الاحتياطية | قبل التشغيل |
| الصور والفيديو | تخزين خاص، ومفيش Public link، والفتح بعد تسجيل الدخول وبالصلاحية وبرابط مؤقت | متوفر |
| فيديو العمليات و Links خارجية | رفع فيديو، وربط Link خارجي بالعملية؛ التحميل بالصلاحية وبيتسجل | قبل التشغيل |
| Backup | نسخ يومية تلقائية، ونسخة خارج السيرفر | متوفر |
| Backup كامل ومتشفر + الاسترجاع | النسخة تشمل الميديا ومتشفرة، وفيه خطة استرجاع مجرّبة (RPO يوم · RTO 4 ساعات) | قبل التشغيل |
| Export بدون هوية | De-identified export للـ Audit والـ Research والـ Teaching | قبل التشغيل |
| الموبايل | Web app على المتصفح، ومفيش بيانات مرضى بتتخزن على الجهاز (لا offline cache للملف الطبي) | متوفر |
| لو الموبايل اتسرق | قفل جلسة الجهاز ده من حساب تاني، وانتهاء تلقائي للجلسات، و MFA | قبل التشغيل |
| اللي بيوصل للشركة | بيانات تشغيل تقنية بس (رقم النسخة وعدد المستخدمين)، ومن غير أي بيانات مرضى، وممكن تتقفل | متوفر |
| ملكية البيانات | بيانات المرضى ملك العيادة والطبيب؛ الشركة خدمة تقنية بس — بتتكتب في اتفاقية حماية بيانات (DPA) | متوفر |
| الدور | View | Add / Edit | Delete | Export | Download media | Upload media | Sexual module | Private notes |
|---|---|---|---|---|---|---|---|---|
| Consultant / Doctor | ✓ | ✓ | مسودة | ✓ | ✓ | ✓ | ✓ | ✓ |
| Clinical team | حالاته | حالاته | — | — | حالاته | ✓ | بإسناد | — |
| Nurse / Assistant | قياسات | قياسات | — | — | — | — | — | — |
| Sonographer | أشعة | تقرير US | — | — | — | صور US | — | — |
| Reception | إداري | حجز | — | — | — | — | — | — |
| الدعم الفني (الشركة) | — | — | — | — | — | — | — | — |
برنامج الجينا (15 سنة استخدام، حساب amrtechogate) اتقرا جدول جدول، والمفردات الحقيقية بتاعته (HSG، منظار، سونار، histopath، placenta…) دخلت في القوائم هنا بعد تنضيفها.
الأمان والمحرك والـ Database الأول، وبعدين الـ Modules واحد واحد — وكل مرحلة بتتسلّم شغّالة.