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

Conditions

FHIR represents both problem list items and encounter diagnoses with the Condition resource, distinguished by the category element. US Quality Core profiles them separately as Condition Problems and Health Concerns and Condition Encounter Diagnosis.

Authoring patterns for conditions are documented in Condition in the US CQL implementation guide, covering category, active and verified conditions, historical conditions, onset and abatement, and evidence of a diagnosis during an encounter. This page records only what differs for quality measurement; see the Pattern Index for the full list of available patterns.

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

NOTE: Retrieves in the US CQL patterns are written against the US Core model, and the shared definitions in USCoreElements — including All Conditions, which unions problem list items, health concerns, and encounter diagnoses — retrieve US Core-conformant instances. Measures requiring US Quality Core conformance retrieve against US Quality Core directly, and therefore union the two profiles themselves.

Active conditions

See Active conditions and Category.

Quality measures are evaluated retrospectively, so isActive() — which tests the current clinicalStatus — should not be used to establish that a condition was active during the measurement period. Use prevalenceInterval() instead.

The category functions are isProblemListItem() and isEncounterDiagnosis() in FHIRCommon, and isHealthConcern() in USCoreCommon. Where measure intent covers a condition regardless of how it was recorded, the category check may be omitted.

Verified Conditions

See Verified conditions.

Measure logic should use the verification-status functions defined in FHIRCommon — isVerified() and verified(), along with isConfirmed(), isUnconfirmed(), isProvisional(), isDifferential(), isRefuted(), and their list-valued forms — rather than re-declaring them locally. QICoreCommon’s verified() is deprecated in favor of the FHIRCommon function; see the Refactored Index.

Encounters with a condition

See Evidence of diagnosis during an encounter.

Measures have a third source of diagnosis information beyond Encounter.reasonCode and Encounter.reasonReference: the diagnosis codes captured on a claim. CQMCommon.encounterDiagnosis() returns the encounter diagnoses for an encounter; claim diagnoses come from the Claim Item Diagnosis element in the ClaimElements library, documented in Claim:

define "Encounters With A Diabetes Condition":
  "Completed Encounters During The Measurement Period" CompletedEncounter
    where CompletedEncounter.reasonCode in "Diabetes"
      or CompletedEncounter.encounterDiagnosis().code in "Diabetes"

Not all systems populate both reasonCode and reasonReference, so logic should allow for either. Where the prevalence period or onset of the condition is needed, reasonReference is required, because that information lives on the Condition resource rather than the Encounter.

History of a condition

See Historical conditions.

Because US Quality Core profiles problem list items and encounter diagnoses separately, a history query retrieves both:

define "History Of Diabetes":
  [USQualityCore.ConditionProblemsHealthConcerns: "Diabetes"]
    union [USQualityCore.ConditionEncounterDiagnosis: "Diabetes"]

Where measure intent calls for additional filtering, the two arms may need different criteria — verificationStatus for problem list items and health concerns, and the status of the associated encounter for encounter diagnoses.

Onset, abatement, and prevalence period

See Onset, abatement, and prevalence period.

abatementInterval() and prevalenceInterval() are defined in FHIRCommon; they were previously in QICoreCommon. prevalenceInterval() returns the interval from onset to abatement, closed at the end when the condition is active (active, recurrence, or relapse) and open otherwise. Prefer it over clinicalStatus whenever the question is whether a condition was active during a period.

Conditions present on admission and principal diagnoses

Present on admission, principal diagnosis, primary procedure, and discharge disposition are not elements of the Condition resource. Each is a billing-related element with more than one representation:

  • In the clinical record they are represented on the Encounter — on Encounter.diagnosis for present on admission, principal diagnosis, and primary procedure, and on Encounter.hospitalization for discharge disposition. These are documented in Encounters.
  • In claim information they are represented on the Claim for provider-submitted claims, and on ExplanationOfBenefit for payer-adjudicated claims, documented in Claim.

Which representation a measure should use depends on measure intent; see Billing-related elements for the trade-off.