🧩

نواة Moon ERP والموديولات الخمسة عشر (Moon ERP Core & Modules)

منصة Laravel 12 مبنية على نظام موديولات nwidart/laravel-modules مع واجهة Angular، تعمل حالياً في الإنتاج بخمسة عشر موديولاً مفعّلاً بالكامل (modules_statuses.json). توفر النواة خدمات منصّة جاهزة — تعدد الشركات والفروع، الصلاحيات، التدقيق، الترقيم، الإعدادات، الموافقات، وناقل الأحداث — يرثها أي موديول جديد (HIS أو OBGY) دون أي تطوير إضافي.

نظرة رقمية سريعة

15موديولاً مفعّلاً في الإنتاج
366ملف Migration إجمالاً
308نموذج بيانات (Model)
137Migration في موديول LIS وحده
24حدث Domain Event معرّفاً

خدمات المنصة التي يرثها أي موديول جديد مجاناً

سجل الأطراف الموحّد: يوجد «شريك أعمال» ولا يوجد «مريض» في النواة

الكيان الرئيسي للأطراف في النواة هو Modules\Core\Models\BusinessPartner (جدول business_partners) بأعلام is_customer/is_supplier وعلاقات جهات اتصال وعناوين، وتُبنى فوقه امتدادات لكل موديول: المحاسبة عبر AccBpExt وCRM عبر crm_customer_ext (partner_id). أما المريض فلا وجود له على مستوى النواة إطلاقاً؛ الكيان الوحيد للمرضى هو Modules\LIS\Models\LabPatient (جدول lab_patients) داخل موديول المعمل، ويحمل mrn وبيانات التأمين ورموز بوابة المريض، ويرتبط بسجل الأطراف عبر partner_id. كذلك يرتبط الأطباء (LabDoctor) وشركات التأمين (LabInsuranceContract) والمعامل الخارجية (LabExternalLab) جميعاً بـBusinessPartner عبر partner_id. أي مشروع HIS سيتطلب ترقية «ملف المريض» إلى سجل رئيسي مشترك بدل بقائه حبيس موديول المعمل (استنتاج).

الموديولات الخمسة عشر وكياناتها الرئيسية

الموديولالغرضالكيانات الرئيسيةMigrations / Models
Coreالبيانات الرئيسية وخدمات المنصة المشتركةBusinessPartner, Product, Role, Sequence, Setting, ApprovalWorkflow, Attachment39 / 31
Accountingدفتر أستاذ كامل وأصول وبنوك وموازناتAccount, JournalEntry, FiscalYear, BankReconciliation, FixedAsset, CostCenter51 / 44
LISنظام معلومات المعامل المكتمل (المرجع الإكلينيكي القائم)LabPatient, LabRequest, LabSample, LabResult, LabInvoice, LabMachine, LabQcResult, LabInsuranceContract137 / 66
HRMالموارد البشرية: حضور بيومتري وإجازات ورواتب وتوظيفEmployee, Attendance, Payroll, LeaveRequest, BiometricDevice, Shift47 / 40
Inventoryالمخازن والحركات وطبقات التكلفة والجردWarehouse, StockBalance, InventoryMovement, InventoryCostLayer15 / 14
Salesدورة البيع: عرض سعر ← أمر ← تسليم ← فاتورة ← تحصيلSalesQuotation, SalesOrder, SalesInvoice, SalesPayment, SalesCommission16 / 14
Purchasesدورة الشراء: طلب ← أمر ← استلام ← فاتورة ← سدادPurchaseRequest, PurchaseOrder, PurchaseGrn, PurchaseBill14 / 13
POSنقاط البيع والجلسات النقديةPOSTerminal, POSSession, POSCoupon7 / 5
WebStoreمتجر إلكتروني كامل بعملاء وسلال وطلباتStoreCustomer, StoreOrder, StoreCart, StorePrescription25 / 29
CRMامتداد علاقات العملاء فوق سجل الأطرافCrmCustomerExt, CrmTicket, CrmSlaPolicy1 / 6
CMMSصيانة الأصول وأوامر الشغل والصيانة الوقائيةCmmsAsset, CmmsWorkOrder, CmmsPmSchedule1 / 6
Productionالتصنيع: قوائم مواد وأوامر إنتاجBillOfMaterials, ProductionOrder, ProductionCenter3 / 7
QMSإدارة الجودة: فحوص وعدم مطابقة وإجراءات تصحيحيةInspection, NonConformance, CapaAction1 / 7
NPHIESتكامل منصة التأمين الصحي السعودية «نفيس»NphiesConfig, NphiesPreauth, NphiesTransaction6 / 3
EInvoicingالفوترة الإلكترونية الرسمية وإرسالياتهاEInvoiceConfig, EInvoiceDocument, EInvoiceSubmission3 / 3

كيف يندمج موديول إكلينيكي في المنصة؟ (نموذج LIS العامل)

  1. التسجيل: مزوّد خدمة لكل موديول (مثل CoreServiceProvider) يحمّل الهجرات والإعدادات والترجمات تلقائياً، والتفعيل عبر modules_statuses.json.
  2. الهوية: ربط الكيانات الخارجية (طبيب، شركة تأمين، معمل خارجي، مريض) بسجل BusinessPartner عبر partner_id.
  3. الصلاحيات: تسجيل شجرة صلاحيات الموديول في PermissionDependencyRegistry::register() مع حزم أدوار جاهزة.
  4. المالية: ترحيل مباشر إلى دفتر الأستاذ — Modules/LIS/app/Actions/PostLabInvoice.php يستدعي Modules\Accounting\Actions\CreateJournalEntry (قيود عادية وقيود تأمين).
  5. سير العمل: أحداث نطاق (LabSampleReceivedGenerateResultsOnSampleReceived، LabResultReleasedPostInvoiceItemOnResultRelease) تفصل المراحل الإكلينيكية عن المالية.

الخلاصة الاستراتيجية: المنصة تقدّم لأي موديول HIS أو OBGY جديد البنية الإدارية والمالية والأمنية كاملةً؛ الفجوة الوحيدة الجوهرية هي غياب «سجل مريض موحّد» على مستوى النواة، وهي نقطة القرار المعمارية الأولى قبل بناء HIS (استنتاج).