R6 Ballot (1st Draft)

This page is part of the FHIR Specification v6.0.0-ballot1: Release 6 Ballot (1st Draft) (see Ballot Notes). The current version is 5.0.0. For a full list of available versions, see the Directory of published versions

Clinical Quality Information icon Work Group Maturity Level: 3Trial Use Compartments: N/A

The evaluate-measure operation is used to calculate an eMeasure and obtain the results.

The canonical URL for this operation definition is

 http://hl7.org/fhir/OperationDefinition/Measure-evaluate-measure

Formal Definition (as a OperationDefinition).

URL: [base]/Measure/$evaluate-measure

URL: [base]/Measure/[id]/$evaluate-measure

This is an idempotent operation

In Parameters:
NameScopeCardinalityTypeBindingProfileDocumentation
measuretype0..1Measure

The measure to evaluate. If the operation is invoked at the instance level, this parameter is not allowed; if the operation is invoked at the type level, this parameter is required, or a url (and optionally version) must be supplied.

urltype0..1canonical(PlanDefinition)

The url of the plan measure to be applied. If the operation is invoked at the instance level, this parameter is not allowed; if the operation is invoked at the type level, this parameter (and optionally the version), or the measure parameter must be supplied

versiontype0..1string

The version of the measure to be applied. If the operation is invoked at the instance level, this parameter is not allowed; if the operation is invoked at the type level, this parameter may only be used if the url parameter is supplied.

subject0..1string
(reference)

Subject for which the measure will be calculated. The subject may be a Patient, Practitioner, PractitionerRole, Organization, Location, Device, or Group. Subjects provided in this parameter will be resolved as the subject of the measure based on the type of the subject. If multiple subjects of the same type are provided, the behavior is implementation-defined

periodStart1..1date

The start of the measurement period. In keeping with the semantics of the date parameter used in the FHIR search operation, the period will start at the beginning of the period implied by the supplied timestamp. E.g. a value of 2014 would set the period start to be 2014-01-01T00:00:00 inclusive

periodEnd1..1date

The end of the measurement period. The period will end at the end of the period implied by the supplied timestamp. E.g. a value of 2014 would set the period end to be 2014-12-31T23:59:59 inclusive

reportType0..1code

The type of measure report: individual, subject-list, or summary. If not specified, a default value of individual will be used if the subject parameter is supplied, otherwise, summary will be used. NOTE: Implementations should support the use of subject for individual and population for summary for backwards compatibility with existing implementations.

provider0..1string
(reference)

The provider for which the report will be run. This may be a reference to a Practitioner, PractitionerRole, or Organization. If specified, the measure will be calculated for subjects that have a primary relationship to the identified provider. How this relationship is determined is implementation-specific.

location0..1string
(reference)

The location for which the report will be run.

lastReceivedOn0..1dateTime

The date the results of this measure were last received. This parameter is only valid for patient-level reports and is used to indicate when the last time a result for this patient was received. This information can be used to limit the set of resources returned for a patient-level report

parameters0..1Parameters

Any input parameters for the evaluation. Parameters defined in this input will be made available by name to the CQL expression. Parameter types are mapped to CQL as specified in the Using CQL topic of the Clinical Reasoning Module. If a parameter appears more than once in the input Parameters resource, it is represented with a List in the input CQL. If a parameter has parts, it is represented as a Tuple in the input CQL.

Out Parameters:
NameScopeCardinalityTypeBindingProfileDocumentation
return0..*Bundle

The results of the measure calculation. The result of this operation will be a Bundle for each input subject, where the first entry of the Bundle is a MeasureReport representing the results of the calculation, and subsequent entries in the Bundle are resources created and/or evaluated as part of the calculation. See the MeasureReport resource for a complete description of the output of this operation. Note that implementations may choose to return a MeasureReport with a status of pending to indicate that the report is still being generated. In this case, the client can use a polling method to continually request the MeasureReport until the status is updated to complete

Note: as this is the only out parameter, it is a resource, and it has the name 'return', the result of this operation is returned directly as a resource

The effect of invoking this operation is to calculate the measure for the given subject(s), or all subjects if no subject is supplied. For individual and subject-list reports, the result is a set of Bundles, one for each evaluated subject, where the first entry in each bundle is a MeasureReport resource, and subsequent entries in the Bundle are resources evaluated or created as part of the measure evaluation. For the summary report, the result of this operation is a single bundle with a single MeasureReport of type summary. Note that whether or not this operation affects the state of the server depends on whether the server persists the generated MeasureReport. If the MeasureReport is not persisted, this operation can be invoked with GET

Request: Request evaluation of the CMS146 measure for patient 124 over a measurement period of the first 3 months of 2014

GET [base]/Measure/CMS146/$evaluate-measure?periodStart=2014&periodEnd=2014

GET [base]/Measure/CMS146/$evaluate-measure?subject=124&periodStart=2014-01&periodend=2014-03

Response: Returned on successful evaluation

HTTP/1.1 200 OK

<?xml version="1.0" encoding="UTF-8"?>
<Parameters  xmlns="http://hl7.org/fhir">
  <Bundle>
    <entry>
      <resource>
        <MeasureReport>
          <id value="evaluate-measure-operation-response"/>
          <text>
            <status value="generated"/>
            <div xmlns="http://www.w3.org/1999/xhtml">
        	<!-- Generated... -->
            </div>
          </text>
          <status value="complete"/>
          <type value="summary"/>
          <measure value="http://example.org/fhir/Measure/CMS146"/>
          <reporter>
            <reference value="Organization/reporter"/>
          </reporter>
          <period>
              <start value="2014-01-01" />
              <end value="2014-03-31" />
          </period>
          <group id="CMS146-group-1">
            <population>
              <code><coding><code value="initial-population"/></coding></code>
              <count value="500"/>
            </population>
            <population>
              <code><coding><code value="numerator"/></coding></code>
              <count value="200"/>
            </population>
            <population>
              <code><coding><code value="denominator"/></coding></code>
              <count value="500"/>
            </population>
            <population>
              <code><coding><code value="denominator-exclusion"/></coding></code>
              <count value="100"/>
            </population>
            <stratifier>
              <code><text value="stratifier-ages-up-to-9"/></code>
              <stratum>
                <value><text value="true"/></value>
                <population>
                  <code><coding><code value="initial-population"/></coding></code>
                  <count value="250"/>
                </population>
                <population>
                  <code><coding><code value="numerator"/></coding></code>
                  <count value="100"/>
                </population>
                <population>
                  <code><coding><code value="denominator"/></coding></code>
                  <count value="250"/>
                </population>
                <population>
                  <code><coding><code value="denominator-exclusion"/></coding></code>
                  <count value="50"/>
                </population>
              </stratum>
              <stratum>
                <value><text value="false"/></value>
                <population>
                  <code><coding><code value="initial-population"/></coding></code>
                  <count value="250"/>
                </population>
                <population>
                  <code><coding><code value="numerator"/></coding></code>
                  <count value="100"/>
                </population>
                <population>
                  <code><coding><code value="denominator"/></coding></code>
                  <count value="250"/>
                </population>
                <population>
                  <code><coding><code value="denominator-exclusion"/></coding></code>
                  <count value="50"/>
                </population>
              </stratum>
            </stratifier>
            <stratifier>
              <code><text value="stratifier-ages-10-plus"/></code>
              <stratum>
                <value><text value="true"/></value>
                <population>
                  <code><coding><code value="initial-population"/></coding></code>
                  <count value="250"/>
                </population>
                <population>
                  <code><coding><code value="numerator"/></coding></code>
                  <count value="100"/>
                </population>
                <population>
                  <code><coding><code value="denominator"/></coding></code>
                  <count value="250"/>
                </population>
                <population>
                  <code><coding><code value="denominator-exclusion"/></coding></code>
                  <count value="50"/>
                </population>
              </stratum>
              <stratum>
                <value><text value="false"/></value>
                <population>
                  <code><coding><code value="initial-population"/></coding></code>
                  <count value="250"/>
                </population>
                <population>
                  <code><coding><code value="numerator"/></coding></code>
                  <count value="100"/>
                </population>
                <population>
                  <code><coding><code value="denominator"/></coding></code>
                  <count value="250"/>
                </population>
                <population>
                  <code><coding><code value="denominator-exclusion"/></coding></code>
                  <count value="50"/>
                </population>
              </stratum>
            </stratifier>
            <stratifier>
              <code><text value="stratifier-gender"/></code>
              <stratum>
                <value><text value="male"/></value>
                <population>
                  <code><coding><code value="initial-population"/></coding></code>
                  <count value="250"/>
                </population>
                <population>
                  <code><coding><code value="numerator"/></coding></code>
                  <count value="100"/>
                </population>
                <population>
                  <code><coding><code value="denominator"/></coding></code>
                  <count value="250"/>
                </population>
                <population>
                  <code><coding><code value="denominator-exclusion"/></coding></code>
                  <count value="50"/>
                </population>
              </stratum>
              <stratum>
                <value><text value="female"/></value>
                <population>
                  <code><coding><code value="initial-population"/></coding></code>
                  <count value="250"/>
                </population>
                <population>
                  <code><coding><code value="numerator"/></coding></code>
                  <count value="100"/>
                </population>
                <population>
                  <code><coding><code value="denominator"/></coding></code>
                  <count value="250"/>
                </population>
                <population>
                  <code><coding><code value="denominator-exclusion"/></coding></code>
                  <count value="50"/>
                </population>
              </stratum>
              <stratum>
                <value><text value="other"/></value>
                <population>
                  <code><coding><code value="initial-population"/></coding></code>
                  <count value="0"/>
                </population>
                <population>
                  <code><coding><code value="numerator"/></coding></code>
                  <count value="0"/>
                </population>
                <population>
                  <code><coding><code value="denominator"/></coding></code>
                  <count value="0"/>
                </population>
                <population>
                  <code><coding><code value="denominator-exclusion"/></coding></code>
                  <count value="0"/>
                </population>
              </stratum>
              <stratum>
                <value><text value="unknown"/></value>
                <population>
                  <code><coding><code value="initial-population"/></coding></code>
                  <count value="0"/>
                </population>
                <population>
                  <code><coding><code value="numerator"/></coding></code>
                  <count value="0"/>
                </population>
                <population>
                  <code><coding><code value="denominator"/></coding></code>
                  <count value="0"/>
                </population>
                <population>
                  <code><coding><code value="denominator-exclusion"/></coding></code>
                  <count value="0"/>
                </population>
              </stratum>
            </stratifier>
          </group>
        </MeasureReport>
      </resource>
    </entry>
    <entry>
      <resource>
        <Organization>
          <id value="reporter"/>
          <name value="Good Health Hospital"/>
        </Organization>
      </resource>
    </entry>
  </Bundle>
</Parameters>

 

For more information about operations, including how they are invoked, see Operations.