Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Primary objective of this module is to convert OpenMRS into a SMART container. After installing this module, OpenMRS user users will be able to install and launch SMART Apps easily. Before going deep into the detail of the module architecture we have to uderstand understand some terminologies related to SMART Apps and  SMART ContainerSMART Containers.

What is a SMART App?

A SMART app is a substitutable medical app built using reusable techniques. It can be a web app built using reusable technologies such as HTML and JavaScript. It uses the SMART API to retrieve data from data sources. The data source may be a EMR like OpenMRS, a PHR like Indivo, or a data analytic platform such as i2b2. There are two types of SMART apps: SMART Connect app and SMART REST apps.

...

Problems (Mapped to SNOMED CT)

OpenMRS data model represents problem in two way. First is using problem table for wich which the mapping to SMART problem is done directly as follows.

SMART field

Description

Data format

OpenMRS terminology

Notes

Additional notes about the problem

Free text

Problem.getComments();

Problem name

SNOMED-CT Concept for the problem

CodedValue node referencinghttp://www.ihtsdo.org/snomed-ct/concepts/{concept_id}

Problem.getProblem() is used to retrieve related mapped SNOMED-CT concept code and this value is used to set the code of the coded value node and the OpenMRS concept name is used to fill the title of the coded value node.

Resolution

Date of problem resolution

ISO-8601 string

Problem.getEndDate()

Title

Human-readable problem name

Free text

It is already included within the problem name

Onset

Date of problem onset

ISO-8601 string

Problem.getStartDate()

Second way is using problem added/problem removed obs to represent the problems.

SMART field 

Description 

Data format 

OpenMRS terminology 

Notes

Additional notes about the problem 

Free text 
 

Obs.getComments()

Problem name

SNOMED-CT Concept for the problem 

CodedValue node referencing[[http://www.ihtsdo.org/snomed-ct/concepts/]{concept_id}

  Obs.getValueCoded().getName()

Resolution

Date of problem resolution 

ISO-8601 string 

The obs table is searched for another obs with the same obs.valued_coded but with obs.concept_id == user-chosen-PROBLEM_RESOLVED-concept-id.  If found, the obs.obsdatetime is used, otherwise null.

Title

Human-readable problem name 

Free text 

 

Onset

Date of problem onset 

ISO-8601 string 
 

Obs.getObsDatetime()

From both method user have to select one method at Administration->Set up problem object page

...