عند إضافة جهاز، نختار التحاليل اللي بيعملها، ونحدّد الرنجات لكل تحليل — كل ده من نفس الشاشة. الرنجات تظهر برضو في تاب الرينجات بتاع الـInvestigation (نفس البيانات، مدخل أسهل).
| المكوّن | الحالة |
|---|---|
جدول ربط الجهاز بالتحاليل lab_machine_test_mappings(machine_id, investigation_id, machine_test_code, machine_test_name, unit, sort_order) | موجود |
CRUD للـmappings — apiResource machine-test-mappings | موجود (GET/POST/PUT/DELETE) |
جدول الرنجات lab_investigation_normal_ranges(investigation_id, machine_id, age_from/to, gender, normal_min/max, critical_low/high, valid, reportable, unit, text_normal) | موجود |
حفظ الرنجات — PUT /lis/investigations/{id}/normal-ranges (نفس اللي بيستخدمه تاب الرينجات) | موجود |
مفيش حاجة كبيرة في الباك إند — الـendpoints جاهزة. بنبني تاب جديد في شاشة الجهاز يستخدمها.
كل صف = ربط (mapping) بين كود الجهاز (WBC) وتحليل في النظام (White Blood Cells). توسيع الصف يفتح محرّر الرنجات لنفس التحليل.
WBC) + الوحدة.machine-test-mappings → ده اللي بيخلّي نتيجة الجهاز تتربط بالتحليل الصح.PUT /lis/investigations/{id}/normal-ranges — نفس endpoint تاب الرينجات.المعمل بيجهّز الجهاز مرة واحدة: التحاليل + أكوادها + رنجاتها من شاشة واحدة. وبعد كده أي نتيجة من الجهاز تتربط وتتفلّج (طبيعي/حرج) صح أوتوماتيك.
جدول الرنجات فيه عمود machine_id — يعني ممكن رنج يكون خاص بجهاز معيّن. فعندنا اختيارين:
| الخيار | المعنى | ملاحظة |
|---|---|---|
عامة (مشتركة) — machine_id = null | الرنج للتحليل نفسه، يظهر في تاب الرينجات، ويستخدمه أي جهاز. | يطابق وصفك — موصى به الأول |
خاصة بالجهاز — machine_id = الجهاز | رنج مختلف لكل جهاز (أجهزة مختلفة لها مراجع مختلفة فعلاً). | دقيق أكتر بس أعقد — لاحقاً |
نبدأ بـالعامة (machine_id null) عشان تظهر في تاب الرينجات زي ما قلت وتكون مصدر واحد. ونسيب الباب مفتوح للرنجات الخاصة بالجهاز كتحسين بعدين (الجدول داعمها).
| الجزء | التفاصيل | الحجم |
|---|---|---|
| Backend | غالباً لا شيء — الـendpoints موجودة. (اختياري: endpoint واحد bulk يحفظ كل mappings الجهاز مرة واحدة لتقليل الطلبات.) | صغير/لا شيء |
| Frontend — تاب جديد | «التحاليل والرنجات» في dialog الجهاز: بحث/اختيار investigations، صف mapping (كود الجهاز + وحدة)، توسيع لتحرير الرنجات. | متوسط |
| Frontend — محرّر الرنجات | نعيد استخدام نفس مكوّن رنجات الـInvestigation (سن/جنس/min/max/حرج + قبول الأرقام العربية) — موجود بالفعل. | إعادة استخدام |
| الربط بالميدل وير | بعد ما الـmappings تتظبّط، نتيجة الجهاز (test_code=WBC) تتربط بالـinvestigation تلقائياً عند الرفع. | شغّال بالفعل |