/
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.

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

  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 patient’s 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, so that I have less clicks.

  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 https://docs.google.com/presentation/d/10RY_Nw2dmiyEdJUkmNw3FuX45VvjcRehBb1VyIA3LwA/edit#slide=id.g32486c31279_0_47

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.

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

Male

ORD-001 

Dr. Smith

Blood Count

Stat

Ready     

7 Minutes

Pick Lab Request / Reject Lab Request / Add lab results

Jane Doe

27

Female  

ORD-002 

Dr. Mill

Serum Glucose

Routine  

Waiting   

8 Minutes

Pick Lab Request / Reject Lab Request / Add lab results

  • Sample Queue Table Actions

Pick Lab Request: When a new test request appears in the queue, a lab technician selects "Pick Lab Request" to start processing.

status = in progress

Reject Lab Request: A lab technician rejects a request due to various issues such as sample issue.

status = order not picked orstatus = declined

Add lab results: Allows lab technicians to enter and submit test results after completing the analysis.

status = completed

🎯 Completed Tests Table

Patient Name    

Age     

Sex

Sample ID

Test Name

Results

Actions

Patient Name    

Age     

Sex

Sample ID

Test Name

Results

Actions

Brian Lee

21

Male

ORD-003

Stool Exam

 

View//Edit

Alice Bill

16

Female

ORD-007

CBC

 

View//Edit

  • Completed Test Table Actions

    • View test results: For viewing test results.

    • Edit results: For amending test results.

4️⃣ Pharmacy Homepage

MAIN FOCUS: Medication Dispensing & Stock Inventory

  • Displays prescriptions and medication orders.

  • Manages dispensing and refill requests.

🎯 Quick actions and shortcuts to allow the pharmacist to

  • Add+ New Prescription ???

    • Only doctors can prescribe, and pharmacists only dispense.

    • Are pharmacists allowed to modify or add prescriptions in specific cases, such as stock unavailability requiring substitution?

🎯 Pharmacy Metrics relevant to Pharmacists

  • Total Prescriptions: Total number of prescriptions processed within a specific period (within the day for example).

    • Completed: Prescriptions that have been verified and dispensed.

    • Incomplete: Prescriptions that have not been fully processed.

  • Pending Orders: Prescriptions that have been placed but are not yet dispensed.

    • Urgent: High-priority prescriptions that need immediate attention, often for critical or emergency medications.

  • Ready for Pickup: Prescriptions that have been processed and are awaiting patient pickup.

🎯 Prescription Queue Table

  • A prescription queue manages and tracks prescriptions written by providers. The queue helps pharmacists to prioritize, track, and process prescriptions in an organized manner.

Patient Name

Identifier

Age

Prescription ID

Prescription

Prescribed by

Priority

Status

Time Added

Actions

Patient Name

Identifier

Age

Prescription ID

Prescription

Prescribed by

Priority

Status

Time Added

Actions

John Doe

100008E

14 Years

RX-001234

Amoxicillin 500mg

Dr. Smith

Stat

Pending Review

10:15 AM

Dispense, Pause, Close, Edit/Print

Jane Doe

10001RC

24 Years

RX-001235

Metformin 850mg

Dr. Mill

Routine

Ready for Pickup

10:30 AM

Dispense, Pause, Close, Edit/Print

  • Prescription Queue Table Actions

    • Dispense: After verifying the prescription, the pharmacist dispenses the drug/s to the patient.

    • Pause: A prescription may be paused because the medication is out of stock, and the pharmacist is waiting for a restock or doctor’s alternative suggestion.

      • Other reasons include:- incomplete data, patient currently unavailable, suspected intolerance to drug, allergy, drug interaction, etc

    • Close: Finalizes a prescription without dispensing it, often used for canceled or expired orders. This ensures that prescriptions that are no longer needed are properly recorded and removed from the active queue.

    • Edit: Allows modifications to the prescription details before dispensing. This enables the pharmacists to correct errors, adjust quantities, or update instructions based on provider recommendations.

    • Print: Generates a physical or digital copy of the prescription.

🎯 Dispense Queue Table????

  • A dispense queue manages and tracks medications being dispensed to patients from the pharmacy.

Patient Name

Identifier

Age

Prescription ID

Prescription

Status

Time Picked

Actions

Patient Name

Identifier

Age

Prescription ID

Prescription

Status

Time Picked

Actions

John Doe

100008E

14 Years

RX-001234

Amoxicillin 500mg

Picked

10:18 AM

View

Jane Doe

10001RC

24 Years

RX-001235

Metformin 850mg

Pending Pickup

10:33 AM

View

  • Dispense Queue Table Actions

    • View

5️⃣ Facility Landing Page / Homepage

MAIN FOCUS: Centralized dashboard for healthcare staff, providing a high-level overview of operations, patient flow, and key system actions.

  • Provides an overview of patient visits, resource utilization, and staff workload

  • Tracks key performance indicators (KPIs)

🎯 Quick Navigation / Shortcuts

  • Register a New Patient.

  • Search for an existing Patient.

  • Add a New Appointment.

🎯 Facility Metrics and Summaries

  • Total Patient Visits: (Patient workload)

    • Total Patients Seen: Number of patients attended today.

    • New Patients Registered: First-time visits.

  • Appointments Overview:

    • Scheduled Appointments: Total appointments booked for today

    • Completed Appointments: Patients who attended their appointments

  • Department-Specific Patient Volume:

    • Bar/Column Chart

  • Common Diagnosis (Top xxx):

    • Bar/Column Chart

  • Staffing by Cadre:

    • Bar/Column Chart

    • Workload for each provider → Provider schedules

  • Average Patient Wait Time:

    •  

  • Patient Referrals:

    •  

  • Service Utilization trends

    •  

  • Revenue and Expenses Summary

6. Safety & Tech Risks

  • TBC: If the removal of active visits will inconvenience some users, one of the mitigations could be to add a link for downloading/view the list (???)

Related content