OpenMRS Developers' Guide

Data Model

OpenMRS data model version 1.9. Details at

OpenMRS invests continuous effort into shaping the OpenMRS data model using knowledge and experience gathered from practical experiences from the Regenstrief Institute, Partners in Health, and all of our developmental partners spread across the world. The core of this data model addresses the who, what, when, where, and how of medical encounters. The core data model is divided into ten basic domains.

  1. Concept: Concepts are defined and used to support strongly coded data throughout the system
  2. Encounter: Contains the meta-data regarding health care providers interventions with a patient.
  3. Form: User interface description for the various components.
  4. Observation: This is where the actual health care information is stored. There are many Observations per Encounter.
  5. Order: Sequence actions should occur in.
  6. Patient: Basic information about patients in this system.
  7. User: Basic information about the people that use this system.
  8. Person: Basic information about person in the system.
  9. Business: Non-medical data used to administrate OpenMRS
  10. Groups/Workflow: Workflows and Cohort data
However, other domains may also be added to the data model via the use of modules.


Metadata is 'data about data'. In OpenMRS, metadata represents system and descriptive data such as data types. Metadata are generally referenced by clinical data, but do not represent any patient-specific data.

Significant OpenMRS metadata types include:

  • Drugs
  • EncounterRole
  • EncounterType
  • Concept
  • Form
  • Location
  • Program
  • Role
  • User 

The OpenMRS source code comes with certain metadata included by default. It is recommended that you do not edit/remove these.

Any request to modify/add metadata should be communicated to the Meta-Data/Terminology lead, who is responsible for the oversight of content required for key functionality of the OpenMRS platform.