Quality Measure Implementation Guide (STU4)
4.0.0 - STU4 United States of America flag

This page is part of the Quality Measure STU2 for FHIR R4 Implementation Guide (v4.0.0: STU4 (v4.0.0)) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: CQFM Computable Measure

Official URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/computable-measure-cqfm Version: 4.0.0
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:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from CQFMMeasure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Measure SC1..1CQFMMeasureA 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 SC0..1codeWhat type of population
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
Binding: FHIRAllTypes (required): The type of elements in the population

... scoringUnit SC0..1CodeableConceptWhat units?
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit
... effectiveDataRequirements S0..1Reference(CQFM Module Definition Library)Effective required data for evaluation
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements
... scoring SC0..1CodeableConceptproportion | ratio | continuous-variable | cohort
Binding: MeasureScoring (extensible)
... type SC0..*CodeableConceptprocess | outcome | structure | patient-reported-outcome | composite
... riskAdjustment C0..1stringHow risk adjustment is applied for this measure
... rateAggregation C0..1stringHow is rate aggregation performed for this measure
... improvementNotation SC0..1CodeableConceptincrease | decrease
Binding: MeasureImprovementNotation (required)
... group SC0..*BackboneElementPopulation 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 SC0..1codeWhat type of population
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
Binding: FHIRAllTypes (required): The type of elements in the population

.... scoring SC0..1CodeableConceptproportion | ratio | continuous-variable | cohort
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring
Binding: MeasureScoring (extensible): How the measure calculation is performed

.... scoringUnit SC0..1CodeableConceptWhat units?
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit
.... compositeScoring SC0..1CodeableConceptproportion | 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 SC0..*RelatedArtifactWhat artifact
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component
.... type C0..*CodeableConceptprocess | 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 C0..1stringHow risk adjustment is applied for this measure
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment
.... rateAggregation C0..1stringHow is rate aggregation performed for this measure
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation
.... improvementNotation SC0..1CodeableConceptincrease | 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 SC0..*BackboneElementPopulation criteria
cmp-32: Computable measures must use text/cql-expression or text/cql-identifier for all criteria
.... stratifier SC0..*BackboneElementStratifier 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..*CodeableConceptWhich group should this stratification apply to? If none is specified, the stratification applies to all populations in the group.
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo
Binding: MeasurePopulationType (extensible): Indicates the population


..... component SC0..*BackboneElementStratifier 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 SC0..*BackboneElementWhat 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

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Measure.scoringextensibleMeasureScoring
Measure.improvementNotationrequiredMeasureImprovementNotation

Constraints

IdGradePath(s)DetailsRequirements
cmp-1errorMeasurePopulation 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-2errorMeasureScoring 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-3errorMeasureScoring 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-4errorMeasureImprovement notation must be specified for scoring types other than cohort
: scoring.exists() and scoring in ('proportion' | 'ratio' | 'continuous-variable') implies improvementNotation.exists()
cmp-5errorMeasureIf 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-6errorMeasureIf 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-7errorMeasureIf 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-8errorMeasure.groupScoring 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-9errorMeasure.groupImprovement 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-10errorMeasure.groupCohort 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.coding.code contains 'cohort' implies population.count() = 1 and population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').allTrue()
cmp-11errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() = 1
cmp-12errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator').count() = 1
cmp-13errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator').count() = 1
cmp-14errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exclusion').count() <= 1
cmp-15errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exception').count() <= 1
cmp-16errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator-exclusion').count() <= 1
cmp-17errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'numerator' | 'denominator' | 'denominator-exclusion' | 'denominator-exception' | 'numerator-exclusion')).allTrue()
cmp-18errorMeasure.groupRatio 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.coding.code contains 'ratio' implies (population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() in (1 | 2))
cmp-19errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator').count() = 1
cmp-20errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator').count() = 1
cmp-21errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exclusion').count() <= 1
cmp-22errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-observation').count() <= 2
cmp-23errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator-exclusion').count() <= 1
cmp-24errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'numerator' | 'denominator' | 'denominator-exclusion' | 'measure-observation' | 'numerator-exclusion')).allTrue()
cmp-25errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() = 1
cmp-26errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-population').count() = 1
cmp-27errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-observation').count() = 1
cmp-28errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-population-exclusion').count() <= 1
cmp-29errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'measure-population' | 'measure-population-exclusion' | 'measure-observation')).allTrue()
cmp-30errorMeasure.groupComposite 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.coding.code contains 'composite' implies population.count() = 0
cmp-31errorMeasure.groupComposite 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.coding.code contains 'composite' implies extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component').exists()
cmp-32errorMeasure.group.populationComputable measures must use text/cql-expression or text/cql-identifier for all criteria
: criteria.language in ('text/cql-expression' | 'text/cql-identifier')
cmp-33errorMeasure.group.stratifierComputable 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-34errorMeasure.group.stratifier.componentComputable 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-35errorMeasure.supplementalDataComputable 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')
NameFlagsCard.TypeDescription & Constraintsdoco
.. Measure SC1..1CQFMMeasureA 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..1MetaMetadata about the resource
.... profile SΣ1..*canonical(StructureDefinition)Profiles this resource claims to conform to
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... comment S0..*(Complex)Additional documentation, review, or usage guidance
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-artifactComment
... softwaresystem S0..*Reference(CQFM Device)Extension
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem
... populationBasis SC0..1codeWhat type of population
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
Binding: FHIRAllTypes (required): The type of elements in the population


... scoringUnit SC0..1CodeableConceptWhat units?
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit
... effectiveDataRequirements S0..1Reference(CQFM Module Definition Library)Effective required data for evaluation
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ1..1uriCanonical identifier for this measure, represented as a URI (globally unique)
... identifier SΣ0..*IdentifierAdditional identifier for the measure
... version Σ1..1stringBusiness version of the measure
... name ΣC1..1stringName for this measure (computer friendly)
... title SΣ0..1stringName for this measure (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... experimental Σ1..1booleanFor testing purposes, not real usage
... date SΣ0..1dateTimeDate last changed
... publisher Σ1..1stringName of the publisher (organization or individual)
... contact SΣ0..*ContactDetailContact details for the publisher
... description Σ1..1markdownNatural language description of the measure
... useContext SΣ0..*UsageContextThe context that the content is intended to support
... jurisdiction SΣ0..*CodeableConceptIntended jurisdiction for measure (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... library SC0..1canonical(CQFM Computable Library)CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary.
... scoring SΣC0..1CodeableConceptproportion | ratio | continuous-variable | cohort
Binding: MeasureScoring (extensible)
... type SΣC0..*CodeableConceptprocess | outcome | structure | patient-reported-outcome | composite
Binding: MeasureType (extensible)
... riskAdjustment ΣC0..1stringHow risk adjustment is applied for this measure
... rateAggregation ΣC0..1stringHow is rate aggregation performed for this measure
... improvementNotation SΣC0..1CodeableConceptincrease | decrease
Binding: MeasureImprovementNotation (required)
... group SC0..*BackboneElementPopulation 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 SC0..1stringUnique id for inter-element referencing
.... populationBasis SC0..1codeWhat type of population
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
Binding: FHIRAllTypes (required): The type of elements in the population


.... scoring SC0..1CodeableConceptproportion | ratio | continuous-variable | cohort
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring
Binding: MeasureScoring (extensible): How the measure calculation is performed


.... scoringUnit SC0..1CodeableConceptWhat units?
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit
.... compositeScoring SC0..1CodeableConceptproportion | 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 SC0..*RelatedArtifactWhat artifact
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component
.... type C0..*CodeableConceptprocess | 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 C0..1stringHow risk adjustment is applied for this measure
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment
.... rateAggregation C0..1stringHow is rate aggregation performed for this measure
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation
.... improvementNotation SC0..1CodeableConceptincrease | 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..*ExtensionExtensions that cannot be ignored even if unrecognized
.... population SC0..*BackboneElementPopulation criteria
cmp-32: Computable measures must use text/cql-expression or text/cql-identifier for all criteria
..... id S1..1stringUnique id for inter-element referencing
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... code S1..1CodeableConceptinitial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-observation
Binding: MeasurePopulationType (extensible)
..... criteria SC1..1ExpressionThe criteria that defines this population
.... stratifier SC0..*BackboneElementStratifier criteria for the measure
cmp-33: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria
..... id S1..1stringUnique id for inter-element referencing
..... appliesTo 0..*CodeableConceptWhich group should this stratification apply to? If none is specified, the stratification applies to all populations in the group.
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo
Binding: MeasurePopulationType (extensible): Indicates the population


..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... criteria SC0..1ExpressionHow the measure should be stratified
..... component SC0..*BackboneElementStratifier 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..*ExtensionExtensions that cannot be ignored even if unrecognized
...... criteria 1..1ExpressionComponent of how the measure should be stratified
... supplementalData SC0..*BackboneElementWhat 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 S1..1stringUnique id for inter-element referencing
.... includeInReportType 0..*codeThe type of report the element should be included in
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-includeInReportType
Binding: MeasureReportType (required): The type of report the element should be included in


.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code S0..1CodeableConceptMeaning of the supplemental data
Binding: MeasureSupplementalData (preferred)
.... criteria 1..1ExpressionExpression describing additional data to be reported

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Measure.statusrequiredPublicationStatus
Measure.jurisdictionextensibleJurisdiction ValueSet
Measure.scoringextensibleMeasureScoring
Measure.typeextensibleMeasureType
Measure.improvementNotationrequiredMeasureImprovementNotation
Measure.group.population.codeextensibleMeasurePopulationType
Measure.supplementalData.codepreferredMeasureSupplementalData

Constraints

IdGradePath(s)DetailsRequirements
cmp-1errorMeasurePopulation 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-2errorMeasureScoring 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-3errorMeasureScoring 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-4errorMeasureImprovement notation must be specified for scoring types other than cohort
: scoring.exists() and scoring in ('proportion' | 'ratio' | 'continuous-variable') implies improvementNotation.exists()
cmp-5errorMeasureIf 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-6errorMeasureIf 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-7errorMeasureIf 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-8errorMeasure.groupScoring 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-9errorMeasure.groupImprovement 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-10errorMeasure.groupCohort 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.coding.code contains 'cohort' implies population.count() = 1 and population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').allTrue()
cmp-11errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() = 1
cmp-12errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator').count() = 1
cmp-13errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator').count() = 1
cmp-14errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exclusion').count() <= 1
cmp-15errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exception').count() <= 1
cmp-16errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator-exclusion').count() <= 1
cmp-17errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'numerator' | 'denominator' | 'denominator-exclusion' | 'denominator-exception' | 'numerator-exclusion')).allTrue()
cmp-18errorMeasure.groupRatio 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.coding.code contains 'ratio' implies (population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() in (1 | 2))
cmp-19errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator').count() = 1
cmp-20errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator').count() = 1
cmp-21errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exclusion').count() <= 1
cmp-22errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-observation').count() <= 2
cmp-23errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator-exclusion').count() <= 1
cmp-24errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'numerator' | 'denominator' | 'denominator-exclusion' | 'measure-observation' | 'numerator-exclusion')).allTrue()
cmp-25errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() = 1
cmp-26errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-population').count() = 1
cmp-27errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-observation').count() = 1
cmp-28errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-population-exclusion').count() <= 1
cmp-29errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'measure-population' | 'measure-population-exclusion' | 'measure-observation')).allTrue()
cmp-30errorMeasure.groupComposite 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.coding.code contains 'composite' implies population.count() = 0
cmp-31errorMeasure.groupComposite 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.coding.code contains 'composite' implies extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component').exists()
cmp-32errorMeasure.group.populationComputable measures must use text/cql-expression or text/cql-identifier for all criteria
: criteria.language in ('text/cql-expression' | 'text/cql-identifier')
cmp-33errorMeasure.group.stratifierComputable 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-34errorMeasure.group.stratifier.componentComputable 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-35errorMeasure.supplementalDataComputable 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-2warningMeasure.libraryMeasures utilizing CQL SHALL reference one and only one CQL library (and that referenced library MUST be the primary library for the measure)
: exists()
cqm-3warningMeasure.group.idGroup identifiers SHOULD use the convention: "group-[group number]", where [group number] corresponds with the group naming convention for the criteria within the group
: startsWith('group-')
cqm-4warningMeasure.group.population.criteriaGroup 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-5warningMeasure.group.stratifier.criteriaGroup 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()
dom-2errorMeasureIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMeasureIf 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-4errorMeasureIf 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-5errorMeasureIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMeasureA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
mea-0warningMeasureName 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-1errorMeasureStratifier SHALL be either a single criteria or a set of criteria components
: group.stratifier.all((code | description | criteria).exists() xor component.exists())
NameFlagsCard.TypeDescription & Constraintsdoco
.. Measure SC1..1CQFMMeasureA 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..1idLogical id of this artifact
... meta SΣ1..1MetaMetadata about the resource
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ0..1idVersion specific identifier
.... lastUpdated Σ0..1instantWhen the resource version last changed
.... source Σ0..1uriIdentifies where the resource comes from
.... profile SΣ1..*canonical(StructureDefinition)Profiles this resource claims to conform to
.... security Σ0..*CodingSecurity Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... tag Σ0..*CodingTags 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..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... comment S0..*(Complex)Additional documentation, review, or usage guidance
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-artifactComment
... softwaresystem S0..*Reference(CQFM Device)Extension
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem
... populationBasis SC0..1codeWhat type of population
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
Binding: FHIRAllTypes (required): The type of elements in the population


... scoringUnit SC0..1CodeableConceptWhat units?
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit
... effectiveDataRequirements S0..1Reference(CQFM Module Definition Library)Effective required data for evaluation
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ1..1uriCanonical identifier for this measure, represented as a URI (globally unique)
... identifier SΣ0..*IdentifierAdditional identifier for the measure
... version Σ1..1stringBusiness version of the measure
... name ΣC1..1stringName for this measure (computer friendly)
... title SΣ0..1stringName for this measure (human friendly)
... subtitle 0..1stringSubordinate title of the measure
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... experimental Σ1..1booleanFor testing purposes, not real usage
... subject[x] 0..1E.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.).

.... subjectCodeableConceptCodeableConcept
.... subjectReferenceReference(Group)
... date SΣ0..1dateTimeDate last changed
... publisher Σ1..1stringName of the publisher (organization or individual)
... contact SΣ0..*ContactDetailContact details for the publisher
... description Σ1..1markdownNatural language description of the measure
... useContext SΣ0..*UsageContextThe context that the content is intended to support
... jurisdiction SΣ0..*CodeableConceptIntended jurisdiction for measure (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... purpose 0..1markdownWhy this measure is defined
... usage 0..1stringDescribes the clinical usage of the measure
... copyright 0..1markdownUse and/or publishing restrictions
... approvalDate 0..1dateWhen the measure was approved by publisher
... lastReviewDate 0..1dateWhen the measure was last reviewed
... effectivePeriod Σ0..1PeriodWhen the measure is expected to be used
... topic 0..*CodeableConceptThe 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..*ContactDetailWho authored the content
... editor 0..*ContactDetailWho edited the content
... reviewer 0..*ContactDetailWho reviewed the content
... endorser 0..*ContactDetailWho endorsed the content
... relatedArtifact 0..*RelatedArtifactAdditional documentation, citations, etc.
... library SC0..1canonical(CQFM Computable Library)CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary.
... disclaimer Σ0..1markdownDisclaimer for use of the measure or its referenced content
... scoring SΣC0..1CodeableConceptproportion | ratio | continuous-variable | cohort
Binding: MeasureScoring (extensible)
... compositeScoring Σ0..1CodeableConceptopportunity | all-or-nothing | linear | weighted
Binding: CompositeMeasureScoring (extensible): The composite scoring method of the measure.

... type SΣC0..*CodeableConceptprocess | outcome | structure | patient-reported-outcome | composite
Binding: MeasureType (extensible)
... riskAdjustment ΣC0..1stringHow risk adjustment is applied for this measure
... rateAggregation ΣC0..1stringHow is rate aggregation performed for this measure
... rationale Σ0..1markdownDetailed description of why the measure exists
... clinicalRecommendationStatement Σ0..1markdownSummary of clinical guidelines
... improvementNotation SΣC0..1CodeableConceptincrease | decrease
Binding: MeasureImprovementNotation (required)
... definition Σ0..*markdownDefined terms used in the measure documentation
... guidance Σ0..1markdownAdditional guidance for implementers
... group SC0..*BackboneElementPopulation 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 SC0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... populationBasis SC0..1codeWhat type of population
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
Binding: FHIRAllTypes (required): The type of elements in the population


.... scoring SC0..1CodeableConceptproportion | ratio | continuous-variable | cohort
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring
Binding: MeasureScoring (extensible): How the measure calculation is performed


.... scoringUnit SC0..1CodeableConceptWhat units?
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit
.... compositeScoring SC0..1CodeableConceptproportion | 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 SC0..*RelatedArtifactWhat artifact
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component
.... type C0..*CodeableConceptprocess | 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 C0..1stringHow risk adjustment is applied for this measure
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment
.... rateAggregation C0..1stringHow is rate aggregation performed for this measure
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation
.... improvementNotation SC0..1CodeableConceptincrease | 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..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code 0..1CodeableConceptMeaning of the group
.... description 0..1stringSummary description
.... population SC0..*BackboneElementPopulation criteria
cmp-32: Computable measures must use text/cql-expression or text/cql-identifier for all criteria
..... id S1..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... code S1..1CodeableConceptinitial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-observation
Binding: MeasurePopulationType (extensible)
..... description 0..1stringThe human readable description of this population criteria
..... criteria SC1..1ExpressionThe criteria that defines this population
.... stratifier SC0..*BackboneElementStratifier criteria for the measure
cmp-33: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria
..... id S1..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
..... appliesTo 0..*CodeableConceptWhich group should this stratification apply to? If none is specified, the stratification applies to all populations in the group.
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo
Binding: MeasurePopulationType (extensible): Indicates the population


..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... code 0..1CodeableConceptMeaning of the stratifier
..... description 0..1stringThe human readable description of this stratifier
..... criteria SC0..1ExpressionHow the measure should be stratified
..... component SC0..*BackboneElementStratifier 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..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... code 0..1CodeableConceptMeaning of the stratifier component
...... description 0..1stringThe human readable description of this stratifier component
...... criteria 1..1ExpressionComponent of how the measure should be stratified
... supplementalData SC0..*BackboneElementWhat 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 S1..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... includeInReportType 0..*codeThe type of report the element should be included in
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-includeInReportType
Binding: MeasureReportType (required): The type of report the element should be included in


.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code S0..1CodeableConceptMeaning of the supplemental data
Binding: MeasureSupplementalData (preferred)
.... usage 0..*CodeableConceptsupplemental-data | risk-adjustment-factor
Binding: MeasureDataUsage (preferred)
.... description 0..1stringThe human readable description of this supplemental data
.... criteria 1..1ExpressionExpression describing additional data to be reported

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Measure.meta.securityextensibleAll Security Labels
Measure.meta.tagexampleCommonTags
Measure.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Measure.statusrequiredPublicationStatus
Measure.subject[x]extensibleSubjectType
Measure.jurisdictionextensibleJurisdiction ValueSet
Measure.topicexampleDefinitionTopic
Measure.scoringextensibleMeasureScoring
Measure.compositeScoringextensibleCompositeMeasureScoring
Measure.typeextensibleMeasureType
Measure.improvementNotationrequiredMeasureImprovementNotation
Measure.group.population.codeextensibleMeasurePopulationType
Measure.supplementalData.codepreferredMeasureSupplementalData
Measure.supplementalData.usagepreferredMeasureDataUsage

Constraints

IdGradePath(s)DetailsRequirements
cmp-1errorMeasurePopulation 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-2errorMeasureScoring 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-3errorMeasureScoring 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-4errorMeasureImprovement notation must be specified for scoring types other than cohort
: scoring.exists() and scoring in ('proportion' | 'ratio' | 'continuous-variable') implies improvementNotation.exists()
cmp-5errorMeasureIf 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-6errorMeasureIf 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-7errorMeasureIf 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-8errorMeasure.groupScoring 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-9errorMeasure.groupImprovement 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-10errorMeasure.groupCohort 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.coding.code contains 'cohort' implies population.count() = 1 and population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').allTrue()
cmp-11errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() = 1
cmp-12errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator').count() = 1
cmp-13errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator').count() = 1
cmp-14errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exclusion').count() <= 1
cmp-15errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exception').count() <= 1
cmp-16errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator-exclusion').count() <= 1
cmp-17errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'numerator' | 'denominator' | 'denominator-exclusion' | 'denominator-exception' | 'numerator-exclusion')).allTrue()
cmp-18errorMeasure.groupRatio 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.coding.code contains 'ratio' implies (population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() in (1 | 2))
cmp-19errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator').count() = 1
cmp-20errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator').count() = 1
cmp-21errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exclusion').count() <= 1
cmp-22errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-observation').count() <= 2
cmp-23errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator-exclusion').count() <= 1
cmp-24errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'numerator' | 'denominator' | 'denominator-exclusion' | 'measure-observation' | 'numerator-exclusion')).allTrue()
cmp-25errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() = 1
cmp-26errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-population').count() = 1
cmp-27errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-observation').count() = 1
cmp-28errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-population-exclusion').count() <= 1
cmp-29errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'measure-population' | 'measure-population-exclusion' | 'measure-observation')).allTrue()
cmp-30errorMeasure.groupComposite 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.coding.code contains 'composite' implies population.count() = 0
cmp-31errorMeasure.groupComposite 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.coding.code contains 'composite' implies extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component').exists()
cmp-32errorMeasure.group.populationComputable measures must use text/cql-expression or text/cql-identifier for all criteria
: criteria.language in ('text/cql-expression' | 'text/cql-identifier')
cmp-33errorMeasure.group.stratifierComputable 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-34errorMeasure.group.stratifier.componentComputable 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-35errorMeasure.supplementalDataComputable 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-2warningMeasure.libraryMeasures utilizing CQL SHALL reference one and only one CQL library (and that referenced library MUST be the primary library for the measure)
: exists()
cqm-3warningMeasure.group.idGroup identifiers SHOULD use the convention: "group-[group number]", where [group number] corresponds with the group naming convention for the criteria within the group
: startsWith('group-')
cqm-4warningMeasure.group.population.criteriaGroup 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-5warningMeasure.group.stratifier.criteriaGroup 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()
dom-2errorMeasureIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMeasureIf 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-4errorMeasureIf 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-5errorMeasureIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMeasureA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
mea-0warningMeasureName 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-1errorMeasureStratifier SHALL be either a single criteria or a set of criteria components
: group.stratifier.all((code | description | criteria).exists() xor component.exists())

Differential View

This structure is derived from CQFMMeasure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Measure SC1..1CQFMMeasureA 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 SC0..1codeWhat type of population
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
Binding: FHIRAllTypes (required): The type of elements in the population

... scoringUnit SC0..1CodeableConceptWhat units?
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit
... effectiveDataRequirements S0..1Reference(CQFM Module Definition Library)Effective required data for evaluation
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements
... scoring SC0..1CodeableConceptproportion | ratio | continuous-variable | cohort
Binding: MeasureScoring (extensible)
... type SC0..*CodeableConceptprocess | outcome | structure | patient-reported-outcome | composite
... riskAdjustment C0..1stringHow risk adjustment is applied for this measure
... rateAggregation C0..1stringHow is rate aggregation performed for this measure
... improvementNotation SC0..1CodeableConceptincrease | decrease
Binding: MeasureImprovementNotation (required)
... group SC0..*BackboneElementPopulation 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 SC0..1codeWhat type of population
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
Binding: FHIRAllTypes (required): The type of elements in the population

.... scoring SC0..1CodeableConceptproportion | ratio | continuous-variable | cohort
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring
Binding: MeasureScoring (extensible): How the measure calculation is performed

.... scoringUnit SC0..1CodeableConceptWhat units?
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit
.... compositeScoring SC0..1CodeableConceptproportion | 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 SC0..*RelatedArtifactWhat artifact
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component
.... type C0..*CodeableConceptprocess | 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 C0..1stringHow risk adjustment is applied for this measure
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment
.... rateAggregation C0..1stringHow is rate aggregation performed for this measure
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation
.... improvementNotation SC0..1CodeableConceptincrease | 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 SC0..*BackboneElementPopulation criteria
cmp-32: Computable measures must use text/cql-expression or text/cql-identifier for all criteria
.... stratifier SC0..*BackboneElementStratifier 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..*CodeableConceptWhich group should this stratification apply to? If none is specified, the stratification applies to all populations in the group.
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo
Binding: MeasurePopulationType (extensible): Indicates the population


..... component SC0..*BackboneElementStratifier 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 SC0..*BackboneElementWhat 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

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Measure.scoringextensibleMeasureScoring
Measure.improvementNotationrequiredMeasureImprovementNotation

Constraints

IdGradePath(s)DetailsRequirements
cmp-1errorMeasurePopulation 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-2errorMeasureScoring 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-3errorMeasureScoring 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-4errorMeasureImprovement notation must be specified for scoring types other than cohort
: scoring.exists() and scoring in ('proportion' | 'ratio' | 'continuous-variable') implies improvementNotation.exists()
cmp-5errorMeasureIf 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-6errorMeasureIf 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-7errorMeasureIf 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-8errorMeasure.groupScoring 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-9errorMeasure.groupImprovement 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-10errorMeasure.groupCohort 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.coding.code contains 'cohort' implies population.count() = 1 and population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').allTrue()
cmp-11errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() = 1
cmp-12errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator').count() = 1
cmp-13errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator').count() = 1
cmp-14errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exclusion').count() <= 1
cmp-15errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exception').count() <= 1
cmp-16errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator-exclusion').count() <= 1
cmp-17errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'numerator' | 'denominator' | 'denominator-exclusion' | 'denominator-exception' | 'numerator-exclusion')).allTrue()
cmp-18errorMeasure.groupRatio 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.coding.code contains 'ratio' implies (population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() in (1 | 2))
cmp-19errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator').count() = 1
cmp-20errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator').count() = 1
cmp-21errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exclusion').count() <= 1
cmp-22errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-observation').count() <= 2
cmp-23errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator-exclusion').count() <= 1
cmp-24errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'numerator' | 'denominator' | 'denominator-exclusion' | 'measure-observation' | 'numerator-exclusion')).allTrue()
cmp-25errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() = 1
cmp-26errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-population').count() = 1
cmp-27errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-observation').count() = 1
cmp-28errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-population-exclusion').count() <= 1
cmp-29errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'measure-population' | 'measure-population-exclusion' | 'measure-observation')).allTrue()
cmp-30errorMeasure.groupComposite 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.coding.code contains 'composite' implies population.count() = 0
cmp-31errorMeasure.groupComposite 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.coding.code contains 'composite' implies extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component').exists()
cmp-32errorMeasure.group.populationComputable measures must use text/cql-expression or text/cql-identifier for all criteria
: criteria.language in ('text/cql-expression' | 'text/cql-identifier')
cmp-33errorMeasure.group.stratifierComputable 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-34errorMeasure.group.stratifier.componentComputable 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-35errorMeasure.supplementalDataComputable 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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Measure SC1..1CQFMMeasureA 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..1MetaMetadata about the resource
.... profile SΣ1..*canonical(StructureDefinition)Profiles this resource claims to conform to
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... comment S0..*(Complex)Additional documentation, review, or usage guidance
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-artifactComment
... softwaresystem S0..*Reference(CQFM Device)Extension
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem
... populationBasis SC0..1codeWhat type of population
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
Binding: FHIRAllTypes (required): The type of elements in the population


... scoringUnit SC0..1CodeableConceptWhat units?
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit
... effectiveDataRequirements S0..1Reference(CQFM Module Definition Library)Effective required data for evaluation
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ1..1uriCanonical identifier for this measure, represented as a URI (globally unique)
... identifier SΣ0..*IdentifierAdditional identifier for the measure
... version Σ1..1stringBusiness version of the measure
... name ΣC1..1stringName for this measure (computer friendly)
... title SΣ0..1stringName for this measure (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... experimental Σ1..1booleanFor testing purposes, not real usage
... date SΣ0..1dateTimeDate last changed
... publisher Σ1..1stringName of the publisher (organization or individual)
... contact SΣ0..*ContactDetailContact details for the publisher
... description Σ1..1markdownNatural language description of the measure
... useContext SΣ0..*UsageContextThe context that the content is intended to support
... jurisdiction SΣ0..*CodeableConceptIntended jurisdiction for measure (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... library SC0..1canonical(CQFM Computable Library)CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary.
... scoring SΣC0..1CodeableConceptproportion | ratio | continuous-variable | cohort
Binding: MeasureScoring (extensible)
... type SΣC0..*CodeableConceptprocess | outcome | structure | patient-reported-outcome | composite
Binding: MeasureType (extensible)
... riskAdjustment ΣC0..1stringHow risk adjustment is applied for this measure
... rateAggregation ΣC0..1stringHow is rate aggregation performed for this measure
... improvementNotation SΣC0..1CodeableConceptincrease | decrease
Binding: MeasureImprovementNotation (required)
... group SC0..*BackboneElementPopulation 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 SC0..1stringUnique id for inter-element referencing
.... populationBasis SC0..1codeWhat type of population
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
Binding: FHIRAllTypes (required): The type of elements in the population


.... scoring SC0..1CodeableConceptproportion | ratio | continuous-variable | cohort
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring
Binding: MeasureScoring (extensible): How the measure calculation is performed


.... scoringUnit SC0..1CodeableConceptWhat units?
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit
.... compositeScoring SC0..1CodeableConceptproportion | 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 SC0..*RelatedArtifactWhat artifact
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component
.... type C0..*CodeableConceptprocess | 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 C0..1stringHow risk adjustment is applied for this measure
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment
.... rateAggregation C0..1stringHow is rate aggregation performed for this measure
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation
.... improvementNotation SC0..1CodeableConceptincrease | 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..*ExtensionExtensions that cannot be ignored even if unrecognized
.... population SC0..*BackboneElementPopulation criteria
cmp-32: Computable measures must use text/cql-expression or text/cql-identifier for all criteria
..... id S1..1stringUnique id for inter-element referencing
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... code S1..1CodeableConceptinitial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-observation
Binding: MeasurePopulationType (extensible)
..... criteria SC1..1ExpressionThe criteria that defines this population
.... stratifier SC0..*BackboneElementStratifier criteria for the measure
cmp-33: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria
..... id S1..1stringUnique id for inter-element referencing
..... appliesTo 0..*CodeableConceptWhich group should this stratification apply to? If none is specified, the stratification applies to all populations in the group.
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo
Binding: MeasurePopulationType (extensible): Indicates the population


..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... criteria SC0..1ExpressionHow the measure should be stratified
..... component SC0..*BackboneElementStratifier 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..*ExtensionExtensions that cannot be ignored even if unrecognized
...... criteria 1..1ExpressionComponent of how the measure should be stratified
... supplementalData SC0..*BackboneElementWhat 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 S1..1stringUnique id for inter-element referencing
.... includeInReportType 0..*codeThe type of report the element should be included in
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-includeInReportType
Binding: MeasureReportType (required): The type of report the element should be included in


.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code S0..1CodeableConceptMeaning of the supplemental data
Binding: MeasureSupplementalData (preferred)
.... criteria 1..1ExpressionExpression describing additional data to be reported

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Measure.statusrequiredPublicationStatus
Measure.jurisdictionextensibleJurisdiction ValueSet
Measure.scoringextensibleMeasureScoring
Measure.typeextensibleMeasureType
Measure.improvementNotationrequiredMeasureImprovementNotation
Measure.group.population.codeextensibleMeasurePopulationType
Measure.supplementalData.codepreferredMeasureSupplementalData

Constraints

IdGradePath(s)DetailsRequirements
cmp-1errorMeasurePopulation 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-2errorMeasureScoring 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-3errorMeasureScoring 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-4errorMeasureImprovement notation must be specified for scoring types other than cohort
: scoring.exists() and scoring in ('proportion' | 'ratio' | 'continuous-variable') implies improvementNotation.exists()
cmp-5errorMeasureIf 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-6errorMeasureIf 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-7errorMeasureIf 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-8errorMeasure.groupScoring 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-9errorMeasure.groupImprovement 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-10errorMeasure.groupCohort 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.coding.code contains 'cohort' implies population.count() = 1 and population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').allTrue()
cmp-11errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() = 1
cmp-12errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator').count() = 1
cmp-13errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator').count() = 1
cmp-14errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exclusion').count() <= 1
cmp-15errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exception').count() <= 1
cmp-16errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator-exclusion').count() <= 1
cmp-17errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'numerator' | 'denominator' | 'denominator-exclusion' | 'denominator-exception' | 'numerator-exclusion')).allTrue()
cmp-18errorMeasure.groupRatio 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.coding.code contains 'ratio' implies (population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() in (1 | 2))
cmp-19errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator').count() = 1
cmp-20errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator').count() = 1
cmp-21errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exclusion').count() <= 1
cmp-22errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-observation').count() <= 2
cmp-23errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator-exclusion').count() <= 1
cmp-24errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'numerator' | 'denominator' | 'denominator-exclusion' | 'measure-observation' | 'numerator-exclusion')).allTrue()
cmp-25errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() = 1
cmp-26errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-population').count() = 1
cmp-27errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-observation').count() = 1
cmp-28errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-population-exclusion').count() <= 1
cmp-29errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'measure-population' | 'measure-population-exclusion' | 'measure-observation')).allTrue()
cmp-30errorMeasure.groupComposite 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.coding.code contains 'composite' implies population.count() = 0
cmp-31errorMeasure.groupComposite 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.coding.code contains 'composite' implies extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component').exists()
cmp-32errorMeasure.group.populationComputable measures must use text/cql-expression or text/cql-identifier for all criteria
: criteria.language in ('text/cql-expression' | 'text/cql-identifier')
cmp-33errorMeasure.group.stratifierComputable 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-34errorMeasure.group.stratifier.componentComputable 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-35errorMeasure.supplementalDataComputable 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-2warningMeasure.libraryMeasures utilizing CQL SHALL reference one and only one CQL library (and that referenced library MUST be the primary library for the measure)
: exists()
cqm-3warningMeasure.group.idGroup identifiers SHOULD use the convention: "group-[group number]", where [group number] corresponds with the group naming convention for the criteria within the group
: startsWith('group-')
cqm-4warningMeasure.group.population.criteriaGroup 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-5warningMeasure.group.stratifier.criteriaGroup 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()
dom-2errorMeasureIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMeasureIf 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-4errorMeasureIf 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-5errorMeasureIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMeasureA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
mea-0warningMeasureName 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-1errorMeasureStratifier SHALL be either a single criteria or a set of criteria components
: group.stratifier.all((code | description | criteria).exists() xor component.exists())

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Measure SC1..1CQFMMeasureA 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..1idLogical id of this artifact
... meta SΣ1..1MetaMetadata about the resource
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ0..1idVersion specific identifier
.... lastUpdated Σ0..1instantWhen the resource version last changed
.... source Σ0..1uriIdentifies where the resource comes from
.... profile SΣ1..*canonical(StructureDefinition)Profiles this resource claims to conform to
.... security Σ0..*CodingSecurity Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... tag Σ0..*CodingTags 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..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... comment S0..*(Complex)Additional documentation, review, or usage guidance
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-artifactComment
... softwaresystem S0..*Reference(CQFM Device)Extension
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem
... populationBasis SC0..1codeWhat type of population
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
Binding: FHIRAllTypes (required): The type of elements in the population


... scoringUnit SC0..1CodeableConceptWhat units?
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit
... effectiveDataRequirements S0..1Reference(CQFM Module Definition Library)Effective required data for evaluation
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ1..1uriCanonical identifier for this measure, represented as a URI (globally unique)
... identifier SΣ0..*IdentifierAdditional identifier for the measure
... version Σ1..1stringBusiness version of the measure
... name ΣC1..1stringName for this measure (computer friendly)
... title SΣ0..1stringName for this measure (human friendly)
... subtitle 0..1stringSubordinate title of the measure
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... experimental Σ1..1booleanFor testing purposes, not real usage
... subject[x] 0..1E.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.).

.... subjectCodeableConceptCodeableConcept
.... subjectReferenceReference(Group)
... date SΣ0..1dateTimeDate last changed
... publisher Σ1..1stringName of the publisher (organization or individual)
... contact SΣ0..*ContactDetailContact details for the publisher
... description Σ1..1markdownNatural language description of the measure
... useContext SΣ0..*UsageContextThe context that the content is intended to support
... jurisdiction SΣ0..*CodeableConceptIntended jurisdiction for measure (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... purpose 0..1markdownWhy this measure is defined
... usage 0..1stringDescribes the clinical usage of the measure
... copyright 0..1markdownUse and/or publishing restrictions
... approvalDate 0..1dateWhen the measure was approved by publisher
... lastReviewDate 0..1dateWhen the measure was last reviewed
... effectivePeriod Σ0..1PeriodWhen the measure is expected to be used
... topic 0..*CodeableConceptThe 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..*ContactDetailWho authored the content
... editor 0..*ContactDetailWho edited the content
... reviewer 0..*ContactDetailWho reviewed the content
... endorser 0..*ContactDetailWho endorsed the content
... relatedArtifact 0..*RelatedArtifactAdditional documentation, citations, etc.
... library SC0..1canonical(CQFM Computable Library)CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary.
... disclaimer Σ0..1markdownDisclaimer for use of the measure or its referenced content
... scoring SΣC0..1CodeableConceptproportion | ratio | continuous-variable | cohort
Binding: MeasureScoring (extensible)
... compositeScoring Σ0..1CodeableConceptopportunity | all-or-nothing | linear | weighted
Binding: CompositeMeasureScoring (extensible): The composite scoring method of the measure.

... type SΣC0..*CodeableConceptprocess | outcome | structure | patient-reported-outcome | composite
Binding: MeasureType (extensible)
... riskAdjustment ΣC0..1stringHow risk adjustment is applied for this measure
... rateAggregation ΣC0..1stringHow is rate aggregation performed for this measure
... rationale Σ0..1markdownDetailed description of why the measure exists
... clinicalRecommendationStatement Σ0..1markdownSummary of clinical guidelines
... improvementNotation SΣC0..1CodeableConceptincrease | decrease
Binding: MeasureImprovementNotation (required)
... definition Σ0..*markdownDefined terms used in the measure documentation
... guidance Σ0..1markdownAdditional guidance for implementers
... group SC0..*BackboneElementPopulation 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 SC0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... populationBasis SC0..1codeWhat type of population
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
Binding: FHIRAllTypes (required): The type of elements in the population


.... scoring SC0..1CodeableConceptproportion | ratio | continuous-variable | cohort
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring
Binding: MeasureScoring (extensible): How the measure calculation is performed


.... scoringUnit SC0..1CodeableConceptWhat units?
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoringUnit
.... compositeScoring SC0..1CodeableConceptproportion | 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 SC0..*RelatedArtifactWhat artifact
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component
.... type C0..*CodeableConceptprocess | 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 C0..1stringHow risk adjustment is applied for this measure
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-riskAdjustment
.... rateAggregation C0..1stringHow is rate aggregation performed for this measure
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation
.... improvementNotation SC0..1CodeableConceptincrease | 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..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code 0..1CodeableConceptMeaning of the group
.... description 0..1stringSummary description
.... population SC0..*BackboneElementPopulation criteria
cmp-32: Computable measures must use text/cql-expression or text/cql-identifier for all criteria
..... id S1..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... code S1..1CodeableConceptinitial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-observation
Binding: MeasurePopulationType (extensible)
..... description 0..1stringThe human readable description of this population criteria
..... criteria SC1..1ExpressionThe criteria that defines this population
.... stratifier SC0..*BackboneElementStratifier criteria for the measure
cmp-33: Computable measures must use text/cql-expression, text/cql-identifier, or text/fhirpath for all stratifier criteria
..... id S1..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
..... appliesTo 0..*CodeableConceptWhich group should this stratification apply to? If none is specified, the stratification applies to all populations in the group.
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo
Binding: MeasurePopulationType (extensible): Indicates the population


..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... code 0..1CodeableConceptMeaning of the stratifier
..... description 0..1stringThe human readable description of this stratifier
..... criteria SC0..1ExpressionHow the measure should be stratified
..... component SC0..*BackboneElementStratifier 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..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... code 0..1CodeableConceptMeaning of the stratifier component
...... description 0..1stringThe human readable description of this stratifier component
...... criteria 1..1ExpressionComponent of how the measure should be stratified
... supplementalData SC0..*BackboneElementWhat 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 S1..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... includeInReportType 0..*codeThe type of report the element should be included in
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-includeInReportType
Binding: MeasureReportType (required): The type of report the element should be included in


.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code S0..1CodeableConceptMeaning of the supplemental data
Binding: MeasureSupplementalData (preferred)
.... usage 0..*CodeableConceptsupplemental-data | risk-adjustment-factor
Binding: MeasureDataUsage (preferred)
.... description 0..1stringThe human readable description of this supplemental data
.... criteria 1..1ExpressionExpression describing additional data to be reported

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Measure.meta.securityextensibleAll Security Labels
Measure.meta.tagexampleCommonTags
Measure.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Measure.statusrequiredPublicationStatus
Measure.subject[x]extensibleSubjectType
Measure.jurisdictionextensibleJurisdiction ValueSet
Measure.topicexampleDefinitionTopic
Measure.scoringextensibleMeasureScoring
Measure.compositeScoringextensibleCompositeMeasureScoring
Measure.typeextensibleMeasureType
Measure.improvementNotationrequiredMeasureImprovementNotation
Measure.group.population.codeextensibleMeasurePopulationType
Measure.supplementalData.codepreferredMeasureSupplementalData
Measure.supplementalData.usagepreferredMeasureDataUsage

Constraints

IdGradePath(s)DetailsRequirements
cmp-1errorMeasurePopulation 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-2errorMeasureScoring 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-3errorMeasureScoring 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-4errorMeasureImprovement notation must be specified for scoring types other than cohort
: scoring.exists() and scoring in ('proportion' | 'ratio' | 'continuous-variable') implies improvementNotation.exists()
cmp-5errorMeasureIf 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-6errorMeasureIf 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-7errorMeasureIf 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-8errorMeasure.groupScoring 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-9errorMeasure.groupImprovement 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-10errorMeasure.groupCohort 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.coding.code contains 'cohort' implies population.count() = 1 and population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').allTrue()
cmp-11errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() = 1
cmp-12errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator').count() = 1
cmp-13errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator').count() = 1
cmp-14errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exclusion').count() <= 1
cmp-15errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exception').count() <= 1
cmp-16errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator-exclusion').count() <= 1
cmp-17errorMeasure.groupProportion 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.coding.code contains 'proportion' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'numerator' | 'denominator' | 'denominator-exclusion' | 'denominator-exception' | 'numerator-exclusion')).allTrue()
cmp-18errorMeasure.groupRatio 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.coding.code contains 'ratio' implies (population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() in (1 | 2))
cmp-19errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator').count() = 1
cmp-20errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator').count() = 1
cmp-21errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'denominator-exclusion').count() <= 1
cmp-22errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-observation').count() <= 2
cmp-23errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'numerator-exclusion').count() <= 1
cmp-24errorMeasure.groupRatio 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.coding.code contains 'ratio' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'numerator' | 'denominator' | 'denominator-exclusion' | 'measure-observation' | 'numerator-exclusion')).allTrue()
cmp-25errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'initial-population').count() = 1
cmp-26errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-population').count() = 1
cmp-27errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-observation').count() = 1
cmp-28errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.where(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code contains 'measure-population-exclusion').count() <= 1
cmp-29errorMeasure.groupContinuous 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.coding.code contains 'continuous-variable' implies population.select(code.coding.where(system = 'http://terminology.hl7.org/CodeSystem/measure-population').code in ('initial-population' | 'measure-population' | 'measure-population-exclusion' | 'measure-observation')).allTrue()
cmp-30errorMeasure.groupComposite 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.coding.code contains 'composite' implies population.count() = 0
cmp-31errorMeasure.groupComposite 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.coding.code contains 'composite' implies extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-compositeScoring').exists() and extension('http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-component').exists()
cmp-32errorMeasure.group.populationComputable measures must use text/cql-expression or text/cql-identifier for all criteria
: criteria.language in ('text/cql-expression' | 'text/cql-identifier')
cmp-33errorMeasure.group.stratifierComputable 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-34errorMeasure.group.stratifier.componentComputable 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-35errorMeasure.supplementalDataComputable 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-2warningMeasure.libraryMeasures utilizing CQL SHALL reference one and only one CQL library (and that referenced library MUST be the primary library for the measure)
: exists()
cqm-3warningMeasure.group.idGroup identifiers SHOULD use the convention: "group-[group number]", where [group number] corresponds with the group naming convention for the criteria within the group
: startsWith('group-')
cqm-4warningMeasure.group.population.criteriaGroup 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-5warningMeasure.group.stratifier.criteriaGroup 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()
dom-2errorMeasureIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMeasureIf 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-4errorMeasureIf 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-5errorMeasureIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMeasureA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
mea-0warningMeasureName 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-1errorMeasureStratifier SHALL be either a single criteria or a set of criteria components
: group.stratifier.all((code | description | criteria).exists() xor component.exists())

 

Other representations of profile: CSV, Excel, Schematron