Home Page v2: OPD Dashboard
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!
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.
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
As a provider, I want to view my schedule for the day, so that I can efficiently manage my workflow.
→ Calendar or timeline of scheduled appointments, provider schedules
As a provider, I want to quickly access patient’s charts from the appointment schedule so that i can review their information
→ Clicking appointment opens the patient's chart
As a provider, I want to search for a patient using their name, ID, and identifier so that i can access their information
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.
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.”)
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.
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
Patient search functionality that allows users/providers to find patients by name, ID, identifiers, etc (5/7 market examples)
Quick links to common actions: ~ add a new appointment, start a visit (3/7 market examples)
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)
Schedule view (dashboard) displaying the upcoming appointment, provider schedules ~ what is in store for the day ) (6/7 market examples)
Calendar or timeline for scheduled/upcoming appointments
Quick access to patient chart
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
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:
Reception / Front Desk Home Page
Provider Homepage (Doctors, Nurses, Clinicians
Pharmacy Home Page
Laboratory Home Page
Radiology & Imaging Home Page
Stock Inventory Homepage
Facility Manager / Administrator Dashboard
Inpatient Department (IPD) Home Page
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 |
---|---|---|---|---|---|---|---|
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 |
---|---|---|---|---|---|---|---|---|
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 |
---|---|---|---|---|---|---|---|---|---|
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 |
---|---|---|---|---|---|---|
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 |
---|---|---|---|---|---|---|---|---|---|
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 |
---|---|---|---|---|---|---|---|
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 (???)