OpenMRS Radiology FHIR Support Module
OpenMRS Radiology FHIR Support Module
OpenMRS Radiology FHIR Support Module
Conversion Module
Introduction
User Manual
Installation
Further Instructions
Start Demo Instance of OpenMRS 1.11.4. If you only wish to test this module do not use a
production database (Demo data makes entries into a number of tables and also creates
new tables for storing MRRTTemplates)
If you face errors when installing/ running the module and the log gives the following exception :
java.lang.NoClassDefFoundError: org/jaxen/JaxenException.
1. Goto Tomcat webapps folder (In Linux : /var/lib/tomcat7/webapps/)
2. Cd into the ./openmrs/WEB-INF/lib
3. Manually paste jaxen_1.1.6.jar
4. Restart tomcat
5. Read more : https://talk.openmrs.org/t/java-lang-noclassdeffounderror-org-jaxen-
jaxenexception-in-module/6765
Now the testing environment should be set. Judy is also hosting a test-instance online at
http://162.243.230.92:8080/openmrs
4. Select Create new MRRT report to open the report creation page
5. Enter the name of the report and the its xml representation
6. Hit the create button
a. If the template does not conform to the html5 standards described by MRRT
specifications, generation of Diagnostic Reports will fail later.
7. Head over to the Admin page and select MRRT Reports to see the newly created
template listed with the other existing templates
8. Select the encounter_uuid field corresponding to the created template and fill up the
details about the encounter (optional). This step allows for more comprehensive
integration of the MRRT template with other OpenMRS services layer methods
Fig : Edit OpenMRS Encounter corresponding to the newly created MRRT report
API Docs
The API is organized as follows :
1. HTTP Request : The FHIR request to fetch MRRT template. Format of the request url is
/openmrs/ws/fhir/DiagnosticReport/{encounter_uuid}. The encounter uuid can be found
from the View Diagnostic Report section
2. FHIR Module :
a. HAPI FHIR Server : The HAPI processed the incoming request and identifies it
being a DIagnosticReport request
b. FHIR module service infrastructure : FHIR module does invokes the
DiagnosticReportService
c. DiagnosticReportService : It identifies the enounter object from the
encounter_uuid. It then inspects the encounter_type
d. FHIRDiagnosticUtil : It handles invoking the MRRTTemplateHandler methods to
fetch the FHIR Diagnostic Report
3. Radiology FHIR Support Module :
a. MRRTTemplateHandler: Links FHIR module and Radiology FHIR Support
module
b. MRRTToFHIRService: Converts MRRT templates to FHIR Diagnostic Reports
and sends them to MRRTTemplate handler that exposes it to the FHIR module
c. XPathMapper: Finds fields in MRRT templates using XPath and maps them to
fields in FHIR Diagnostic Report based on mapping scheme provided
d. DiagnosticReportMRRTAdapter: Isolates mapping process to allow support for
different mapping schemes and techniques in the future
e. RadlexUtil: Assists in decoding Radlex codes
//html/head/script/template_attributes/status status
//html/head/title category
RID13159 subject
//html/head/script/template_attributes/status status
//html/head/title category
Diagnostic Report :
{
"resourceType":"DiagnosticReport",
"id":"59b01f98-3711-46d8-85ef-387023129b16",
"contained":[
{
"resourceType":"Observation",
"id":"1",
"code":{
"coding":[
{
"system":"RadLex",
"code":"RID1243",
"display":"thorax"
}
]
}
},
{
"resourceType":"Observation",
"id":"2",
"code":{
"coding":[
{
"system":"RadLex",
"code":"RID13170",
"display":"impression section"
}
]
}
},
{
"resourceType":"Observation",
"id":"3",
"code":{
"coding":[
{
"system":"RadLex",
"code":"RID28483",
"display":"comparison"
}
]
}
},
{
"resourceType":"Observation",
"id":"4",
"code":{
"coding":[
{
"system":"RadLex",
"code":"RID1385",
"display":"heart"
}
]
},
"valueString":"Normal."
},
{
"resourceType":"Observation",
"id":"5",
"code":{
"coding":[
{
"system":"RadLex",
"code":"RID13166",
"display":"clinical information"
}
]
}
},
{
"resourceType":"Observation",
"id":"6",
"code":{
"coding":[
{
"system":"RadLex",
"code":"RID10345",
"display":"projection radiography"
}
]
}
},
{
"resourceType":"Observation",
"id":"7",
"code":{
"coding":[
{
"system":"RadLex",
"code":"RID28569",
"display":"set of bones"
}
]
},
"valueString":"Normal."
},
{
"resourceType":"Observation",
"id":"8",
"code":{
"coding":[
{
"system":"RadLex",
"code":"RID13437",
"display":"lungs"
}
]
},
"valueString":"Normal."
},
{
"resourceType":"Observation",
"id":"9",
"code":{
"coding":[
{
"system":"RadLex",
"code":"RID1559",
"display":"procedure"
}
]
}
}
],
"status":"final",
"serviceCategory":{
"coding":[
{
"system":"http://hl7.org/fhir/v2/0074",
"code":"RAD"
}
]
},
"result":[
{
"reference":"#1"
},
{
"reference":"#2"
},
{
"reference":"#3"
},
{
"reference":"#4"
},
{
"reference":"#5"
},
{
"reference":"#6"
},
{
"reference":"#7"
},
{
"reference":"#8"
},
{
"reference":"#9"
}
],
"conclusion":"No acute disease. "
}
Working Links
MR Neck http://162.243.230.92:8080/openmrs/ws/fhir/DiagnosticReport/cc42af4c-0142-4c7d-
b061-049688c34cf0
Pediatric Swallow Study :
http://162.243.230.92:8080/openmrs/ws/fhir/DiagnosticReport/ebb0c0a5-22c5-4ef9-b958-
3c3af483ba12
Chest X-Ray
http://162.243.230.92:8080/openmrs/ws/fhir/DiagnosticReport/c3335d63-80bb-47d2-835c-
011ea2050c90
CT Pelvis http://162.243.230.92:8080/openmrs/ws/fhir/DiagnosticReport/7aada6b5-36e6-4954-
befe-224c5e079a9b
http://162.243.230.92:8080/openmrs/ws/fhir/DiagnosticReport/c25fe59f-343a-4cb7-b132-
fe41d36dc7ea
Error : The template does not define <entry> tags in <coded_content>, which is mandatory as
per the specifications