ده تصوّر مبدئي للشكل الجديد (بيانات وهمية للتوضيح) — الموافقة على الشكل ده قبل ما نكتب أي كود. لو حابب تعدّل ترتيب أو ألوان أو أعمدة، قول وهنعدّل قبل التنفيذ.
🔍 افتح المعاينة في صفحة كاملةأهم أفكار الشكل: عرض الحجوزات كـجدول (صف لكل مريض) بدل الكروت عشان الاستقبال يمسح بسرعة؛ الحالة بتتقري 3 طرق في نفس الوقت (لون الصف + شريط جانبي + شارة)؛ شرائح فوق الجدول لكل عيادة بعدّادها، و«الكل» بالإجمالي.
| الحاجة | الموجود فعلاً | المرجع |
|---|---|---|
| مكوّن الطابور | مشترك في 3 شاشات: لوحة العيادة، صفحة الطابور الكاملة /clinic/queue، ومحطات التمريض/الطبيب (بوضع «اختيار» بدون أزرار). أي تحويل لجدول بيأثّر على التلاتة. | shared/visit-queue/* clinic-dashboard…html:92 clinic-queue-page…ts:24 station-shell…html:6 |
| حالات الطابور | موجودة أصلاً: waiting · in_room · done · ordered + عدّادات جاهزة (waitingCount/inRoomCount/doneCount). يعني ألوان 0188 توصيل حالة موجودة مش موديل جديد. | clinic-dashboard.service.ts:37,119-121 |
| أزرار حضور/دخول/انتهاء | الـتحويلات موجودة كـ API بس الأزرار مش موجودة في الطابور: حضور=POST appointments/{id}/arrive، دخول=status{in_consultation}، انتهاء=status{done}. FE دلوقتي بينادي setStatus لـ cancel/no_show بس. | AppointmentController::arrive/status TransitionAppointmentStatus.php |
| «دخول التالي = انتهاء السابق» | مش موجود. كل تحويل بيشتغل على موعد واحد بس. | TransitionAppointmentStatus.php:22-29 |
| مصدر بيانات الطابور | GET clinic/queue بيرجّع arrived + in_consultation فقط — المواعيد المحجوزة (booked) مش بتظهر. فيه بديل GET clinic/appointments?date=today بيرجّع كل الحالات. | QueueController.php:54-57 |
| اسم العيادة/الغرفة | الرد فيه department{name} (التخصص) لكل صف، لكن مفيش اسم غرفة (room_id بس، وكتير null). | QueueEntryResource.php:35 |
| اسم الخدمة | مش متسلسل في أي رد — service_id بس. | QueueEntryResource / AppointmentResource |
| العيادات النشطة | مفيش حقل. فيه جدول clinic_rooms (بعمود is_active) وربط department على كل موعد. | ClinicRoom.php · ClinicDashboardService::headline |
| الرأس والتاريخ | العنوان PAGE_TITLE=«لوحة العيادة». فيه أصلاً todayLabel() بيحسب تاريخ اليوم بالكامل — جاهز يتنقل جنب العنوان. المستطيل الأخضر = dash-hero. | clinic-dashboard.component.html:5-10,21-40 |
| مفاتيح الترجمة | موجود أصلاً (وغير مستخدم): COL_PATIENT/DOCTOR/SERVICE/STATUS/ROOM… وSTATUS_WAITING/IN_ROOM/DONE. ناقص: حضور/دخول/انتهاء، فلتر العيادات، العيادات النشطة. | i18n/{ar,en}.json → CLINIC_DASHBOARD.* |
| البند | موجود | مطلوب | اللازم | |
|---|---|---|---|---|
| 187 تاريخ جنب العنوان | تاريخ محسوب في hero | جنب «لوحة العيادة» | FE | |
| 187 حذف المستطيل الأخضر | موجود | يتشال | FE | |
| 187 عدد العيادات النشطة | لا شيء | كارت إحصائية | BE | FE |
| 188 فلتر بالعيادات + عدّاد | department في كل صف | شرائح بعدّاد + «الكل» | FE | |
| 188 جدول بدل الكروت | كروت (مشترك) | جدول بصف/مريض | FE | |
| 188 عمود الخدمة | service_id بس | اسم الخدمة | BE | |
| 188 أزرار حضور/دخول/انتهاء | API موجود، أزرار لأ | 3 أزرار/صف | FE | |
| 188 إظهار المحجوزين (booked) | الطابور مابيرجّعهمش | يظهروا عشان «حضور» | BE | FE |
| 188 دخول التالي = انتهاء السابق | لا شيء | تلقائي | BE | |
| 188 ألوان + فلتر الحالات | حالات + عدّادات | تلوين الصف + فلتر | FE |
dash-hero، كارت العيادات النشطة، شريط فلتر العيادات.ClinicDashboardHeadline (+active_clinics).service{name} وroom/clinic name.active_clinics في headline.dash-hero. صغيرة ومستقلة.active_clinics (عدد الأقسام المميّزة اللي عليها زيارات النهاردة) + كارت KPI جديد.service{name} و مفتاح العيادة باسمه، وتضمين المحجوزين (قرار D1).TransitionAppointmentStatus: عند التحويل لـ in_consultation، إقفال أي موعد آخر «بالداخل» بنفس النطاق (قرار D3) داخل ترانزاكشن + اختبار انحدار.كل حزمة تتراجع بـ code-review، والبناء يفضل أخضر، والميجريشن (لو فيه) على قاعدة التطوير في نفس الخطوة.
عشان زر «حضور» يشتغل، الجدول لازم يعرض المواعيد المحجوزة (booked) — والطابور الحالي مابيعرضهاش. مقترحي: نوسّع مصدر الجدول يعرض كل مواعيد اليوم (محجوز/حاضر/بالداخل/منتهي) من غير الملغي.
التوصية: نعرض المحجوزين كمان — يبقى الجدول لوحة كاملة لليوم من الحجز للانتهاء.«العيادة» ممكن تكون القسم/التخصص (موجود ومضمون على كل موعد) أو الغرفة الفعلية (كتير فاضية بلا اسم). لازم الفلتر والعدّاد يستخدموا نفس المفتاح.
التوصية: القسم/التخصص — متاح دايمًا ومتسق. (لو تقصد الغرف الفعلية، محتاجين نظبّط أسماء الغرف الأول.)لما تدخل الحالة التالية، نقفل أنهي حالة سابقة؟ بتاعة نفس الطبيب (الطبيب بيشوف مريض واحد في المرة) ولا نفس الغرفة؟
التوصية: نفس الطبيب — هو الأقرب لمعنى «الحالة اللي جوه دلوقتي».المكوّن مشترك. نطبّق الجدول الجديد على لوحة العيادة + صفحة الطابور الكاملة (شكل موحّد)، ونحافظ على وضع «الاختيار» في محطات التمريض/الطبيب زي ما هو.
التوصية: جدول في اللوحة والطابور، والمحطات زي ما هي.الخلاصة: الشكل جاهز للمراجعة فوق، والحالات موجودة في النظام أصلاً فالتنفيذ مباشر نسبيًا. محتاج بس موافقتك على الشكل + قرارات D1–D4، وبعدها نبدأ التنفيذ بالترتيب.