PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.us.cqfmeasures@5.0.0-ballot
    http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/computable-measure-cqfm
description: The CQFM Computable Measure Profile describes minimum expectations for a computable electronic Clinical Quality Measure (eCQM), including the use of a computable library, and the use of expressions or identifiers for all criteria.
package_name: hl7.fhir.us.cqfmeasures
derivation: constraint
name: CQFMComputableMeasure
type: Measure
elements:
  group:
    constraint:
      cmp-14: {human: Proportion measures may have at most one denominator-exclusion, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''proportion'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''denominator-exclusion'').count() <= 1'}
      cmp-23: {human: Ratio measures may have at most one numerator-exclusion, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''ratio'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''numerator-exclusion'').count() <= 1'}
      cmp-12: {human: Proportion measures must have one and only one denominator, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''proportion'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''denominator'').count() = 1'}
      cmp-26: {human: Continuous variable measures must have one and only one measure population, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''continuous-variable'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''measure-population'').count() = 1'}
      cmp-27: {human: Continuous variable measures must have one and only one measure observation, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''continuous-variable'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''measure-observation'').count() = 1'}
      cmp-10: {human: Cohort measures have one and only one population criteria and that criteria has a code of initial-population, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''cohort'' implies population.count() = 1 and population.select(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''initial-population'').allTrue()'}
      cmp-8: {human: Scoring unit may only be specified at the root if the scoring is also specified at the root, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit'').exists() implies extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists()'}
      cmp-21: {human: Ratio measures may have at most one denominator-exclusion, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''ratio'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''denominator-exclusion'').count() <= 1'}
      cmp-19: {human: Ratio measures must have one and only one denominator, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''ratio'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''denominator'').count() = 1'}
      cmp-31: {human: Composite measures must specify composite scoring and at least one component, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''composite'' implies extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component'').exists()'}
      cmp-16: {human: Proportion measures may have at most one numerator-exclusion, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''proportion'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''numerator-exclusion'').count() <= 1'}
      cmp-9: {human: Improvement notation must be specified for scoring types other than cohort, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value in (''proportion'' | ''ratio'' | ''continuous-variable'') implies extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-improvementNotation'').exists()'}
      cmp-13: {human: Proportion measures must have one and only one numerator, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''proportion'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''numerator'').count() = 1'}
      cmp-24: {human: 'Ratio measures may not have other than initial population, denominator, numerator, denominator-exclusion, numerator-exclusion, and measure-observation criteria', severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''ratio'' implies population.select(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code in (''initial-population'' | ''numerator'' | ''denominator'' | ''denominator-exclusion'' | ''measure-observation'' | ''numerator-exclusion'')).allTrue()'}
      cmp-29: {human: 'Continuous variable measures may not have other than initial population, measure-population, measure-population-exclusion, and measure-observation criteria', severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''continuous-variable'' implies population.select(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code in (''initial-population'' | ''measure-population'' | ''measure-population-exclusion'' | ''measure-observation'')).allTrue()'}
      cmp-30: {human: Composite measures may not specify population criteria, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''composite'' implies population.count() = 0'}
      cmp-18: {human: Ratio measures must have between 1 and 2 initial population criteria, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''ratio'' implies (population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''initial-population'').count() in (1 | 2))'}
      cmp-28: {human: Continuous variable measures may have at most one measure population exclusion, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''continuous-variable'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''measure-population-exclusion'').count() <= 1'}
      cmp-22: {human: Ratio measures may have at most two measure-observation criteria, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''ratio'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''measure-observation'').count() <= 2'}
      cmp-25: {human: Continuous variable measures must have one and only one initial population criteria, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''continuous-variable'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''initial-population'').count() = 1'}
      cmp-11: {human: Proportion measures must have one and only one initial population, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''proportion'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''initial-population'').count() = 1'}
      cmp-20: {human: Ratio measures must have one and only one numerator, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''ratio'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''numerator'').count() = 1'}
      cmp-17: {human: 'Proportion measures may not have other than initial population, denominator, numerator, denominator-exclusion, denominator-exception, and numerator-exclusion criteria', severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''proportion'' implies population.select(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code in (''initial-population'' | ''numerator'' | ''denominator'' | ''denominator-exclusion'' | ''denominator-exception'' | ''numerator-exclusion'')).allTrue()'}
      cmp-15: {human: Proportion measures may have at most one denominator-exception, severity: error, expression: 'extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').exists() and extension(''http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring'').value.coding.code contains ''proportion'' implies population.where(code.coding.where(system = ''http://terminology.hl7.org/CodeSystem/measure-population'').code contains ''denominator-exception'').count() <= 1'}
    mustSupport: true
    index: 10
    extensions:
      compositeScoring: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring', min: 0, max: 1, type: Extension, mustSupport: true, index: 15}
      scoringUnit: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit', min: 0, max: 1, type: Extension, mustSupport: true, index: 13}
      type: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-type', min: 0, type: Extension, mustSupport: false, index: 17}
      component: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component', min: 0, type: Extension, mustSupport: true, index: 16}
      scoringPrecision: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringPrecision', min: 0, max: 1, type: Extension, index: 14}
      populationBasis: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis', min: 0, max: 1, type: Extension, mustSupport: true, index: 11}
      riskAdjustment: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment', min: 0, max: 1, type: Extension, mustSupport: false, index: 18}
      scoring: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring', min: 0, max: 1, type: Extension, mustSupport: true, index: 12}
      improvementNotation: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-improvementNotation', min: 0, max: 1, type: Extension, mustSupport: true, index: 20}
      rateAggregation: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation', min: 0, max: 1, type: Extension, mustSupport: false, index: 19}
    elements:
      extension:
        type: Extension
        mustSupport: true
        url: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
        index: 11
        slicing:
          slices:
            compositeScoring:
              match: {}
              schema: {type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring', index: 15}
              min: 0
              max: 1
            scoringUnit:
              match: {}
              schema: {type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit', index: 13}
              min: 0
              max: 1
            type:
              match: {}
              schema: {type: Extension, mustSupport: false, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-type', index: 17}
              min: 0
            component:
              match: {}
              schema: {type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component', index: 16}
              min: 0
            scoringPrecision:
              match: {}
              schema: {type: Extension, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringPrecision', index: 14}
              min: 0
              max: 1
            populationBasis:
              match: {}
              schema: {type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis', index: 11}
              min: 0
              max: 1
            riskAdjustment:
              match: {}
              schema: {type: Extension, mustSupport: false, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment', index: 18}
              min: 0
              max: 1
            scoring:
              match: {}
              schema: {type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring', index: 12}
              min: 0
              max: 1
            improvementNotation:
              match: {}
              schema: {type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-improvementNotation', index: 20}
              min: 0
              max: 1
            rateAggregation:
              match: {}
              schema: {type: Extension, mustSupport: false, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation', index: 19}
              min: 0
              max: 1
      population:
        constraint:
          cmp-32: {human: Computable measures must use text/cql-expression or text/cql-identifier for all criteria, severity: error, expression: criteria.language in ('text/cql-expression' | 'text/cql-identifier')}
        mustSupport: true
        index: 21
      stratifier:
        constraint:
          cmp-33: {human: 'Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria', severity: error, expression: criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath')}
        mustSupport: true
        index: 22
        extensions:
          appliesTo: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo', min: 0, type: Extension, short: 'Which population should this stratification apply to? If none is specified, the stratification applies to all populations in the group.', mustSupport: false, index: 23}
        elements:
          extension:
            type: Extension
            short: Which population should this stratification apply to? If none is specified, the stratification applies to all populations in the group.
            mustSupport: false
            url: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo
            index: 23
            slicing:
              slices:
                appliesTo:
                  match: {}
                  schema: {type: Extension, short: 'Which population should this stratification apply to? If none is specified, the stratification applies to all populations in the group.', mustSupport: false, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo', index: 23}
                  min: 0
          component:
            constraint:
              cmp-34: {human: 'Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier component criteria', severity: error, expression: criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath')}
            mustSupport: true
            index: 24
  type: {mustSupport: true, index: 6}
  supplementalData:
    constraint:
      cmp-35: {human: 'Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all supplemental data criteria', severity: error, expression: criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath')}
    mustSupport: true
    index: 25
  library: {type: canonical, mustSupport: true, index: 4}
  extension:
    type: Extension
    mustSupport: true
    url: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
    index: 0
    slicing:
      slices:
        populationBasis:
          match: {}
          schema: {type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis', index: 0}
          min: 0
          max: 1
        scoringUnit:
          match: {}
          schema: {type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit', index: 1}
          min: 0
          max: 1
        effectiveDataRequirements:
          match: {}
          schema: {type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements', index: 2}
          min: 0
          max: 1
        scoringPrecision:
          match: {}
          schema: {type: Extension, url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringPrecision', index: 3}
          min: 0
          max: 1
  riskAdjustment: {mustSupport: false, index: 7}
  scoring:
    binding: {strength: extensible, valueSet: 'http://terminology.hl7.org/ValueSet/measure-scoring'}
    mustSupport: true
    index: 5
  improvementNotation:
    binding: {strength: required, valueSet: 'http://terminology.hl7.org/ValueSet/measure-improvement-notation'}
    mustSupport: true
    index: 9
  rateAggregation: {mustSupport: false, index: 8}
package_version: 5.0.0-ballot
extensions:
  populationBasis: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis', min: 0, max: 1, type: Extension, mustSupport: true, index: 0}
  scoringUnit: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit', min: 0, max: 1, type: Extension, mustSupport: true, index: 1}
  effectiveDataRequirements: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements', min: 0, max: 1, type: Extension, mustSupport: true, index: 2}
  scoringPrecision: {url: 'http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringPrecision', min: 0, max: 1, type: Extension, index: 3}
class: profile
kind: resource
url: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/computable-measure-cqfm
base: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/measure-cqfm
version: 5.0.0-ballot