Introduction to O3 for Developers
Top 3 Things to Know
eCourses Available!
Intro to OpenMRS 3: For Developers and Technical Teams
Form Builder Course: How to create, edit, and publish forms in O3
Need Help?
Anytime on OpenMRS Slack at #openmrs3-helpme
Daily “Coffee Break” Call to unblock any O3 devs; details at om.rs/cal
Weekly O3 Squad Calls every Thursday - demos and unblocking any O3 teams; details at om.rs/cal
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:
React - JavaScript library for building user interfaces
TypeScript - strongly typed superset of JavaScript that adds optional type annotations to JavaScript, which allows for static type checking and better tooling support.
Carbon design system - an open-source design system from IBM.
Single SPA - JavaScript router for frontend microservices.
Webpack - module bundler for JavaScript applications.
OpenMRS REST and FHIR - backend APIs.