Demo: Modeling a New System with MOTECH Data ServicesΒΆ

MOTECH Data Services (MDS) is a user-configurable data store, that allows a MOTECH admin or developer to define the objects that are relevant for her application. To illustrate the use of MDS, we’ll build out the data model for a simple electronic medical records (EMR) system stored in MOTECH. This tutorial will describe two different methods for defining the data model:

  1. Using code annotations in a custom module
  2. Using the MDS Schema Editor user interface

Both demos will define a simple EMR with the following entities:

  • Person - contains basic demographic information (name, gender, DOB) about a person in the EMR.
  • Patient - represents a patient; has a 1:1 relationship to a Person object.
  • Provider - represents a health care provider (nurse, physician, community health worker); has a 1:1 relationship to a Person object.
  • Facility - represents a clinic or other health care facility.
  • Observation - represents an observation made by a provider about a specific patient; consists of a concept (question) and a value
  • Concept - an individual data point or question collected from patients (e.g. blood type or eye color). OpenMRS provides detailed documentation for their concept dictionary; we’ll develop only a very limited version of it for this demo.
  • Encounter - represents a provider’s encounter with a patient, and has a 1:n relationship with the Observation entity.

These entities are inspired by (but represent only a small subset of) the domain model of OpenMRS. MOTECH’s OpenMRS module implements a similar domain model. In our simplified model, the relationships among these entities can be represented by the following diagram:

MDS Demo - relationships

Choose your adventure (code or UI) and let’s get started!