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
...