Situational Awareness for Novel Epidemic Response
1.0.0 - STU Release

Situational Awareness for Novel Epidemic Response, published by HL7 International Public Health Workgroup. This is not an authorized publication; it is the continuous build for version 1.0.0). This version is based on the current content of https://github.com/HL7/fhir-saner/ and changes regularly. See the Directory of published versions

Compute Measure

This section describes the COMPUTE-MX of this guide. This transaction is used by the Measure Source, Measure Consumer, Measure Computer and Data Source actors.

Scope

The Compute Measure transaction describes the behavior of the Measure Computer actor in periodically computing and reporting on measures.

This transaction enables automatic computing of measure reports and manual retriggering of report generation for diagnostics or error recovery.

Actors Roles

Measure SourceMeasure ConsumerMeasure ComputerData SourceCompute Measure

Figure 2.4-1: Compute Measure Use Case Diagram

Table 2.4-1: Actor Roles
ActorRole
Measure Source
Measure Consumer
Measure Computer Pull data for, computes and reports a measure.
Data Source Responds to queries for data used to compute measures or collect supplemental data.

Referenced Standards

Table 3.71.3-1: Referenced Standards
StandardName
FHIR-R4HL7 FHIR Release 4.0
RFC-7230Hypertext Transfer Protocol - HTTP/1.1
NDJSONNewline Delimited JSON

Interactions

    <?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="283px" preserveAspectRatio="none" style="width:634px;height:283px;" version="1.1" viewBox="0 0 634 283" width="634px" zoomAndPan="magnify"><defs><filter height="300%" id="fqy6sdfdamp75" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="28" style="stroke:#A80036;stroke-width:1.0;" width="10" x="75.5" y="79.4297"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="29.1328" style="stroke:#A80036;stroke-width:1.0;" width="10" x="75.5" y="143.5625"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="29.1328" style="stroke:#A80036;stroke-width:1.0;" width="10" x="262.5" y="143.5625"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="389.5" y="201.8281"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="389.5" y="244.9609"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="542" y="201.8281"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="542" y="244.9609"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="80" x2="80" y1="40.2969" y2="276.9609"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="267" x2="267" y1="40.2969" y2="276.9609"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="394" x2="394" y1="40.2969" y2="276.9609"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="547" x2="547" y1="40.2969" y2="276.9609"/><rect fill="#FEFECE" filter="url(#fqy6sdfdamp75)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="147" x="5" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="133" x="12" y="24.9951">Measure Computer</text><rect fill="#FEFECE" filter="url(#fqy6sdfdamp75)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="99" x="216" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="85" x="223" y="24.9951">Data Source</text><rect fill="#FEFECE" filter="url(#fqy6sdfdamp75)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="127" x="329" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="113" x="336" y="24.9951">Measure Source</text><rect fill="#FEFECE" filter="url(#fqy6sdfdamp75)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="150" x="470" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="136" x="477" y="24.9951">Measure Consumer</text><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="28" style="stroke:#A80036;stroke-width:1.0;" width="10" x="75.5" y="79.4297"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="29.1328" style="stroke:#A80036;stroke-width:1.0;" width="10" x="75.5" y="143.5625"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="29.1328" style="stroke:#A80036;stroke-width:1.0;" width="10" x="262.5" y="143.5625"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="389.5" y="201.8281"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="389.5" y="244.9609"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="542" y="201.8281"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="542" y="244.9609"/><line style="stroke:#A80036;stroke-width:1.0;" x1="85.5" x2="127.5" y1="71.4297" y2="71.4297"/><line style="stroke:#A80036;stroke-width:1.0;" x1="127.5" x2="127.5" y1="71.4297" y2="84.4297"/><line style="stroke:#A80036;stroke-width:1.0;" x1="86.5" x2="127.5" y1="84.4297" y2="84.4297"/><polygon fill="#A80036" points="96.5,80.4297,86.5,84.4297,96.5,88.4297,92.5,84.4297" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="134" x="92.5" y="66.3638">1. Compute Measure</text><polygon fill="#A80036" points="250.5,139.5625,260.5,143.5625,250.5,147.5625,254.5,143.5625" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="85.5" x2="256.5" y1="143.5625" y2="143.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="163" x="92.5" y="138.4966">2. Search FHIR Resources</text><polygon fill="#A80036" points="91.5,168.6953,81.5,172.6953,91.5,176.6953,87.5,172.6953" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="85.5" x2="266.5" y1="172.6953" y2="172.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="127" x="97.5" y="167.6294">3. Search Response</text><polygon fill="#A80036" points="530,197.8281,540,201.8281,530,205.8281,534,201.8281" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="399.5" x2="536" y1="201.8281" y2="201.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="117" x="406.5" y="196.7622">4. Report Measure</text><polygon fill="#A80036" points="405.5,211.8281,395.5,215.8281,405.5,219.8281,401.5,215.8281" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="399.5" x2="546" y1="215.8281" y2="215.8281"/><polygon fill="#A80036" points="410.5,240.9609,400.5,244.9609,410.5,248.9609,406.5,244.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="404.5" x2="541" y1="244.9609" y2="244.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="113" x="416.5" y="239.895">5. Query Measure</text><polygon fill="#A80036" points="535,254.9609,545,258.9609,535,262.9609,539,258.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="394.5" x2="541" y1="258.9609" y2="258.9609"/></g></svg>

Figure 2.4-2: Compute Measure Interactions

Compute Measure

The Measure Computer computes the measure report for the current reporting period.

Trigger Event - Reporting Period Elapsed

The current reporting period has elapsed, or the operation is triggered by automation (e.g. for manual testing, diagnostics or error recovery).

See the Reporting Period extension.

Message Semantics

The Measure Computer prepares a Measure Report.

Expected Actions
Compute Measure

When the reporting period has elapsed, or the operation is externally triggered, a MeasureReport for the specified Measure is computed from available data and the grouped MeasureSource is invoked below to store the created or updated MeasureReport resource

Search FHIR Resources

Trigger Event - Data Query

Data is needed to compute a measure.

Message Semantics

The Measure Computer sends a query using an HTTP GET or POST to a Data Source supporting the FHIR Search capabilities using an appropriate national implementation guide.

Expected Actions
Search for Data

Measure Computer requests data from a Data Source.

The Measure Computer performs a FHIR Search operation to retrieve the selected resources.

Search Response

The Data Source returns the requested data.

Trigger Event - Resources have been requested by a Measure Computer.
Message Semantics

The Data Source responds with requested resources.

The resources will conform to the profiles specified in a national or regional Implementation Guide

Expected Actions
Returns Matching Resources

The Data Source returns the requested resources.

Report Measure

The Measure Computer reports the newly computed measure for the current reporting period.

Trigger Event - MeasureReport Available

A new MeasureReport resource is available for reporting.

Message Semantics

The Measure Computer reports the computed result via the grouped MeasureSource actor.

Expected Actions
Send MeasureReport Resource

The MeasureSource stores the MeasureReport by creating or updating it on the MeasureConsumer

Accept MeasureReport Resource

The MeasureConsumer processes the MeasureReport given in the create/update interaction.

Query Measure

The Measure Computer responds to a query for a Measure Report with the newly computed report for the current reporting period.

Trigger Event - MeasureReport Requested

The Measure Consumer has requested measure reports with criteria matching the newly created report.

Message Semantics

The Measure Computer reports the computed result via the grouped MeasureSource actor.

Expected Actions
Store MeasureReport Resource

The MeasureSource stores the MeasureReport and is prepared to respond to queries for the MeasureReport resource by the MeasureConsumer

Query for MeasureReport Resource

The MeasureConsumer queries for the MeasureReport from the MeasureSource

Conformance

See the following CapabilityStatement resources for conformance requirements: