STU3 Candidate

This page is part of the FHIR Specification (v1.8.0: STU 3 Draft). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions

The Clinical Quality Language (CQL) standard aims to unify the expression of logic for electronic Clinical Quality Measures (eCQM) and Clinical Decision Support (CDS). This document defines an approach to using CQL with Fast Health Interoperability Resources (FHIR) for defining eCQMs.

This module is used in conjunction with the Quality Improvement Core (QICore) FHIR profiles to define and invoke clinical quality measures.

This approach supercedes previous approaches to representing eCQMs using the Health Quality Measure Format (HQMF) .

The Measure resource builds on the general approach to representing knowledge artifacts and adds the metadata and structure information that is specific to quality measures:

Measure Structure

Quality measures follow a generally hierarchical structure that defines:

  • Population Groups: Groups of population criteria that define a particular focus of measurement. A given measure may include any number of population groups, each with different criteria for the various measure components.

    • Populations: Within each population group, a measure defines criteria appropriate to the type of measure being calculated. Each population type identifies a specific component of the calculation such as the numerator, denominator, and initial population.
    • Stratifiers: Additional criteria used to calculate the measure along different dimensions within the population such as age or gender. A measure may define any number of stratifiers for each population group.
  • Supplemental Data: Additional information that should be included with the calculated results of the measure such as individual age or gender. A measure may define any number of supplemental data elements.

The following table provides a requirements mapping from the content of an eMeasure to the elements defined in the Measure resource:

eMeasureCardinalityElementNotes
Title0..1Measure.title
Identifier0..1Measure.identifieridentifier type code as http://hl7.org/fhir/cqi/ecqm/Measure/Identifier/cms
Version Number0..1Measure.version
NQF Number0..1Measure.identifieridentifier type code as http://hl7.org/fhir/cqi/ecqm/Measure/Identifier/nqf
GUID0..1Measure.identifieridentifier type code as http://hl7.org/fhir/cqi/ecqm/Measure/Identifier/guid
Measure Steward0..1Measure.publisher
Measure Developer0..1Measure.contributortype.code of author
Endorser0..1Measure.contributortype.code of endorser
Description0..1Measure.description
Copyright0..1Measure.copyright
Reference0..*Measure.relatedResourcetype.code of citation
Disclaimer0..1disclaimerString (containing Markdown)
Measure Scoring0..1scoringCode, e.g. proportion, CV
Measure Type0..1typeCode, e.g. process, outcome
Risk Adjustment0..1riskAdjustmentString
Rate Aggregation0..1rateAggregationString
Rationale0..1rationaleString (containing Markdown)
Clinical Recommendation Statement0..1clinicalRecommendationStatementString (containing Markdown)
Improvement Notation0..1improvementNotationString, e.g. Higher score indicates better quality
Definition0..1definitionString (containing Markdown)
Guidance0..1guidanceString (containing Markdown)
Measure Set0..1setString, e.g. Preventive Care and Screening

As with other knowledge artifacts, logic is included by referencing a Library resource. Although the base resource allows for the measure to reference any number of libraries, for simplicity of managing sharing, this implementation guide requires that a measure reference only one Library, the primary measure library, and that this library contain all the named expressions required to define the measure structure.

Note that this restriction does not preclude sharing of logic between measures, it only requires that that sharing be explicitly done as dependencies within the referenced libraries, rather than allowing a measure to reference multiple libraries directly.

A measure can specify various types of populations, depending on the type of measure scoring being used. The following table shows which population criteria types are required (R), optional (O), or not permitted (NP) for proportion, ratio, and continuous variable measures. This table is adapted from Table 1 from the HQMF DSTU Release 2.1 specification, and Table 2.1 from the QDM-based HQMF IG .

MeasureTypeInitial PopulationDenominatorDenominator ExclusionDenominator ExceptionNumeratorNumerator ExcxlusionMeasure PopulationMeasure Population Exclusion
ProportionRROORONPNP
RatioRRONPRONPNP
Continuous VariableRNPNPNPNPNPRO
CohortRNPNPNPNPNPNPNP

The Measure resource then identifies specific named expressions within the referenced primary measure library that define the criteria for each population. For example, the following fragment illustrates the population criteria definitions for the CMS146 measure example:

<group>
  <identifier><value value="CMS146-group-1"/></identifier>
  <population>
    <type value="initial-population"/>
    <identifier><value value="initial-population-identifier"/></identifier>
    <criteria value="CMS146.InInitialPopulation"/>
  </population>
  <population>
    <type value="numerator"/>
    <identifier><value value="numerator-identifier"/></identifier>
    <criteria value="CMS146.InNumerator"/>
  </population>
  <population>
    <type value="denominator"/>
    <identifier><value value="denominator-identifier"/></identifier>
    <criteria value="CMS146.InDenominator"/>
  </population>
  <population>
    <type value="denominator-exclusion"/>
    <identifier><value value="denominator-exclusions-identifier"/></identifier>
    <criteria value="CMS146.InDenominatorExclusions"/>
  </population>
</group>

For quality measures that contain multiple populations, the criteria are specified once for each group. The group element contains an identifier that is used to uniquely identify the group within the measure, as well as within the quality reporting results.

Continuous variable measures may include a measure observation section. This section defines variables (for example, time from check-in to time of antibiotic administration) used to score particular aspects of performance. Measure observations are not population criteria in that they do not determine whether or not a patient is to be counted in a measure. Rather, measure observations are data elements to be collected on patients meeting the population criteria within a continuous variable measure.

Stratifiers and supplemental data are specified using the stratifier and supplementalData elements of the Measure resource. Stratification criteria are specified either as a reference to a CQL named expression within a Library (e.g. CMS146.AgesUpToNine), or as FHIR resource paths (e.g. Patient.gender). When the stratification criteria is an expression, the stratification will yield as many result groups as the expression returns. For example, if the expression returns a boolean, then there would be two stratification groups: true and false. When the stratification criteria is a FHIR resource path, there will be as many stratification groups as possible values for the resource path. For example, specifying Patient.gender will yield four stratification groups since FHIR has four gender codes: male, female, other, and unknown.

Supplemental data elements are also specified using FHIR resource paths, and the number of resulting groups for supplemental data is determined in the same way.

The data criteria for the primary library defines the data of interest in the measure as a set of DataRequirement elements. Each data requirement identifies specific types of data along with constraints that the data must meet. For example, one data requirement for CMS 146 identifies FHIR Condition resources that represent confirmed diagnoses of acute pharyngitis. Other data requirements for this measure include Encounters, DiagnosticReports and other FHIR resources representing specific data that is used to calculate the measure.

Specifying the data criteria in this way enables the following use cases:

  • Determining the set of data used by a particular eCQM.
  • Limited "scoop-and-filter" for creation of population reports.
  • Limited backwards compatbility with existing implementations of previous eCQM IGs.

Data criteria can be specified statically, or they can be inferred from the expressions referenced by the measure. The $dataRequirements operation can be invoked to retrieve the aggregate data requirements for the measure. This approach has two advantages:

  • When the data requirements for the expression contain dynamic criteria (such as date ranges relative to today), the results returned are based on the evaluation request time.
  • When the expressions involve multiple libraries, rather than having to retrieve and deal with the requirements for each library, the $dataRequirements operation can aggregate the requirements and return them as a single module-definition library.

The Health Quality Measure Format (HQMF) defines the electronic representation of an eMeasure but does not define a mechanism for invoking an eMeasure. FHIR defines both the representation of resources and a general mechanism for interacting with them via the OperationDefinition resource. Prior sections of this specification described the Measure representation of an eMeasure, this section describes the evaluateMeasure operation that is used to invoke an eMeasure and obtain the results.

FHIR defines a standard set of common interactions that include read, update, delete and search. In addition, FHIR defines a standard set of extended operations that can be performed on resources, resource types and system wide. The standard operations include profile validation, concept translation and value set expansion. FHIR also supports custom operations via the FHIR OperationDefinition resource. This resource offers a means to create a formal definition of a custom operation that can be performed on a FHIR server. For the purposes of measure evaluation we define a new custom operation with a code of $evaluate-measure.

The $evaluate-measure operation has the following properties:

  • Idempotent The operation may be invoked multiple times without side effects. Note that the result of invoking the operation may vary over time if patient data used in the eMeasure changes between invocations. Note also that the parameters supplied with the operation invocation can affect the results.
  • InvocationTarget The operation can be invoked on instances of the MeasureArtifact resource that represent a particular eMeasure or on the type of the resource with a parameter that specifies the eMeasure to calculate.

The effect of invoking the $evaluate-measure operation is to calculate the quality measure according to the supplied parameters and to return a MeasureReport resource through which the results will be made available. Note that because measure calculation may not be instantaneous, the MeasureReport resource provides a mechanism to handle long running calculations.

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

The above examples show how to obtain the results of evaluating the eMeasure with identifier "CMS146" for all patients over a measurement period that consists of all of 2014. Some items of note:

  • the first variant evaluates the operation on [base]/Measure which is the type of resource and specifies the eMeasure to evaluate using a parameter
  • the second variant evaluates the operation on [base]/Measure/CMS146 which is the Measure instance that represents that measure so there's no need to also include a reference to the eMeasure in the operation parameters
  • the HTTP GET method is used since the $evaluate-measure operation is idempotent
  • [base] is used as a shortcut for the base URI of the FHIR server
  • the type of the resource is Basic in the URI since FHIR does not allow use of alternate paths for profiles of resources
  • the period start and end values are both specified to a granularity of a year, the description of the parameters above explains why this results in a measure period that spans the entire year

The next example demonstrates how to obtain the results of evaluating the eMeasure with identifier "CMS146" for the patient with identifier "124" over a measurement period that consists of the first three months of 2014.

GET [base]/Basic/CMS146/$evaluate-measure?patient=124&periodStart=2014-01&periodEnd=2014-03

When eCQMs are represented with the Health Quality Measure Format (HQMF), a single HQMF document represents both the measure itself and the request. Meanwhile, the responses are represented as Quality Reporting Document Architecture (QRDA) documents. QRDA documents come in two flavors: Category I for individual patient reports and Category III for population reports.

When eCQMs are represented with FHIR resources, the measure is represented as a Measure resource, and the request is an HTTP GET conforming to the OperationDefinition described above. Meanwhile, the responses are represented as MeasureReport resources. Like QRDA, the MeasureReport allows for Category I (individual), Category II (patient-list), and Category III (population) reports.

A MeasureReport will contain one group of data for each group specified in the corresponding Measure, consisting of a set of population elements, one for each criteria defined in each group.

Population Measure Report

In addition, each group will contain stratifiers with a value stratum for each value defined by the stratifier criteria, for each criteria defined in the measure, as well as supplemental data value groups for each supplemental data element.

When using a MeasureReport resource to represent the results of an individual calculation, the MeasureReport SHALL have a type-code of "individual" and SHALL have a reference to a patient that is the subject of the report. In addition, the result SHOULD include a reference to a Bundle containing the patient-specific resources that were used to calculate the result.

Individual Measure Report

See the MeasureReport examples for a detailed illustration of how the data elements involved in the calculation of the measure are communicated through the evaluatedResources element.

When using a MeasureReport resource to represent a patient-list, the MeasureReport SHALL have a type-code of "patient-list" and SHALL NOT have a reference to a patient. Instead, the resource SHALL include for each population a reference to a List resource that references individual level MeasureReport resources for the same measure, one for each patient in the overall population.

Patient-List Measure Report

For example, the initial population report, in addition to providing the count, provides a reference to a List resource that identifies each of the patients that make up that population. For each of those patients, the List will contain a reference to an individual-level report for that patient.

  1. HL7 Standard: Clinical Quality Language Specification, Release 1.
  2. Quality Improvement Core (QICore) FHIR Implementation Guide.
  3. Representation of the Health Quality Measures Format (eMeasure) DSTU, Release 2.1.
  4. HL7 Version 3 Implementation Guide: Quality Data Model (QDM)-based Health Quality Measure Format (HQMF), R1 � US Realm, Volume 1 (Draft Standard for Trial Use)
  5. HL7 Version 3 Implementation Guide: Quality Data Model (QDM)-based Health Quality Measure Format (HQMF), R1 � US Realm, Volume 2 (Draft Standard for Trial Use)
  6. Quality Data Model, Version 4.2
  7. HL7 CDA R2 Implementation Guide: Quality Reporting Document Architecture - Category I (QRDA I) DSTU Release 3 (US Realm)