خمسة مسارات تشغيلية كاملة من البداية للنهاية تُظهر المعمارية المعتمدة وهي تعمل: أي موديول يتحرك في كل خطوة، وأي جدول يُكتب، وأي حدث يُطلق، وأين يمر المال. السيناريوهات تغطي العيادة الخارجية، والتنويم والولادة، ودورة الحقن المجهري، ومستشفى عاماً بلا قسم نساء، واستمرار معامل B2B بلا أي تأثر — وكلها تسير على نفس العمود الفقري: lab_patients → his_encounters → his_folio_charges → CreateJournalEntry.
Modules/HIS — صف في his_appointments مرتبط بفترة سعة في his_visit_periods، ويُطلق الحدث AppointmentBooked فتتحدّث شاشة الانتظار.AppointmentCheckedIn) يفتح HIS مواجهة his_encounters بنوع opd ورقم تسلسلي من SequenceService، ويستمد المريضة من lab_patients عبر النطاق internal()، ويضبط queue_position — ويُطلق EncounterOpened./clinic/*؛ تبويب الشيت النسائي يأتي من Modules/Obgy المسجّل في EncounterContentRegistry: الشيت البسيط يُحفظ كاستجابة نموذج his_form_responses مثبتة على إصدار غير قابل للتعديل (his_form_versions) ثم تُوقَّع (draft → signed)، والعلامات الحيوية تُسجَّل صفوفاً منمّطة في his_observations.his_prescriptions/his_prescription_items بأصناف من Core Product؛ عند الصرف من الصيدلية يُطلق PrescriptionDispensed فيخصم Inventory StockService::decreaseStock المخزون بمرجع الروشتة، ويُضاف بند إلى his_folio_charges.Modules\LIS\Actions\CreateLabRequest (المسار المستخرج خصيصاً لهذا) ممررةً encounter_id — فيتولد طلب lab_requests بتسعيره وفاتورته داخل LIS بلا أي تعديل عليه، ويظهر في worklists المختبر كأي طلب آخر.LabResultReleased يصل مستمعَ HIS فيُلحق النتيجة بالمواجهة وتظهر داخل شيت Obgy عبر obgy_lis_test_map؛ ولو كانت حرجة فالحدث CriticalResultDetected ينبّه الطبيبة فوراً.his_folio_charges بقيد UNIQUE(source_type, source_id)؛ فاتورة المختبر تدخل الـ Folio بالمرجع فقط ولا تُرحَّل ثانية.FolioClosed) يولّد الفاتورة حسب الدافع، ثم يرحّل ChargePostingService القيد عبر Modules\Accounting\Actions\CreateJournalEntry (مدين ذمم المريضة عبر AccBpExt.ar_account_id / دائن إيراد وضريبة) بمصدر source_type='his_invoice' — ولو كانت مؤمَّنة تنطلق المطالبة عبر NphiesClaimService::submit().his_encounters بنوع ipd (وقد تكون ابنة مواجهة العيادة عبر parent_encounter_id)، ويُطلق PatientAdmitted.his_bed_assignments (جناح → غرفة → سرير من his_wards/his_rooms/his_beds)؛ كل نقلة داخلية تُسجَّل بحدث PatientTransferred، ووظيفة ليلية تضيف بند «يوم سرير» إلى his_folio_charges آلياً.NphiesEligibilityService::check() (بعد توسيع مدخلاته للمريض المشترك)، ويُحصل على موافقة مسبقة NphiesPreauth تُربط بالـ Folio.CreateLabRequest(encounter_id, source=in_patient) — قيمة الـ enum موجودة أصلاً في LIS؛ أدوية عبر his_prescriptions ثم الصرف والخصم المخزني؛ كل بند يصل الـ Folio بحدث FolioChargePosted.his_surgical_bookings، ثم تقرير عمليات منمّط في his_operative_notes (فريق الجراحة في his_operative_note_staff، التخدير والشق من قواميس his_lookups) — وتسجيل المولود حدث DeliveryRecorded في Modules/Obgy؛ مستلزمات العملية تُخصم من مخزن العمليات (Inventory warehouse) وتتقيد كبنود Folio.PatientDischarged يحرر السرير ويغلق المواجهة؛ FolioClosed يقسم الفاتورة: حصة المريضة نقداً عبر خزائن وورديات الكاشير القائمة، وحصة التأمين فاتورة تحمل أعمدة nphies_claim_status / nphies_preauth_ref / nphies_covered_amount بنمط lab_invoices المثبت.NphiesClaimService::submit() يبني مطالبة FHIR (بالتشخيصات من his_encounter_diagnoses وأكواد SBS على كتالوج الخدمات) ويسجّل كل شيء في nphies_transactions، والرد يعود بالـ polling ويحدّث الفاتورة — ثم قيد التحصيل عبر CreateJournalEntry.lab_patients داخلي، وبيانات الزوج في his_patient_spouses؛ تُفتح حلقة رعاية his_episodes بنوع «دورة IVF» يملك تفاصيلها obgy_ivf_cycles في Modules/Obgy، ويُطلق IvfCycleOpened.CreateLabRequest — فتحصل مجاناً على دورة التحقق والاعتماد وواجهات الأجهزة، وتعود النتائج بحدث LabResultReleased إلى شيت العقم.opd مرتبطة بالحلقة؛ قياسات الجريبات وسماكة البطانة تُسجَّل صفوفاً منمّطة في his_observations وتُعرض في ودجة الشبكة الزمنية (observation grid) — لا JSON مدفوناً.his_encounters type=daycase + his_surgical_bookings)؛ توقيع نموذج السحب يُطلق FormResponseSubmitted فيستمع Obgy ويقدّم مرحلة الدورة (IvfCycleStageCompleted): تخصيب → obgy_embryo_transfers → تجميد الفائض في obgy_cryopreservations.his_folio_charges (باقة الدورة أو بنوداً متدرجة) وتُفوتر عبر نفس مسار ChargePostingService؛ ونتيجة الدورة (حمل إيجابي) تغلق الحلقة وتفتح تلقائياً ملف حمل obgy_pregnancies بحدث PregnancyOpened — فتبدأ متابعة الحمل على نفس العمود الفقري.Core + Accounting + HRM + Inventory + LIS + HIS فقط؛ Modules/Obgy غير مفعّل — والتحقق على مستوى الـ API (بند المرحلة صفر) لا الواجهة فقط.his_encounter_diagnoses، أوامر تحاليل وأدوية، تنويم وأسرّة، عمليات عامة في his_surgical_bookings/his_operative_notes — بلا جدول نسائي واحد في قاعدة بياناته.his_form_templates + قواميس his_lookups بنطاقات خاصة) — وأي تخصص مستقبلي يحتاج جداول صلبة يمر بحوكمة «مبرر كسر الميتاداتا».FolioClosed → ChargePostingService → CreateJournalEntry → NPHIES) — أي أن باقة «Moon Hospital» منتج تركيب وترخيص، لا مشروع تطوير جديد لكل عميل.lab_patients بمالكهم external_lab_id والفهرس الفريد (company_id, ext_scope_key, national_id) — القرار المحسوم 37/40؛ وHIS لا يراهم أصلاً لأنه يقرأ عبر LabPatient::internal() حصراً، وبلا أي Global Scope شامل (القيد المعتمد).encounter_id يبقى NULL لكل طلبات B2B والمشي المباشر، فلا يتغير سلوك بوابة المعامل الخارجية ولا سلسلة المناديب (lab_external_lab_couriers) ولا الفوترة الشهرية للمعامل.curl قبل/بعد، وأي تدهور يُرجِع البند فوراً.use Modules\HIS داخل LIS — حماية ميكانيكية لا تعتمد على الانضباط وحده، لأن nwidart لا يفرض اتجاهات الاعتماد بنفسه.Folio → ChargePostingService → CreateJournalEntry