R4 Draft for Comment

This page is part of the FHIR Specification (v3.2.0: R4 Ballot 1). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3

Clinical Quality Information Work GroupMaturity Level: 2 Trial Use Compartments: Not linked to any defined compartments

This resource has 2 operations associated with it:

$evaluate-measureEvaluate Measure
$data-requirementsData Requirements

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

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

The official 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 not an idempotent operation

In Parameters:
NameCardinalityTypeBindingProfileDocumentation
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

measure0..1Reference(Measure)

The measure to evaluate. This parameter is only required when the operation is invoked on the resource type, it is not used when invoking the operation on a Measure instance

reportType0..1code

The type of measure report, patient, patient-list, or population. If not specified, a default value of patient will be used if the patient parameter is supplied, otherwise, population will be used

subject0..1Reference(Patient|Practitioner|Organization|Location|Device|Group)

Subject to evaluate against. If not specified, the measure will be evaluated for all subjects that meet the requirements of the measure. If specified, only the referenced subject(s) will be evaluated

practitioner0..1Reference(Practitioner)

Practitioner to evaluate. If specified, the measure will be evaluated only for patients whose primary practitioner is the identified practitioner

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

Out Parameters:
NameCardinalityTypeBindingProfileDocumentation
return1..1MeasureReport

The results of the measure calculation. See the MeasureReport resource for a complete description of the output of this operation

Note: as this 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 patient, or all patients if no patient is supplied, and return the results as a MeasureReport resource of the appropriate type

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

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

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

Returned on successful evaluation (Response):

HTTP/1.1 200 OK

<?xml version="1.0" encoding="UTF-8"?>
<MeasureReport xmlns="http://hl7.org/fhir">
  <id value="evaluate-measure-operation-response"/>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
	<!-- Generated... -->
    </div>
  </text>
  <contained>
    <Organization>
      <id value="reporter"/>
      <name value="Good Health Hospital"/>
    </Organization>
  </contained>
  <status value="complete"/>
  <type value="summary"/>
  <measure>
    <reference value="Measure/CMS146"/>
  </measure>
  <reportingOrganization>
    <reference value="#reporter"/>
  </reportingOrganization>
  <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>

 

The data-requirements operation aggregates and returns the parameters and data requirements for the measure and all its dependencies as a single module definition

The official URL for this operation definition is

 http://hl7.org/fhir/OperationDefinition/Measure-data-requirements

Formal Definition (as a OperationDefinition).

URL: [base]/Measure/[id]/$data-requirements

This is not an idempotent operation

In Parameters:
NameCardinalityTypeBindingProfileDocumentation
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

Out Parameters:
NameCardinalityTypeBindingProfileDocumentation
return1..1Library

The result of the requirements gathering is a module-definition Library that describes the aggregate parameters, data requirements, and dependencies of the measure

Note: as this 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 determine the aggregate set of data requirements and dependencies for the measure. The result is a Library resource with a type of module-definition that contains all the parameter definitions and data requirements of the libraries referenced by the measures. Implementations SHOULD aggregate data requirements intelligently (i.e. by collapsing overlapping data requirements)

Request data requirements for the CMS146 measure (Request):

GET [base]/Measure/CMS146/$data-requirements?periodStart=2014&periodEnd=2014

Returned on successful evaluation (Response):

HTTP/1.1 200 OK

{
  "resourceType": "Library",
  "type": {
    "coding": [
      {
        "code": "module-definition"
      }
    ]
  },
  "relatedArtifact": [
    {
      "type": "depends-on",
      "resource": {
        "reference": "Library/library-quick-model-definition"
      }
    }
  ],
  "dataRequirement": [
    {
      "type": "Condition",
      "codeFilter": [
        {
          "path": "code",
          "valueSetString": "Other Female Reproductive Conditions"
        }
      ]
    },
    {
      "type": "Patient"
    },
    {
      "type": "Condition",
      "codeFilter": [
        {
          "path": "category",
          "valueCode": [
            "diagnosis"
          ]
        },
        {
          "path": "clinicalStatus",
          "valueCode": [
            "confirmed"
          ]
        },
        {
          "path": "code",
          "valueSetString": "2.16.840.1.113883.3.464.1003.102.12.1011"
        }
      ]
    },
    {
      "type": "Condition",
      "codeFilter": [
        {
          "path": "category",
          "valueCode": [
            "diagnosis"
          ]
        },
        {
          "path": "clinicalStatus",
          "valueCode": [
            "confirmed"
          ]
        },
        {
          "path": "code",
          "valueSetString": "2.16.840.1.113883.3.464.1003.102.12.1012"
        }
      ]
    },
    {
      "type": "Encounter",
      "codeFilter": [
        {
          "path": "status",
          "valueCode": [
            "finished"
          ]
        },
        {
          "path": "class",
          "valueCode": [
            "ambulatory"
          ]
        },
        {
          "path": "type",
          "valueSetString": "2.16.840.1.113883.3.464.1003.101.12.1061"
        }
      ]
    },
    {
      "type": "DiagnosticReport",
      "codeFilter": [
        {
          "path": "diagnosis",
          "valueSetString": "2.16.840.1.113883.3.464.1003.198.12.1012"
        }
      ]
    },
    {
      "type": "Medication",
      "codeFilter": [
        {
          "path": "code",
          "valueSetString": "2.16.840.1.113883.3.464.1003.196.12.1001"
        }
      ]
    },
    {
      "type": "MedicationRequest",
      "codeFilter": [
        {
          "path": "status",
          "valueCode": [
            "active"
          ]
        },
        {
          "path": "medication.code",
          "valueSetString": "2.16.840.1.113883.3.464.1003.196.12.1001"
        }
      ]
    },
    {
      "type": "MedicationStatement",
      "codeFilter": [
        {
          "path": "status",
          "valueCode": [
            "completed"
          ]
        },
        {
          "path": "medication.code",
          "valueSetString": "2.16.840.1.113883.3.464.1003.196.12.1001"
        }
      ]
    }
  ]
}