ARRIVED is its own status
A real lifecycle step between Confirmed and In Chair. “Confirmed” no longer means “physically here” — reception marks arrival explicitly, and the row moves buckets.
Three distinct buckets — Arrived, Waiting, In Chair — each with its own count. Patients check in, reception taps “Mark Arrived”, and the doctor gets a push. A large-screen kiosk view shows the queue with position and ETA, in Arabic or English.
A real lifecycle step between Confirmed and In Chair. “Confirmed” no longer means “physically here” — reception marks arrival explicitly, and the row moves buckets.
Marking a patient Arrived fires an FCM push to the doctor’s phone; the tap opens the waiting room deep link. Works even while the dashboard session is locked.
Rows show how long each patient has waited, their queue position, and an estimated call time — so the team can triage and set expectations.
One tap sends the patient a “please come to room 3” message, useful when the waiting area overflows to the corridor or car park.
A dedicated large-screen view with patient avatars, room badges, and bilingual labels — mount a TV in the waiting area and it just works.
Switch from card grid to a dense table at ≥1280px, with an allergy strip on each row for clinical safety at a glance.