Description: This workflow enables aggregate data to be generated and exported to a system outside of the health information exchange. This is useful for exporting routine reporting data to an upstream HMIS systems for high level reporting. For example aggregate data could be exported from a country implementation to PEPFAR's Global DATIM instance.
Referenced Standards and APIs
- ADX for structuring aggregate data - http://www.ihe.net/uploadedFiles/Documents/QRPH/IHE_QRPH_Suppl_ADX_Rev1.0_PC_2015-05-29.pdf
- Transport: Undefined at the moment, expected to use a simple HTTP External HMIS.
Assumptions and Prerequisites
The External HMIS and the HMIS inside the OpenHIE infrastructure must use the same metadata (indicator, disaggregators, sites and mechanisms). The request metadata workflow may be used before the export takes place to ensure this is so.
Receiver - External System Actors (Actors outside this HIE)
- External System - The system outside the HIE that will be receiving aggregate data. Examples of this system could be an external HMIS systems or an HIE.
Sender - Internal System Actors (Actors within this HIE)
- IL - The Interoperability Layer (IL) is the component that enables easier interoperability between disparate information systems by connecting the infrastructure services and client applications together. An interoperability layer receives transactions from the point of service systems and coordinates interaction between components of the HIE and provides common core functions to simplify the interoperability between systems.
- HMIS - The system that produces the aggregate data to be exported.
Exception: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 12
|Step Number||Interaction||Design Notes||Data||Transaction Standard|
|1||Initiate the transaction, aggregate months into quarters as necessary and create the aggregate data message.||In the reference implementation, the user triggers the aggregation and creation of the ADX message via the ADX adapter which is a logical component of the HMIS.||ADX - Aggregate Data generated by the HMIS.||ADX|
|2||Export the Aggregate Data Message to the IL|
The message will be transported via POST http(s)://<server>:<port>/<base_path>/dataset
with ADX message in the HTTP body until the ADX transport standard is developed.
|3||Map site codes||Mapping Mediator uses a CSD transaction to determine if there are local site codes that need to be translated to the Global site codes. If so, they are translated.|
|4||Update the ADX message with the receiver's site codes|
Update the ADX message with receiver's site codes
Log and secure the message
Route the message to an authenticated receiver.
|5||Return processing response||The External system will process the aggregate data message and respond with information about the records processed and / or provide a description of errors.||May contain error messages and/or confirmation of successful processing.|
|6||Log the processing response|
|7||Forward aggregate data processing response|
with request body set to the string 'SUCCESSFUL' if the request was processed successfully
with request body set to the string 'UNSUCCESSFUL' with the textual error messages following on the next line if the request was not processed successfully
|8||Process the response|
This step can be different for different implementations. The HMIS can be used to inform the user via an interface or a message. The response will contain error messages or provide information about the successful processing of the message.
The following are the high-level test cases that this workflow must support:
- Sample ADX messages: https://github.com/dhis2/adx/blob/master/IHE/samples/adx_data_sample1.xml