lab_panel_sections فيه: panel_id, name, name_ar, sort_orderlab_investigation_panel_members فيه: panel_id, member_id, section_id, sort_orderLabInvestigationResource يرجع panel_sections array مرتب + كل عضو معاه sort_order و section_idsort_order يتحسب من الفهرس)| الشاشة | هل تستخدم الترتيب؟ | هل تعرض الأقسام الفرعية؟ |
|---|---|---|
| الـ Panel Editor | نعم (drag&drop) | نعم |
| شاشة الـ Results | جزئياً | غير مؤكد |
| شاشة الـ Kanban | غير مؤكد | لا |
| تقرير الـ PDF | نعم (panelSectionOrder + panelMemberOrder) | نعم |
الوصف:
الشاشة تقرأ panel_members ثم تبنيها في array مسطّحة. الترتيب يعتمد على الـ ordering في الـ API response. لو لم تطبق sort صريح على sort_order، قد يظهر بترتيب مخالف للـ Panel Editor.
الإصلاح:
panelMembers داخل كل قسم حسب pivot.sort_ordersort_orderالوصف:
الـ Kanban يأخذ panel_members كـ array بسيطة عبر map(m => m.id). الأقسام الفرعية والترتيب يضيعا. عند إدخال النتائج، كل أعضاء البنل تظهر مع بعض بدون ترتيب.
الإصلاح:
panel_sections و sort_order في الـ Kanban stateالوصف:
الـ drag & drop شغّال، لكن المستخدم لا يشوف رقم الـ sort_order ولا يقدر يعدّله. لو عنده ١٥ عضو، التحريك بالماوس يبقى مرهق.
الإصلاح:
sort_order بشكل مسلسلالـ UX المقترح:
┌─ RBC Parameters ────────────────────────────────────────────┐ │ ┌──┬─────────────────────┬───────┐ │ │ │⠿ │ 1 │ Hemoglobin (HB) │ 🗑 │ │ │ │⠿ │ 2 │ Hematocrit │ 🗑 │ │ │ │⠿ │ 3 │ RBC Count │ 🗑 │ │ │ └──┴─────────────────────┴───────┘ │ │ │ │ [ + Add Member ] [ ↕ Sort by Number ] │ └─────────────────────────────────────────────────────────────┘
الوصف:
الـ PDF service يستخدم panelSectionOrder و panelMemberOrder للترتيب — جيد. لكن الـ subHeader يستخدم panelSectionName فقط، لا يفرّق بين عربي وإنجليزي. وأعضاء البنل قد تظهر بـ code بدل اسم العرض.
الإصلاح:
display_name لو موجود (تم في ticket #1628)┌─ Panel: CBC ────────────────────────────────────────────────┐ │ │ │ Section 1: RBC Parameters │ │ ┌──┬─────┬─────────────────────────┬──────────────────┐ │ │ │ ⠿│ 1 │ Hemoglobin (HB) │ edit │ remove │ │ │ │ ⠿│ 2 │ Hematocrit (HCT) │ edit │ remove │ │ │ │ ⠿│ 3 │ RBC Count │ edit │ remove │ │ │ └──┴─────┴─────────────────────────┴──────────────────┘ │ │ │ │ Section 2: WBC Parameters │ │ ┌──┬─────┬─────────────────────────┬──────────────────┐ │ │ │ ⠿│ 1 │ Total WBC │ edit │ remove │ │ │ │ ⠿│ 2 │ Neutrophils │ edit │ remove │ │ │ └──┴─────┴─────────────────────────┴──────────────────┘ │ │ │ │ Ungrouped │ │ ┌──┬─────┬─────────────────────────┬──────────────────┐ │ │ │ ⠿│ 1 │ Platelets │ edit │ remove │ │ │ └──┴─────┴─────────────────────────┴──────────────────┘ │ │ │ │ [ ↕ Sort by Number ] [ + Add Section ] │ └─────────────────────────────────────────────────────────────┘
sort_order بشكل مسلسل (١، ٢، ٣، ...)| الترتيب | التاسك | الجانب | الأولوية | التقدير |
|---|---|---|---|---|
| T-1 | إضافة input رقم في panel-editor بجوار كل عضو + زر "Sort by Number" | فرونت | متوسط | ٢٥ د |
| T-2 | شاشة الـ Results: التأكد من الفرز الصحيح + عرض headers الأقسام الفرعية | فرونت | عالٍ | ٣٠ د |
| T-3 | شاشة الـ Kanban: نفس الفرز + headers الأقسام في حوار إدخال نتائج البنل | فرونت | عالٍ | ٣٠ د |
| T-4 | الـ PDF: لو لم يستخدم الترتيب بشكل صحيح، التأكد من الفرز الكامل | فرونت | متوسط | ١٥ د |
| T-5 | الـ PDF: اسم القسم الفرعي يستخدم لغة المستخدم الحالية (ar/en) | فرونت | بسيط | ١٠ د |
| T-6 | اختبار يدوي شامل لكل الشاشات | — | — | ١٥ د |
الإجمالي: ~٢ ساعة.
Moon ERP — LIS Module | Panel Ordering Plan | جاهز للمراجعة