CMS FHIR Quality Measure Development IG
0.8.0-cibuild - CI Build International flag

CMS FHIR Quality Measure Development IG, published by Centers for Medicare & Medicaid Services (CMS). This guide is not an authorized publication; it is the continuous build for version 0.8.0-cibuild built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/cms-qmd/ and changes regularly. See the Directory of published versions

Coverage

FHIR uses the Coverage resource to represent a patient’s insurance or payment agreement. US Quality Core defines a US Quality Core Coverage profile derived from US Core Coverage.

Coverage in the US CQL implementation guide covers member or subscriber ID. This page records only what differs for quality measurement; see the Pattern Index for the full list of available patterns.

For this resource, see also modifier elements, search parameters, and cross-version considerations in that guide.

Coverage status

status is the only modifier element on Coverage, and neither the US Core nor the US Quality Core profile fixes it, so an expression must account for the values it may take. For most measure intent that means restricting to active coverage:

define "Active Coverage":
  [USQualityCore.Coverage] C
    where C.status = 'active'

Member or subscriber ID

See Member or subscriber ID.

The US Core Coverage profile slices identifier for the member ID, and USCoreElements provides memberID() for it along with policyNumber() for the subscriber ID. The profile also carries an invariant requiring either the member ID slice or subscriberId to be present, so logic reading one should be prepared for the other.

Payer

Measures that report payer as a supplemental data element take it from Coverage. SDE Payer in the SupplementalDataElements library retrieves coverages whose type is in a payer type value set and returns the type and period:

define "SDE Payer":
  [USQualityCore.Coverage: type in "Payer Type"] Payer
    where Payer.status = 'active'
    return {
      code: Payer.type,
      period: Payer.period
    }

Use the shared definition rather than reading Coverage directly, so that payer is represented consistently across measures; see the Refactored Index for its current version.