O3: The New OpenMRS Explained and the Investments that made it possible

By David Asaolu, June 30, 2024

OpenMRS is a world-leading open-source electronic medical record system used in over 80 countries for millions of patients, supporting quality healthcare delivery and research worldwide. Over the past two decades, OpenMRS has continued to improve and evolve the product to ensure that it aligns closely with the community of real-world implementers’ needs, seamlessly integrating into their healthcare settings so that healthcare professionals can deliver high-quality care effectively.

Continual improvement and evolution are essential to successful software development. Each version of OpenMRS is a step toward creating higher quality and more effective software. As the saying goes, many hands make light work, with individual people, organizations, and governments contributing each of their particular expertise necessary to fully realize our shared vision as a community of the best EMR.  This resilient and collective effort has led to the creation of the most recent product, OpenMRS 3 (O3).

O3 Home Page
O3 Patient Chart

The Journey to O3

Just like any healthcare software, OpenMRS is built upon many years of prior code, knowledge, and experience with earlier versions.  The first version of OpenMRS was launched in 2004. It introduced a modular backend with extension points for modules to add their frontend pages.  Some of the lessons from this early version were about performance needs, customization capabilities that were needed by countries, developers’ capacity to support those needs, and how users ultimately needed more than just a platform. 

These lessons in the community led to the release of the 2nd major version of OpenMRS that introduced new features and a limited front-end user interface (UI) that improved development time needed in implementation, while still maintaining the modularity and platform approach that allowed maximum flexibility for customization to be built by the implementing team. Because it moved OpenMRS closer to an off-the-shelf product, it was considered to be a reference model for implementers to utilize for their own implementations, even though it still needed additional development by their teams to be fully functional.  It was aptly called “the RefApp” for Reference Application. 

However, more lessons were learned in this version as implementers had challenges in scaling, developer capacity in countries grew in different ways than expected, there were limited abilities to support point of care workflows, and more demand emerged for diversity of technology stacks and devices that implementers were utilizing.  This led to a fragmentation in the implementations of OpenMRS, where many custom front-ends and workflows were developed by implementers that were not able to be leveraged by others in the community – called “distributions” of OpenMRS.

The Key Features and Purpose of O3

Building upon the important lessons learned in earlier versions, the OpenMRS community came back together to re-design the approach to an EMR with the aims to fully address the known challenges and anticipate the needs for national health systems of the future.  Not only did the community need an EMR that was off-the-shelf and fully featured for clinical care workflows, but also (1) Stable, (2) Secure, and (3) Scalable, along with (4) Sustainable for the long term – what we call the 4S. 

We believe these 4 criteria are critical to the successful use of an EMR in national and organizational healthcare systems of the future. OpenMRS 3 is the most advanced version of the OpenMRS framework to date. It is designed to aptly address the prior challenges by providing a modern and improved development, implementer, and user experience. It offers a comprehensive suite of tools, components, APIs, and templates that empower you to create frontend applications for OpenMRS. Unlike previous versions, O3 is optimized for small screen sizes, ensuring a smooth user experience across all devices.

O3 leverages the Carbon Design System and the ECMAScript Modules (ESM) specification to create consistent, modular, and shareable UI components. By incorporating modern technologies such as TypeScript and React, O3 ensures the development of type-safe and visually appealing user interfaces. This approach fosters a collaborative environment where implementations can converge on shared, cross-compatible solutions. 

O3’s guiding principle of reducing duplication is already evident as implementing partners like Palladium, METS and PIH iterate faster with reusable, configurable frontend modules, adapting rapidly to changing Ministry and stakeholder requirements.

This photo shows how the Ozone distribution leverages the OpenMRS 3 reference application out of the box.
This photo shows how the Ozone distribution leverages the OpenMRS 3 reference application out of the box.

Consistent Design System

OpenMRS 3 leverages the Carbon Design System to create consistent UI components, patterns, and guidelines across OpenMRS distributions. Developed and funded by IBM, the Carbon Design System efficiently displays data in various charts and UI components. It is also open-source and has a community of contributors continuously working to improve the system. This approach reduces the development time and management costs associated with creating a custom design system. Additionally, tools like the O3 design docs and the O3 zeplin workspace facilitate design collaboration and developer handoff.

User-centered and Responsive Design

OpenMRS 3 incorporates community feedback to deliver a responsive design that works seamlessly across multiple devices. O3 is tailored for small screens, ensuring the user interface remains functional and visually appealing on any device. By embracing modern design principles, O3 provides a smooth and engaging user experience, enhancing overall user-friendliness.

Plug-and-Play Modern Frontend Architecture

OpenMRS 3 provides a highly flexible frontend architecture, enabling implementers to create reusable and shareable modular widgets for use across multiple applications. Built with React, these widgets enable the creation of stunning, modern user interfaces. This approach aligns with our vision of creating a marketplace where implementers can share valuable application widgets, fostering greater collaboration within the community.

FHIR and REST APIs for Client-Server Communication

O3 uses the FHIR standard and REST APIs for client-server communication, facilitating seamless data exchange between OpenMRS backend resources and frontend widgets. These modern practices ensure secure data transfer between client and server components. The community-created and maintained OpenMRS FHIR Module serves as a translation layer between the FHIR standard and OpenMRS’ custom data model.

Forms Made Easy

Before OpenMRS 3, creating clinical forms required at least basic HTML programming skills, often necessitating the involvement of developers. This added burden on developers, led to misunderstandings, and extended timelines for form creation or updates. OpenMRS 3 addresses this challenge with its Form Builder, allowing anyone to create clinical forms with just a button click. The O3 Form Builder makes it easy to create complex forms including multiple sections, questions, descriptions, and input validation. Its interactive editor makes managing clinical forms straightforward and efficient.

The Community Behind O3

The success of OpenMRS 3 can be attributed to the amazing community of implementers and volunteers committed to ensuring that OpenMRS meets the evolving requirements of medical records systems. 

Special thanks to AMPATH and Mekom, who recognized the need for an improved version of OpenMRS and proactively worked together to ensure that O3 eliminated the limitations of previous versions. Then, CDC Kenya and Palladium-Kenya for sponsored the very first meeting in Eldoret to work together with community members on what would become O3. We are also immensely grateful to the CDC TAP (Centers for Disease Control and Prevention Technical Assistance Platform mechanism) for playing a key role in supporting the project and making O3 a reality. Also, thanks to the team at Sonder Design Collaborative for carrying out professional user experience research and design to ensure that O3 has the best user experience.

We acknowledge the contributions of Palladium-Kenya, METS Uganda of Makerere University, UCSF Global Programs, ICRC, the University of Washington Digital Initiatives Group at I-TECH (UW DIGI), International Committee of the Red Cross (ICRC), Partners in Health, and Brown University. Your in-kind investments, contributions, and innovations have significantly advanced the development of OpenMRS 3. We are confident that the OpenMRS community will maintain high software quality through these combined investments and contributions.

Currently, O3 is used in numerous health facilities, with expectations for widespread global adoption:

  • Kenya: Used by Palladium-Kenya for HIV care (33 sites) and OPD (10 sites), as well as by Intellisoft (1 site) and AMPATH.
  • Uganda: Deployed by METS/UgandaEMR for MCH care (ANC, HEI, MCH, PMTCT, Cervical CA) and OPD (6 sites and rapidly growing).
  • ICRC: Utilized for physical rehab and mental health in 27 countries, with complete translations in French and Spanish.
  • Cambodia: Implemented in over 100 Ministry facilities for NCD care (Diabetes, HTN, Cervical CA), fully translated into Khmer.
  • Ethiopia: Used by ICAP-Ethiopia for HIV care, with partial translation into Amharic.
  • Namibia: Adopted by UCSF for MCH & PMTCT.

How to Join the O3 Network

We welcome newcomers to the O3 community! Here are some helpful starting resources:

  • Online Course: Intro to O3 for Developers
  • Forum Discussions: Join the discussions on the #o3 channel on the OpenMRS forum, Talk.
  • Weekly O3 Community Calls: Join our weekly virtual meetings to see the latest demos and learn about ongoing work by the O3 Squads. Call information is available on the OpenMRS community calendar.

About the Author

David Asaolu is a Technical Writer, Developer Advocate, and Frontend Software Engineer based in Lagos Nigeria. As part of his Technical Writing Fellowship with the OpenMRS community in 2024, David contributes numerous articles about OpenMRS.

O3: The New OpenMRS Explained and the Investments that made it possible
Scroll to top