All OpenMRS ID accounts have been reset.

Read more and change your password before signing in.
Icon

EXTENDED: OMRS14 Proposals due 30 April! Read more and submit a proposal at OpenMRS Talk.

Skip to end of metadata
Go to start of metadata

Introduction

At the heart of any enterprise electronic medical record system lies a robust, explicit representation of how care information is stored. The structure of this data model dictates the scalability and flexibility of a system. The OpenMRS collaborative therefore invests continuous effort into shaping the OpenMRS data model using knowledge and experience gleaned from practical experiences from the Regenstrief Institute, Partners in Health, and all of our developmental partners around the world. The core of this data model addresses the who, what, when, where, and how of medical encounters. You may view a current image of the data model used in OpenMRS 1.9.0. Data models of previous releases are given below. This model is divided into ten basic domains.

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: Essentially, the 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: Things/actions that have been requested to occur.
  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

See also OpenMRS Implementer's Guide - Data Information Model.

Data Model Frequently Asked Questions (FAQ)

  • What is the difference between retire and void columns?
  • What are the conventions for changing the OpenMRS data model definition?
  • We really like your data model image. How does OpenMRS make it?

Data Model Versions

The data model used in each of the OpenMRS releases can be viewed from the following attachments.

OpenMRS 1.9.0

OpenMRS 1.8.0

OpenMRS 1.7.0

OpenMRS 1.6.0

Icon

Many tables in the data model have columns like created_by, retired_by, voided_by etc. which have foreign key relationships with user.user_id. These links are not shown in the diagrams for the sake of clarity.

3 Comments

  1. Nimantha,

    Your assistance with the data model is greatly appreciated; however, some of the tables in the 1.9.0 model are in the wrong regions.  When you get a chance, could you try making the following changes:

    • Rename "Encounter" region to "Visit/Encounter" and move the visit tables (visit, visit_type, visit_attribute, visit_attribute_type) into that region along with the encounter tables?  Ideally, the model would communicate the relationship of Visit → Encounter → Obs... so visit tables would go to the left or above encounter tables, not between encounter and obs tables.
    • Move the provider tables (provider, provider_attribute, provider_attribute_type) into its own Provider region under the User region
    • Move the Order region closer to Obs, since both Obs and Orders are "children" of an Encounter

    Thanks!
    -Burke

  2. Hi Burke,

    Thanks for your feedback. I was actually going to ask someone about the placement of the new tables and I am glad that you pointed out the correct positions. I will make the changes and upload the diagram once again.

    Thanks!

    Nimantha

  3. I think there may be a small mistake on the 1.9 diagram. I think that the person_id on the users table should be connected to person_id in the person table. 

    Tobin