Skip to content

Specifying Population Criteria

Peter Muir MD edited this page Oct 19, 2019 · 19 revisions

To encourage consistency among measures, the following guidelines for specifying population criteria within a measure are proposed. The measure population criteria names and calculation methods used here are based on the Health Quality Measures Format (HQMF) HL7 standard.

Note that CQL allows both Patient and Population context expressions to be defined. For the purposes of measure definition with HQMF, all criteria expressions are Patient context. The Population context is used here to illustrate the measure scoring calculation as applied to the populations, but the criteria expressions are always Patient context.

Criteria Names

The name of an expression specifying a population criteria within a measure should always be the name of the criteria type:

  • "Initial Population"
  • "Denominator"
  • "Denominator Exclusion"
  • "Denominator Exception"
  • "Numerator"
  • "Numerator Exclusion"
  • "Measure Population"
  • "Measure Population Exclusion"
  • "Measure Observation" (Note that this is the name of a function, see the Continuous Variable section for more)
  • "Stratification"

Measures with Multiple Populations

When a measure has multiple populations, the criteria names will follow the convention above, adding the number of the population group to each criteria, e.g. "Initial Population 1", "Denominator 1", etc. Note that when multiple populations are present, the number of the group is added to all population groups, not just the groups other than the first.

For multiple population ratio measures that specify 2 initial populations, the populations would be named with an additional "_X" to distinguish the initial populations, e.g. "Initial Population 1_1", "Initial Population 1_2", "Initial Population 2_1", "Initial Population 2_2".

Note also that when a measure has multiple population groups, the expectation is that the measure would have multiple scores, one for each population group. The formulas for calculation of the groups do not change, they are the same as for single group measures, just calculated using the criteria for each group.

Population Criteria Result Types

For each type of measure, the set of applicable criteria are defined by the Health Quality Measure Format (HQMF) specification. In addition, the formula for calculating the measure score is implied by the type of the measure. The following sections describe the expected result type for population criteria for each type of measure, as well as explicitly defining the measure score calculation formula.

In addition to the measure type, measures generally fall into two categories, patient-based, and non-patient-based, such as episode-of-care-based. In general, patient-based measures count the number of patients in each population, while non-patient-based measures count the number of items (such as encounters) in each population. Although the calculation formulas are conceptually the same for both categories, for ease of expression, population criteria for patient-based measures return true or false, while non-patient-based measures return the item to be counted such as an encounter or procedure.

For stratification criteria, each measure type can have any number of stratification criteria, and the name for each one simply adds the number of the criteria, e.g. "Stratification 1", "Stratification 2", etc. The result type of the stratification criteria expressions must be the same as the result type for the other criteria types appropriate for that measure type.

Proportion Measures

The following population criteria types apply to proportion measures:

  • Initial Population
  • Denominator
  • Denominator Exclusion
  • Denominator Exception
  • Numerator
  • Numerator Exclusion
  • Stratification

The following snippet defines the measure score for a patient-based proportion measure:

context Patient

define "Denominator Membership":
  "Initial Population"
    and "Denominator"
    and not "Denominator Exclusion"
    and not ("Denominator Exception" and not "Numerator")

define "Numerator Membership":
  "Initial Population"
    and "Denominator"
    and not "Denominator Exclusion"
    and "Numerator"
    and not "Numerator Exclusion"

context Population

define "Measure Score":
  Count("Numerator Membership" IsMember where IsMember is true)
    / Count("Denominator Membership" IsMember where IsMember is true)

The above snippet is taken from this example.

For the Initial Population, for each patient, if the patient meets the Initial Population criteria, the patient is a member of the Initial Population.

For the Denominator Population, for each patient, if the patient meets the Initial Population criteria, and the patient meets the Denominator criteria, then exclusions are considered. If the patient meets a Denominator Exclusion criteria, or if the patient meets a Denominator Exception criteria and does not meet the Numerator criteria, the patient is not a member of the Denominator Population. Otherwise, the patient is a member of the Denominator Population.

For the Numerator Population, for each patient, if the patient meets the Initial Population criteria, and the patient meets the Denominator criteria, and the patient does not meet the Denominator Exclusion criteria, and the patient meets the Numerator criteria, and the patient does not meet the Numerator Exclusion criteria, then the patient is a member of the Numerator Population.

For patient-based measures, stratifications are determined by adding the stratification criteria for each stratification to the numerator and denominator membership expressions:

context Patient

define "Stratification Numerator Membership":
  "Numerator Membership"
    and "Stratification 1"

define "Stratification Denominator Membership":
  "Denominator Membership"
    and "Stratification 1"

For non-patient-based measures, the following snippet describes the measure score calculation:

context Patient

define "Numerator Membership":
  "Initial Population"
    intersect "Denominator"
    except "Denominator Exclusion"
    intersect "Numerator"
    except "Numerator Exclusion"
    
define "Denominator Membership":
  "Initial Population"
    intersect "Denominator"
    except "Denominator Exclusion"
    except ("Denominator Exception" except "Numerator")

context Population

define "Measure Score":
  Count("Numerator Membership") /
    Count("Denominator Membership")

This snippet is taken from this example.

For non-patient-based measures, stratification is computed by adding the stratification expression for each stratification as an intersection to the numerator and denominator expressions:

context Population

define "Stratification 1 Measure Score":
  Count(
    "Numerator Membership"
      intersect "Stratification 1"
  ) /
    Count(
      "Denominator Membership"
        intersect "Stratification 1"
    )

Ratio Measures

For ratio measures, the following population criteria types are applicable:

  • Initial Population
  • Denominator
  • Denominator Exclusion
  • Numerator
  • Numerator Exclusion
  • Measure Observation
  • Stratification

For patient-based ratio measures, all population criteria must return true or false (or null). For non-patient-based ratio measures, each population criteria must return the same type, such as an Encounter, or Procedure.

For ratio measures that include a Measure Observation, the measure observation is specified in the same way as it is for continuous variable measures. In particular, the Measure Observation is defined as a function that takes a single argument of the same type as the elements returned by all the population criteria, and the aggregation method is specified in the HQMF.

The following snippet describes the calculation formulas for a patient-based ratio measure:

context Patient

define "Denominator Membership":
  "Initial Population"
    and "Denominator"
    and not "Denominator Exclusion"

define "Numerator Membership":
  "Initial Population"
    and "Numerator"
    and not "Numerator Exclusion"

context Population

define "Measure Ratio Numerator":
  Count("Numerator Membership" IsMember where IsMember is true)

define "Measure Ratio Denominator":
  Count("Denominator Membership" IsMember where IsMember is true)

The above snippet is taken from this example.

For the Initial Population, for each patient, if the patient meets the Initial Population criteria, the patient is a member of the Initial Population.

For the Denominator Population, for each patient, if the patient meets the Initial Population criteria, and the patient meets the Denominator criteria, and the patient does not meet the Denominator Exclusion criteria, then the patient is a member of the Denominator Population.

For the Numerator Population, for each patient, if the patient meets the Initial Population criteria, and the patient meets the Numerator criteria, and the patient does not meet the Numerator Exclusion criteria, then the patient is a member of the Numerator Population.

For patient-based ratio measures, the stratifications are computed by adding the stratification criteria for each stratification to the numerator and denominator counts.

The following snippet describes the calculation formulas for a non-patient-based ratio measure:

context Patient

define "Numerator Membership":
  "Initial Population"
    intersect "Numerator"
    except "Numerator Exclusion"

define "Denominator Membership":
  "Initial Population"
    intersect "Denominator"
    except "Denominator Exclusion"

context Population

define "Measure Score Numerator":
  Count("Numerator Membership")

define "Measure Score Denominator":
  Count("Denominator Membership")

This snippet is taken from this example.

For non-patient-based ratio measures, stratifications are produced by intersecting the stratification criteria for each stratification with the numerator and denominator counts.

The following snippet describes the calculation formula for a non-patient-based continuous variable ratio measure that uses Avg to aggregate population measurements:

context Population 

define "Measure Score Numerator": 
    Avg( 
        "Numerator Membership" Numerator 
            return "Measure Observation"(Numerator) 
    ) 

define "Measure Score Denominator": 
    Avg( 
        "Denominator Membership" Denominator 
            return "Measure Observation"(Denominator) 
    ) 

This snippet is taken from this example.

Continuous Variable Measure

For continuous variable measures, the following population criteria types are applicable:

  • Initial Population
  • Measure Population
  • Measure Population Exclusion
  • Measure Observation
  • Stratification

For continuous variable measures, the measure observation is defined as a function that takes a single parameter of the type of elements returned by the population criteria. Each population criteria other than the measure observation must return the same type.

The following snippet illustrates how a continuous variable measure score is calculated:

context Patient

define "Measure Population Membership":
  "Initial Population"
    intersect "Measure Population"
    except "Measure Population Exclusion"

context Population

define "Measure Score":
  Avg("Measure Population Membership" PopulationMember
      return "Median ED Time"(PopulationMember)
  )

Note that the aggregation method (Avg in this case) is specified in the HQMF. The above snippet is taken from this example.

For the Initial Population, for each patient, if the patient meets the Initial Population criteria, the patient is a member of the Initial Population.

For the Measure Population, for each patient, if the patient meets the Initial Population criteria, and the patient meets the Measure Population criteria, and the patient does not meet the Measure Exclusion criteria, the patient is a member of the Measure Population.

Stratifications for continuous variable measures are computed by intersecting the stratification criteria for each stratification with the measure population expressions.

Cohort Definitions

For cohort definitions, only the Initial Population criteria type is used. For patient-based cohort definitions, the criteria should return a true or false (or null). For other types of cohort definitions, the criteria may return any type.

For the Initial Population, for each patient, if the patient meets the Initial Population criteria, the patient is a member of the Initial Population.

Population Criteria Makeup

As a general rule, to simplify the expression and implementation of quality measures, criteria should be specified independently. In other words, because the structure of a proportion measure implies that the denominator is a subset of the initial population, it is not necessary to restate the initial population criteria in the definition of the denominator. For example:

context Patient

define "Initial Population":
  AgeInYearsAt(start of "Measurement Period") >= 18

define "Denominator":
  exists (
    ["Encounter, Performed": "Inpatient"] Encounter
      where Encounter.startDatetime during "Measurement Period"
  )

In this case, the initial population is all patients who were at least 18 years old at the start of the measurement period. The denominator is then a subset of those patients in the initial population that also had an encounter starting during the measurement period. It is implied that the patients must be in the initial population in order to be in the denominator, so it does not need to be stated explicitly.

However, this is not a strict requirement because for non-patient-based measures, it is often easier to restate at least part of the criteria than to build up a completely independent expression. For example:

context Patient

define "Valid Encounter":
  ["Encounter, Performed": "Inpatient"] Encounter
    where Encounter.startDatetime during "Measurement Period"

define "Initial Population":
  "Valid Encounter" Encounter
    where AgeInYearsAt(Encounter.startDatetime) >= 18

define "Denominator":
  "Valid Encounter" Encounter
    with ["Diagnosis": "AMI"] AMIDiagnosis
      such that AMIDiagnosis.startDatetime <= Encounter.startDatetime

In this case, the Valid Encounter expression is used to simplify the expression of the initial population and denominator criteria, resulting in some overlap between them. The calculation is unaffected though, because the overlap is effectively just a restatement of the same criteria and will give the correct result when they are combined to calculate the measure score.

Wiki Index

Home

Authoring Patterns - QICore v4.1.1

Authoring Patterns - QICore v5.0.0

Authoring Patterns - QICore v6.0.0

Authoring Measures in CQL

Composite Measure Development

Cooking with CQL Examples

Cooking with CQL Q&A All Categories
Additional Q&A Examples

CQL 1.3 Impact Guidance

CQL Error Messages

Developers Introduction to CQL

Discussion Items

Example Measures

Formatting and Usage Topics

Formatting Conventions

Library Versioning

Negation in QDM

QDM Known Issues

Specific Occurrences

Specifying Population Criteria

Supplemental Data Elements

Terminology in CQL

Translator Options For Measure Development

Unions in CQL

Clone this wiki locally