Mobile Aggregate Data Exchange
3.0.0 - trial-use
Mobile Aggregate Data Exchange, published by IHE QRPH Technical Committee. This guide is not an authorized publication; it is the continuous build for version 3.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/IHE/QRPH.mADX/ and changes regularly. See the Directory of published versions
This section corresponds to transaction [QRPH-58] of the IHE QRPH Technical Framework. Transaction [QRPH-58] is used by the Content Creator and Content Consumer Actors to share aggregate health data within a jurisdiction using a FHIR MeasureReport.
This transaction is used to communicate aggregate health data from the Content Creator to the Content Consumer at the end of each reporting cycle.
Figure 2:3.58.2-1: Use Case Diagram
The roles in this transaction are defined in the following table and may be played by the actors shown here:
Table 2:3.58.2-1: Actor Roles
Actor | Role |
---|---|
Content Creator | The Content Creator is responsible for the creation of an mADX message containing aggregate health data conformant to the jurisdiction defined Measure Resource and transmitting this message to a Content Consumer. |
Content Consumer | A Content Consumer is responsible for receiving the mADX message containing aggregate health data conformant to the jurisdiction defined Measure Resource from the Content Creator and processing it. |
Figure 2:3.58.4-1: Send Aggregate Report Diagram
This transaction transmits mADX-conformant messages containing aggregate health data from the Content Creator to the Content Consumer. A Content Consumer implemented at a jurisdiction may receive this transaction from multiple Content Creators.
The Send Aggregate Report is implemented as a FHIR Update Transaction defined in the RESTful API implementation guide: http://hl7.org/fhir/R4/http.html#update.
There are a wide variety of implementation and jurisdiction specific events which might trigger a Send Aggregate Report transaction. This might be automated, for example a timeout indicating the end of a routine reporting period, or manually triggered in response to prevailing business logic. The trigger event is implementation specific.
The Content Creator creates an mADX conformant message containing aggregate health data that meets the requirements of the mADX Measure in their jurisdiction. The Content Creator MAY send the message using Send Aggregate Report. The Content Consumer SHALL consume the message that meets the requirements of the mADX Measure in their jurisdiction.
The table below describes the request.
Table 2:3.58.4.1.2-1: Messaging Semantics for Send Aggregate Report Request Message
Description | |
---|---|
URL | The mADX Profile does not prescribe the form of the URL to be advertised by a Content Consumer except that the scheme of the URL SHALL be “https”. The following is a non-exhaustive list of valid examples: · https://hmis.gov.rw/datasets/mADX · https://hmis.gov.rw/routinereports/mADX · https://hmis.gov.rw/routinereports Note: These links are served only as examples. They do not point to real addresses. |
Headers | The Update request SHALL contain a Content-type header identifying the payload · Type:Content-type: application/fhir+xml · Type:Content-type: application/fhir+json The request MAY contain any additional headers. For example, a Content Consumer may require an Authorization header. |
A Content Consumer MAY support additional parameters. | |
BODY | The body of an mADX Send Aggregate Report request SHALL contain a valid mADX data payload as described in Section 8.2 from Volume 3 of this profile |
The indicator SHALL contain the following elements:
subject
A required subject reference.group.code.coding.code
A required reference for a valid indicator.group.population.code
The population(s) in the group.group.population.count
Size of the population.The indicator SHALL contain the following additional elements if the indicator includes disaggregation criteria:
group.stratifier.stratum
Indicates the stratum results.group.stratifier.stratum.measureScore
The value that is reported.group.stratifier.stratum.measureScore.value
The numeric value reported in the aggregate report.group.stratifier.stratum.component.code
Represents a disaggregation dimension for the disaggregation criterion reportedgroup.stratifier.stratum.component.value
Represents a disaggregation value for the disaggregation dimension reportedThe implementers MUST SUPPORT support the element improvementNotation
because is critical for indicating improvements for the measured values. However improvementNotation
is optional in the MeasureReport response message.
The Content Consumer SHALL process the mADX message received and return the status of the transaction as per section 2:3.58.4.2. .
A Content Creator may submit multiple Measures using a Collection Bundle in FHIR in a single transaction. This option can be valuable in use cases where the system may not have constant connection. (See http://hl7.org/fhir/R4/bundle.html.)
This transaction is an acknowledgement of mADX POST Content transaction from the Content Consumer to the Content Creator.
The Send Aggregate Report Response Message is implemented as an HTTP response. It can be emitted synchronously in response to the initial Update request, or maybe made available at a later time. The Content Consumer makes no guarantee that either the status URL or the result URL will be available permanently.
A Content Consumer sends a Send Aggregate Report Response Message after receiving and processing a Send Aggregate Report Request Message from the Content Creator. For a synchronous request this will be the HTTP Response of the originating Request. For an asynchronous Request this will be in the HTTP Response of a later request that the Content Creator may make after polling for completion.
The Send Aggregate Report Response Message is implemented as an HTTP Response. The response may include content in the body to provide an implementation and jurisdiction specific informative message on the completed status of the transaction. The response shall contain an HTTP status code. The table below describes the codes which may be produced by the Content Consumer which have a specific meaning related to the transaction.
Note that a Content Creator should be prepared to handle additional status codes not particular to the transaction, such as authorization, server or network error codes. HTTP status codes correspond to FHIR HTTP 3.1.0.4.2 Rejecting Updates (http://hl7.org/fhir/R4/http.html#rejecting-updates).
Table 2:3.58.4.2.2-1: Send Aggregate Report Response Message status codes
HTTP status code | Interpretation |
---|---|
200 | Send Aggregate Report request message was successfully processed |
202 | Send Aggregate Report request message has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon, and may be disallowed when processing occurs. |
303 | The response to the Send Aggregate Report request message, when the task is complete, can be retrieved from another URL. When received in response to a Send Aggregate Report request message, the client should presume that the server has received the data and should issue a redirect with a separate GET message. |
400 | Bad Request - message content is badly formed or invalid |
401 | Not authorized - authorization is required for the interaction that was attempted |
404 | Not found - resource type is not supported |
405 | Method not allowed - the resource did not exist prior to the update, and the server does not allow client defined ids |
409/412 | Conflict - invalid identifier in the message content. |
415 | Unsupported content-type or media |
422 | Unprocessable entity - The MeasureReport does not adhere to mADX Profile on the required fields, etc. |
501 | The request method is not implemented. |
A Content Consumer SHALL respond with appropriate error codes in the event of receiving an invalid Send Aggregate Report Request Message according to the FHIR 3.1.0.4.2 Rejecting Updates.
If no other error conditions are encountered, a Content Consumer SHALL respond to a Send Aggregate Report Request Message with a 422 Unprocessable Entity and an appropriate OperationOutcome resource if any of the following business rule(s) are violated:
An OperationOutcome resource SHALL be generated for each MeasureReport resource submitted in the batch transaction which violates the above business rule(s), in which case the OperationOutcome SHALL:
This profile assumes either implied or explicit data sharing agreements between the data exchange entities, and the envisaged use cases of the Send Aggregate Report [QRPH-58] transaction, which do not include the exchange of PHI. Therefore, this transaction would not typically require security mechanisms that protects PHI, such as the ITI Audit Trail and Node Authentication (ATNA) Profile. Implementers SHOULD nevertheless be sensitive to the possibility of approximate personal identification arising from aggregate data derived from small population sets. In the instance where a quality measurement entity needs de-identified data, the IHE ITI Handbook on De-identification should be referenced.
Transport of mADX data SHALL be safeguarded according to jurisdictional guidelines. To protect data integrity these SHALL include encryption of the transport layer and the use of an appropriate mutual authentication mechanism which meets these guidelines.
Content Consumers should also take adequate account of security considerations related to the generic processing of mADX documents (RFC7303).
There is no specific ATNA security audit event that is associated with this transaction.