Queues & Active Visits Dashboard

(aka Service Delivery Queues & Clinic Workflow Queue & Clinic Dashboard improvements)


Goal: A 'snapshot' of active visits and patient priority levels. Goal is to improve clinic workflows / service delivery queues, and team communication, starting with Outpatient clinic workflows. 

Meeting Minutes


  • We will continue to have regular appointments + queues squad meetings on Wednesdays at 4pm EAT / 8am US Eastern Time.
  • PIH will work off of existing queues and appointments implementations. Things will likely change in backwards incompatible ways. PIH will try to make a v2 version while continuing to loop in Palladium about new design / implementation changes.
  • We will have asynchronous design discussions for queues and appointments on slack.

Discussion Items: 

SummaryAppCategoryDescriptionActionables / Follow up
Add Config to remove "Add New Service" "Add New Service Room" and "Queue Screen" buttons at top rightQueueFunctional ChangePIH has no use case for those buttons for nowFurther discussion to spec out Queue Screen between Palladium and PIH
Add ability to add patient to queues without starting a visitQueueFunctional ChangePIH will use O2 patient chart to start visits and needs ability to add patient with active visits to queues. "Add patient with appointment to queue" form asks for Date and Time of Visit. Change it to queue time?
  • Fix needed: Adding a patient to two different queues shouldn't result in starting two visits
  • Need a way to remove patient from queue
  • Open question: how to add a queue entry without starting a visit?

Do we need Location AND Service for queues?QueueOpen Question

Remove hard-coded English labels, Priorities and Status for queuesQueue+AppointmentRefactoringHave available Priorities and Statuses queried from the backend
Add ability to customize columns in queues tableQueueFunctional ChangePIH needs custom table columns for specific projects (like MCoE). Possible solution: Componentize each cell and add configuration to add them into the table

Add <PatientBanner> to "Add patient to queue" formQueueFunctional ChangeNot in UX Mockups, but useful to see who we are adding to queue
Add Config to have different status tabs for the queues table (Waiting for Admission/ Admitted / Waiting for Transfer)QueueFunctional Change
Might need further design discussion
Remove Action button in <PatientBanner>AppointmentFunctional ChangeSee https://openmrs.atlassian.net/browse/O3-2686. This complicates our ability to keep using O2 patient chart. The actions also don't work correctly for now. 
Consolidate <Overlay> componentQueue+AppointmentRefactoringPut <Overlay> into its own component in esm-framework for re-usability 
Consolidate <PatientSearch> componentQueue+AppointmentRefactoring

Consolidate Appointments Table implementation in Appointments App + Home AppAppointmentRefactoringWe have 2 different implementations of those 2 tables. While there are some differences, we can probably combine them
Consolidate Appointment Creation Forms in Appointment App and Patient Chart AppAppointmentRefactoringWe have 2 different implementations of those 2 forms. Some consideration: Do we need the Recurring Appointments feature?
  • Config to disable recurring appointments
  • Further Discussion for the mini calendar showing appointment counts.

State of this Project as of 2021-12-17

  • Extensive User Testing with multiple personas completed, with users and input from Ampath, PIH, Mekom
  • Design Handover completed
  • Palladium leading frontend app development; Ampath/Brown providing backend development
    • UX Lead & Point of Contact for design questions: 
    • PM/BA Lead: 
      • BA/requirements and acceptance input from: 
    • Dev Lead:
      • Devs:
      1. Administrative
        1. Agree on/identify where to put code
          1. Likely use https://github.com/openmrs/openmrs-esm-patient-management
        2. Does everyone have Zeplin accounts and knows how to use Zeplin?
        3. Jira Ticket Creation
        4. Timelines
        5. How will we do Sprint Cycles/Planning
        6. Meeting Times: Standups/demos
    • Set technical scoping session date: _____



      1. Dev Workplan: Scope into parts/epics
        1. Who will lead each epic? How many team members per epic? 
        2. Suggested Epics
          1. Frontend 
    • Architecture and planning - “where things go”
    • Route
    • Pages
    • Slots - UI components
          1. Queues
          2. Patient Chart Status Changer
          3. Enhanced Patient Search

    1. Backend
      1. Patient Queue Queue API
      2. Metadata and concepts

Other Resources

Historical Community Documentation on Queues: