What is OpenMRS?
OpenMRS is a Java-based, web-based electronic medical record. We started from 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 works like a "black box," hiding the complexities of the data model beneath it and ensuring that applications and modules using the API work with a similar set of business rules for managing the electronic medical record system data. See our technical overview page for more details.
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. Using combinations of questions and answers, we can define observations (observable data) as well as forms that gather multiple observations within a single encounter. Our first systems were built by taking very carefully considered paper forms and turning them into electronic forms by cataloging all of the concepts on the forms (questions and answers) and then organizing these into an electronic schema (hierarchy) that represented all the data on the paper forms. By doing this, we could easily capture all of the data from the paper forms into the computer system as discrete, coded data that the computer could understand and then begin using those data to improve patient care. Over time, we are seeing more cases where data are being directly entered into the system through web-based forms or mobile solutions.
OpenMRS is constructed to support modules. Using modules, implementations are able to modify the behaviour of the system to meet their local needs without everyone having to agree on a single approach (i.e., allowing us to avoid the failure-prone "one hammer to fit all nails" approach). You can see the list of available modules in our module repository. Modules have full access to the system, so they can add tables in the database, alter behavior of the API, and/or add or change web pages in the web application as needed to meet their needs.
OpenMRS has grown from few organizations to a massive collaborative effort. It has always been based on the principles of openness and sharing ideas, software and strategies for deployment and use. OpenMRS is now in use in clinics in 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, United States, Zanzibar, Zimbabwe, and many other places. It is supported by individuals, organizations, government aid groups, NGOs, and for-profit and non-profit corporations.
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 help us improve. Join a mailing list or hop into IRC or discover our Q&A site and share your questions/concerns. If you're a developer, check out our New Developers' Guide. If you are interested in implementing OpenMRS, check out our Implementors' Guide and How to get support. We're all in this together!
which version is compatible with all modules??
Add-on Modules are developed by a large number of people, so compatibility varies. Many module developers have published those modules in our OpenMRS Modules directory, and we suggest looking there for compatibility information and other documentation about specific modules.