Emerging technologies have contributed greatly to improving existing software solutions. OpenMRS, a community-driven electronic medical record system, has embraced these advancements to provide excellent healthcare services to patients and a seamless experience for implementers and healthcare professionals.
In this article, we will be focusing on the technology behind the latest version of OpenMRS: OpenMRS version 3. OpenMRS 3 leverages modern technologies and tools to eliminate the drawbacks encountered in previous versions and deliver exceptional software that meets the needs of its users. This was made possible through the collective efforts and contributions of developers and members of the community.
The Technologies Behind O3
OpenMRS 3 (O3) is a frontend framework that runs on top of your existing database. It uses the OpenMRS Platform v2.6 and requires implementations to have at least v2.3 or higher. O3 provides a smooth user experience and promotes shared and efficient development practices.
A popular open-source UI library that uses a component-based approach for building dynamic and interactive user interfaces. OpenMRS leverages React to create modern, reusable, and user-friendly interfaces for its implementations.
A statically typed superset of JavaScript that enhances code quality and maintainability by allowing type-safe programming. TypeScript enables O3 developers to create a modern frontend framework that is reliable, scalable, and maintainable while creating a user-friendly interface for OpenMRS implementations. This results in a more efficient development process.
An open-source design system funded and developed by IBM. It provides a set of reusable UI components and design guidelines for creating a consistent user interface across OpenMRS implementations. O3 ensures a consistent and accessible user experience across various screen sizes and devices.
These APIs enable communication between the frontend application and the OpenMRS custom data model. 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 the client and server components. More information about the OpenMRS REST API can be found here.
OpenMRS 3 offers easier packaging and deployment using Docker. With Docker containers, implementers can ensure a fast and consistent environment across different machines and stages of development, testing, and production. This simplifies the deployment process, eliminates compatibility issues, and improves the scalability and maintainability of OpenMRS implementations. You can find OpenMRS Reference Application Docker Containers here.
OpenMRS 3 utilizes the ECMAScript Modules Specification, a JavaScript standard for defining modules that are executable in web browsers and combined to create modular web applications. This approach enables developers to effectively organize and modularize the codebase, facilitating proper management of application dependencies. Learn more about the OpenMRS EMS framework here.
Webpack
A module bundler for JavaScript applications that optimizes and bundles O3 modules, enhancing performance and load times. Webpack provides efficient module loading, dependencies management, minimal file sizes, and improved overall speed and responsiveness of OpenMRS 3. You can learn how we use Webpack here.
Single SPA
A framework for integrating multiple micro-frontends into a single-page application (SPA). It acts as a router, managing the loading and display of OpenMRS micro-frontends based on the application’s state and user interactions. A short video explaining how Single SPA enables plug-and-play apps:
How to Learn More about O3 Technology
We welcome newcomers to the O3 community! Here are some helpful starting resources:
O3 Developer Documentation: Find all the information you need to know about O3 as a developer.
How to Join the O3 Network
Once you have used the course and documentation to onboard yourself to O3’s technology, we welcome developer newcomers to the O3 community! Here are some helpful community touchpoints you may wish to explore:
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 theOpenMRS 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.