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

Quality Measure Implementation Guide (STU4), published by Clinical Quality Information WG. This is not an authorized publication; it is the continuous build for version 4.0.0-ballot). This version is based on the current content of https://github.com/HL7/cqf-measures/ and changes regularly. See the Directory of published versions

Resource Profile: CQFM Executable Measure

Official URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/executable-measure-cqfm Version: 4.0.0-ballot
Active as of 2019-02-13 Computable Name: CQFMExecutableMeasure

The CQFM Executable Measure Profile describes minimum expectations for an executable electronic Clinical Quality Measure (eCQM), including a reference to an executable library, and restricted to the use of identifier-based expressions only 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 S1..1CQFMMeasureA quality measure definition
... library S0..1canonical(CQFM Executable Library)CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary.
... group S0..*BackboneElementPopulation criteria group
.... population SC0..*BackboneElementPopulation criteria
exc-1: Executable measures must use text/cql-identifier for all population criteria
.... stratifier SC0..*BackboneElementStratifier criteria for the measure
exc-2: Executable measures must use text/cql-identifier or text/fhirpath for all stratifier criteria
..... component SC0..*BackboneElementStratifier criteria component for the measure
exc-3: Executable measures must use text/cql-identifier or text/fhirpath for all stratifier component criteria
... supplementalData SC0..*BackboneElementWhat other data should be reported with the measure
exc-3: Executable measures must use text/cql-identifier or text/fhirpath for all supplemental data criteria

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
exc-1errorMeasure.group.populationExecutable measures must use text/cql-identifier for all population criteria
: criteria.language = 'text/cql-identifier'
exc-2errorMeasure.group.stratifierExecutable measures must use text/cql-identifier or text/fhirpath for all stratifier criteria
: criteria.language in ('text/cql-identifier' | 'text/fhirpath')
exc-3errorMeasure.group.stratifier.component, Measure.supplementalDataExecutable measures must use text/cql-identifier or text/fhirpath for all stratifier component criteria
: criteria.language in ('text/cql-identifier' | 'text/fhirpath')
NameFlagsCard.TypeDescription & Constraintsdoco
.. Measure SC1..1CQFMMeasureA quality measure definition
... 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
... 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 Executable Library)CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary.
... type SΣ0..*CodeableConceptprocess | outcome | structure | patient-reported-outcome | composite
Binding: MeasureType (extensible)
... group S0..*BackboneElementPopulation criteria group
.... id SC0..1stringUnique id for inter-element referencing
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... population SC0..*BackboneElementPopulation criteria
exc-1: Executable measures must use text/cql-identifier for all population 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
exc-2: Executable measures must use text/cql-identifier or text/fhirpath for all stratifier criteria
..... id S1..1stringUnique id for inter-element referencing
..... 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
exc-3: Executable measures must use 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
exc-3: Executable measures must use text/cql-identifier or text/fhirpath for all supplemental data criteria
.... id S1..1stringUnique id for inter-element referencing
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code S0..1CodeableConceptMeaning of the supplemental data
Binding: MeasureDataUsage (extensible)
.... criteria 1..1ExpressionExpression describing additional data to be reported

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Measure.statusrequiredPublicationStatus
Measure.jurisdictionextensibleJurisdiction ValueSet
Measure.typeextensibleMeasureType
Measure.group.population.codeextensibleMeasurePopulationType
Measure.supplementalData.codeextensibleMeasureDataUsage

Constraints

IdGradePath(s)DetailsRequirements
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
: value.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()
cqm-6warningMeasure.supplementalDataSupplemental data SHALL use either criteria or path
: criteria.exists() or path.exists()
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()
exc-1errorMeasure.group.populationExecutable measures must use text/cql-identifier for all population criteria
: criteria.language = 'text/cql-identifier'
exc-2errorMeasure.group.stratifierExecutable measures must use text/cql-identifier or text/fhirpath for all stratifier criteria
: criteria.language in ('text/cql-identifier' | 'text/fhirpath')
exc-3errorMeasure.group.stratifier.component, Measure.supplementalDataExecutable measures must use text/cql-identifier or text/fhirpath for all stratifier component criteria
: criteria.language in ('text/cql-identifier' | 'text/fhirpath')
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
... 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
... allocation S0..1markdownAllocation guidance
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-allocation
... softwaresystem S0..*Reference(CQFM Device)Extension
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem
... 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 Executable 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 Σ0..1CodeableConceptproportion | ratio | continuous-variable | cohort
Binding: MeasureScoring (extensible): The scoring type of the measure.

... compositeScoring Σ0..1CodeableConceptopportunity | all-or-nothing | linear | weighted
Binding: CompositeMeasureScoring (extensible): The composite scoring method of the measure.

... type SΣ0..*CodeableConceptprocess | outcome | structure | patient-reported-outcome | composite
Binding: MeasureType (extensible)
... riskAdjustment Σ0..1stringHow risk adjustment is applied for this measure
... rateAggregation Σ0..1stringHow is rate aggregation performed for this measure
... rationale Σ0..1markdownDetailed description of why the measure exists
... clinicalRecommendationStatement Σ0..1markdownSummary of clinical guidelines
... improvementNotation Σ0..1CodeableConceptincrease | decrease
Binding: MeasureImprovementNotation (required): Observation values that indicate what change in a measurement value or score is indicative of an improvement in the measured item or scored issue.

... definition Σ0..*markdownDefined terms used in the measure documentation
... guidance Σ0..1markdownAdditional guidance for implementers
... group S0..*BackboneElementPopulation criteria group
.... id SC0..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 group
.... description 0..1stringSummary description
.... population SC0..*BackboneElementPopulation criteria
exc-1: Executable measures must use text/cql-identifier for all population 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
exc-2: Executable measures must use text/cql-identifier or text/fhirpath for all stratifier 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 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
exc-3: Executable measures must use 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
exc-3: Executable measures must use text/cql-identifier or text/fhirpath for all supplemental data 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 S0..1CodeableConceptMeaning of the supplemental data
Binding: MeasureDataUsage (extensible)
.... usage 0..*CodeableConceptsupplemental-data | risk-adjustment-factor
Binding: MeasureDataUsage (extensible): The intended usage for supplemental data elements in the measure.


.... 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.codeextensibleMeasureDataUsage
Measure.supplementalData.usageextensibleMeasureDataUsage

Constraints

IdGradePath(s)DetailsRequirements
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
: value.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()
cqm-6warningMeasure.supplementalDataSupplemental data SHALL use either criteria or path
: criteria.exists() or path.exists()
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()
exc-1errorMeasure.group.populationExecutable measures must use text/cql-identifier for all population criteria
: criteria.language = 'text/cql-identifier'
exc-2errorMeasure.group.stratifierExecutable measures must use text/cql-identifier or text/fhirpath for all stratifier criteria
: criteria.language in ('text/cql-identifier' | 'text/fhirpath')
exc-3errorMeasure.group.stratifier.component, Measure.supplementalDataExecutable measures must use text/cql-identifier or text/fhirpath for all stratifier component criteria
: criteria.language in ('text/cql-identifier' | 'text/fhirpath')
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())

This structure is derived from CQFMMeasure

Summary

Must-Support: 6 elements

Structures

This structure refers to these other structures:

Differential View

This structure is derived from CQFMMeasure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Measure S1..1CQFMMeasureA quality measure definition
... library S0..1canonical(CQFM Executable Library)CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary.
... group S0..*BackboneElementPopulation criteria group
.... population SC0..*BackboneElementPopulation criteria
exc-1: Executable measures must use text/cql-identifier for all population criteria
.... stratifier SC0..*BackboneElementStratifier criteria for the measure
exc-2: Executable measures must use text/cql-identifier or text/fhirpath for all stratifier criteria
..... component SC0..*BackboneElementStratifier criteria component for the measure
exc-3: Executable measures must use text/cql-identifier or text/fhirpath for all stratifier component criteria
... supplementalData SC0..*BackboneElementWhat other data should be reported with the measure
exc-3: Executable measures must use text/cql-identifier or text/fhirpath for all supplemental data criteria

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
exc-1errorMeasure.group.populationExecutable measures must use text/cql-identifier for all population criteria
: criteria.language = 'text/cql-identifier'
exc-2errorMeasure.group.stratifierExecutable measures must use text/cql-identifier or text/fhirpath for all stratifier criteria
: criteria.language in ('text/cql-identifier' | 'text/fhirpath')
exc-3errorMeasure.group.stratifier.component, Measure.supplementalDataExecutable measures must use text/cql-identifier or text/fhirpath for all stratifier component criteria
: criteria.language in ('text/cql-identifier' | 'text/fhirpath')

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Measure SC1..1CQFMMeasureA quality measure definition
... 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
... 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 Executable Library)CQFMMeasures are not required to use a Library, but if they do, it SHALL be a CQFMLibrary.
... type SΣ0..*CodeableConceptprocess | outcome | structure | patient-reported-outcome | composite
Binding: MeasureType (extensible)
... group S0..*BackboneElementPopulation criteria group
.... id SC0..1stringUnique id for inter-element referencing
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... population SC0..*BackboneElementPopulation criteria
exc-1: Executable measures must use text/cql-identifier for all population 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
exc-2: Executable measures must use text/cql-identifier or text/fhirpath for all stratifier criteria
..... id S1..1stringUnique id for inter-element referencing
..... 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
exc-3: Executable measures must use 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
exc-3: Executable measures must use text/cql-identifier or text/fhirpath for all supplemental data criteria
.... id S1..1stringUnique id for inter-element referencing
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code S0..1CodeableConceptMeaning of the supplemental data
Binding: MeasureDataUsage (extensible)
.... criteria 1..1ExpressionExpression describing additional data to be reported

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Measure.statusrequiredPublicationStatus
Measure.jurisdictionextensibleJurisdiction ValueSet
Measure.typeextensibleMeasureType
Measure.group.population.codeextensibleMeasurePopulationType
Measure.supplementalData.codeextensibleMeasureDataUsage

Constraints

IdGradePath(s)DetailsRequirements
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
: value.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()
cqm-6warningMeasure.supplementalDataSupplemental data SHALL use either criteria or path
: criteria.exists() or path.exists()
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()
exc-1errorMeasure.group.populationExecutable measures must use text/cql-identifier for all population criteria
: criteria.language = 'text/cql-identifier'
exc-2errorMeasure.group.stratifierExecutable measures must use text/cql-identifier or text/fhirpath for all stratifier criteria
: criteria.language in ('text/cql-identifier' | 'text/fhirpath')
exc-3errorMeasure.group.stratifier.component, Measure.supplementalDataExecutable measures must use text/cql-identifier or text/fhirpath for all stratifier component criteria
: criteria.language in ('text/cql-identifier' | 'text/fhirpath')
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
... 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
... allocation S0..1markdownAllocation guidance
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-allocation
... softwaresystem S0..*Reference(CQFM Device)Extension
URL: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem
... 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 Executable 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 Σ0..1CodeableConceptproportion | ratio | continuous-variable | cohort
Binding: MeasureScoring (extensible): The scoring type of the measure.

... compositeScoring Σ0..1CodeableConceptopportunity | all-or-nothing | linear | weighted
Binding: CompositeMeasureScoring (extensible): The composite scoring method of the measure.

... type SΣ0..*CodeableConceptprocess | outcome | structure | patient-reported-outcome | composite
Binding: MeasureType (extensible)
... riskAdjustment Σ0..1stringHow risk adjustment is applied for this measure
... rateAggregation Σ0..1stringHow is rate aggregation performed for this measure
... rationale Σ0..1markdownDetailed description of why the measure exists
... clinicalRecommendationStatement Σ0..1markdownSummary of clinical guidelines
... improvementNotation Σ0..1CodeableConceptincrease | decrease
Binding: MeasureImprovementNotation (required): Observation values that indicate what change in a measurement value or score is indicative of an improvement in the measured item or scored issue.

... definition Σ0..*markdownDefined terms used in the measure documentation
... guidance Σ0..1markdownAdditional guidance for implementers
... group S0..*BackboneElementPopulation criteria group
.... id SC0..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 group
.... description 0..1stringSummary description
.... population SC0..*BackboneElementPopulation criteria
exc-1: Executable measures must use text/cql-identifier for all population 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
exc-2: Executable measures must use text/cql-identifier or text/fhirpath for all stratifier 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 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
exc-3: Executable measures must use 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
exc-3: Executable measures must use text/cql-identifier or text/fhirpath for all supplemental data 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 S0..1CodeableConceptMeaning of the supplemental data
Binding: MeasureDataUsage (extensible)
.... usage 0..*CodeableConceptsupplemental-data | risk-adjustment-factor
Binding: MeasureDataUsage (extensible): The intended usage for supplemental data elements in the measure.


.... 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.codeextensibleMeasureDataUsage
Measure.supplementalData.usageextensibleMeasureDataUsage

Constraints

IdGradePath(s)DetailsRequirements
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
: value.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()
cqm-6warningMeasure.supplementalDataSupplemental data SHALL use either criteria or path
: criteria.exists() or path.exists()
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()
exc-1errorMeasure.group.populationExecutable measures must use text/cql-identifier for all population criteria
: criteria.language = 'text/cql-identifier'
exc-2errorMeasure.group.stratifierExecutable measures must use text/cql-identifier or text/fhirpath for all stratifier criteria
: criteria.language in ('text/cql-identifier' | 'text/fhirpath')
exc-3errorMeasure.group.stratifier.component, Measure.supplementalDataExecutable measures must use text/cql-identifier or text/fhirpath for all stratifier component criteria
: criteria.language in ('text/cql-identifier' | 'text/fhirpath')
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())

This structure is derived from CQFMMeasure

Summary

Must-Support: 6 elements

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron