Welcome to OpenMRS
OpenMRS is both a software and a community. As a software, it serves as an electronic medical record system (EMR) originally designed for developing countries. Through its open-source community, it has grown into a medical informatics platform used on every continent.
This page provides an introduction to the OpenMRS software—our electronic medical record system and the platform supporting it. If you're interested in learning more about the OpenMRS community and how we work, you may start here.
What is OpenMRS?
OpenMRS is a Java-based, web-based electronic medical record system. We started with a simple (at least it used to be simple) data model, wrapped that into an API, and then built a web-based application that uses the API.
The OpenMRS API functions as a "black box," hiding the complexities of the data model and ensuring that applications and modules using the API adhere to consistent business rules for managing electronic medical record system data.
For more technical details, visit our technical overview page.
Why OpenMRS?
Every day, millions of people are infected with diseases such as HIV/AIDS, multi-drug-resistant tuberculosis, and malaria. In developing countries, the lack of education and resources increases the number of preventable deaths. To handle the needs of treatment, an efficient information management system is needed; however, many developing countries still use paper records. OpenMRS was created in response to these challenges.
Initially, OpenMRS was built to support HIV care in a few settings, such as Kenya and Rwanda. However, from the beginning, we knew that it would be artificial to create a vertical, HIV-specific solution, as patients with HIV also have other medical problems.
We also recognized that the same programs treating HIV were simultaneously confronting malaria, tuberculosis, maternal health, primary care needs, and many other issues.
Therefore, we designed OpenMRS to be a generic medical record system capable of supporting patient care by gathering observations, encounters, notes, and other data from the healthcare system. These data are rendered in summaries, reports, and data views that enhance the effectiveness of the system's users.
The concept dictionary
At the heart of OpenMRS is a concept dictionary. This dictionary, much like a typical dictionary, defines all of the unique concepts (both questions and answers) used throughout the system. By combining questions and answers, we can define observations (observable data) and forms that gather multiple observations within a single encounter.
Our initial systems were built by carefully transforming paper forms into electronic forms, cataloguing all the concepts on the forms (questions and answers), and organizing them into an electronic schema (hierarchy).
This approach allowed us to capture all the data from paper forms into the computer system as discrete, coded data, which the system could then use to improve patient care. Over time, data are increasingly being entered directly into the system through web-based forms or mobile solutions.
Supporting modules
OpenMRS is designed to support modules, enabling implementations to modify the system's behaviour to meet local needs without requiring everyone to agree on a single approach. This approach helps us avoid the failure-prone "one hammer to fit all nails" mentality.
You can explore our module repository to see the list of available modules. Modules have full access to the system, allowing them to add tables to the database, alter the API's behaviour, and/or add or change web pages in the web application as needed to meet local requirements.
How big are we?
The answer is simple: really BIG!
We’ve grown from a few organizations to a massive collaborative effort based on the principles of openness and the sharing of ideas, software, and strategies for deployment and use.
Today, OpenMRS is in use in clinics across the globe, including Argentina, Botswana, Cambodia, Congo, Ethiopia, Gabon, Ghana, Haiti, Honduras, India, Indonesia, Kenya, Lesotho, Malawi, Malaysia, Mali, Mozambique, Nepal, Nicaragua, Nigeria, Pakistan, Peru, Philippines, Rwanda, Senegal, South Africa, Sri Lanka, Tanzania, The Gambia, Uganda, the United States, Zanzibar, Zimbabwe, and many other places. Additionally, individuals, organizations, government aid groups, NGOs, and profit and non-profit corporations support it.
Get involved
Feel free to browse our wiki, and don't hesitate to let us know where things can be improved. More importantly, consider rolling up your sleeves and helping us improve. Join a mailing list, hop into IRC, or explore our Q&A site to share your questions and concerns.
If you're a developer, check out our New Developers' Guide. If you're interested in implementing OpenMRS, check out our Implementors' Guide and How to get support. We're all in this together!