Fetching the latest programs, projects, and workspace data.

Write Code, Save Lives.
Showing 5 of 102 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Raj Prakash
OpenMRS captures every clinical data change via Hibernate Envers, but O3 users must switch to the Legacy UI to view audit logs, creating unnecessary friction. This project builds two native O3 microfrontend packages that surface this data directly in the modern interface. Deliverables include an Audit Log Dashboard on the System Administration page with filterable, paginated audit events and field-level diffs, a Change History tab inside the Patient Chart scoped to the current patient, and a small backend enhancement to openmrs-module-auditlogweb adding entityUuid filtering for efficient patient-specific queries.
Mentors: Student: Amrita P.
OpenMRS lacks a printable visit summary, forcing patients to verbally relay medical history during referrals and care transitions. This project adds a Visit Summary PDF generator to the existing openmrs-module-patientdocuments module, reusing the proven Patient ID Sticker pipeline (DataSetEvaluator, XML Renderer, Apache FOP). The backend gathers visit-scoped clinical data (vitals, diagnoses, lab results with reference ranges, allergies, medications, visit notes) via batch queries, renders it as XML, and transforms it to PDF through XSLT. An extensible VisitSummarySectionProvider SPI allows any module (billing, appointments, pharmacy) to contribute sections without modifying the core module. Configuration uses deploy-time Initializer keys for section toggles, concept UUIDs, and page sizes (A4/A5/A6). The frontend adds a print button in the O3 visit-detail-overview-actions slot with iframe-based PDF preview and download fallback. Deliverables include the complete backend pipeline with all clinical sections, extensible SPI architecture, configurable XSLT stylesheet, REST endpoint with privilege enforcement, frontend print extension, comprehensive tests, and documentation.
Mentors: Student: Shivvani Ramadugu
In OpenMRS, "voiding" soft-deletes records, causing tables especially immutable ones like Observations (obs) to accumulate massive amounts of inactive data over time. This unbounded growth degrades system performance and complicates database maintenance. This project implements a "Real-Time Archival Trigger" to maintain lean primary tables. When a record is voided, a Hibernate interceptor will execute an atomic transaction to immediately copy the data to a dedicated obs_archive table and hard-delete it from the active table. To manage the infinite growth of the archive, a scheduled background JobRunr task will permanently purge expired records by dropping old partitions from the archive table based on configurable retention policies (e.g., after 7 years).
Mentors: Student: Pratik Debnath
This project aims to enhance the existing appointments calendar in OpenMRS by transforming it into a more interactive, flexible, and user-friendly scheduling system. The current implementation provides only a basic monthly view with limited details, which is insufficient for real-world clinical workflows. The proposed solution introduces multi-view support (monthly, weekly, daily), enabling users to visualize schedules at different levels of detail. It will display detailed appointment information such as patient names, time slots, and statuses directly within the calendar. Additionally, navigation-based interactions will be replaced with modal-based views to preserve user context and improve usability. The project also includes support for multiple calendar systems (Gregorian, Islamic, Ethiopic, Persian) to ensure global adaptability. The implementation will follow a modular architecture using React microfrontends, OpenMRS REST APIs, and optimized data-fetching strategies. Deliverables include: Multi-view calendar (monthly, weekly, daily) Detailed appointment rendering Modal-based interaction system Multi-calendar system support Performance optimizations and testing
Mentors: Student: Suubi Joshua
OpenMRS has historically operated as a single-instance application, creating a "hard ceiling" for scaling and a single point of failure. As global healthcare networks grow, there is an urgent need for High Availability (HA). While foundational work on distributed caching and storage was introduced in version 2.8.x, several critical gaps remain: lack of distributed session management, race conditions during cluster startup, duplicate execution of scheduled tasks, and inconsistent search indexes across nodes. This project aims to complete the "Cluster-Ready" roadmap for OpenMRS 3.x. Drawing inspiration from proven architectures like Confluence Data Center, I will implement a Zero-Footprint, Multi-Replica framework. I hope to do this by Implementing a formal "Local Home vs. Shared Home" split to manage node-specific vs. cluster-wide data. I want to make use of distributed State Introducing Redis and MySQL-backed session management so users remain logged in even if routed to different replicas. Leveraging Infinispan to implement distributed task locking (preventing duplicate background jobs) and a "Cluster Safety" mechanism to detect and mitigate split-brain scenarios. Transitioning Hibernate Search to a shared OpenSearch/Elasticsearch backend to ensure search consistency across the entire cluster. Project Deliverables: A safe startup sequence for containerized environments (Kubernetes/Helm). Configuration-driven support for Redis (Redisson) and JDBC session persistence. A wrapper for the OpenMRS SchedulerService to ensure tasks run on exactly one node. Audit and migration of O3 modules (FHIR2, Webservices.rest) to the distributed cache manager. Application-level wiring for shared full-text search indexes. A robust integration testing framework using Testcontainers to validate cluster behavior in CI/CD.