OpenMRS has great resources to begin with for any newbie to the community who likes to start on contributing to OpenMRS. They have invested a lot for keeping a clean, elegant ways to interact with the OpenMRS community.

OpenMRS talk has one of its own kind. Jira, forum, wiki pages are other resources where you can learn more about this wonderful community and what they do. Frankly, I find it bit confused for me when it comes to understanding the architecture of OpenMRS. I think it’s not because of lack of documentation, but I believe I couldn’t understood what it was in a one go. However I spent an entire day to dig into many wiki pages and talk threads to get more familiarize with the architecture so that it would be really easy for me to get into it. Specially for my GSoC project, it’s an essential prerequisite.

What is OpenMRS is all about?

OpenMRS is a Medical Record System which was started to developed back in 1990. It was aimed at resource constrained environments, meaning that it has mostly targeted to use in clinical environments of developing countries. Initially they had started with African regional countries. Story was based upon; back in time, clinics in those countries were using paper based or Microsoft Access to store medical records of patients. They have been using flat tables in MS Access which was cause them at some point it couldn’t further expand on those system. They are saying that they had tables with hundreds to columns in a table. It was a nightmare to query data. So, as a solution OpenMRS was started to developed. Today there are many countries all around the earth are using it, even the clinics in developed countries have trusted the OpenMRS.

Geographical distribution of OpenMRS usage today

What are main components in OpenMRS application?

OpenMRS is highly customizable system for clinics. It is open source and anyone can develop it and share with others. When you go to official download page of OpenMRS, sometimes you might be confused with terminology.

What is OpenMRS SDK?

OpenMRS SDK(Software Development Kit) is a command line program. It is generally used to setup the OpenMRS servers, deploy modules and checkout modules. It also supports many more functionalities through commands.

It is really easy for anyone to setup a OpenMRS server locally in your machine and install the OpenMRS platform or a distribution to it with a minimum effort. You can follow this link if you want to use OpenMRS SDK to install and maintain your server in a handy way.

What is OpenMRS platform?

First you must know what is meant by a platform in software engineering field.

A platform is any hardware or software used to host an application or service.

This definition clears out everything about what a platform is. OpenMRS platform is also a software platform. It provides the facility of running modules on top of the platform, maintaining the database, API accessibility etc.

You may want to install this OpenMRS platform if you only need to use OpenMRS core functionalities or use the OpenMRS APIs. OpenMRS platform has it’s old legacy user interfaces.

Tip: OpenMRS SDK can be used to install OpenMRS platform

What is OpenMRS distribution?

In general we use distribution to mean a release version of a software. So, do the OpenMRS application. OpenMRS has different types of distributions based on customers. Literally that means, there are many variants of OpenMRS software.

For my GSoC project, I am working on OpenMRS Reference Application distribution. You can choose which distribution you want to setup when you are installing a distribution through OpenMRS SDK.

You can read more about OpenMRS distributions here.

Different types of modules in OpenMRS domain

  1. Platform Module
  2. Open Web App(OWA) Module

Platform Module:

Platform modules are run on top of OpenMRS platform.

Open Web App Module:

Open Web App modules are running inside a platform module called “Open Web Apps Module”. OWAs can written in HTML 5, JavaScript and CSS. with the help REST API calls, those modules are fetching and saving the data from OpenMRS platform or through other modules.

I’m glad that if this post was helpful to clear out any of your confusions of OpenMRS architecture. Leave a thumbs up to appreciate my effort of gathering this knowledge for you. 🙂