OpenMRS  functioning as a client server and distributed application. Data and forms are represented in the Extensible Markup Language (XML) and the XForms (XML Forms) standards, respectively and data is communicated between the FormEntry module and the application layer packaged as Health Level Seven (HL7; messages. The RDBMS stores data according to an open relational model and can be manipulated and queried using standard Structured Query Language (SQL)

The OpenMRS data model has also been used and incorporated, in whole or part, into other applications and  implemented, in part, in other languages including Ruby on Rails and Microsoft Dot Net. The World Health Organization (WHO) has developed a version of OpenMRS (OpenMRS Express) preconfigured with the forms accompanying the WHO-recommended HIV patient treatment and monitoring guidelines.

Creating data collection form in OpenMRS

Flowsheet helps clinicians create "dashboards" to better view and manage patients' clinical data : 

Architecture overview

The core OpenMRS application comprises a web application, programmed in Java and JavaScript and a number of open source component applications, maintained by other open source communities, including:
  • MySQL—relational database management system (RDBMS);
  • Apache Tomcat—servlet application;
  • Mozilla Firefox—web browser application, and;
  • Hibernate—object to relational mapping and persistence application.


How To Use the OpenMRS API within the OpenMRS and also from an external app

API usage example

Metadata sharing

Managing concepts and metadata

Web services

Creating modules

A number of modules can be loaded into the core application to provide additional functionality. Almost all OpenMRS installations use the FormEntry module that allows forms to be developed for data capture and entry to the system. The current version of the FormEntry module uses InfoPath, a core application in the Microsoft Office Professional Suite, to design and implement the forms. Although it is not free or open source, InfoPath was used because (i) it uses XML and follows a very clean model-view-controller (MVC) pattern that allows the data elements being collected to be managed separately from the form’s appearance, and; (ii) InfoPath not only renders forms, but also provides a WYSIWYG (what you see is what you get) editor similar to a word processor, bringing form editing within reach of non-programmers. However, several groups and individuals are working on an open source alternative to InfoPath, albeit with lesser functionality.