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