This page is part of the Situational Awareness for Novel Epidemic Response (v1.0.0: STU 1) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions
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.
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.
Figure 2.4-1: Compute Measure Use Case Diagram
Actor | Role |
---|---|
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. |
Standard | Name |
---|---|
FHIR-R4 | HL7 FHIR Release 4.0 |
RFC-7230 | Hypertext Transfer Protocol - HTTP/1.1 |
NDJSON | Newline Delimited JSON |
<?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="291px" preserveAspectRatio="none" style="width:596px;height:291px;" version="1.1" viewBox="0 0 596 291" width="596px" 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="69.5" y="81.9609"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="30.3516" style="stroke:#A80036;stroke-width:1.0;" width="10" x="69.5" y="147.3125"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="30.3516" style="stroke:#A80036;stroke-width:1.0;" width="10" x="248.5" y="147.3125"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="368" y="208.0156"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="368" y="252.3672"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="510" y="208.0156"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="510" y="252.3672"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="74" x2="74" y1="41.6094" y2="284.3672"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="253" x2="253" y1="41.6094" y2="284.3672"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="373" x2="373" y1="41.6094" y2="284.3672"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="515" x2="515" y1="41.6094" y2="284.3672"/><rect fill="#FEFECE" filter="url(#fqy6sdfdamp75)" height="31.6094" style="stroke:#A80036;stroke-width:1.5;" width="135" x="5" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="121" x="12" y="26.5332">Measure Computer</text><rect fill="#FEFECE" filter="url(#fqy6sdfdamp75)" height="31.6094" style="stroke:#A80036;stroke-width:1.5;" width="93" x="205" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="79" x="212" y="26.5332">Data Source</text><rect fill="#FEFECE" filter="url(#fqy6sdfdamp75)" height="31.6094" style="stroke:#A80036;stroke-width:1.5;" width="118" x="312" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="104" x="319" y="26.5332">Measure Source</text><rect fill="#FEFECE" filter="url(#fqy6sdfdamp75)" height="31.6094" style="stroke:#A80036;stroke-width:1.5;" width="138" x="444" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="124" x="451" y="26.5332">Measure Consumer</text><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="28" style="stroke:#A80036;stroke-width:1.0;" width="10" x="69.5" y="81.9609"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="30.3516" style="stroke:#A80036;stroke-width:1.0;" width="10" x="69.5" y="147.3125"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="30.3516" style="stroke:#A80036;stroke-width:1.0;" width="10" x="248.5" y="147.3125"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="368" y="208.0156"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="368" y="252.3672"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="510" y="208.0156"/><rect fill="#FFFFFF" filter="url(#fqy6sdfdamp75)" height="14" style="stroke:#A80036;stroke-width:1.0;" width="10" x="510" y="252.3672"/><line style="stroke:#A80036;stroke-width:1.0;" x1="79.5" x2="121.5" y1="73.9609" y2="73.9609"/><line style="stroke:#A80036;stroke-width:1.0;" x1="121.5" x2="121.5" y1="73.9609" y2="86.9609"/><line style="stroke:#A80036;stroke-width:1.0;" x1="80.5" x2="121.5" y1="86.9609" y2="86.9609"/><polygon fill="#A80036" points="90.5,82.9609,80.5,86.9609,90.5,90.9609,86.5,86.9609" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="121" x="86.5" y="69.1045">1. Compute Measure</text><polygon fill="#A80036" points="236.5,143.3125,246.5,147.3125,236.5,151.3125,240.5,147.3125" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="79.5" x2="242.5" y1="147.3125" y2="147.3125"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="155" x="86.5" y="142.4561">2. Search FHIR Resources</text><polygon fill="#A80036" points="85.5,173.6641,75.5,177.6641,85.5,181.6641,81.5,177.6641" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="79.5" x2="252.5" y1="177.6641" y2="177.6641"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="118" x="91.5" y="172.8076">3. Search Response</text><polygon fill="#A80036" points="498,204.0156,508,208.0156,498,212.0156,502,208.0156" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="378" x2="504" y1="208.0156" y2="208.0156"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="107" x="385" y="203.1592">4. Report Measure</text><polygon fill="#A80036" points="384,218.0156,374,222.0156,384,226.0156,380,222.0156" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="378" x2="514" y1="222.0156" y2="222.0156"/><polygon fill="#A80036" points="389,248.3672,379,252.3672,389,256.3672,385,252.3672" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="383" x2="509" y1="252.3672" y2="252.3672"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="104" x="395" y="247.5107">5. Query Measure</text><polygon fill="#A80036" points="503,262.3672,513,266.3672,503,270.3672,507,266.3672" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="373" x2="509" y1="266.3672" y2="266.3672"/></g></svg>
Figure 2.4-2: Compute Measure Interactions
The Measure Computer computes the measure report for the current reporting period.
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.
The Measure Computer prepares a Measure Report.
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
Data is needed to compute a measure.
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.
Measure Computer requests data from a Data Source.
The Measure Computer performs a FHIR Search operation to retrieve the selected resources.
The Data Source returns the requested data.
The Data Source responds with requested resources.
The resources will conform to the profiles specified in a national or regional Implementation Guide
The Data Source returns the requested resources.
The Measure Computer reports the newly computed measure for the current reporting period.
A new MeasureReport resource is available for reporting.
The Measure Computer reports the computed result via the grouped MeasureSource actor.
The MeasureSource stores the MeasureReport by creating or updating it on the MeasureConsumer
The MeasureConsumer processes the MeasureReport given in the create/update interaction.
The Measure Computer responds to a query for a Measure Report with the newly computed report for the current reporting period.
The Measure Consumer has requested measure reports with criteria matching the newly created report.
The Measure Computer reports the computed result via the grouped MeasureSource actor.
The MeasureSource stores the MeasureReport and is prepared to respond to queries for the MeasureReport resource by the MeasureConsumer
The MeasureConsumer queries for the MeasureReport from the MeasureSource
See the following CapabilityStatement resources for conformance requirements: