🔴 ** NOTE: THIS IS NO LONGER THE ACTIVELY MAINTAINED SOURCE OF TRUTH FOR O3 DEV DOCS. This effort has been moved to the OpenMRS Wiki at: (opens in a new tab) ** 🔴

O3 is a frontend framework that leverages modern frontend technologies to enable developers to collaboratively create better user experiences for OpenMRS implementations.

O3 provides a wide range of tools, components, APIs, and templates that can be leveraged to create frontend applications for OpenMRS. It is designed to be modular, allowing developers to choose the components they need to create their frontend applications. O3 is also designed to be extensible, allowing developers to extend the framework with their own components and APIs.

Guiding principles

O3 is guided by the following principles:

  • Code reuse and reduction of duplicated effort - reusable components, APIs, and templates.
  • Modular architecture - allows for easy addition, removal, or updating of modules to extend functionality or tailor the system to specific needs.
  • Configuration-first - each frontend module can specify its config properties.
  • Usability - optimized UI for point of care, responsiveness, and arbitrarily complex patient care records.
  • Enhanced UI - more intuitive, user-friendly, and visually appealing UI.
  • Modern technologies - greater appeal to a global talent pool of developers.
  • Improved interoperability - support for FHIR and other standards.

What O3 is not

O3 is not a new platform version of OpenMRS. O3 is a frontend framework that you can run on top of your existing database. It communicates with the same REST API and FHIR API that the O2 UI communicates with. Whilst O3 requires a minimum platform version and minimum versions of various backend modules to run, you don't need to overhaul your existing backend to run O3. If you're interested in running O3 on top of your existing installation, follow this recipe to set up an instance of O3.

Technology stack

O3 uses the following technologies:

Important resources