moon-erp-be/lis-middleware/ (مُتحكَّم بالإصدار، شوف DEPLOY.md). تركيب الويندوز C:\Users\HP\lis-middleware = نسخة منشورة منه. نعدّل في السورس + commit → ننسخ lis_middleware/+run.py للويندوز (نسيب config.json المحلي) → نعيد التشغيل. اتأكّد النهاردة: نسخة الويندوز **متطابقة 100%** مع السورس (19/19 ملف). دليل شامل: moon-erp-be/docs/lis/analyzer-middleware-guide.md.يشتغل بـ run.py --config config.json · بيرفع لـ moonui.elbaset.com/moon-erp-be/api · workstation = DESKTOP-0J1HSJM · دخول: ssh -p 2222 hp@localhost.
lis_middleware/drivers/__init__.py → DRIVERS = {"dymind_hl7":…, "maglumi_astm":…, "mispa_astm":…, "udichem_astm":…}.drivers/astm_base.py (مشترك لكل درايفرات ASTM) · HL7: drivers/dymind_hl7.py (parse + build_ack).astm_tcp_server.py / serial_server.py (ASTM) · mllp.py (HL7) · cloud.py (الرفع + login + buffer أوفلاين في buffer.sqlite3).config.json → devices[]): Dymind DH36 (dymind_hl7, port 5600, machine_id 3) · Maglumi 800 (maglumi_astm, port 15001, machine_id 6). كل device فيه: driver · listen_port · barcode_fields · send_ack · إعدادات serial.| الكيان | الدور |
|---|---|
| LabDeviceModel (كاتالوج) | name/manufacturer/model + driver (نص، مثل vitros_astm) + protocols + barcode_fields + قائمة تحاليل الجهاز (analyzer_code/unit/ranges) |
| LabMachine (نسخة) | device_model_id + interface_type (tcp/serial/hl7) + connection_settings (driver/host/port/serial) + workstation + الحالة |
| LabMachineTestMapping | ربط machine_test_code (كود الجهاز) ↔ investigation_id (تحليلك) |
الاستقبال: POST /lis/machine-results | مطابقة بالباركود → عينة → تحليل، وتعبئة النتيجة تلقائيًا (+ auto-verify لو مفعّل) + /communication-logs للأرشفة |
GET /lis/machines/agent-config?workstation= | الميدل-وير بيسحب منه إعداد الأجهزة (اختياري — حاليًا الأجهزة في config.json المحلي) |
drivers/vitros_astm.py — مبني على astm_base.py (لأن VITROS بيستخدم ASTM E1394 قياسي)، مع خصوصيات سجلات/أكواد VITROS من الدليل. (لو هنستخدم HL7 بدل ASTM → vitros_hl7.py على نمط dymind_hl7.py.)drivers/__init__.py → DRIVERS["vitros_astm"] + إضافته لـ KNOWN_DRIVERS.config.json: {name, machine_id, driver:"vitros_astm", listen_port:<منفذ حر>, barcode_fields, send_ack}.vitros_astm، protocols=["astm"]، + تحاليل الجهاز بأكوادها (Appendix B).DESKTOP-0J1HSJM، machine_id (نفس اللي في config.json).lis-middleware.log + شاشة نتائج الأجهزة + سجل الاتصالات.vitros_astm على نمط maglumi_astm/astm_base + تعريف الجهاز في الـ LIS، ونعاير البارسر على أول capture. جاوب على الأسئلة وأبدأ.