EHR Provider Dashboard
Relevant source files
The following files were used as context for generating this wiki page:
The EHR Provider Dashboard is a standalone, high-level clinical interface designed for doctors and nurses to gain a consolidated overview of patient data within the OpenMRS ecosystem. It functions as a specialized layer atop the core OpenMRS backend, providing a streamlined workspace for section editing and AI-powered insights.
The dashboard's primary purpose is to aggregate clinical information—such as vitals, demographics, and clinical notes—while integrating advanced AI capabilities for voice transcription, OCR, and automated summarization. It serves as a complementary tool to the standard OpenMRS Patient Chart, focusing on speed and usability in high-volume environments like OPD (Outpatient Department) intake.
Sources: README.md:12-19, deployment/HOSPITAL-DEPLOYMENT-GUIDE.md:21-31
System Architecture
The EHR Dashboard operates as part of a multi-service architecture. It communicates primarily with the AI Backend to fetch consolidated patient lists and AI-generated summaries, while the AI Backend itself proxies requests to the OpenMRS REST API and various cloud AI providers.
Core Service Components
| Service | Technology | Role | Port |
|---|---|---|---|
| EHR Dashboard | React, Vite, TS | Frontend UI for clinicians | 5175 |
| AI Backend | Python, FastAPI | Voice/OCR processing & OpenMRS proxy | 3001 |
| Gemini Proxy | Python, FastAPI | LLM-backed summarization | 8001 |
| OpenMRS Backend | Java, Spring | Core clinical data repository | 8080 |
Sources: deployment/HOSPITAL-DEPLOYMENT-GUIDE.md:21-31, README.md:12-19
Network and Data Flow
The dashboard interacts with the backend ecosystem to provide a unified view of patient status. The diagram below illustrates how a request from the dashboard is fulfilled by the AI services and the OpenMRS database.
AI-Powered Clinical Features
A defining aspect of the EHR Dashboard is its integration with AI services to reduce manual documentation effort. These features are exposed through the dashboard UI as specialized widgets and action buttons.
Voice Vitals and Clinical Summarization
The dashboard facilitates "Voice Vitals Recording," allowing nurses to speak vitals naturally. The system transcribes the audio, extracts structured data via the Gemini API, and populates the dashboard fields.
Sources: readmes/FINAL_SUMMARY.md:11-20, readmes/IMPLEMENTATION_SUMMARY.md:11-20
- Transcription Service: Routes audio blobs to Sarvam AI.
- Vitals Extraction: Uses Gemini models to parse 10 distinct vital fields, including automatic unit conversions (e.g., Fahrenheit to Celsius).
- Patient Summarization: Provides a "Summarize Patient" feature that uses FHIR and REST data to generate professional clinical assessments.
User Interface Design
The dashboard utilizes a modular, responsive design, often leveraging Carbon Design System components for consistency. High-fidelity prototypes within the repository emphasize readability and quick access to "Active Visit" status and critical vitals.
Dashboard Layout Modules
- Sidebar/Navigation: Provides links to Demographics, Chief Complaint, Past History, Examination, and Daily Notes.
- Patient Banner: Displays persistent patient metadata (Name, DOB, ID) and the "Active Visit" indicator.
- Vitals Ribbon: A dedicated horizontal strip showing real-time vitals like Heart Rate (bpm), Blood Pressure (mmHg), SpO2 (%), and Temperature (°C) with alert indicators for abnormal values.
- Workspace/Panel: The main area for viewing and editing clinical documentation (e.g., Provisional vs. Final Diagnosis).
- Right Rail / Voice FAB: Contains the microphone trigger for AI dictation and voice recording.
Sources: ehr-dashboard-app/design/1.html:45-95, ehr-dashboard-app/design/6.html:47-85
Data Mapping for UI
To bridge the gap between AI extraction and the UI, a vitals-data.mapper.ts utility is used to convert JSON responses into the dashboard's internal form schema, specifically handling complex fields like Blood Pressure by splitting systolic and diastolic values.
Sources: readmes/IMPLEMENTATION_SUMMARY.md:28-34
Deployment and Configuration
The dashboard is deployed as a Docker container, often served via an Nginx proxy.
Configuration Parameters
The dashboard requires several environment variables to function correctly in a production environment:
| Variable | Description |
|---|---|
OPENMRS_API_URL | Endpoint for the core OpenMRS REST service. |
SARVAM_API_KEY | Required for voice-to-text features. |
GEMINI_API_KEY | Required for extraction and summarization logic. |
OPENMRS_PORT | The port on which the dashboard is exposed (default 5175). |
Sources: README.md:65-79, deployment/HOSPITAL-DEPLOYMENT-GUIDE.md:85-95
Conclusion
The EHR Provider Dashboard represents a significant shift toward AI-assisted clinical workflows in OpenMRS. By aggregating core clinical data and automating the input of vitals and summaries, it reduces the administrative burden on providers while maintaining data integrity within the OpenMRS ecosystem. Its standalone nature allows for rapid iterations on UI and AI features without disrupting the core medical record system.