2008 Implementers Group Meeting Challenge___Integrated OpenMRS-DHIS-CRIS
<html><head><title></title></head><body><div style="background-color:#eeeeee;width:100%;font-size:1em;line-height:150%">
<div class="maingray"><div class="maingrayr"><div class="maingraybl"><div class="maingraybr" style="padding-right:10px">
<center>
Progress |
Blogs |
</center>
</div></div></div></div></div>
Name: Integrated OpenMRS District Health Information Systems (DHIS) and Country Response Information System (CRIS)
Groups Working with Challenge: OASIS
Description:
The purpose of this challenge is to facilitate the interoperability of OpenMRS Express:HIV with other health information systems and applications in order to enable the exchange of raw patient record data between different electronic medical record systems, to provide aggregate data for the computation of reporting indicators, and perform epidemiological analysis through CRIS, a UNAIDS application, and DHIS, a HISP application. The tasks will be implemented using common informatic data standards for information interchange. Specifically, HL7 for patient record messaging and IXF for aggregate data reporting. Required terminologies for semantic data exchange for items such as patient observations and drug orders are described in the appropriate messaging specifications against which this work will be implemented. These specifications are the WHO patient monitoring guidelines for HIV care and ART, the WHO ART patient message specificiation, and the IXF messaging specification from UNAIDS.
Design:
<center>
</center>
WHO Module Export Overview
The user interface allows a user to select patients for export from a text box, where users can enter in 1 or more patient identifiers, or from a list of existing cohorts, which are associated with a set of patient IDs. There is also a link from the patient dashboard that can be used to export information for a specific patient.
The Manager object is responsible for the processing of data, receiving sets of patient identifiers and outputting an associated WHOPatient object for patients associated with the identifiers. The WHOPatient object contains all the necessary information needed for output. The Manager associates a patient identifier with a set of patient IDs, which are in turn associated with a Patient object, through the Patient Service class. The Manager uses the Patient Demographics and Patient Encounter classes to populate the WHO Patient object.
The Patient Demographics class associates Patient objects with Person objects through the Person Service class. Necessary demographic information is obtained from this Person object and used to further populate the WHO Patient.
Similarly, the Patient Encounters class associates Patient objects with a list of Encounters through the Encounter Service class. These Encounters are then associated with Observations through the Observation Service class, and the necessary information is obtained from the Observations.
Once the WHOPatient object has been populated, it is sent to the Export Manager along with an export type. For HL7 messages, the Export Manager calls the ExportHL7 class, which uses an HL7 Generator to generate an HL7 message using the data from the WHOPatient object.
The Manager creates a zip file containing all the HL7 messages and the user is able to save the zip file to disk, completing export.
Cohort Analysis
The Manager User interface controller uses the cohort DAO to retrieve a list of saved “Patient Search†cohorts from the OpenMRS database.
These are displayed in the user interface of the manager.
The cohort manager uses the reporting service to get a PatientSearch associated with a cohort ID. This PatientSearch object is added to the CohortSearchHistory object (this increases the number of PatientSearch objects in the CohortSearchHistory object). Each PatientSearch object added to the CohortSearchHistory has a PatientSet associated with it. Provided with an the PatientSearch index in the CohortSearchHistory object, the Cohort Manager gets the PatientSet at that index, then retrieves a list of PatientIds from that PatientSet. These are then returned to the manager for HL7 message generation.
</body></html>