Home Page v2: OPD Dashboard

Home Page v2: OPD Dashboard

4 Must-Do’s

1. Problem Description: Have you clearly defined the user problem(s) you intend to solve, and what value this creates? Write down a story, user insight, or quote about this problem (this is important because (1) this will motivate your team, and (2) without this your problem might not actually be a big problem for the users themselves).
2. User Stories: Have you clearly written at least 3 user stories and use cases
3. Market Analysis: Have you surveyed what the market is doing here (e.g. comparison to other EMRs, or paper approaches; and don’t forget about learning from historic/existing OMRS instances)? Have you written down any possible gaps in your understanding of your users or their workflows? Have you reviewed the topic in FHIR to see what requirements or fields the global community references? (Eg if working on insurance, should look here)
4. Technical Considerations & Dependencies: Have you outlined what you need from cross-functional areas for success of the feature? E.g. do you need the platform to support a new API call? Have you explained how you’ve addressed dev concerns, such as designs that may not be feasible, or will be extra time-intensive to implement? 

Optional/Encouraged

5. Sketches: Have you added a drawing or description of how the feature could work to solve the problem at hand? (Pictures of sketches are ok!) 
6. Project Management: Have you created the Epic and JIRA tasks so you can share work clearly? Roll-out plan: Do you have an idea whether this will be an experiment, gradual roll out, and when? Have you added this to the timeline view? Have you planned how you will promote and/or work with communications folks in order to help this feature reach the widest audience and have the biggest impact it can?

Later but should do

7. QA Plan: Have you mentioned the plan for QA, such as how you will discover and address edge cases? Does your team/squad have a plan for automated tests to be added to new components (unit tests) or workflows (e2e tests)?
8. Safety & Tech Risks: Is there any reason you could regret rolling out this feature? (e.g. possible patient harm, heavy tech debt like introducing an unsupported library) Have you thought through the risks for this particular solution? And, how to reduce/address those? 

This checklist was inspired by this article. Additional Business Analyst Resources here.

Status: In Progress

Technical Complexity: Hard / Complex

Summary:

  • The original O3 Home Page (OPD Landing Page / Dashboard) was always meant to combine Appointments and Queues, but over time these got separated due to different work streams.

  • The Active Visits app was always meant to be a temporary placeholder for demo purposes, and now seems to be a lead culprit in performance problems.

  • This is a great opportunity for us to (1) Remove/Deprecate the Active Visits app entirely; and (2) Harmonize Appointments + Queues and (3) improve the OPD Home Dashboard!

We want to improve the Homepage experience!

1. Problem

  • Goal: The main goal of the EMR homepage is: to provide quick access to most immediate and relevant data and actions, without overwhelming the user. 

  • Users: The users we expect to use this homepage: All EMR users first opening the O3 application, such as providers (doctors, clinicians, nurses), facility administrators & receptionists, and other care team members (lab technicians, pharmacists etc). 

    • Note: This can depend on the context. In some cases, organizations do not want, say, a clerk, to see all the same details as a Physician. For now, Role-based-Dashboard config is out of scope of this project.

Problems with the current homepage include:

  • Performance: Loading both lists, especially in high-workload facilities may consume excessive system resources; the Active Visits app is especially troublesome. (Even when not included in the frontend json config, it still seems to be trying to execute tasks in the backend!!) The Active Visits List on the home page has been reported (Palladium) to be “very aggressive” and consuming excessive system resources, particularly in situations where visits aren’t checked out.

  • The absence of a quick-access feature for adding appointments or starting visits directly from the home dashboard increases navigation time.

  • Lack of provider workload visibility. This may hinder efficient schedule management and resource allocation making it difficult to balance patient distribution.     

  • Specific appointment time is missing: having this information readily available is crucial for effective time management and coordination of patient care. 

  • Redundancy/overlaps between the 2 lists: Displaying both the active list and today’s appointment list on the homepage (i.e patients appearing in both lists). Also, unifying Appointment & Service Queue might help minimize overlap and redundancy.

OpenMRS Service Queues
OpenMRS Appointment
  • Lack of clear task segmentation on the homepage as it combines multiple task types ~ preparing for the day (appointment) and managing ongoing care (active visit list) - in a single view. 

    • Appointment lists (what is planned) are more relevant to the administrative staff while the clinical staff focus is on active visit lists (what is currently happening) ~ showing both lists on the homepage could blur these roles and make it harder for the users to identify what is relevant to them

  • Distinguishing Planned vs Unplanned Visits: There is currently no way to quickly distinguish scheduled appointments from non-scheduled appointments → the active visit list includes both (no specific tag/flag). Should these 2 lists be maintained? 

  • Appointment statuses are currently not visible on the homepage, yet, having this information readily available is crucial for daily workload management such as knowing which patients are scheduled, checked in or currently being attended to. (Get a sense of “Flow” through the clinic.)

2. User Stories

Detailed user workflows are documented in the Google Doc “OpenMRS Home Page User Stories.”

  1. As a provider, I want to view my schedule for the day, so that I can efficiently manage my workflow.

    1. Calendar or timeline of scheduled appointments, provider schedules

  2. As a provider, I want to quickly access patients' charts from the appointment schedule so that I can review their information 

    1. → Clicking appointment opens the patient's chart

  3. As a provider, I want to search for a patient using their name, ID, and identifier so that I can access their information

  4. As a receptionist/provider, I want to quickly add a new appointment or start a visit from the dashboard.

  5. As a facility administrator/manager, I want a clear and concise overview of the day’s patient workload so that I can efficiently plan and manage daily operations. (Example quote we have heard: “Oh wow, we have 120 patients scheduled today?! I need to call in someone to cover lunch breaks!” vs “We only have 50 visits scheduled today, it will be a calm day.”)

  6. As a facility administrator, I want an overview of the day’s appointments for each provider so that I can monitor and manage provider schedules efficiently. 

  7. As a care team member, I want to receive notifications and messages about my scheduled patients so that I can stay updated on any changes or urgent issues.

3. Market Analysis

Key Points learned in Market Analysis: (Details here): https://docs.google.com/presentation/d/1ekXP8HdLlPB-ftkcA6MTXU9Dr8M9BKG7jbP3iI5YEOg/edit#slide=id.p

  1. Patient search functionality that allows users/providers to find patients by name, ID, identifiers, etc (5/7 market examples)

  2. Quick links to common actions: ~ add a new appointment, start a visit (3/7 market examples)

  3. All of the EMRs reviewed show the “Appointment list” on the homepage rather than displaying both the active visit list and appointment list (7/7 market examples)

  4. Schedule view (dashboard) displaying the upcoming appointment, provider schedules  ~ what is in store for the day ) (6/7 market examples)

    1. Calendar or timeline for scheduled/upcoming appointments

    2. Quick access to patient chart

  5. Filter options (5/7 market examples): Date range filters where users can select start and end dates; Filter by provider; Filter by appointment type; Filter by appointment status

  6. Messaging/notifications for the care teams (5/7 market examples) (reason for this being on the bottom: Messaging is a big scope / feature to work out, so lower priority)

4. Technical Considerations & Dependencies

  • Extensibility: We want to avoid naming this “Home Page”. We want the Home Page to be configurable in a similar way as the Patient Summary and Clinical Views are → Would prefer name like “Outpatient Clinic Dashboard”, since an IPD Ward dashboard will have different needs than an OPD clinic.

  • Complexity: Question for Engineering: We’re not sure about the technical complexity of unifying appointments and service queues.

  • Performance: Question for Engineering: Can the system support rendering detailed dashboard visuals without compromising performance? 

5. Sketches / Design Ideas

Proposed Home Page Changes

Version 1: https://docs.google.com/presentation/d/10RY_Nw2dmiyEdJUkmNw3FuX45VvjcRehBb1VyIA3LwA/edit#slide=id.g32486c31279_0_47

Version 2:

Common Role-Based Homepage in a Typical Healthcare Facility:

  1. Reception / Front Desk Home Page

  2. Provider Homepage (Doctors, Nurses, Clinicians

  3. Pharmacy Home Page

  4. Laboratory Home Page 

  5. Radiology & Imaging Home Page

  6. Stock Inventory Homepage

  7. Facility Manager / Administrator Dashboard

  8. Inpatient Department (IPD) Home Page

  9. Morgue Home Page

1️⃣ Reception / Front Desk Homepage

main focus: Patient registration and appointments management

  • Handles patient check-in and registration

  • Manages visit scheduling and patient flow

Key Features for the Receptionist Homepage

🎯 All locations filter to allow receptionists and front desk staff to view and manage patient visits across multiple locations (e.g., Outpatient Department, General Medicine etc).

🎯 Appointment Metrics relevant to receptionist work with hyperlinks for detailed view.

Metrics View:

  • Dynamic View Update: Clicking "View" should refresh the content below in real time, eliminating the need to navigate between pages.

  • Dynamic Content Rendering: A placeholder component that appears when "View" is clicked and dynamically loads the relevant list.

  • Today’s schedule: Total count of patients who have an appointment at the facility on a given day, i.e., type = scheduled.

    • Not arrived: Patients who have an appointment today but have not yet checked in, i.e., Status = blank

    • Rescheduled: Appointments that were originally scheduled for today but have been moved to another date or time, i.e., status = rescheduled .

  • Patients waiting: Patients who have checked in but are still waiting to be seen by a provider, i.e., Status = checked-in.

    • Urgent cases

  • Patients seen: Patients who have already completed their consultation, i.e., Status = checked-out.

    • In consultation: Patients who are currently with a healthcare provider.

  • Unscheduled patients: Walk-in patients or those who arrived without a prior appointment, patients seen today but not among the list of today’s schedule.

  • Average wait time: The average duration patients spend waiting before being attended to by a provider, i.e., time between check-in & check-out.

🎯 Quick actions and shortcuts to allow the receptionists to perform frequent tasks with fewer clicks.

  • Example → ADD + to allow receptionists to quickly schedule/add appointments without going through multiple screens.

🎯 Totay’s Appointment Table on the receptionist’s homepage is essential for managing patient flow.

  • The table provides an at-a-glance view of all patients who have appointments for the day.

  • It helps receptionists to efficiently handle check-ins, track appointment statuses, and manage rescheduling when needed.

Patient Name    

Identifier 

Location

Service            

Type          

  Status      

Notes             

Actions

Patient Name    

Identifier 

Location

Service            

Type          

  Status      

Notes             

Actions

John Doe

100008E

OPD

Diabetes F/U 

Scheduled

Checked-in

 

Check-In/Check-Out/Cancel/Edit

Jane Doe

10001RC

MCH

Lab Test

Scheduled

Completed

 

Check-In/Check-Out/Cancel/Edit

  • Today’s Appointment table Actions:

✅ Check in action checks that the patient has arrived at the facility → and this adds the patient in the Patient queue.

❎ Check out action checks that the patient has completed the facility visit → and removes the patient from the Patient queue.

⨠ Reschedule action allows the provider or front desk staff to move a patient’s appointment to a later date or time.

Cancel action cancels the patient appointment, i.e., an appointment is proactively canceled by the patient or the facility.

Note: Patients who do not cancel their appointment and fail to show up as scheduled are marked as Missed.

  • Appointment status (following actions):

    • Check in → Checked-In

    • Check-Out → Completed

    • Blank → Not arrived/Missed. 

    • Cancel → Cancelled

    • Edit date → Rescheduled (p/p request)

  • Appointment type:

    • Default → Scheduled

Left Panel Menu Items:

The Default page for the receptionists is the Reception / Front Desk Homepage.

Patient Queue Page is also available as a menu item on the left panel. This is crucial to allow the receptionists to track the patient’s current location in the queue and their statuses.

2️⃣ Provider Homepage

Main fOCUS: Patient Queues, Appointments, Clinical Tasks

  • Displays patient queues and waiting lists

  • Manages appointments and follow-ups

  • Provides access to clinical tasks, e.g., serving of patients and transitioning to other service areas.

🎯 All locations filter to allow the providers to view and manage patient information across different locations.

Metrics on the Clinician Homepage are similar to those on the Receptionist Homepage.

🎯 Patient Queue Table (dynamic) displaying a list of patients currently in the queue, sorted by arrival time and priority. This list shows patients waiting for consultation or services.

  • The queue table provides a view of all patients currently waiting for the provider’s attention.

  • The queue table integrates with other service areas like triage, lab, pharmacy, etc.

Patient Name    

Coming From     

Priority                           

Status          

Queue                  

 Queue No.   

Wait Time                

Serve Patient 

Actions

Patient Name    

Coming From     

Priority                           

Status          

Queue                  

 Queue No.   

Wait Time                

Serve Patient 

Actions

John Doe

Reception 

Not Urgent  

Waiting

Triage

TRI-001 

7 Minutes     

 

 

Jane Doe

Triage

Emergency  

Waiting

Clinician

CLI-003  

3 Minutes   

 

 

  • Patient Queue Table Actions:

Serve Patient is a quick action to allow the provider to start attending to the patient → it moves the patient from the “waiting status” to the “in service” status.

Transition to another department, clinician or service (Lab, Pharmacy) allows the provider to send the patient to another service area. During transition, the provider selects the new status or queue for the patient to transition to.

Service Queue Examples:

  • Laboratory (Lab) → For tests like blood work, imaging, etc.

  • Pharmacy → For medication dispensing.

  • Specialist or Another Clinician → If further expertise is required.

  • Triage or Nursing → If additional vitals or preparation is needed.

Queue Statuses:

  • In Service → The patient is currently receiving care from a provider.

  • Finished Service → The patient has completed their visit at the specific service point.

  • Waiting (Current) → The patient has checked in but is waiting to be seen by a provider or to receive a service

Queue Priorities:

  • Emergency → The highest priority, requiring immediate attention.

  • Urgent → Requires prompt medical attention but is not immediately life-threatening.

  • Not Urgent → The lowest priority, not requiring immediate attention.

Additional Actions

  • Edit queue entry → To modify details of a patient's queue entry without removing them from the queue.

    • Use case: Updating the assigned provider, room, priority level, or reason for visit.

  • Remove patient from queue → To remove a patient from the queue.

    • Use case: A patient decides to leave or reschedules their appointment.

  • Delete queue entry → To delete a queue record from the system.

    • Use case: A queue entry was added by mistake or is no longer valid.

🎯 Quick actions and shortcuts to allow the providers to perform frequent tasks with fewer clicks, hence enhancing workflow efficiency, and reducing navigation time in a busy clinical setting.

  • Example: "Add Patients to Queue" to efficiently assign patients to their next step in care, such as Lab, Pharmacy, Radiology, Triage, Consultation, or other service areas.

Left Panel Menu Items:

The Default page for the clinicians is the Patient Queue Page.

❷ Reception / Front Desk Homepage is also available as a menu item on the left panel. This is crucial to allow the providers to view Today's Appointment, which is essential for helping them to efficiently manage their daily schedules.

3️⃣ Laboratory Homepage

Main focus: Managing lab orders and test results:

  • Displays lab test requests from providers.

  • Displays the statuses of lab tests requested.

  • Displays lab test results.

🎯 Quick actions and shortcuts to allow lab technicians to

  • Add+ New Lab order → Opens lab order basket to allow lab technicians to add a new lab order test. This is, however, on limited occasions e.g.,

    • A repeat test is ordered due to a contaminated sample.

    • A reflex test (e.g., a confirmatory test for a positive syphilis result) is automatically triggered by lab protocols.

In most healthcare settings, clinicians, doctors, and other authorized providers are responsible for ordering new lab tests as part of patient diagnosis and treatment. However, in some cases, lab technicians may also initiate lab orders under specific conditions such as the ones listed above.

🎯 Laboratory metrics relevant to Lab technicians

  • Tests ordered: All tests that have been ordered irrespective of status (Pending, In Progress, Completed)

    • Stat: A high-priority test that requires immediate processing due to urgent medical need.

  • Worklist (In Progress): A list of ongoing lab tests that lab technicians are currently working on.

  • Results (Completed/Approved): A list of tests that have been processed, and results are now available for review.

  • Incomplete: A test that was started but could not be completed due to missing information, equipment failure, or sample issues.

    • Declined/Rejected: A test that was ordered but not performed.

    • Referred: A test that needs to be processed at an external laboratory because it cannot be performed in-house.

🎯 Sample Queue Table

  • The sample queue table provides a view of the current status of laboratory samples, their processing status and priority level. It helps streamline lab workflow

    • Sample ID/Patient ID identifies the sample and links it to the patient.

    • Test Ordered specifies the type of test requested.

    • Priority Level categorizes tests as Stat (urgent) or Routine.

    • Queue Status indicates whether the sample is Pending, In Progress, Completed, Incomplete, Declined, or Referred.

    • TAT total time taken from the moment a lab test is ordered to when the final results are available.

Patient Name    

Age     

Sex                        

Sample ID        

Ordered By

Type                  

 Priority   

Status                

TAT 

Actions

Patient Name    

Age     

Sex                        

Sample ID        

Ordered By

Type                  

 Priority   

Status                

TAT 

Actions

John Doe

33