OpenMRS Academy
LEVEL 1: OpenMRS Fundamentals
Module 4: OpenMRS Technical Overview
Learning objectives
Topics to be covered
1
Overview
Some key terms that will be frequently throughout this session.
3
Concept Dictionary
OpenMRS coded data elements
4
Quality Assurance framework
How does OpenMRS ensure their products are trusted.
2
How information is stored in OpenMRS.
OpenMRS Data Model
Overview
OpenMRS Architecture
UI
API
Backend &
data model
2. OpenMRS Data Model
OpenMRS Data Model
OpenMRS Version 1.11 Data Schema: https://docs.openmrs.org/datamodel/#
OpenMRS Data Model: Topics
Data vs Metadata
Data | Metadata |
|
|
Examples: Name: Eduardo Mondlane Mobile phone number: +258 21 430239 Birthdate: 20 June 1920 Height: 175 cm | Examples: Address hierarchy Types of phones (mobile or landline) Report definition for female patients |
Visits and Encounters
Visits
Encounters
Visits, Encounters, and Observations
Visit:
(1 day)
Encounter:
Registration
Encounter:
Vitals
Encounter:
Clinical Exam
Encounter:
Pharmacy
obs: occupation, marital status
obs:symptoms, labs, diagnosis,
prescriptions
obs: dispensed drugs with dosage
obs: weight, height, temperature
Multiday Visit with Encounters
Visit:
(over multiple days)
Encounter:
Registration
Encounter:
Vitals
Encounter:
Clinical Exam
Encounter:
Discharge
Encounter:
Vitals
Encounter:
Vitals
Encounter:
Clinical Exam
Encounter:
Surgery
Day 1
Day 2
Day 3
Encounters
Every encounter includes:
Primary keys and schema
Visit
Encounter
Obs
encounter_id
visit_id
Obs and Obsgroup
Observations (obs)
Observation groups (obsgroup)
Person (A)
Person
COVID-19 antigen test: positive
COVID-19 antigen rapid test: positive |
Specimen source: Nasopharyngeal swab |
Collection date: 1 Sep 2020 |
COVID-19 antibody test: negative |
Specimen source: Venous blood |
Collection date: 3 Sep 2020 |
Person
Person
User
Provider
Patient
Name
Attribute
Address
A person in OpenMRS is an individual.
Patient
Patient
Patient Identifier Medical record number
National ID
Paper file number
Program
HIV, NCD
Outcome
Workflow/
State
A patient is a person in OpenMRS who receives medical care.
Relationship
Person (A)
Person (B)
A Relationship is a bidirectional link between two persons
Examples of relationships:
Users, roles, and privileges
Provider
Provider
Location and Address
Location
Address
Program enrollment
Program:
Workflow/State:
Outcome:
Orders, Allergies, and Conditions
Orders
Allergies
Conditions (“Problem list”)
Deleting data
Forms (data in)
Electronic forms used for entering or viewing data
Patient Dashboard and Reporting (data out)
An EMR is only useful if patients and users get something from the system. Key benefits are point-of-care patient information and data export and analysis for reporting. All are provided with OpenMRS
.
Practical Exercise
Activity: Match form elements with data model
Instructions:
Practical Exercise: Fill in paper form
Practical Exercise: Match data
table.field |
encounter.encounter_datetime encounter.encounter_type form.name obs.concept_id obs.value_numeric obs.value_coded patient_identifier.identifier person.gender person.birthdate person_name.given_name person_name.family_name |
Exercise: Match the OpenMRS data model (table and field) with the highlighted data on the paper form.
Practical Exercise: (answer key)
table.field |
encounter.encounter_datetime encounter.encounter_type form.name obs.concept_id obs.value_numeric obs.value_coded patient_identifier.identifier person.gender person.birthdate person_name.given_name person_name.family_name |
Exercise: Match the OpenMRS table and field with the highlighted data on the paper form.
3. OpenMRS Concept Dictionary
Why have a Concept Dictionary?
Terminology is the Foundation
Terminology
Clinical Data Model
Reporting/Analytics
Decision Support
Clinical Workflow
How to Start Building a Concept Dictionary
OpenMRS Concept Dictionary
Introduction
It defines “the name, code, and appropriate attributes for any observations or data collected (including medical tests, drugs, results, symptoms and conditions).”
It is also a “collection of coded, unique concepts used to generate forms and encode data within the system.” Every medical concept that will be used in the electronic health record system must be defined within the dictionary. This ensures that an idea/data element can be captured in the system in a way that can be shared and understood by others. Below are some of the elements of the OpenMRS built-in concept dictionary:
Concept: An idea. The question being asked, the answer being given, the diagnosis, procedure, drug, or other specific “thing” that needs to be captured. Concepts are individual pieces of data collected from a patient.
Fully-Specified Name: An unambiguous, unique label for the concept in a language.
Preferred Name: The preferred label to be used for the concept in a particular language.
OpenMRS Concept Dictionary (2)
Synonym: Other names for the concept which are not necessarily unique.
Short Name: A shortened version of the preferred name, which might be required for showing in a table where space is severely limited. These may not be unique.
Description: A clear and concise description/definition of the concept, as agreed upon by the members of the organization or the most commonly referenced source.
Concept Class: The classification of a concept. Currently, a concept can only have one class.
Concept Datatype: The structured format you desire the data to be represented as.
Version: A method to keep track of the number of updates applied to a specific concept.
Mappings: These are relationships between the concept and other codes or terms. These can be to standard or reference codes or to local codes or references such as modules.
OpenMRS Concept Dictionary (3) - Mappings
OpenMRS Concept Dictionary (4) - Example
Fully Specified Name
Acute respiratory distress syndrome (ARDS) due to severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2)
Short Name
ARDS due to SARS-CoV-2
Synonyms
Acute respiratory distress syndrome (ARDS) due to 2019 novel coronavirus
Acute respiratory distress syndrome (ARDS) due to COVID-19 virus
Acute respiratory distress syndrome (ARDS) due to 2019-nCoV
OpenMRS Concept ID
165867
UUID
38726ad5-e19f-48cb-8718-f21b18c51b9e
OpenMRS Concept Dictionary (3) - Mappings
OpenMRS Concept Dictionary (5) - Example
OpenMRS Concept ID
165867
UUID
38726ad5-e19f-48cb-8718-f21b18c51b9e
ICD-10-WHO
U07.1
ICD-10-WHO 2nd
J80
ICD-11-WHO
RA01.1/CB00
SNOMED CT
674814021000119106
Narrower-Than
Same-As
From Concept to Reference term
Searching for a Concept in OpenMRS
[1]
[2]
[3]
[4]
Searching for a Concept in OpenMRS
[1]
[2]
[3]
[4]
Creating a Concept in OpenMRS
Creating a Concept in OpenMRS (2)
[5]
[1]
[2]
[3]
[4]
Practical Exercise
Activity: Creating concepts
Instructions:
Exercise:
Exercise Explained
Exercise Explained (2)
Exercise Explained (3) - Add mappings
Exercise Explained (4) - Add mappings
Exercise Explained (5) - Final view
Emerging solutions: OCL for OpenMRS
Common Problems in OpenMRS Concept Management
The OCL for OpenMRS webapp tool aims to solve these problems.
Re-use your previous work
No migration scripts needed for content - import in moments
See public work done by other organizations
Set up “baseline” source(s) that sites can use to quickly pull together a trusted dictionary
1
2
3
4
OpenMRS - 2021
Summary
The OCL for OpenMRS webapp at openmrs.openconceptlab.org enables:
OCL for OpenMRS Webapp tool
1. See public work of other orgs
OpenMRS - 2021
2. Re-use previous work
OpenMRS - 2021
3. Pull together with shared sources
(don’t have to create from scratch)
OpenMRS - 2021
4. Import in moments
Just add the Open Concept Lab module
1
2
3
OpenMRS - 2021
Case Study for reference
This case study has walk-through videos of how to use OCL for OpenMRS.
4. OpenMRS Quality Assurance Framework
Topics to be Covered
Just Works
Reliable
Bug Free
Stable
Meets Requirements
Meets Users Needs
Fitness for Use
Quality is a Customer Determination
Trust + Satisfaction
On Time
On Budget
Supports My Work
Available
What Is High Quality?
Supported
Role of QA in Digital Health
Establishing a continuous and sustainable QA process.
“QA at the beginning, not at the end”
Solution to QA objectives and gaps Identified
Background on the OpenMRS QA Work
Strengths
Pain-points
QA Objectives
Cucumber Framework
Proposed solution
Community Sustained Quality Assurance
For the OpenMRS Community
Provide QA support and guidance to the OpenMRS community to:
For the OpenMRS ecosystem
Provide QA support and guidance to OpenMRS implementers to:
For Global Goods
Quality Assurance Framework
What is Cucumber Framework?
What is Cucumber Studio?
What is Cucumber Studio?
OpenMRS Quality Assurance process steps
Step 1: Review and assess available community QA processes and tools
Step 2: Prioritize test cases for automation
Step 3: Create a QA plan
Step 4: Build your team’s QA capacity
Step 5: Trial a sub-set of test cases
More information: How-to: Integrate Community QA Processes and Tools into the Development Process
Future of QA is Automation
All tests could be automated! Benefits of automated tests: Greater confidence in releases, Catch bugs earlier, Less team time spent doing painful manual testing. To learn more, join the OMRS QA Support Team for support and training.
Quick demo on automation
Practical Exercise
Activity: Creating a login test case
Instructions:
Action | Expected result | Test Data |
Input the following URL and press enter. | OpenMRS Reff app login page is loaded successfully and Prompts user for Username, Password and Service Point. | |
Input the the details provided on the test data column and click on enter. | Login button is green and upon clicking it the user is redirected to the Reff app Home page. | Username: admin Password: Admin123 Location: Registration |
Sample Test Case
Action/Steps | Expected Results | Sample data |
The actual task to be carried out by the user. Eg: Type in the username and password | The outcome the user will get upon carrying out the task described E.g User successfully logs into the application. | The parameter the user will apply to get the described expected result. |
Below is an example of a successful Log-in test case:
Action | Expected result | Test Data |
Input the following URL and press enter. | OpenMRS Reff app login page is loaded successfully and Prompts user for Username, Password and Service Point. | |
Input the the details provided on the test data column and click on enter. | Login button is green and upon clicking it, the following message is displayed: Invalid username/password. Please try again. | Username: administrator Password: Admin123 Location: Registration |
Input the the details provided on the test data column and click on enter. | Login button is green and upon clicking it, the following message is displayed: Invalid username/password. Please try again. | Username: admin Password: admin1234 Location: Registration |
Input the the details provided on the test data column and click on enter. | Login button is green and upon clicking it, the following message is displayed:You must choose a location! | Username: admini Password: admin123 |
Answer Key to exercise
Thank you!