قبل أي رؤية جديدة لعلاقة ERP ↔ LIS ↔ HIS ↔ OBGY، يجب تثبيت ما اعتُمد فعلاً: دراسة الجدوى المعمارية لنظام المستشفيات (النسخة 2 بتاريخ 10 يونيو 2026، الملف /home/moonui/public_html/hms-feasibility-report.html) ومواصفة التنفيذ /home/moonui/hms-phase0-spec.md. هذه الوثائق تحمل قرارات معتمدة من المالك بصيغة «لا يُعاد فتحها» — أي أنها قيود مُلزِمة على أي طرح جديد بخصوص نظام عيادات النساء والتوليد (OBGY)، وحالتها التنفيذية: معتمدة ولم يبدأ تنفيذها بعد.
وثّقت الدراسة أربعة قرارات حاكمة، وأكدتها مواصفة المرحلة 0 تحت عنوان صريح SETTLED DECISIONS (do not reopen):
lab_patients نفسه ليصبح الكيان المشترك للمرضى — بلا جدول جديد وبلا إعادة تسمية. السبب المقاس: 8 مفاتيح FK صلبة و144 مرجع patient_id في 52 ملفاً داخل LIS، وتكامل NPHIES يبني مورد FHIR Patient منه مباشرة.lab_patients: حُسم بتحليل مخصص (37/40 للجدول الواحد مقابل 19/40 للفصل). عمود external_lab_id يلعب حرفياً دور Patient.managingOrganization في معيار FHIR. الأرقام: 11,769 مريض شركة مقابل 15 مريض B2B مرتبطين بصفوف إكلينيكية حية (15 طلباً، 18 عينة، 45 نتيجة، 16 فاتورة). الحراسة بـ named scopes اختيارية internal()/forLab() — وممنوع صراحة أي Global Scope شامل على الجدول.Modules/HIS لا عدة موديولات صغيرة، والتقسيم الداخلي بالمجلدات. قاعدة الاتجاه الذهبية: HIS يستورد من LIS وAccounting وHRM (نداء مباشر للأمام)، وLIS لا يستورد HIS أبداً — رجوع المعلومات عبر الحدثين القائمين LabResultReleased وLabRequestCompleted يستمع لهما HIS.CreateLabRequest Action من الكونترولر (دالة LabRequestController::store ~294 سطراً) بمطابقة بايت، + عمود encounter_id خامل على lab_requests (بلا FK لأن جدول HIS غير موجود بعد). نفس العقد يصبح القالب للأشعة وأي منفّذ خدمة لاحق.| قدرة HIS | الموجود اليوم | التقييم المعتمد | الاستراتيجية |
|---|---|---|---|
| ملف المريض + ربطه بالحسابات | lab_patients يغطي ~80% (MRN، تأمين، partner_id ← شريك أعمال بحسابات تلقائية) | جزئي قوي | ترقية في المكان (قرار 1) |
| الاستقبال يطلب تحاليل | POST /lis/requests يقبل المصدر in_patient/emergency منذ البداية | جاهز | تكامل عبر CreateLabRequest |
| الأطباء | سجل ناضج في LIS بعمولات وتواقيع — صفر ربط بـ HRM | جزئي | عمود employee_id يكمل سلسلة طبيب←موظف←مستخدم |
| الزيارة / Encounter | lab_visits غلاف رفيع 1:1 حول طلب معمل | بذرة | كيان Encounter جديد في HIS |
| المواعيد والحجوزات | لا محرك تقويم/حجز في الموديولات الـ15 إطلاقاً | غير موجود (1/10) | بناء جديد — أكبر بند |
| الفندقة: غرف/أسرّة + ADT | صفر جداول (بحث شامل مؤكَّد) | غير موجود (0–1/10) | بناء جديد كامل (مرحلة 2) |
| التسعير والتأمين | قوائم أسعار وتغطية تأمين في LIS مربوطة بالتحاليل فقط | انقسام | تعميم على بنود polymorphic |
| الصيدلية | المخزن جاهز (باتشات + POS)؛ الإكلينيكية غير موجودة | جزئي | مرحلة 3 فوق Inventory/POS |
| فوليو المريض والودائع | النمط المحاسبي قائم (فوترة مرحلية B2B + تخصيص FIFO)، الكيان غير موجود | نمط جاهز | قرار 4 |
| الكاشير والخزائن والتأمين/NPHIES | كامل ومجرّب في LIS (ورديات، تقرير Z، مطالبات FHIR) | جاهز (9/10 مالياً) | إعادة استخدام مباشرة |
المواصفة /home/moonui/hms-phase0-spec.md تنص: معتمدة من المالك، لم يبدأ أي بند (كل خانات الحالة فارغة حتى تاريخ قراءتها):
| البند | المضمون | الخطر على LIS | بوابة الإثبات | الحالة |
|---|---|---|---|---|
W1-1 | رفع نطاق الفروع: LisDataScope ← Modules/Core/app/Support/DataScope.php مع shim توافقي (14 موضع نداء بلا تغيير) | لا خطر | سويتات LIS القائمة | لم يبدأ |
W1-2 | عمود employee_id خامل على lab_doctors (ربط طبيب←موظف HRM) | صفر | LabDoctorApiTest (11) | لم يبدأ |
W1-3 | استخراج CreateLabRequest Action بمطابقة بايت + encounter_id خامل على lab_requests | منخفض | LabRequestApiTest (42) + سويتات B2B (74) | لم يبدأ |
W1-4 | سجل تبعيات الصلاحيات في Core (PermissionDependencyRegistry) — يصلح انعكاس RoleSaveService.php:10 ويجهّز تسجيل his.* | صفر (استجابات مطابقة بالبايت) | سويتات Role (47+) | لم يبدأ |
W2-1 | تحصين B2B (8 بنود: مؤشر اللوحة، 6 منتقيات واجهة، حارس الدمج، قيد فريد UNIQUE(company_id, ext_scope_key, national_id)، scopes مسماة…) + ترقية الكيان المشترك | منخفض — تغييرات مقصودة فقط | LabPatientApiTest (20) + اختبارات حراسة جديدة | لم يبدأ — البند 8 ينتظر قرار المالك |
W2-2 | فرض مفتاح الموديولات على API — وضع المراقبة فقط (القياس أثبت أن الفرض الفوري يكسر تدفقات شغّالة: إعداد شركة التطوير لا يذكر موديولات عليها بيانات حية) | لا حظر | مراجعة السجلات بعد أسبوعين | لم يبدأ |
مؤجَّل صراحة إلى انطلاق HIS: سقّالة Modules/HIS وصلاحيات his.*، جداول Encounter/Folio، رفع طرق الدفع/الخزائن، تعميم قوائم الأسعار/التأمين، خدمة ترحيل الرسوم الموحدة (سجل التعميم — القسم 5+ من الدراسة).
W2-1 بند 8): LabPatient.php:60-65 يصدر توكن بورتال لكل مريض — هل يستمر ذلك لصفوف B2B؟ ينتظر قرار المالك.الوثيقتان لا تذكران OBGY إطلاقاً — فكل ما يلي مواضع تقاطع نحددها نحن (استنتاج) بناءً على ما قرأناه في الوثيقتين وتحليل OBGY (/home/amrtechogate/public_html/obgy-erp-analysis.md):
visits، visit_periods) وملفات إكلينيكية تخصصية كاملة (متابعة حمل ancsheet، عقم/حقن مجهري، سونار) يمكن أن تُثري تصميم Encounter ومحرك مواعيد المرحلة 1 كنموذج نطاق — لا ككود (استنتاج).Modules/HIS فوق منصة Moon. القيمة قيمة نموذج بيانات وسير عمل وترحيل بيانات، لا قيمة منصة (استنتاج مدعوم بقسم Migration-Relevant Conclusions في تحليل OBGY).lab_patients هو الوجهة الطبيعية لترحيل جدول patients في OBGY، ولا شيء في OBGY يستدعي إعادة فتح قرار B2B أو قرار الجدول الواحد (استنتاج).encounter_id» الذي صُمم للمعمل والأشعة يصلح نفسه لطلبات السونار والإجراءات النسائية (استنتاج).