Below you can find our article for the ICTworks about Open Web Applications. It’s the biggest professional blog site for the topic of ICT4Dev (software, that helps the developing countries). We are happy, that we can share our experiences in this field with on such a website. Soon we will post even more articles will show, how technology and code can in a real way, better the lives of others.
OpenMRS is one of the best examples of a successful digital health global good. Right now this electronic medical records software supports almost 9 million patients in more than 3,000 health sites, primarily in developing countries.
To achieve this kind of success, Global Goods initiatives have to constantly improve themselves, and OpenMRS is no exception. Just a couple of years ago, the OpenMRS community of users and developers identified three challenges in using the software.
Required Knowledge of Java Programming Language
Previously, software developers needed to have a strong command of the Java programming language and server-side technologies to contribute new features to OpenMRS. This limitation reduced the ability for local software developers to create new functionalities that their communities were looking for.
Missing UI Components Library
OpenMRS did not have a user interface components library, which means that software developers had to create basic components such as tables, search boxes, and other elements when they wanted to a new feature. Implementing custom components took more time, required extra effort, and resulted in a degraded user experience.
Old Concept Dictionary UI
Every OpenMRS implementation has a concept dictionary that defines the medical concepts (questions and answers) used as the building blocks for forms, orders, clinical summaries, reports and almost every aspect of the data. However, dictionary curators had to resort to using old and outdated user interfaces, which didn’t have a uniform look & feel with the latest OpenMRS Reference Application, and this also degraded the user experience.
Open Web Applications and OpenMRS
SolDevelo, a software development company based in Poland, worked on the lack of Open Web Apps, a UI Component Library, and Concept Dictionary as a part of SolDevelo’s Social Impact Program. They devoted 3 developers and +2,000 hours pro bono to develop three solutions to these long-awaited features.
Expanding Software Development Languages
Open Web Apps provide a convenient way to customize the user interface and lower the barrier for software programmers to work on OpenMRS by allowing them to use common web technologies. Open Web Apps lets many more software developers add new functionalities to OpenMRS and to modify this Global Good software to the needs of their ecosystem.
Adding UI Components Library
SolDevelo created a library of user interface components for OpenMRS so that all new modules can have a uniform feel. These speeds up software development cycles and improves the user experience. The UI Component Library can be used when creating new Open Web Apps for OpenMRS in AngularJS, which is one of the most modern and popular technologies.
Building a Concept Dictionary OWA
SolDevelo also created a Concept Dictionary Open Web App that stores medical terms describing diseases, drugs, diagnoses, tests, procedures, and measures defining the patient’s condition. Now developers can manage medical terms from the user interface and collect data in a simple and standardized way, also saving time for health care workers who use OpenMRS in the developing world.
Building Your OpenMRS Open Web App
If you’d like to build your own OpenMRS Open Web App, there are several resources to help guide your efforts.
- Open Web Apps Module: Start with the OpenMRS wiki’s overview of how to create an Open Web App.
- Open Web App Development Workflow: Once you’re familiar with Open Web Apps, then consult the workflow wiki page to develop your OWA for OpenMRS
- Release Open Web Application: Finally, follow the release plan to ensure that your OWA can be leveraged by the OpenMRS community and incorporated into new modules.
Oh and don’t forget to do unit testing on your code so you don’t break an OpenMRS system with your new idea.