This page is part of the Quality Measure STU2 for FHIR R4 Implementation Guide (v4.0.0-ballot: STU 4 Ballot 1) based on FHIR R4. The current version which supercedes this version is 3.0.0. For a full list of available versions, see the Directory of published versions
Official URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/computable-measure-cqfm | Version: 4.0.0-ballot | |||
Active as of 2019-02-13 | Computable Name: CQFMComputableMeasure |
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.
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from CQFMMeasure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Measure | SC | 1..1 | CQFMMeasure | A quality measure definition cmp-1: Population basis must be specified at the root, or on each group cmp-2: Scoring must be specified at the root, or on each group cmp-3: Scoring unit may only be specified at the root if the scoring is also specified at the root cmp-4: Improvement notation must be specified for scoring types other than cohort cmp-5: If type is specified at the root, it may not be specified on any group cmp-6: If riskAdjustment is specified at the root, it may not be specified on any group cmp-7: If rateAggregation is specified at the root, it may not be specified on any group |
populationBasis | SC | 0..1 | code | What type of population URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis Binding: FHIRAllTypes (required): The type of elements in the population |
scoringUnit | SC | 0..1 | CodeableConcept | What units? URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit |
effectiveDataRequirements | S | 0..1 | Reference(CQFM Module Definition Library) | Effective required data for evaluation URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements |
library | S | 0..1 | canonical(CQFM Computable Library) | CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary. |
scoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort Binding: MeasureScoring (extensible) |
type | SC | 0..* | CodeableConcept | process | outcome | structure | patient-reported-outcome | composite |
riskAdjustment | C | 0..1 | string | How risk adjustment is applied for this measure |
rateAggregation | C | 0..1 | string | How is rate aggregation performed for this measure |
improvementNotation | SC | 0..1 | CodeableConcept | increase | decrease Binding: MeasureImprovementNotation (required) |
group | SC | 0..* | BackboneElement | Population criteria group cmp-8: Scoring unit may only be specified at the root if the scoring is also specified at the root cmp-9: Improvement notation must be specified for scoring types other than cohort cmp-10: Cohort measures have one and only one population criteria and that criteria has a code of initial-population cmp-11: Proportion measures must have one and only one initial population cmp-12: Proportion measures must have one and only one denominator cmp-13: Proportion measures must have one and only one numerator cmp-14: Proportion measures may have at most one denominator-exclusion cmp-15: Proportion measures may have at most one denominator-exception cmp-16: Proportion measures may have at most one numerator-exclusion cmp-17: Proportion measures may not have other than initial population, denominator, numerator, denominator-exclusion, denominator-exception, and numerator-exclusion criteria cmp-18: Ratio measures must have between 1 and 2 initial population criteria cmp-19: Ratio measures must have one and only one denominator cmp-20: Ratio measures must have one and only one numerator cmp-21: Ratio measures may have at most one denominator-exclusion cmp-22: Ratio measures may have at most two measure-observation criteria cmp-23: Ratio measures may have at most one numerator-exclusion cmp-24: Ratio measures may not have other than initial population, denominator, numerator, denominator-exclusion, numerator-exclusion, and measure-observation criteria cmp-25: Continuous variable measures must have one and only one initial population criteria cmp-26: Continuous variable measures must have one and only one measure population cmp-27: Continuous variable measures must have one and only one measure observation cmp-28: Continuous variable measures may have at most one measure population exclusion cmp-29: Continuous variable measures may not have other than initial population, measure-population, measure-population-exclusion, and measure-observation criteria cmp-30: Composite measures may not specify population criteria cmp-31: Composite measures must specify composite scoring and at least one component |
populationBasis | SC | 0..1 | code | What type of population URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis Binding: FHIRAllTypes (required): The type of elements in the population |
scoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring Binding: MeasureScoring (extensible): How the measure calculation is performed |
scoringUnit | SC | 0..1 | CodeableConcept | What units? URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit |
compositeScoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring Binding: CompositeMeasureScoring (extensible): How the composite measure calculation is performed |
component | SC | 0..* | RelatedArtifact | What artifact URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component |
type | C | 0..1 | CodeableConcept | process | outcome | structure | patient-reported-outcome URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-type Binding: MeasureType (extensible): Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization. |
riskAdjustment | C | 0..1 | string | How risk adjustment is applied for this measure URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment |
rateAggregation | C | 0..1 | string | How is rate aggregation performed for this measure URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation |
improvementNotation | SC | 0..1 | CodeableConcept | increase | decrease URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-improvementNotation Binding: MeasureImprovementNotation (required): Indicates how to interpret the calculated score of the measure |
population | SC | 0..* | BackboneElement | Population criteria cmp-32: Computable measures must use text/cql-expression or text/cql-identifier for all criteria |
stratifier | SC | 0..* | BackboneElement | Stratifier criteria for the measure cmp-33: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria |
appliesTo | 0..* | CodeableConcept | Which group should this stratification apply to? If none is specified then the stratification will apply to all groups. URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo Binding: MeasurePopulationType (extensible): Indicates the population | |
component | SC | 0..* | BackboneElement | Stratifier criteria component for the measure cmp-34: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier component criteria |
supplementalData | SC | 0..* | BackboneElement | What other data should be reported with the measure cmp-35: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all supplemental data criteria |
Documentation for this format |
Path | Conformance | ValueSet |
Measure.scoring | extensible | MeasureScoring |
Measure.improvementNotation | required | MeasureImprovementNotation |
Id | Grade | Path(s) | Details | Requirements |
cmp-1 | error | Measure | Population basis must be specified at the root, or on each group : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis').exists() xor group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis').exists()).allTrue() | |
cmp-2 | error | Measure | Scoring must be specified at the root, or on each group : scoring.exists() xor group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists()).allTrue() | |
cmp-3 | error | Measure | Scoring unit may only be specified at the root if the scoring is also specified at the root : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit').exists() implies scoring.exists() | |
cmp-4 | error | Measure | Improvement notation must be specified for scoring types other than cohort : scoring.exists() and scoring in ('proportion' | 'ratio' | 'continuous-variable') implies improvementNotation.exists() | |
cmp-5 | error | Measure | If type is specified at the root, it may not be specified on any group : type.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-measureType').exists()).allFalse() | |
cmp-6 | error | Measure | If riskAdjustment is specified at the root, it may not be specified on any group : riskAdjustment.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment').exists()).allFalse() | |
cmp-7 | error | Measure | If rateAggregation is specified at the root, it may not be specified on any group : rateAggregation.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation').exists()).allFalse() | |
cmp-8 | error | Measure.group | Scoring unit may only be specified at the root if the scoring is also specified at the root : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit').exists() implies extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() | |
cmp-9 | error | Measure.group | Improvement notation must be specified for scoring types other than cohort : 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-10 | error | Measure.group | Cohort measures have one and only one population criteria and that criteria has a code of initial-population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'cohort' implies group.population.count() = 1 and group.population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-popuplation').code = 'initial-population').allTrue() | |
cmp-11 | error | Measure.group | Proportion measures must have one and only one initial population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count = 1 | |
cmp-12 | error | Measure.group | Proportion measures must have one and only one denominator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator').count = 1 | |
cmp-13 | error | Measure.group | Proportion measures must have one and only one numerator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator').count = 1 | |
cmp-14 | error | Measure.group | Proportion measures may have at most one denominator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exclusion').count <= 1 | |
cmp-15 | error | Measure.group | Proportion measures may have at most one denominator-exception : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exception').count <= 1 | |
cmp-16 | error | Measure.group | Proportion measures may have at most one numerator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator-exclusion').count <= 1 | |
cmp-17 | error | Measure.group | Proportion measures may not have other than initial population, denominator, numerator, denominator-exclusion, denominator-exception, and numerator-exclusion criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.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-18 | error | Measure.group | Ratio measures must have between 1 and 2 initial population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies (group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count() in (1 | 2)) | |
cmp-19 | error | Measure.group | Ratio measures must have one and only one denominator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator').count = 1 | |
cmp-20 | error | Measure.group | Ratio measures must have one and only one numerator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator').count = 1 | |
cmp-21 | error | Measure.group | Ratio measures may have at most one denominator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exclusion').count <= 1 | |
cmp-22 | error | Measure.group | Ratio measures may have at most two measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-observation').count <= 2 | |
cmp-23 | error | Measure.group | Ratio measures may have at most one numerator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator-exclusion').count <= 1 | |
cmp-24 | error | Measure.group | Ratio measures may not have other than initial population, denominator, numerator, denominator-exclusion, numerator-exclusion, and measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.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-25 | error | Measure.group | Continuous variable measures must have one and only one initial population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count = 1 | |
cmp-26 | error | Measure.group | Continuous variable measures must have one and only one measure population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-population').count = 1 | |
cmp-27 | error | Measure.group | Continuous variable measures must have one and only one measure observation : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-observation').count = 1 | |
cmp-28 | error | Measure.group | Continuous variable measures may have at most one measure population exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-population-exclusion').count <= 1 | |
cmp-29 | error | Measure.group | Continuous variable measures may not have other than initial population, measure-population, measure-population-exclusion, and measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'measure-population' | 'meausre-population-exclusion' | 'measure-observation')).allTrue() | |
cmp-30 | error | Measure.group | Composite measures may not specify population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'composite' implies group.population.count() = 0 | |
cmp-31 | error | Measure.group | Composite measures must specify composite scoring and at least one component : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = '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-32 | error | Measure.group.population | Computable measures must use text/cql-expression or text/cql-identifier for all criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier') | |
cmp-33 | error | Measure.group.stratifier | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cmp-34 | error | Measure.group.stratifier.component | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier component criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cmp-35 | error | Measure.supplementalData | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all supplemental data criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Measure | SC | 1..1 | CQFMMeasure | A quality measure definition cmp-1: Population basis must be specified at the root, or on each group cmp-2: Scoring must be specified at the root, or on each group cmp-3: Scoring unit may only be specified at the root if the scoring is also specified at the root cmp-4: Improvement notation must be specified for scoring types other than cohort cmp-5: If type is specified at the root, it may not be specified on any group cmp-6: If riskAdjustment is specified at the root, it may not be specified on any group cmp-7: If rateAggregation is specified at the root, it may not be specified on any group |
meta | SΣ | 1..1 | Meta | Metadata about the resource |
profile | SΣ | 1..* | canonical(StructureDefinition) | Profiles this resource claims to conform to |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
comment | S | 0..* | (Complex) | Additional documentation, review, or usage guidance URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-artifactComment |
allocation | S | 0..1 | markdown | Allocation guidance URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-allocation |
softwaresystem | S | 0..* | Reference(CQFM Device) | Extension URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem |
populationBasis | SC | 0..1 | code | What type of population URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis Binding: FHIRAllTypes (required): The type of elements in the population |
scoringUnit | SC | 0..1 | CodeableConcept | What units? URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit |
effectiveDataRequirements | S | 0..1 | Reference(CQFM Module Definition Library) | Effective required data for evaluation URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
url | Σ | 1..1 | uri | Canonical identifier for this measure, represented as a URI (globally unique) |
identifier | SΣ | 0..* | Identifier | Additional identifier for the measure |
version | Σ | 1..1 | string | Business version of the measure |
name | ΣC | 1..1 | string | Name for this measure (computer friendly) |
title | SΣ | 0..1 | string | Name for this measure (human friendly) |
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
experimental | Σ | 1..1 | boolean | For testing purposes, not real usage |
date | SΣ | 0..1 | dateTime | Date last changed |
publisher | Σ | 1..1 | string | Name of the publisher (organization or individual) |
contact | SΣ | 0..* | ContactDetail | Contact details for the publisher |
description | Σ | 1..1 | markdown | Natural language description of the measure |
useContext | SΣ | 0..* | UsageContext | The context that the content is intended to support |
jurisdiction | SΣ | 0..* | CodeableConcept | Intended jurisdiction for measure (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. |
library | SC | 0..1 | canonical(CQFM Computable Library) | CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary. |
scoring | SΣC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort Binding: MeasureScoring (extensible) |
type | SΣC | 0..* | CodeableConcept | process | outcome | structure | patient-reported-outcome | composite Binding: MeasureType (extensible) |
riskAdjustment | ΣC | 0..1 | string | How risk adjustment is applied for this measure |
rateAggregation | ΣC | 0..1 | string | How is rate aggregation performed for this measure |
improvementNotation | SΣC | 0..1 | CodeableConcept | increase | decrease Binding: MeasureImprovementNotation (required) |
group | SC | 0..* | BackboneElement | Population criteria group cmp-8: Scoring unit may only be specified at the root if the scoring is also specified at the root cmp-9: Improvement notation must be specified for scoring types other than cohort cmp-10: Cohort measures have one and only one population criteria and that criteria has a code of initial-population cmp-11: Proportion measures must have one and only one initial population cmp-12: Proportion measures must have one and only one denominator cmp-13: Proportion measures must have one and only one numerator cmp-14: Proportion measures may have at most one denominator-exclusion cmp-15: Proportion measures may have at most one denominator-exception cmp-16: Proportion measures may have at most one numerator-exclusion cmp-17: Proportion measures may not have other than initial population, denominator, numerator, denominator-exclusion, denominator-exception, and numerator-exclusion criteria cmp-18: Ratio measures must have between 1 and 2 initial population criteria cmp-19: Ratio measures must have one and only one denominator cmp-20: Ratio measures must have one and only one numerator cmp-21: Ratio measures may have at most one denominator-exclusion cmp-22: Ratio measures may have at most two measure-observation criteria cmp-23: Ratio measures may have at most one numerator-exclusion cmp-24: Ratio measures may not have other than initial population, denominator, numerator, denominator-exclusion, numerator-exclusion, and measure-observation criteria cmp-25: Continuous variable measures must have one and only one initial population criteria cmp-26: Continuous variable measures must have one and only one measure population cmp-27: Continuous variable measures must have one and only one measure observation cmp-28: Continuous variable measures may have at most one measure population exclusion cmp-29: Continuous variable measures may not have other than initial population, measure-population, measure-population-exclusion, and measure-observation criteria cmp-30: Composite measures may not specify population criteria cmp-31: Composite measures must specify composite scoring and at least one component |
id | SC | 0..1 | string | Unique id for inter-element referencing |
populationBasis | SC | 0..1 | code | What type of population URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis Binding: FHIRAllTypes (required): The type of elements in the population |
scoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring Binding: MeasureScoring (extensible): How the measure calculation is performed |
scoringUnit | SC | 0..1 | CodeableConcept | What units? URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit |
compositeScoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring Binding: CompositeMeasureScoring (extensible): How the composite measure calculation is performed |
component | SC | 0..* | RelatedArtifact | What artifact URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component |
type | C | 0..1 | CodeableConcept | process | outcome | structure | patient-reported-outcome URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-type Binding: MeasureType (extensible): Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization. |
riskAdjustment | C | 0..1 | string | How risk adjustment is applied for this measure URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment |
rateAggregation | C | 0..1 | string | How is rate aggregation performed for this measure URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation |
improvementNotation | SC | 0..1 | CodeableConcept | increase | decrease URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-improvementNotation Binding: MeasureImprovementNotation (required): Indicates how to interpret the calculated score of the measure |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
population | SC | 0..* | BackboneElement | Population criteria cmp-32: Computable measures must use text/cql-expression or text/cql-identifier for all criteria |
id | S | 1..1 | string | Unique id for inter-element referencing |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | S | 1..1 | CodeableConcept | initial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-observation Binding: MeasurePopulationType (extensible) |
criteria | SC | 1..1 | Expression | The criteria that defines this population |
stratifier | SC | 0..* | BackboneElement | Stratifier criteria for the measure cmp-33: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria |
id | S | 1..1 | string | Unique id for inter-element referencing |
appliesTo | 0..* | CodeableConcept | Which group should this stratification apply to? If none is specified then the stratification will apply to all groups. URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo Binding: MeasurePopulationType (extensible): Indicates the population | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
criteria | SC | 0..1 | Expression | How the measure should be stratified |
component | SC | 0..* | BackboneElement | Stratifier criteria component for the measure cmp-34: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier component criteria |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
criteria | 1..1 | Expression | Component of how the measure should be stratified | |
supplementalData | SC | 0..* | BackboneElement | What other data should be reported with the measure cmp-35: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all supplemental data criteria |
id | S | 1..1 | string | Unique id for inter-element referencing |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | S | 0..1 | CodeableConcept | Meaning of the supplemental data Binding: MeasureDataUsage (extensible) |
criteria | 1..1 | Expression | Expression describing additional data to be reported | |
Documentation for this format |
Path | Conformance | ValueSet |
Measure.status | required | PublicationStatus |
Measure.jurisdiction | extensible | Jurisdiction ValueSet |
Measure.scoring | extensible | MeasureScoring |
Measure.type | extensible | MeasureType |
Measure.improvementNotation | required | MeasureImprovementNotation |
Measure.group.population.code | extensible | MeasurePopulationType |
Measure.supplementalData.code | extensible | MeasureDataUsage |
Id | Grade | Path(s) | Details | Requirements |
cmp-1 | error | Measure | Population basis must be specified at the root, or on each group : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis').exists() xor group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis').exists()).allTrue() | |
cmp-2 | error | Measure | Scoring must be specified at the root, or on each group : scoring.exists() xor group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists()).allTrue() | |
cmp-3 | error | Measure | Scoring unit may only be specified at the root if the scoring is also specified at the root : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit').exists() implies scoring.exists() | |
cmp-4 | error | Measure | Improvement notation must be specified for scoring types other than cohort : scoring.exists() and scoring in ('proportion' | 'ratio' | 'continuous-variable') implies improvementNotation.exists() | |
cmp-5 | error | Measure | If type is specified at the root, it may not be specified on any group : type.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-measureType').exists()).allFalse() | |
cmp-6 | error | Measure | If riskAdjustment is specified at the root, it may not be specified on any group : riskAdjustment.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment').exists()).allFalse() | |
cmp-7 | error | Measure | If rateAggregation is specified at the root, it may not be specified on any group : rateAggregation.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation').exists()).allFalse() | |
cmp-8 | error | Measure.group | Scoring unit may only be specified at the root if the scoring is also specified at the root : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit').exists() implies extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() | |
cmp-9 | error | Measure.group | Improvement notation must be specified for scoring types other than cohort : 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-10 | error | Measure.group | Cohort measures have one and only one population criteria and that criteria has a code of initial-population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'cohort' implies group.population.count() = 1 and group.population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-popuplation').code = 'initial-population').allTrue() | |
cmp-11 | error | Measure.group | Proportion measures must have one and only one initial population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count = 1 | |
cmp-12 | error | Measure.group | Proportion measures must have one and only one denominator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator').count = 1 | |
cmp-13 | error | Measure.group | Proportion measures must have one and only one numerator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator').count = 1 | |
cmp-14 | error | Measure.group | Proportion measures may have at most one denominator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exclusion').count <= 1 | |
cmp-15 | error | Measure.group | Proportion measures may have at most one denominator-exception : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exception').count <= 1 | |
cmp-16 | error | Measure.group | Proportion measures may have at most one numerator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator-exclusion').count <= 1 | |
cmp-17 | error | Measure.group | Proportion measures may not have other than initial population, denominator, numerator, denominator-exclusion, denominator-exception, and numerator-exclusion criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.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-18 | error | Measure.group | Ratio measures must have between 1 and 2 initial population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies (group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count() in (1 | 2)) | |
cmp-19 | error | Measure.group | Ratio measures must have one and only one denominator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator').count = 1 | |
cmp-20 | error | Measure.group | Ratio measures must have one and only one numerator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator').count = 1 | |
cmp-21 | error | Measure.group | Ratio measures may have at most one denominator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exclusion').count <= 1 | |
cmp-22 | error | Measure.group | Ratio measures may have at most two measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-observation').count <= 2 | |
cmp-23 | error | Measure.group | Ratio measures may have at most one numerator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator-exclusion').count <= 1 | |
cmp-24 | error | Measure.group | Ratio measures may not have other than initial population, denominator, numerator, denominator-exclusion, numerator-exclusion, and measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.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-25 | error | Measure.group | Continuous variable measures must have one and only one initial population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count = 1 | |
cmp-26 | error | Measure.group | Continuous variable measures must have one and only one measure population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-population').count = 1 | |
cmp-27 | error | Measure.group | Continuous variable measures must have one and only one measure observation : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-observation').count = 1 | |
cmp-28 | error | Measure.group | Continuous variable measures may have at most one measure population exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-population-exclusion').count <= 1 | |
cmp-29 | error | Measure.group | Continuous variable measures may not have other than initial population, measure-population, measure-population-exclusion, and measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'measure-population' | 'meausre-population-exclusion' | 'measure-observation')).allTrue() | |
cmp-30 | error | Measure.group | Composite measures may not specify population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'composite' implies group.population.count() = 0 | |
cmp-31 | error | Measure.group | Composite measures must specify composite scoring and at least one component : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = '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-32 | error | Measure.group.population | Computable measures must use text/cql-expression or text/cql-identifier for all criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier') | |
cmp-33 | error | Measure.group.stratifier | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cmp-34 | error | Measure.group.stratifier.component | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier component criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cmp-35 | error | Measure.supplementalData | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all supplemental data criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cqm-2 | warning | Measure.library | Measures utilizing CQL SHALL reference one and only one CQL library (and that referenced library MUST be the primary library for the measure) : exists() | |
cqm-3 | warning | Measure.group.id | Group identifiers SHOULD use the convention: "group-[group number]", where [group number] corresponds with the group naming convention for the criteria within the group : value.startsWith('group-') | |
cqm-4 | warning | Measure.group.population.criteria | Group population criteria SHOULD be simple expression names found within the primary library for the measure. The criteria SHOULD NOT include a namespace. : expression.contains('.').not() | |
cqm-5 | warning | Measure.group.stratifier.criteria | Group stratifier criteria SHOULD be simple expression names found within the primary library for the measure. The criteria SHOULD NOT include a namespace. : expression.contains('.').not() | |
cqm-6 | warning | Measure.supplementalData | Supplemental data SHALL use either criteria or path : criteria.exists() or path.exists() | |
dom-2 | error | Measure | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Measure | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Measure | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | Measure | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Measure | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
mea-0 | warning | Measure | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') | |
mea-1 | error | Measure | Stratifier SHALL be either a single criteria or a set of criteria components : group.stratifier.all((code | description | criteria).exists() xor component.exists()) |
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Measure | SC | 1..1 | CQFMMeasure | A quality measure definition cmp-1: Population basis must be specified at the root, or on each group cmp-2: Scoring must be specified at the root, or on each group cmp-3: Scoring unit may only be specified at the root if the scoring is also specified at the root cmp-4: Improvement notation must be specified for scoring types other than cohort cmp-5: If type is specified at the root, it may not be specified on any group cmp-6: If riskAdjustment is specified at the root, it may not be specified on any group cmp-7: If rateAggregation is specified at the root, it may not be specified on any group | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | SΣ | 1..1 | Meta | Metadata about the resource | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
versionId | Σ | 0..1 | id | Version specific identifier | ||||
lastUpdated | Σ | 0..1 | instant | When the resource version last changed | ||||
source | Σ | 0..1 | uri | Identifies where the resource comes from | ||||
profile | SΣ | 1..* | canonical(StructureDefinition) | Profiles this resource claims to conform to | ||||
security | Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System. | ||||
tag | Σ | 0..* | Coding | Tags applied to this resource Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones". | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
Slices for extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
comment | S | 0..* | (Complex) | Additional documentation, review, or usage guidance URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-artifactComment | ||||
allocation | S | 0..1 | markdown | Allocation guidance URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-allocation | ||||
softwaresystem | S | 0..* | Reference(CQFM Device) | Extension URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem | ||||
populationBasis | SC | 0..1 | code | What type of population URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis Binding: FHIRAllTypes (required): The type of elements in the population | ||||
scoringUnit | SC | 0..1 | CodeableConcept | What units? URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit | ||||
effectiveDataRequirements | S | 0..1 | Reference(CQFM Module Definition Library) | Effective required data for evaluation URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements | ||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
url | Σ | 1..1 | uri | Canonical identifier for this measure, represented as a URI (globally unique) | ||||
identifier | SΣ | 0..* | Identifier | Additional identifier for the measure | ||||
version | Σ | 1..1 | string | Business version of the measure | ||||
name | ΣC | 1..1 | string | Name for this measure (computer friendly) | ||||
title | SΣ | 0..1 | string | Name for this measure (human friendly) | ||||
subtitle | 0..1 | string | Subordinate title of the measure | |||||
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. | ||||
experimental | Σ | 1..1 | boolean | For testing purposes, not real usage | ||||
subject[x] | 0..1 | E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device Binding: SubjectType (extensible): The possible types of subjects for a measure (E.g. Patient, Practitioner, Organization, Location, etc.). | ||||||
subjectCodeableConcept | CodeableConcept | |||||||
subjectReference | Reference(Group) | |||||||
date | SΣ | 0..1 | dateTime | Date last changed | ||||
publisher | Σ | 1..1 | string | Name of the publisher (organization or individual) | ||||
contact | SΣ | 0..* | ContactDetail | Contact details for the publisher | ||||
description | Σ | 1..1 | markdown | Natural language description of the measure | ||||
useContext | SΣ | 0..* | UsageContext | The context that the content is intended to support | ||||
jurisdiction | SΣ | 0..* | CodeableConcept | Intended jurisdiction for measure (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. | ||||
purpose | 0..1 | markdown | Why this measure is defined | |||||
usage | 0..1 | string | Describes the clinical usage of the measure | |||||
copyright | 0..1 | markdown | Use and/or publishing restrictions | |||||
approvalDate | 0..1 | date | When the measure was approved by publisher | |||||
lastReviewDate | 0..1 | date | When the measure was last reviewed | |||||
effectivePeriod | Σ | 0..1 | Period | When the measure is expected to be used | ||||
topic | 0..* | CodeableConcept | The category of the measure, such as Education, Treatment, Assessment, etc. Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering. | |||||
author | 0..* | ContactDetail | Who authored the content | |||||
editor | 0..* | ContactDetail | Who edited the content | |||||
reviewer | 0..* | ContactDetail | Who reviewed the content | |||||
endorser | 0..* | ContactDetail | Who endorsed the content | |||||
relatedArtifact | 0..* | RelatedArtifact | Additional documentation, citations, etc. | |||||
library | SC | 0..1 | canonical(CQFM Computable Library) | CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary. | ||||
disclaimer | Σ | 0..1 | markdown | Disclaimer for use of the measure or its referenced content | ||||
scoring | SΣC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort Binding: MeasureScoring (extensible) | ||||
compositeScoring | Σ | 0..1 | CodeableConcept | opportunity | all-or-nothing | linear | weighted Binding: CompositeMeasureScoring (extensible): The composite scoring method of the measure. | ||||
type | SΣC | 0..* | CodeableConcept | process | outcome | structure | patient-reported-outcome | composite Binding: MeasureType (extensible) | ||||
riskAdjustment | ΣC | 0..1 | string | How risk adjustment is applied for this measure | ||||
rateAggregation | ΣC | 0..1 | string | How is rate aggregation performed for this measure | ||||
rationale | Σ | 0..1 | markdown | Detailed description of why the measure exists | ||||
clinicalRecommendationStatement | Σ | 0..1 | markdown | Summary of clinical guidelines | ||||
improvementNotation | SΣC | 0..1 | CodeableConcept | increase | decrease Binding: MeasureImprovementNotation (required) | ||||
definition | Σ | 0..* | markdown | Defined terms used in the measure documentation | ||||
guidance | Σ | 0..1 | markdown | Additional guidance for implementers | ||||
group | SC | 0..* | BackboneElement | Population criteria group cmp-8: Scoring unit may only be specified at the root if the scoring is also specified at the root cmp-9: Improvement notation must be specified for scoring types other than cohort cmp-10: Cohort measures have one and only one population criteria and that criteria has a code of initial-population cmp-11: Proportion measures must have one and only one initial population cmp-12: Proportion measures must have one and only one denominator cmp-13: Proportion measures must have one and only one numerator cmp-14: Proportion measures may have at most one denominator-exclusion cmp-15: Proportion measures may have at most one denominator-exception cmp-16: Proportion measures may have at most one numerator-exclusion cmp-17: Proportion measures may not have other than initial population, denominator, numerator, denominator-exclusion, denominator-exception, and numerator-exclusion criteria cmp-18: Ratio measures must have between 1 and 2 initial population criteria cmp-19: Ratio measures must have one and only one denominator cmp-20: Ratio measures must have one and only one numerator cmp-21: Ratio measures may have at most one denominator-exclusion cmp-22: Ratio measures may have at most two measure-observation criteria cmp-23: Ratio measures may have at most one numerator-exclusion cmp-24: Ratio measures may not have other than initial population, denominator, numerator, denominator-exclusion, numerator-exclusion, and measure-observation criteria cmp-25: Continuous variable measures must have one and only one initial population criteria cmp-26: Continuous variable measures must have one and only one measure population cmp-27: Continuous variable measures must have one and only one measure observation cmp-28: Continuous variable measures may have at most one measure population exclusion cmp-29: Continuous variable measures may not have other than initial population, measure-population, measure-population-exclusion, and measure-observation criteria cmp-30: Composite measures may not specify population criteria cmp-31: Composite measures must specify composite scoring and at least one component | ||||
id | SC | 0..1 | string | Unique id for inter-element referencing | ||||
Slices for extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
populationBasis | SC | 0..1 | code | What type of population URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis Binding: FHIRAllTypes (required): The type of elements in the population | ||||
scoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring Binding: MeasureScoring (extensible): How the measure calculation is performed | ||||
scoringUnit | SC | 0..1 | CodeableConcept | What units? URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit | ||||
compositeScoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring Binding: CompositeMeasureScoring (extensible): How the composite measure calculation is performed | ||||
component | SC | 0..* | RelatedArtifact | What artifact URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component | ||||
type | C | 0..1 | CodeableConcept | process | outcome | structure | patient-reported-outcome URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-type Binding: MeasureType (extensible): Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization. | ||||
riskAdjustment | C | 0..1 | string | How risk adjustment is applied for this measure URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment | ||||
rateAggregation | C | 0..1 | string | How is rate aggregation performed for this measure URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation | ||||
improvementNotation | SC | 0..1 | CodeableConcept | increase | decrease URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-improvementNotation Binding: MeasureImprovementNotation (required): Indicates how to interpret the calculated score of the measure | ||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
code | 0..1 | CodeableConcept | Meaning of the group | |||||
description | 0..1 | string | Summary description | |||||
population | SC | 0..* | BackboneElement | Population criteria cmp-32: Computable measures must use text/cql-expression or text/cql-identifier for all criteria | ||||
id | S | 1..1 | string | Unique id for inter-element referencing | ||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
code | S | 1..1 | CodeableConcept | initial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-observation Binding: MeasurePopulationType (extensible) | ||||
description | 0..1 | string | The human readable description of this population criteria | |||||
criteria | SC | 1..1 | Expression | The criteria that defines this population | ||||
stratifier | SC | 0..* | BackboneElement | Stratifier criteria for the measure cmp-33: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria | ||||
id | S | 1..1 | string | Unique id for inter-element referencing | ||||
Slices for extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
appliesTo | 0..* | CodeableConcept | Which group should this stratification apply to? If none is specified then the stratification will apply to all groups. URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo Binding: MeasurePopulationType (extensible): Indicates the population | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
code | 0..1 | CodeableConcept | Meaning of the stratifier | |||||
description | 0..1 | string | The human readable description of this stratifier | |||||
criteria | SC | 0..1 | Expression | How the measure should be stratified | ||||
component | SC | 0..* | BackboneElement | Stratifier criteria component for the measure cmp-34: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier component criteria | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
code | 0..1 | CodeableConcept | Meaning of the stratifier component | |||||
description | 0..1 | string | The human readable description of this stratifier component | |||||
criteria | 1..1 | Expression | Component of how the measure should be stratified | |||||
supplementalData | SC | 0..* | BackboneElement | What other data should be reported with the measure cmp-35: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all supplemental data criteria | ||||
id | S | 1..1 | string | Unique id for inter-element referencing | ||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
code | S | 0..1 | CodeableConcept | Meaning of the supplemental data Binding: MeasureDataUsage (extensible) | ||||
usage | 0..* | CodeableConcept | supplemental-data | risk-adjustment-factor Binding: MeasureDataUsage (extensible): The intended usage for supplemental data elements in the measure. | |||||
description | 0..1 | string | The human readable description of this supplemental data | |||||
criteria | 1..1 | Expression | Expression describing additional data to be reported | |||||
Documentation for this format |
Path | Conformance | ValueSet | ||||
Measure.meta.security | extensible | All Security Labels | ||||
Measure.meta.tag | example | CommonTags | ||||
Measure.language | preferred | CommonLanguages
| ||||
Measure.status | required | PublicationStatus | ||||
Measure.subject[x] | extensible | SubjectType | ||||
Measure.jurisdiction | extensible | Jurisdiction ValueSet | ||||
Measure.topic | example | DefinitionTopic | ||||
Measure.scoring | extensible | MeasureScoring | ||||
Measure.compositeScoring | extensible | CompositeMeasureScoring | ||||
Measure.type | extensible | MeasureType | ||||
Measure.improvementNotation | required | MeasureImprovementNotation | ||||
Measure.group.population.code | extensible | MeasurePopulationType | ||||
Measure.supplementalData.code | extensible | MeasureDataUsage | ||||
Measure.supplementalData.usage | extensible | MeasureDataUsage |
Id | Grade | Path(s) | Details | Requirements |
cmp-1 | error | Measure | Population basis must be specified at the root, or on each group : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis').exists() xor group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis').exists()).allTrue() | |
cmp-2 | error | Measure | Scoring must be specified at the root, or on each group : scoring.exists() xor group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists()).allTrue() | |
cmp-3 | error | Measure | Scoring unit may only be specified at the root if the scoring is also specified at the root : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit').exists() implies scoring.exists() | |
cmp-4 | error | Measure | Improvement notation must be specified for scoring types other than cohort : scoring.exists() and scoring in ('proportion' | 'ratio' | 'continuous-variable') implies improvementNotation.exists() | |
cmp-5 | error | Measure | If type is specified at the root, it may not be specified on any group : type.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-measureType').exists()).allFalse() | |
cmp-6 | error | Measure | If riskAdjustment is specified at the root, it may not be specified on any group : riskAdjustment.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment').exists()).allFalse() | |
cmp-7 | error | Measure | If rateAggregation is specified at the root, it may not be specified on any group : rateAggregation.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation').exists()).allFalse() | |
cmp-8 | error | Measure.group | Scoring unit may only be specified at the root if the scoring is also specified at the root : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit').exists() implies extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() | |
cmp-9 | error | Measure.group | Improvement notation must be specified for scoring types other than cohort : 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-10 | error | Measure.group | Cohort measures have one and only one population criteria and that criteria has a code of initial-population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'cohort' implies group.population.count() = 1 and group.population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-popuplation').code = 'initial-population').allTrue() | |
cmp-11 | error | Measure.group | Proportion measures must have one and only one initial population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count = 1 | |
cmp-12 | error | Measure.group | Proportion measures must have one and only one denominator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator').count = 1 | |
cmp-13 | error | Measure.group | Proportion measures must have one and only one numerator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator').count = 1 | |
cmp-14 | error | Measure.group | Proportion measures may have at most one denominator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exclusion').count <= 1 | |
cmp-15 | error | Measure.group | Proportion measures may have at most one denominator-exception : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exception').count <= 1 | |
cmp-16 | error | Measure.group | Proportion measures may have at most one numerator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator-exclusion').count <= 1 | |
cmp-17 | error | Measure.group | Proportion measures may not have other than initial population, denominator, numerator, denominator-exclusion, denominator-exception, and numerator-exclusion criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.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-18 | error | Measure.group | Ratio measures must have between 1 and 2 initial population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies (group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count() in (1 | 2)) | |
cmp-19 | error | Measure.group | Ratio measures must have one and only one denominator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator').count = 1 | |
cmp-20 | error | Measure.group | Ratio measures must have one and only one numerator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator').count = 1 | |
cmp-21 | error | Measure.group | Ratio measures may have at most one denominator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exclusion').count <= 1 | |
cmp-22 | error | Measure.group | Ratio measures may have at most two measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-observation').count <= 2 | |
cmp-23 | error | Measure.group | Ratio measures may have at most one numerator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator-exclusion').count <= 1 | |
cmp-24 | error | Measure.group | Ratio measures may not have other than initial population, denominator, numerator, denominator-exclusion, numerator-exclusion, and measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.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-25 | error | Measure.group | Continuous variable measures must have one and only one initial population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count = 1 | |
cmp-26 | error | Measure.group | Continuous variable measures must have one and only one measure population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-population').count = 1 | |
cmp-27 | error | Measure.group | Continuous variable measures must have one and only one measure observation : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-observation').count = 1 | |
cmp-28 | error | Measure.group | Continuous variable measures may have at most one measure population exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-population-exclusion').count <= 1 | |
cmp-29 | error | Measure.group | Continuous variable measures may not have other than initial population, measure-population, measure-population-exclusion, and measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'measure-population' | 'meausre-population-exclusion' | 'measure-observation')).allTrue() | |
cmp-30 | error | Measure.group | Composite measures may not specify population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'composite' implies group.population.count() = 0 | |
cmp-31 | error | Measure.group | Composite measures must specify composite scoring and at least one component : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = '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-32 | error | Measure.group.population | Computable measures must use text/cql-expression or text/cql-identifier for all criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier') | |
cmp-33 | error | Measure.group.stratifier | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cmp-34 | error | Measure.group.stratifier.component | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier component criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cmp-35 | error | Measure.supplementalData | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all supplemental data criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cqm-2 | warning | Measure.library | Measures utilizing CQL SHALL reference one and only one CQL library (and that referenced library MUST be the primary library for the measure) : exists() | |
cqm-3 | warning | Measure.group.id | Group identifiers SHOULD use the convention: "group-[group number]", where [group number] corresponds with the group naming convention for the criteria within the group : value.startsWith('group-') | |
cqm-4 | warning | Measure.group.population.criteria | Group population criteria SHOULD be simple expression names found within the primary library for the measure. The criteria SHOULD NOT include a namespace. : expression.contains('.').not() | |
cqm-5 | warning | Measure.group.stratifier.criteria | Group stratifier criteria SHOULD be simple expression names found within the primary library for the measure. The criteria SHOULD NOT include a namespace. : expression.contains('.').not() | |
cqm-6 | warning | Measure.supplementalData | Supplemental data SHALL use either criteria or path : criteria.exists() or path.exists() | |
dom-2 | error | Measure | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Measure | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Measure | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | Measure | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Measure | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
mea-0 | warning | Measure | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') | |
mea-1 | error | Measure | Stratifier SHALL be either a single criteria or a set of criteria components : group.stratifier.all((code | description | criteria).exists() xor component.exists()) |
This structure is derived from CQFMMeasure
Summary
Must-Support: 18 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Differential View
This structure is derived from CQFMMeasure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Measure | SC | 1..1 | CQFMMeasure | A quality measure definition cmp-1: Population basis must be specified at the root, or on each group cmp-2: Scoring must be specified at the root, or on each group cmp-3: Scoring unit may only be specified at the root if the scoring is also specified at the root cmp-4: Improvement notation must be specified for scoring types other than cohort cmp-5: If type is specified at the root, it may not be specified on any group cmp-6: If riskAdjustment is specified at the root, it may not be specified on any group cmp-7: If rateAggregation is specified at the root, it may not be specified on any group |
populationBasis | SC | 0..1 | code | What type of population URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis Binding: FHIRAllTypes (required): The type of elements in the population |
scoringUnit | SC | 0..1 | CodeableConcept | What units? URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit |
effectiveDataRequirements | S | 0..1 | Reference(CQFM Module Definition Library) | Effective required data for evaluation URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements |
library | S | 0..1 | canonical(CQFM Computable Library) | CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary. |
scoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort Binding: MeasureScoring (extensible) |
type | SC | 0..* | CodeableConcept | process | outcome | structure | patient-reported-outcome | composite |
riskAdjustment | C | 0..1 | string | How risk adjustment is applied for this measure |
rateAggregation | C | 0..1 | string | How is rate aggregation performed for this measure |
improvementNotation | SC | 0..1 | CodeableConcept | increase | decrease Binding: MeasureImprovementNotation (required) |
group | SC | 0..* | BackboneElement | Population criteria group cmp-8: Scoring unit may only be specified at the root if the scoring is also specified at the root cmp-9: Improvement notation must be specified for scoring types other than cohort cmp-10: Cohort measures have one and only one population criteria and that criteria has a code of initial-population cmp-11: Proportion measures must have one and only one initial population cmp-12: Proportion measures must have one and only one denominator cmp-13: Proportion measures must have one and only one numerator cmp-14: Proportion measures may have at most one denominator-exclusion cmp-15: Proportion measures may have at most one denominator-exception cmp-16: Proportion measures may have at most one numerator-exclusion cmp-17: Proportion measures may not have other than initial population, denominator, numerator, denominator-exclusion, denominator-exception, and numerator-exclusion criteria cmp-18: Ratio measures must have between 1 and 2 initial population criteria cmp-19: Ratio measures must have one and only one denominator cmp-20: Ratio measures must have one and only one numerator cmp-21: Ratio measures may have at most one denominator-exclusion cmp-22: Ratio measures may have at most two measure-observation criteria cmp-23: Ratio measures may have at most one numerator-exclusion cmp-24: Ratio measures may not have other than initial population, denominator, numerator, denominator-exclusion, numerator-exclusion, and measure-observation criteria cmp-25: Continuous variable measures must have one and only one initial population criteria cmp-26: Continuous variable measures must have one and only one measure population cmp-27: Continuous variable measures must have one and only one measure observation cmp-28: Continuous variable measures may have at most one measure population exclusion cmp-29: Continuous variable measures may not have other than initial population, measure-population, measure-population-exclusion, and measure-observation criteria cmp-30: Composite measures may not specify population criteria cmp-31: Composite measures must specify composite scoring and at least one component |
populationBasis | SC | 0..1 | code | What type of population URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis Binding: FHIRAllTypes (required): The type of elements in the population |
scoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring Binding: MeasureScoring (extensible): How the measure calculation is performed |
scoringUnit | SC | 0..1 | CodeableConcept | What units? URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit |
compositeScoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring Binding: CompositeMeasureScoring (extensible): How the composite measure calculation is performed |
component | SC | 0..* | RelatedArtifact | What artifact URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component |
type | C | 0..1 | CodeableConcept | process | outcome | structure | patient-reported-outcome URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-type Binding: MeasureType (extensible): Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization. |
riskAdjustment | C | 0..1 | string | How risk adjustment is applied for this measure URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment |
rateAggregation | C | 0..1 | string | How is rate aggregation performed for this measure URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation |
improvementNotation | SC | 0..1 | CodeableConcept | increase | decrease URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-improvementNotation Binding: MeasureImprovementNotation (required): Indicates how to interpret the calculated score of the measure |
population | SC | 0..* | BackboneElement | Population criteria cmp-32: Computable measures must use text/cql-expression or text/cql-identifier for all criteria |
stratifier | SC | 0..* | BackboneElement | Stratifier criteria for the measure cmp-33: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria |
appliesTo | 0..* | CodeableConcept | Which group should this stratification apply to? If none is specified then the stratification will apply to all groups. URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo Binding: MeasurePopulationType (extensible): Indicates the population | |
component | SC | 0..* | BackboneElement | Stratifier criteria component for the measure cmp-34: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier component criteria |
supplementalData | SC | 0..* | BackboneElement | What other data should be reported with the measure cmp-35: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all supplemental data criteria |
Documentation for this format |
Path | Conformance | ValueSet |
Measure.scoring | extensible | MeasureScoring |
Measure.improvementNotation | required | MeasureImprovementNotation |
Id | Grade | Path(s) | Details | Requirements |
cmp-1 | error | Measure | Population basis must be specified at the root, or on each group : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis').exists() xor group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis').exists()).allTrue() | |
cmp-2 | error | Measure | Scoring must be specified at the root, or on each group : scoring.exists() xor group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists()).allTrue() | |
cmp-3 | error | Measure | Scoring unit may only be specified at the root if the scoring is also specified at the root : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit').exists() implies scoring.exists() | |
cmp-4 | error | Measure | Improvement notation must be specified for scoring types other than cohort : scoring.exists() and scoring in ('proportion' | 'ratio' | 'continuous-variable') implies improvementNotation.exists() | |
cmp-5 | error | Measure | If type is specified at the root, it may not be specified on any group : type.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-measureType').exists()).allFalse() | |
cmp-6 | error | Measure | If riskAdjustment is specified at the root, it may not be specified on any group : riskAdjustment.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment').exists()).allFalse() | |
cmp-7 | error | Measure | If rateAggregation is specified at the root, it may not be specified on any group : rateAggregation.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation').exists()).allFalse() | |
cmp-8 | error | Measure.group | Scoring unit may only be specified at the root if the scoring is also specified at the root : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit').exists() implies extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() | |
cmp-9 | error | Measure.group | Improvement notation must be specified for scoring types other than cohort : 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-10 | error | Measure.group | Cohort measures have one and only one population criteria and that criteria has a code of initial-population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'cohort' implies group.population.count() = 1 and group.population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-popuplation').code = 'initial-population').allTrue() | |
cmp-11 | error | Measure.group | Proportion measures must have one and only one initial population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count = 1 | |
cmp-12 | error | Measure.group | Proportion measures must have one and only one denominator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator').count = 1 | |
cmp-13 | error | Measure.group | Proportion measures must have one and only one numerator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator').count = 1 | |
cmp-14 | error | Measure.group | Proportion measures may have at most one denominator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exclusion').count <= 1 | |
cmp-15 | error | Measure.group | Proportion measures may have at most one denominator-exception : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exception').count <= 1 | |
cmp-16 | error | Measure.group | Proportion measures may have at most one numerator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator-exclusion').count <= 1 | |
cmp-17 | error | Measure.group | Proportion measures may not have other than initial population, denominator, numerator, denominator-exclusion, denominator-exception, and numerator-exclusion criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.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-18 | error | Measure.group | Ratio measures must have between 1 and 2 initial population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies (group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count() in (1 | 2)) | |
cmp-19 | error | Measure.group | Ratio measures must have one and only one denominator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator').count = 1 | |
cmp-20 | error | Measure.group | Ratio measures must have one and only one numerator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator').count = 1 | |
cmp-21 | error | Measure.group | Ratio measures may have at most one denominator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exclusion').count <= 1 | |
cmp-22 | error | Measure.group | Ratio measures may have at most two measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-observation').count <= 2 | |
cmp-23 | error | Measure.group | Ratio measures may have at most one numerator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator-exclusion').count <= 1 | |
cmp-24 | error | Measure.group | Ratio measures may not have other than initial population, denominator, numerator, denominator-exclusion, numerator-exclusion, and measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.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-25 | error | Measure.group | Continuous variable measures must have one and only one initial population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count = 1 | |
cmp-26 | error | Measure.group | Continuous variable measures must have one and only one measure population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-population').count = 1 | |
cmp-27 | error | Measure.group | Continuous variable measures must have one and only one measure observation : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-observation').count = 1 | |
cmp-28 | error | Measure.group | Continuous variable measures may have at most one measure population exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-population-exclusion').count <= 1 | |
cmp-29 | error | Measure.group | Continuous variable measures may not have other than initial population, measure-population, measure-population-exclusion, and measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'measure-population' | 'meausre-population-exclusion' | 'measure-observation')).allTrue() | |
cmp-30 | error | Measure.group | Composite measures may not specify population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'composite' implies group.population.count() = 0 | |
cmp-31 | error | Measure.group | Composite measures must specify composite scoring and at least one component : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = '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-32 | error | Measure.group.population | Computable measures must use text/cql-expression or text/cql-identifier for all criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier') | |
cmp-33 | error | Measure.group.stratifier | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cmp-34 | error | Measure.group.stratifier.component | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier component criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cmp-35 | error | Measure.supplementalData | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all supplemental data criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Measure | SC | 1..1 | CQFMMeasure | A quality measure definition cmp-1: Population basis must be specified at the root, or on each group cmp-2: Scoring must be specified at the root, or on each group cmp-3: Scoring unit may only be specified at the root if the scoring is also specified at the root cmp-4: Improvement notation must be specified for scoring types other than cohort cmp-5: If type is specified at the root, it may not be specified on any group cmp-6: If riskAdjustment is specified at the root, it may not be specified on any group cmp-7: If rateAggregation is specified at the root, it may not be specified on any group |
meta | SΣ | 1..1 | Meta | Metadata about the resource |
profile | SΣ | 1..* | canonical(StructureDefinition) | Profiles this resource claims to conform to |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
comment | S | 0..* | (Complex) | Additional documentation, review, or usage guidance URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-artifactComment |
allocation | S | 0..1 | markdown | Allocation guidance URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-allocation |
softwaresystem | S | 0..* | Reference(CQFM Device) | Extension URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem |
populationBasis | SC | 0..1 | code | What type of population URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis Binding: FHIRAllTypes (required): The type of elements in the population |
scoringUnit | SC | 0..1 | CodeableConcept | What units? URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit |
effectiveDataRequirements | S | 0..1 | Reference(CQFM Module Definition Library) | Effective required data for evaluation URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
url | Σ | 1..1 | uri | Canonical identifier for this measure, represented as a URI (globally unique) |
identifier | SΣ | 0..* | Identifier | Additional identifier for the measure |
version | Σ | 1..1 | string | Business version of the measure |
name | ΣC | 1..1 | string | Name for this measure (computer friendly) |
title | SΣ | 0..1 | string | Name for this measure (human friendly) |
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
experimental | Σ | 1..1 | boolean | For testing purposes, not real usage |
date | SΣ | 0..1 | dateTime | Date last changed |
publisher | Σ | 1..1 | string | Name of the publisher (organization or individual) |
contact | SΣ | 0..* | ContactDetail | Contact details for the publisher |
description | Σ | 1..1 | markdown | Natural language description of the measure |
useContext | SΣ | 0..* | UsageContext | The context that the content is intended to support |
jurisdiction | SΣ | 0..* | CodeableConcept | Intended jurisdiction for measure (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. |
library | SC | 0..1 | canonical(CQFM Computable Library) | CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary. |
scoring | SΣC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort Binding: MeasureScoring (extensible) |
type | SΣC | 0..* | CodeableConcept | process | outcome | structure | patient-reported-outcome | composite Binding: MeasureType (extensible) |
riskAdjustment | ΣC | 0..1 | string | How risk adjustment is applied for this measure |
rateAggregation | ΣC | 0..1 | string | How is rate aggregation performed for this measure |
improvementNotation | SΣC | 0..1 | CodeableConcept | increase | decrease Binding: MeasureImprovementNotation (required) |
group | SC | 0..* | BackboneElement | Population criteria group cmp-8: Scoring unit may only be specified at the root if the scoring is also specified at the root cmp-9: Improvement notation must be specified for scoring types other than cohort cmp-10: Cohort measures have one and only one population criteria and that criteria has a code of initial-population cmp-11: Proportion measures must have one and only one initial population cmp-12: Proportion measures must have one and only one denominator cmp-13: Proportion measures must have one and only one numerator cmp-14: Proportion measures may have at most one denominator-exclusion cmp-15: Proportion measures may have at most one denominator-exception cmp-16: Proportion measures may have at most one numerator-exclusion cmp-17: Proportion measures may not have other than initial population, denominator, numerator, denominator-exclusion, denominator-exception, and numerator-exclusion criteria cmp-18: Ratio measures must have between 1 and 2 initial population criteria cmp-19: Ratio measures must have one and only one denominator cmp-20: Ratio measures must have one and only one numerator cmp-21: Ratio measures may have at most one denominator-exclusion cmp-22: Ratio measures may have at most two measure-observation criteria cmp-23: Ratio measures may have at most one numerator-exclusion cmp-24: Ratio measures may not have other than initial population, denominator, numerator, denominator-exclusion, numerator-exclusion, and measure-observation criteria cmp-25: Continuous variable measures must have one and only one initial population criteria cmp-26: Continuous variable measures must have one and only one measure population cmp-27: Continuous variable measures must have one and only one measure observation cmp-28: Continuous variable measures may have at most one measure population exclusion cmp-29: Continuous variable measures may not have other than initial population, measure-population, measure-population-exclusion, and measure-observation criteria cmp-30: Composite measures may not specify population criteria cmp-31: Composite measures must specify composite scoring and at least one component |
id | SC | 0..1 | string | Unique id for inter-element referencing |
populationBasis | SC | 0..1 | code | What type of population URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis Binding: FHIRAllTypes (required): The type of elements in the population |
scoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring Binding: MeasureScoring (extensible): How the measure calculation is performed |
scoringUnit | SC | 0..1 | CodeableConcept | What units? URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit |
compositeScoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring Binding: CompositeMeasureScoring (extensible): How the composite measure calculation is performed |
component | SC | 0..* | RelatedArtifact | What artifact URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component |
type | C | 0..1 | CodeableConcept | process | outcome | structure | patient-reported-outcome URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-type Binding: MeasureType (extensible): Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization. |
riskAdjustment | C | 0..1 | string | How risk adjustment is applied for this measure URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment |
rateAggregation | C | 0..1 | string | How is rate aggregation performed for this measure URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation |
improvementNotation | SC | 0..1 | CodeableConcept | increase | decrease URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-improvementNotation Binding: MeasureImprovementNotation (required): Indicates how to interpret the calculated score of the measure |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
population | SC | 0..* | BackboneElement | Population criteria cmp-32: Computable measures must use text/cql-expression or text/cql-identifier for all criteria |
id | S | 1..1 | string | Unique id for inter-element referencing |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | S | 1..1 | CodeableConcept | initial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-observation Binding: MeasurePopulationType (extensible) |
criteria | SC | 1..1 | Expression | The criteria that defines this population |
stratifier | SC | 0..* | BackboneElement | Stratifier criteria for the measure cmp-33: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria |
id | S | 1..1 | string | Unique id for inter-element referencing |
appliesTo | 0..* | CodeableConcept | Which group should this stratification apply to? If none is specified then the stratification will apply to all groups. URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo Binding: MeasurePopulationType (extensible): Indicates the population | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
criteria | SC | 0..1 | Expression | How the measure should be stratified |
component | SC | 0..* | BackboneElement | Stratifier criteria component for the measure cmp-34: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier component criteria |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
criteria | 1..1 | Expression | Component of how the measure should be stratified | |
supplementalData | SC | 0..* | BackboneElement | What other data should be reported with the measure cmp-35: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all supplemental data criteria |
id | S | 1..1 | string | Unique id for inter-element referencing |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | S | 0..1 | CodeableConcept | Meaning of the supplemental data Binding: MeasureDataUsage (extensible) |
criteria | 1..1 | Expression | Expression describing additional data to be reported | |
Documentation for this format |
Path | Conformance | ValueSet |
Measure.status | required | PublicationStatus |
Measure.jurisdiction | extensible | Jurisdiction ValueSet |
Measure.scoring | extensible | MeasureScoring |
Measure.type | extensible | MeasureType |
Measure.improvementNotation | required | MeasureImprovementNotation |
Measure.group.population.code | extensible | MeasurePopulationType |
Measure.supplementalData.code | extensible | MeasureDataUsage |
Id | Grade | Path(s) | Details | Requirements |
cmp-1 | error | Measure | Population basis must be specified at the root, or on each group : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis').exists() xor group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis').exists()).allTrue() | |
cmp-2 | error | Measure | Scoring must be specified at the root, or on each group : scoring.exists() xor group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists()).allTrue() | |
cmp-3 | error | Measure | Scoring unit may only be specified at the root if the scoring is also specified at the root : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit').exists() implies scoring.exists() | |
cmp-4 | error | Measure | Improvement notation must be specified for scoring types other than cohort : scoring.exists() and scoring in ('proportion' | 'ratio' | 'continuous-variable') implies improvementNotation.exists() | |
cmp-5 | error | Measure | If type is specified at the root, it may not be specified on any group : type.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-measureType').exists()).allFalse() | |
cmp-6 | error | Measure | If riskAdjustment is specified at the root, it may not be specified on any group : riskAdjustment.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment').exists()).allFalse() | |
cmp-7 | error | Measure | If rateAggregation is specified at the root, it may not be specified on any group : rateAggregation.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation').exists()).allFalse() | |
cmp-8 | error | Measure.group | Scoring unit may only be specified at the root if the scoring is also specified at the root : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit').exists() implies extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() | |
cmp-9 | error | Measure.group | Improvement notation must be specified for scoring types other than cohort : 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-10 | error | Measure.group | Cohort measures have one and only one population criteria and that criteria has a code of initial-population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'cohort' implies group.population.count() = 1 and group.population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-popuplation').code = 'initial-population').allTrue() | |
cmp-11 | error | Measure.group | Proportion measures must have one and only one initial population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count = 1 | |
cmp-12 | error | Measure.group | Proportion measures must have one and only one denominator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator').count = 1 | |
cmp-13 | error | Measure.group | Proportion measures must have one and only one numerator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator').count = 1 | |
cmp-14 | error | Measure.group | Proportion measures may have at most one denominator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exclusion').count <= 1 | |
cmp-15 | error | Measure.group | Proportion measures may have at most one denominator-exception : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exception').count <= 1 | |
cmp-16 | error | Measure.group | Proportion measures may have at most one numerator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator-exclusion').count <= 1 | |
cmp-17 | error | Measure.group | Proportion measures may not have other than initial population, denominator, numerator, denominator-exclusion, denominator-exception, and numerator-exclusion criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.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-18 | error | Measure.group | Ratio measures must have between 1 and 2 initial population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies (group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count() in (1 | 2)) | |
cmp-19 | error | Measure.group | Ratio measures must have one and only one denominator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator').count = 1 | |
cmp-20 | error | Measure.group | Ratio measures must have one and only one numerator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator').count = 1 | |
cmp-21 | error | Measure.group | Ratio measures may have at most one denominator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exclusion').count <= 1 | |
cmp-22 | error | Measure.group | Ratio measures may have at most two measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-observation').count <= 2 | |
cmp-23 | error | Measure.group | Ratio measures may have at most one numerator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator-exclusion').count <= 1 | |
cmp-24 | error | Measure.group | Ratio measures may not have other than initial population, denominator, numerator, denominator-exclusion, numerator-exclusion, and measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.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-25 | error | Measure.group | Continuous variable measures must have one and only one initial population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count = 1 | |
cmp-26 | error | Measure.group | Continuous variable measures must have one and only one measure population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-population').count = 1 | |
cmp-27 | error | Measure.group | Continuous variable measures must have one and only one measure observation : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-observation').count = 1 | |
cmp-28 | error | Measure.group | Continuous variable measures may have at most one measure population exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-population-exclusion').count <= 1 | |
cmp-29 | error | Measure.group | Continuous variable measures may not have other than initial population, measure-population, measure-population-exclusion, and measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'measure-population' | 'meausre-population-exclusion' | 'measure-observation')).allTrue() | |
cmp-30 | error | Measure.group | Composite measures may not specify population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'composite' implies group.population.count() = 0 | |
cmp-31 | error | Measure.group | Composite measures must specify composite scoring and at least one component : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = '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-32 | error | Measure.group.population | Computable measures must use text/cql-expression or text/cql-identifier for all criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier') | |
cmp-33 | error | Measure.group.stratifier | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cmp-34 | error | Measure.group.stratifier.component | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier component criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cmp-35 | error | Measure.supplementalData | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all supplemental data criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cqm-2 | warning | Measure.library | Measures utilizing CQL SHALL reference one and only one CQL library (and that referenced library MUST be the primary library for the measure) : exists() | |
cqm-3 | warning | Measure.group.id | Group identifiers SHOULD use the convention: "group-[group number]", where [group number] corresponds with the group naming convention for the criteria within the group : value.startsWith('group-') | |
cqm-4 | warning | Measure.group.population.criteria | Group population criteria SHOULD be simple expression names found within the primary library for the measure. The criteria SHOULD NOT include a namespace. : expression.contains('.').not() | |
cqm-5 | warning | Measure.group.stratifier.criteria | Group stratifier criteria SHOULD be simple expression names found within the primary library for the measure. The criteria SHOULD NOT include a namespace. : expression.contains('.').not() | |
cqm-6 | warning | Measure.supplementalData | Supplemental data SHALL use either criteria or path : criteria.exists() or path.exists() | |
dom-2 | error | Measure | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Measure | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Measure | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | Measure | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Measure | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
mea-0 | warning | Measure | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') | |
mea-1 | error | Measure | Stratifier SHALL be either a single criteria or a set of criteria components : group.stratifier.all((code | description | criteria).exists() xor component.exists()) |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Measure | SC | 1..1 | CQFMMeasure | A quality measure definition cmp-1: Population basis must be specified at the root, or on each group cmp-2: Scoring must be specified at the root, or on each group cmp-3: Scoring unit may only be specified at the root if the scoring is also specified at the root cmp-4: Improvement notation must be specified for scoring types other than cohort cmp-5: If type is specified at the root, it may not be specified on any group cmp-6: If riskAdjustment is specified at the root, it may not be specified on any group cmp-7: If rateAggregation is specified at the root, it may not be specified on any group | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | SΣ | 1..1 | Meta | Metadata about the resource | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
versionId | Σ | 0..1 | id | Version specific identifier | ||||
lastUpdated | Σ | 0..1 | instant | When the resource version last changed | ||||
source | Σ | 0..1 | uri | Identifies where the resource comes from | ||||
profile | SΣ | 1..* | canonical(StructureDefinition) | Profiles this resource claims to conform to | ||||
security | Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System. | ||||
tag | Σ | 0..* | Coding | Tags applied to this resource Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones". | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
Slices for extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
comment | S | 0..* | (Complex) | Additional documentation, review, or usage guidance URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-artifactComment | ||||
allocation | S | 0..1 | markdown | Allocation guidance URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-allocation | ||||
softwaresystem | S | 0..* | Reference(CQFM Device) | Extension URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem | ||||
populationBasis | SC | 0..1 | code | What type of population URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis Binding: FHIRAllTypes (required): The type of elements in the population | ||||
scoringUnit | SC | 0..1 | CodeableConcept | What units? URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit | ||||
effectiveDataRequirements | S | 0..1 | Reference(CQFM Module Definition Library) | Effective required data for evaluation URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements | ||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
url | Σ | 1..1 | uri | Canonical identifier for this measure, represented as a URI (globally unique) | ||||
identifier | SΣ | 0..* | Identifier | Additional identifier for the measure | ||||
version | Σ | 1..1 | string | Business version of the measure | ||||
name | ΣC | 1..1 | string | Name for this measure (computer friendly) | ||||
title | SΣ | 0..1 | string | Name for this measure (human friendly) | ||||
subtitle | 0..1 | string | Subordinate title of the measure | |||||
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. | ||||
experimental | Σ | 1..1 | boolean | For testing purposes, not real usage | ||||
subject[x] | 0..1 | E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device Binding: SubjectType (extensible): The possible types of subjects for a measure (E.g. Patient, Practitioner, Organization, Location, etc.). | ||||||
subjectCodeableConcept | CodeableConcept | |||||||
subjectReference | Reference(Group) | |||||||
date | SΣ | 0..1 | dateTime | Date last changed | ||||
publisher | Σ | 1..1 | string | Name of the publisher (organization or individual) | ||||
contact | SΣ | 0..* | ContactDetail | Contact details for the publisher | ||||
description | Σ | 1..1 | markdown | Natural language description of the measure | ||||
useContext | SΣ | 0..* | UsageContext | The context that the content is intended to support | ||||
jurisdiction | SΣ | 0..* | CodeableConcept | Intended jurisdiction for measure (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. | ||||
purpose | 0..1 | markdown | Why this measure is defined | |||||
usage | 0..1 | string | Describes the clinical usage of the measure | |||||
copyright | 0..1 | markdown | Use and/or publishing restrictions | |||||
approvalDate | 0..1 | date | When the measure was approved by publisher | |||||
lastReviewDate | 0..1 | date | When the measure was last reviewed | |||||
effectivePeriod | Σ | 0..1 | Period | When the measure is expected to be used | ||||
topic | 0..* | CodeableConcept | The category of the measure, such as Education, Treatment, Assessment, etc. Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering. | |||||
author | 0..* | ContactDetail | Who authored the content | |||||
editor | 0..* | ContactDetail | Who edited the content | |||||
reviewer | 0..* | ContactDetail | Who reviewed the content | |||||
endorser | 0..* | ContactDetail | Who endorsed the content | |||||
relatedArtifact | 0..* | RelatedArtifact | Additional documentation, citations, etc. | |||||
library | SC | 0..1 | canonical(CQFM Computable Library) | CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary. | ||||
disclaimer | Σ | 0..1 | markdown | Disclaimer for use of the measure or its referenced content | ||||
scoring | SΣC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort Binding: MeasureScoring (extensible) | ||||
compositeScoring | Σ | 0..1 | CodeableConcept | opportunity | all-or-nothing | linear | weighted Binding: CompositeMeasureScoring (extensible): The composite scoring method of the measure. | ||||
type | SΣC | 0..* | CodeableConcept | process | outcome | structure | patient-reported-outcome | composite Binding: MeasureType (extensible) | ||||
riskAdjustment | ΣC | 0..1 | string | How risk adjustment is applied for this measure | ||||
rateAggregation | ΣC | 0..1 | string | How is rate aggregation performed for this measure | ||||
rationale | Σ | 0..1 | markdown | Detailed description of why the measure exists | ||||
clinicalRecommendationStatement | Σ | 0..1 | markdown | Summary of clinical guidelines | ||||
improvementNotation | SΣC | 0..1 | CodeableConcept | increase | decrease Binding: MeasureImprovementNotation (required) | ||||
definition | Σ | 0..* | markdown | Defined terms used in the measure documentation | ||||
guidance | Σ | 0..1 | markdown | Additional guidance for implementers | ||||
group | SC | 0..* | BackboneElement | Population criteria group cmp-8: Scoring unit may only be specified at the root if the scoring is also specified at the root cmp-9: Improvement notation must be specified for scoring types other than cohort cmp-10: Cohort measures have one and only one population criteria and that criteria has a code of initial-population cmp-11: Proportion measures must have one and only one initial population cmp-12: Proportion measures must have one and only one denominator cmp-13: Proportion measures must have one and only one numerator cmp-14: Proportion measures may have at most one denominator-exclusion cmp-15: Proportion measures may have at most one denominator-exception cmp-16: Proportion measures may have at most one numerator-exclusion cmp-17: Proportion measures may not have other than initial population, denominator, numerator, denominator-exclusion, denominator-exception, and numerator-exclusion criteria cmp-18: Ratio measures must have between 1 and 2 initial population criteria cmp-19: Ratio measures must have one and only one denominator cmp-20: Ratio measures must have one and only one numerator cmp-21: Ratio measures may have at most one denominator-exclusion cmp-22: Ratio measures may have at most two measure-observation criteria cmp-23: Ratio measures may have at most one numerator-exclusion cmp-24: Ratio measures may not have other than initial population, denominator, numerator, denominator-exclusion, numerator-exclusion, and measure-observation criteria cmp-25: Continuous variable measures must have one and only one initial population criteria cmp-26: Continuous variable measures must have one and only one measure population cmp-27: Continuous variable measures must have one and only one measure observation cmp-28: Continuous variable measures may have at most one measure population exclusion cmp-29: Continuous variable measures may not have other than initial population, measure-population, measure-population-exclusion, and measure-observation criteria cmp-30: Composite measures may not specify population criteria cmp-31: Composite measures must specify composite scoring and at least one component | ||||
id | SC | 0..1 | string | Unique id for inter-element referencing | ||||
Slices for extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
populationBasis | SC | 0..1 | code | What type of population URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis Binding: FHIRAllTypes (required): The type of elements in the population | ||||
scoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring Binding: MeasureScoring (extensible): How the measure calculation is performed | ||||
scoringUnit | SC | 0..1 | CodeableConcept | What units? URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit | ||||
compositeScoring | SC | 0..1 | CodeableConcept | proportion | ratio | continuous-variable | cohort URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring Binding: CompositeMeasureScoring (extensible): How the composite measure calculation is performed | ||||
component | SC | 0..* | RelatedArtifact | What artifact URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component | ||||
type | C | 0..1 | CodeableConcept | process | outcome | structure | patient-reported-outcome URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-type Binding: MeasureType (extensible): Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization. | ||||
riskAdjustment | C | 0..1 | string | How risk adjustment is applied for this measure URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment | ||||
rateAggregation | C | 0..1 | string | How is rate aggregation performed for this measure URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation | ||||
improvementNotation | SC | 0..1 | CodeableConcept | increase | decrease URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-improvementNotation Binding: MeasureImprovementNotation (required): Indicates how to interpret the calculated score of the measure | ||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
code | 0..1 | CodeableConcept | Meaning of the group | |||||
description | 0..1 | string | Summary description | |||||
population | SC | 0..* | BackboneElement | Population criteria cmp-32: Computable measures must use text/cql-expression or text/cql-identifier for all criteria | ||||
id | S | 1..1 | string | Unique id for inter-element referencing | ||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
code | S | 1..1 | CodeableConcept | initial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-observation Binding: MeasurePopulationType (extensible) | ||||
description | 0..1 | string | The human readable description of this population criteria | |||||
criteria | SC | 1..1 | Expression | The criteria that defines this population | ||||
stratifier | SC | 0..* | BackboneElement | Stratifier criteria for the measure cmp-33: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria | ||||
id | S | 1..1 | string | Unique id for inter-element referencing | ||||
Slices for extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
appliesTo | 0..* | CodeableConcept | Which group should this stratification apply to? If none is specified then the stratification will apply to all groups. URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo Binding: MeasurePopulationType (extensible): Indicates the population | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
code | 0..1 | CodeableConcept | Meaning of the stratifier | |||||
description | 0..1 | string | The human readable description of this stratifier | |||||
criteria | SC | 0..1 | Expression | How the measure should be stratified | ||||
component | SC | 0..* | BackboneElement | Stratifier criteria component for the measure cmp-34: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier component criteria | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
code | 0..1 | CodeableConcept | Meaning of the stratifier component | |||||
description | 0..1 | string | The human readable description of this stratifier component | |||||
criteria | 1..1 | Expression | Component of how the measure should be stratified | |||||
supplementalData | SC | 0..* | BackboneElement | What other data should be reported with the measure cmp-35: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all supplemental data criteria | ||||
id | S | 1..1 | string | Unique id for inter-element referencing | ||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
code | S | 0..1 | CodeableConcept | Meaning of the supplemental data Binding: MeasureDataUsage (extensible) | ||||
usage | 0..* | CodeableConcept | supplemental-data | risk-adjustment-factor Binding: MeasureDataUsage (extensible): The intended usage for supplemental data elements in the measure. | |||||
description | 0..1 | string | The human readable description of this supplemental data | |||||
criteria | 1..1 | Expression | Expression describing additional data to be reported | |||||
Documentation for this format |
Path | Conformance | ValueSet | ||||
Measure.meta.security | extensible | All Security Labels | ||||
Measure.meta.tag | example | CommonTags | ||||
Measure.language | preferred | CommonLanguages
| ||||
Measure.status | required | PublicationStatus | ||||
Measure.subject[x] | extensible | SubjectType | ||||
Measure.jurisdiction | extensible | Jurisdiction ValueSet | ||||
Measure.topic | example | DefinitionTopic | ||||
Measure.scoring | extensible | MeasureScoring | ||||
Measure.compositeScoring | extensible | CompositeMeasureScoring | ||||
Measure.type | extensible | MeasureType | ||||
Measure.improvementNotation | required | MeasureImprovementNotation | ||||
Measure.group.population.code | extensible | MeasurePopulationType | ||||
Measure.supplementalData.code | extensible | MeasureDataUsage | ||||
Measure.supplementalData.usage | extensible | MeasureDataUsage |
Id | Grade | Path(s) | Details | Requirements |
cmp-1 | error | Measure | Population basis must be specified at the root, or on each group : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis').exists() xor group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis').exists()).allTrue() | |
cmp-2 | error | Measure | Scoring must be specified at the root, or on each group : scoring.exists() xor group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists()).allTrue() | |
cmp-3 | error | Measure | Scoring unit may only be specified at the root if the scoring is also specified at the root : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit').exists() implies scoring.exists() | |
cmp-4 | error | Measure | Improvement notation must be specified for scoring types other than cohort : scoring.exists() and scoring in ('proportion' | 'ratio' | 'continuous-variable') implies improvementNotation.exists() | |
cmp-5 | error | Measure | If type is specified at the root, it may not be specified on any group : type.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-measureType').exists()).allFalse() | |
cmp-6 | error | Measure | If riskAdjustment is specified at the root, it may not be specified on any group : riskAdjustment.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment').exists()).allFalse() | |
cmp-7 | error | Measure | If rateAggregation is specified at the root, it may not be specified on any group : rateAggregation.exists() implies group.select(extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation').exists()).allFalse() | |
cmp-8 | error | Measure.group | Scoring unit may only be specified at the root if the scoring is also specified at the root : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit').exists() implies extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() | |
cmp-9 | error | Measure.group | Improvement notation must be specified for scoring types other than cohort : 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-10 | error | Measure.group | Cohort measures have one and only one population criteria and that criteria has a code of initial-population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'cohort' implies group.population.count() = 1 and group.population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-popuplation').code = 'initial-population').allTrue() | |
cmp-11 | error | Measure.group | Proportion measures must have one and only one initial population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count = 1 | |
cmp-12 | error | Measure.group | Proportion measures must have one and only one denominator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator').count = 1 | |
cmp-13 | error | Measure.group | Proportion measures must have one and only one numerator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator').count = 1 | |
cmp-14 | error | Measure.group | Proportion measures may have at most one denominator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exclusion').count <= 1 | |
cmp-15 | error | Measure.group | Proportion measures may have at most one denominator-exception : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exception').count <= 1 | |
cmp-16 | error | Measure.group | Proportion measures may have at most one numerator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator-exclusion').count <= 1 | |
cmp-17 | error | Measure.group | Proportion measures may not have other than initial population, denominator, numerator, denominator-exclusion, denominator-exception, and numerator-exclusion criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'proportion' implies group.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-18 | error | Measure.group | Ratio measures must have between 1 and 2 initial population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies (group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count() in (1 | 2)) | |
cmp-19 | error | Measure.group | Ratio measures must have one and only one denominator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator').count = 1 | |
cmp-20 | error | Measure.group | Ratio measures must have one and only one numerator : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator').count = 1 | |
cmp-21 | error | Measure.group | Ratio measures may have at most one denominator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'denominator-exclusion').count <= 1 | |
cmp-22 | error | Measure.group | Ratio measures may have at most two measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-observation').count <= 2 | |
cmp-23 | error | Measure.group | Ratio measures may have at most one numerator-exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'numerator-exclusion').count <= 1 | |
cmp-24 | error | Measure.group | Ratio measures may not have other than initial population, denominator, numerator, denominator-exclusion, numerator-exclusion, and measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.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-25 | error | Measure.group | Continuous variable measures must have one and only one initial population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'initial-population').count = 1 | |
cmp-26 | error | Measure.group | Continuous variable measures must have one and only one measure population : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-population').count = 1 | |
cmp-27 | error | Measure.group | Continuous variable measures must have one and only one measure observation : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-observation').count = 1 | |
cmp-28 | error | Measure.group | Continuous variable measures may have at most one measure population exclusion : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'continuous-variable' implies group.population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code = 'measure-population-exclusion').count <= 1 | |
cmp-29 | error | Measure.group | Continuous variable measures may not have other than initial population, measure-population, measure-population-exclusion, and measure-observation criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'ratio' implies group.population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'measure-population' | 'meausre-population-exclusion' | 'measure-observation')).allTrue() | |
cmp-30 | error | Measure.group | Composite measures may not specify population criteria : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = 'composite' implies group.population.count() = 0 | |
cmp-31 | error | Measure.group | Composite measures must specify composite scoring and at least one component : extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring').value = '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-32 | error | Measure.group.population | Computable measures must use text/cql-expression or text/cql-identifier for all criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier') | |
cmp-33 | error | Measure.group.stratifier | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cmp-34 | error | Measure.group.stratifier.component | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier component criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cmp-35 | error | Measure.supplementalData | Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all supplemental data criteria : criteria.language in ('text/cql-expression' | 'text/cql-identifier' | 'text/fhirpath') | |
cqm-2 | warning | Measure.library | Measures utilizing CQL SHALL reference one and only one CQL library (and that referenced library MUST be the primary library for the measure) : exists() | |
cqm-3 | warning | Measure.group.id | Group identifiers SHOULD use the convention: "group-[group number]", where [group number] corresponds with the group naming convention for the criteria within the group : value.startsWith('group-') | |
cqm-4 | warning | Measure.group.population.criteria | Group population criteria SHOULD be simple expression names found within the primary library for the measure. The criteria SHOULD NOT include a namespace. : expression.contains('.').not() | |
cqm-5 | warning | Measure.group.stratifier.criteria | Group stratifier criteria SHOULD be simple expression names found within the primary library for the measure. The criteria SHOULD NOT include a namespace. : expression.contains('.').not() | |
cqm-6 | warning | Measure.supplementalData | Supplemental data SHALL use either criteria or path : criteria.exists() or path.exists() | |
dom-2 | error | Measure | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Measure | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Measure | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | Measure | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Measure | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
mea-0 | warning | Measure | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') | |
mea-1 | error | Measure | Stratifier SHALL be either a single criteria or a set of criteria components : group.stratifier.all((code | description | criteria).exists() xor component.exists()) |
This structure is derived from CQFMMeasure
Summary
Must-Support: 18 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Other representations of profile: CSV, Excel, Schematron