نفرّق بين «نوع الجهاز» (كاتالوج عام بالموديل + درايفر + تحاليل + رنجات) و«جهاز العميل» (نسخة فعلية ليها IP/بورت، وممكن العميل عنده 3 من نفس النوع). ده التحليل قبل التنفيذ.
قائمة عامة بالأجهزة اللي النظام بيدعمها — مرة واحدة على مستوى النظام. مثال: «Dymind DH36».
الجهاز الفعلي الموجود في المعمل. العميل ممكن عنده 3 من نفس النوع → 3 نُسخ.
الكاتالوج = «كتالوج السيارات» (موديل كامري بمواصفاته). نسخة العميل = «عربيتك إنت» (كامري بلوحة معدنية ولون معيّن). تقدر يكون عندك 3 كامري — كلهم نفس الموديل، كل واحدة ليها لوحتها.
| الموجود | النوع |
|---|---|
lab_machines | نُسخ بس (company/branch) — مفيش كاتالوج |
lab_machine_test_mappings | تحاليل لكل نسخة (مش على النوع) |
الرنجات lab_investigation_normal_ranges | على التحليل (وممكن machine_id لنسخة) |
| كاتالوج أنواع الأجهزة | غير موجود |
لو العميل عنده 3 × DH36، لازم يضيف التحاليل والرنجات 3 مرات (مرة لكل نسخة) — تكرار وأخطاء. الحل: نحطها مرة واحدة على النوع في الكاتالوج، والنُسخ تورثها.
lab_device_modelslab_device_model_tests (analyzer_code → investigation + unit).lab_machinesdevice_model_id (لينك للكاتالوج).نسخ (موصى به): النسخة تاخد كوبي من تحاليل/رنجات النوع وقت الإنشاء، وتقدر تعدّلها لوحدها (مثلاً معايرة مختلفة لجهاز). أبسط وأمرن.
مرجع مشترك: النسخة تشاور النوع دايماً — تعديل النوع يأثر على الكل. أنضف للصيانة بس أقل مرونة للنسخة الواحدة.
| الشاشة | الدور | مين بيستخدمها |
|---|---|---|
| كاتالوج الأجهزة (جديدة) | إدارة أنواع الأجهزة: موديل، درايفر، بروتوكولات، تحاليل افتراضية + رنجاتها | الأدمن / النظام (مرة) |
| أجهزة المعمل (الحالية + تعديل) | إضافة نسخة: اختر نوع من الكاتالوج → اسم/فرع/IP/بورت. تقدر تعدّل تحاليلها لو لزم | المعمل |
| إعداد الجهاز (اللي عملناها) | تبقى لتعديل تحاليل/رنجات النسخة (override) — أو نوجّهها للكاتالوج | المعمل |
| البيانات الواردة (اللي عملناها) | الداتا الخام اللي وصلت — باسم النسخة | المعمل |
machine_id النسخة → بتظهر «باسم الجهاز» الصح.lab_device_models + lab_device_model_tests + device_model_id على lab_machines + endpoint «إنشاء نسخة من نوع» (ينسخ التحاليل/الرنجات).