# التحاليل — الفجوات مع نظام الريفرنس (ل.د.م)

> تاريخ: 2026-03-26
> المرجع: نظام ل.د.م من ناشيونال تكنولوجي

---

## ١. كود لوينك (الكود الدولي للتحاليل)

**الوصف:** كود موحد عالمياً — كل تحليل في العالم ليه كود لوينك ثابت
- هيموجلوبين = 718-7
- سكر صايم = 1558-6
- كرياتينين = 2160-0

**ليه مهم:** لما تربط مع أجهزة أو مستشفيات أو معامل خارجية — الكل بيتكلم بنفس اللغة

**الحالة:** الحقل غير موجود في الباك اند
**المطلوب:**
- باك اند: إضافة حقل `loinc_code` (varchar 20, nullable) في جدول lab_investigations + fillable + validation + resource
- فرونت اند: إضافة حقل في فورم التحليل (قسم المعلومات العامة)
- **تاسك باك اند:** #مطلوب

---

## ٢. فحص الضرورة الطبية (ربط التحليل بالتشخيص)

**الوصف:** النظام يتأكد إن التحليل المطلوب مناسب لتشخيص المريض
- مريض جاي بسخونية → سكر تراكمي غير منطقي → النظام يحذر
- مريض سكر → سكر تراكمي منطقي → يمرر

**الحالة:** غير موجود — محتاج جدول تشخيصات + ربط
**المطلوب:**
- جدول `icd10_codes` (أكواد التشخيص الدولية)
- جدول ربط `investigation_icd10` (كل تحليل مرتبط بأي تشخيصات)
- منطق التحقق في معالج الطلبات
- **مؤجل للمرحلة السادسة** (مع التحقق التلقائي)

---

## ٣. زمن الاستجابة العاجل

**الوصف:** وقتين لكل تحليل — عادي وعاجل
- صورة دم عادي: ساعتين
- صورة دم عاجل: نص ساعة

**الحالة:** الباك اند عنده الحقل (`tat_priority_hours`) بس الفرونت اند مش بيعرضه
**المطلوب:**
- فرونت اند بس: إضافة حقل "زمن الاستجابة العاجل" في فورم التحليل (قسم الوقت والطريقة)
- **مفيش تاسك باك اند** — جاهز

---

## ٤. المدى المقبول من الجهاز + المدى الصالح فيزيائياً

**الوصف:** مستويين إضافيين غير المدى الطبيعي:
- **المدى المقبول من الجهاز:** الجهاز يقدر يقيس من كام لكام (مثلاً هيموجلوبين ٣-٢٥)
- **المدى الصالح فيزيائياً:** أقل وأعلى قيمة ممكنة (عشان يمسك أخطاء الإدخال — مثلاً هيموجلوبين ١٥٠ مستحيل)

**الحالة:** الحقول غير موجودة في الباك اند (الرينجات فيها: normal_min, normal_max, critical_low, critical_high بس)
**المطلوب:**
- باك اند: إضافة 4 حقول في جدول lab_investigation_normal_ranges:
  - `low_valid` (decimal, nullable) — حد أدنى صالح فيزيائياً
  - `high_valid` (decimal, nullable) — حد أقصى صالح فيزيائياً
  - `low_reportable` (decimal, nullable) — حد أدنى مقبول من الجهاز
  - `high_reportable` (decimal, nullable) — حد أقصى مقبول من الجهاز
- فرونت اند: إضافة الحقول في كاردات الرينجات (في الفورم العادي والإضافة السريعة)
- **تاسك باك اند:** #مطلوب

---

## ٥. ربط الأجهزة بالتحاليل (جدول الربط)

**الوصف:** كل جهاز تحليل بيستخدم أكواد مختلفة لنفس التحليل
- جهاز سيسمكس: كود HGB = هيموجلوبين
- جهاز ميندراي: كود HB = هيموجلوبين
- تحليل واحد ممكن يكون على أكتر من جهاز

**الحالة:** عندنا حقل `machine_id` على التحليل (واحد لواحد) — المفروض يكون جدول ربط (كتير لكتير)
**المطلوب:**
- باك اند: جدول `lab_machine_test_mappings`:
  - `machine_id` (FK → lab_machines)
  - `investigation_id` (FK → lab_investigations)
  - `machine_test_code` (varchar 50) — كود التحليل على الجهاز
  - `machine_test_name` (varchar 255, nullable) — اسم التحليل على الجهاز
- نقاط نهاية: إضافة/حذف/عرض الربط
- فرونت اند: تاب جديد "ربط الأجهزة" في فورم التحليل
- **تاسك باك اند:** #مطلوب

---

## ٥.٥ رينجات مختلفة لكل جهاز (جديد)

**الوصف:** كل جهاز تحليل ممكن يعطي نفس التحليل بس برينجات مختلفة. حالياً الرينجات عامة.

**مثال:**
- جهاز سيسمكس — هيموجلوبين: الطبيعي 13.5 - 17.5
- جهاز ميندراي — هيموجلوبين: الطبيعي 13.0 - 17.0

**الحل:** إضافة `machine_id` (nullable) على `lab_investigation_normal_ranges`
- لو null → رينج عام
- لو فيه قيمة → رينج خاص بالجهاز
- النظام يدور على رينج الجهاز أولاً ثم يرجع للعام

**تاسك باك اند:** #1281

---

## ٦. المستهلكات في تاب (بدل dialog منفصل)

**الوصف:** حالياً المستهلكات (الكواشف) في dialog منفصل. في الريفرنس — موجودة كتاب في نفس الفورم.

**الحالة:** الباك اند جاهز — الفرونت بس محتاج تعديل
**المطلوب:**
- فرونت اند بس: نقل المستهلكات من dialog لتاب في الفورم الرئيسي
- **مفيش تاسك باك اند** — جاهز

---

## ٧. استيراد من ملف

**الوصف:** استيراد تحاليل بالجملة من ملف اكسل عند بداية استخدام النظام

**الحالة:** غير موجود
**المطلوب:**
- باك اند: نقطة نهاية استيراد (مثل المنتجات)
- فرونت اند: زرار "استيراد" يقبل ملف اكسل
- **تاسك باك اند:** #مطلوب (ممكن يتأجل)

---

## ملخص التاسكات المطلوبة

| الرقم | الوصف | الأولوية | الحالة |
|-------|-------|----------|--------|
| ١ | زمن الاستجابة العاجل | عالية | فرونت اند بس — ينفذ فوراً |
| ٢ | المستهلكات في تاب | عالية | فرونت اند بس — ينفذ فوراً |
| ٣ | كود لوينك | متوسطة | تاسك باك اند مطلوب |
| ٤ | المدى المقبول والصالح | متوسطة | تاسك باك اند مطلوب |
| ٥ | ربط الأجهزة (جدول) | عالية | تاسك باك اند مطلوب |
| ٦ | استيراد من ملف | منخفضة | تاسك باك اند مطلوب — مؤجل |
| ٧ | فحص الضرورة الطبية | منخفضة | مؤجل للمرحلة السادسة |
