QI-Core Implementation Guide
7.0.0-ballot - STU7 Ballot United States of America flag

QI-Core Implementation Guide, published by HL7 International / Clinical Quality Information. This guide is not an authorized publication; it is the continuous build for version 7.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-qi-core/ and changes regularly. See the Directory of published versions

Resource Profile: QICore Goal

Official URL: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-goal Version: 7.0.0-ballot
Active as of 2018-08-22 Computable Name: QICoreGoal

Profile of Goal for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.

Must Have:
  • lifecycleStatus: proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
  • description: Code or text describing goal
  • subject: (QI) Who this goal is intended for
QI Elements:
  • start[x]: (QI) When goal pursuit begins
  • target: (QI) Target outcome for the goal
Primary code path: category
(PCPath) This element is the primary code path for this resource CQL Retrieve


NOTE TO BALLOT REVIEWERS:
  • US Core 7.0, and thus QI-Core 7.0, has a new approach to USCDI requirements.
    • As noted in the US Core 7.0 Must Support section, US Core 7.0 no longer highlights mandatory (cardinality 1..* or 1..1) and Must Support elements with a (USCDI) indicator as such items must be supported for interoperability.
    • Those USCDI elements that are not mandatory or Must Support now include an indicator (ADDITIONAL USCDI) in US Core. QI-Core 7.0 does not reference USCDI elements; rather, users should access US Core 7.0 to understand its implementation of USCDI version 4.
  • We invite comments about the approach and suggestions for other options that would also avoid unnecessary noise or reading load to the QI-Core profile representation.
  • Further, QI-Core 7.0 does not discuss USCDI+Quality because at the time of ballot preparation, no published version of USCDI+Quality is available. We seek reviewer advice regarding how QI-Core might address future USCDI+Quality.

Usage

See the patterns page for implementation and usage patterns.

Examples

Weight Loss Example

Usage:

Formal Views of Profile Content

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

This structure is derived from USCoreGoalProfile

NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..* USCoreGoalProfile Describes the intended objective(s) for a patient, group or organization
... subject 1..1 Reference(QICore Patient) (QI) Who this goal is intended for
... start[x] Σ 0..1 (QI) When goal pursuit begins
Binding: GoalStartEvent (preferred): Codes describing events that can trigger the initiation of a goal.

.... startDate date
.... startCodeableConcept CodeableConcept
... target 0..* BackboneElement (QI) Target outcome for the goal

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Goal.start[x]preferredGoalStartEvent
http://hl7.org/fhir/ValueSet/goal-start-event
from the FHIR Standard
NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..* USCoreGoalProfile Describes the intended objective(s) for a patient, group or organization
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... lifecycleStatus ?!SΣ 1..1 code proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
Binding: GoalLifecycleStatus (required)
... subject SΣ 1..1 Reference(QICore Patient) (QI) Who this goal is intended for
... start[x] SΣ 0..1 (QI) When goal pursuit begins
Binding: GoalStartEvent (preferred): Codes describing events that can trigger the initiation of a goal.

.... startDate date
... target SC 0..* BackboneElement (QI) Target outcome for the goal
gol-1: Goal.target.measure is required if Goal.target.detail is populated
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... due[x] SΣ 0..1 Reach goal on or before
..... dueDate date

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Goal.lifecycleStatusrequiredGoalLifecycleStatus
http://hl7.org/fhir/ValueSet/goal-status
from the FHIR Standard
Goal.descriptionextensibleUSCoreGoalCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-goal-description
Goal.start[x]preferredGoalStartEvent
http://hl7.org/fhir/ValueSet/goal-start-event
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorGoalIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorGoalIf 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-4errorGoalIf 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-5errorGoalIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceGoalA 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()
gol-1errorGoal.targetGoal.target.measure is required if Goal.target.detail is populated
: (detail.exists() and measure.exists()) or detail.exists().not()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..* USCoreGoalProfile Describes the intended objective(s) for a patient, group or organization
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier External Ids for this goal
... lifecycleStatus ?!SΣ 1..1 code proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
Binding: GoalLifecycleStatus (required)
... achievementStatus Σ 0..1 CodeableConcept in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable
Binding: GoalAchievementStatus (preferred): Indicates the progression, or lack thereof, towards the goal against the target.

... category Σ 0..* CodeableConcept E.g. Treatment, dietary, behavioral, etc.
Binding: GoalCategory (example): Codes for grouping and sorting goals.


... priority Σ 0..1 CodeableConcept high-priority | medium-priority | low-priority
Binding: GoalPriority (preferred): The level of importance associated with a goal.

... description SΣ 1..1 CodeableConcept Code or text describing goal
Binding: US Core Goal Codes (extensible): Value set to describe the Goal

... subject SΣ 1..1 Reference(QICore Patient) (QI) Who this goal is intended for
... start[x] SΣ 0..1 (QI) When goal pursuit begins
Binding: GoalStartEvent (preferred): Codes describing events that can trigger the initiation of a goal.

.... startDate date S
.... startCodeableConcept CodeableConcept
... target SC 0..* BackboneElement (QI) Target outcome for the goal
gol-1: Goal.target.measure is required if Goal.target.detail is populated
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... measure ΣC 0..1 CodeableConcept The parameter whose value is being tracked
Binding: LOINCCodes (example): Codes to identify the value being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.

.... detail[x] ΣC 0..1 The target value to be achieved
Binding: (unbound) (example): Codes to identify the target value of the focus to be achieved to signify the fulfillment of the goal.

..... detailQuantity Quantity
..... detailRange Range
..... detailCodeableConcept CodeableConcept
..... detailString string
..... detailBoolean boolean
..... detailInteger integer
..... detailRatio Ratio
.... due[x] SΣ 0..1 Reach goal on or before
..... dueDate date S
..... dueDuration Duration
... statusDate Σ 0..1 date When goal status took effect
... statusReason 0..1 string Reason for current status
... expressedBy Σ 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson) Who's responsible for creating Goal?
... addresses 0..* Reference(Condition | Observation | MedicationStatement | NutritionOrder | ServiceRequest | RiskAssessment) Issues addressed by this goal
... note 0..* Annotation Comments about the goal
... outcomeCode 0..* CodeableConcept What result was achieved regarding the goal?
Binding: SNOMEDCTClinicalFindings (example): The result of the goal; e.g. "25% increase in shoulder mobility", "Anxiety reduced to moderate levels". "15 kg weight loss sustained over 6 months".


... outcomeReference 0..* Reference(Observation) Observation that resulted from goal

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Goal.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Goal.lifecycleStatusrequiredGoalLifecycleStatus
http://hl7.org/fhir/ValueSet/goal-status
from the FHIR Standard
Goal.achievementStatuspreferredGoalAchievementStatus
http://hl7.org/fhir/ValueSet/goal-achievement
from the FHIR Standard
Goal.categoryexampleGoalCategory
http://hl7.org/fhir/ValueSet/goal-category
from the FHIR Standard
Goal.prioritypreferredGoalPriority
http://hl7.org/fhir/ValueSet/goal-priority
from the FHIR Standard
Goal.descriptionextensibleUSCoreGoalCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-goal-description
Goal.start[x]preferredGoalStartEvent
http://hl7.org/fhir/ValueSet/goal-start-event
from the FHIR Standard
Goal.target.measureexampleLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Goal.target.detail[x]example
Goal.outcomeCodeexampleSNOMEDCTClinicalFindings
http://hl7.org/fhir/ValueSet/clinical-findings
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorGoalIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorGoalIf 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-4errorGoalIf 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-5errorGoalIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceGoalA 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()
gol-1errorGoal.targetGoal.target.measure is required if Goal.target.detail is populated
: (detail.exists() and measure.exists()) or detail.exists().not()

This structure is derived from USCoreGoalProfile

Summary

Mandatory: 1 element

Structures

This structure refers to these other structures:

Differential View

This structure is derived from USCoreGoalProfile

NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..* USCoreGoalProfile Describes the intended objective(s) for a patient, group or organization
... subject 1..1 Reference(QICore Patient) (QI) Who this goal is intended for
... start[x] Σ 0..1 (QI) When goal pursuit begins
Binding: GoalStartEvent (preferred): Codes describing events that can trigger the initiation of a goal.

.... startDate date
.... startCodeableConcept CodeableConcept
... target 0..* BackboneElement (QI) Target outcome for the goal

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Goal.start[x]preferredGoalStartEvent
http://hl7.org/fhir/ValueSet/goal-start-event
from the FHIR Standard

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..* USCoreGoalProfile Describes the intended objective(s) for a patient, group or organization
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... lifecycleStatus ?!SΣ 1..1 code proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
Binding: GoalLifecycleStatus (required)
... subject SΣ 1..1 Reference(QICore Patient) (QI) Who this goal is intended for
... start[x] SΣ 0..1 (QI) When goal pursuit begins
Binding: GoalStartEvent (preferred): Codes describing events that can trigger the initiation of a goal.

.... startDate date
... target SC 0..* BackboneElement (QI) Target outcome for the goal
gol-1: Goal.target.measure is required if Goal.target.detail is populated
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... due[x] SΣ 0..1 Reach goal on or before
..... dueDate date

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Goal.lifecycleStatusrequiredGoalLifecycleStatus
http://hl7.org/fhir/ValueSet/goal-status
from the FHIR Standard
Goal.descriptionextensibleUSCoreGoalCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-goal-description
Goal.start[x]preferredGoalStartEvent
http://hl7.org/fhir/ValueSet/goal-start-event
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorGoalIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorGoalIf 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-4errorGoalIf 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-5errorGoalIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceGoalA 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()
gol-1errorGoal.targetGoal.target.measure is required if Goal.target.detail is populated
: (detail.exists() and measure.exists()) or detail.exists().not()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..* USCoreGoalProfile Describes the intended objective(s) for a patient, group or organization
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier External Ids for this goal
... lifecycleStatus ?!SΣ 1..1 code proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
Binding: GoalLifecycleStatus (required)
... achievementStatus Σ 0..1 CodeableConcept in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable
Binding: GoalAchievementStatus (preferred): Indicates the progression, or lack thereof, towards the goal against the target.

... category Σ 0..* CodeableConcept E.g. Treatment, dietary, behavioral, etc.
Binding: GoalCategory (example): Codes for grouping and sorting goals.


... priority Σ 0..1 CodeableConcept high-priority | medium-priority | low-priority
Binding: GoalPriority (preferred): The level of importance associated with a goal.

... description SΣ 1..1 CodeableConcept Code or text describing goal
Binding: US Core Goal Codes (extensible): Value set to describe the Goal

... subject SΣ 1..1 Reference(QICore Patient) (QI) Who this goal is intended for
... start[x] SΣ 0..1 (QI) When goal pursuit begins
Binding: GoalStartEvent (preferred): Codes describing events that can trigger the initiation of a goal.

.... startDate date S
.... startCodeableConcept CodeableConcept
... target SC 0..* BackboneElement (QI) Target outcome for the goal
gol-1: Goal.target.measure is required if Goal.target.detail is populated
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... measure ΣC 0..1 CodeableConcept The parameter whose value is being tracked
Binding: LOINCCodes (example): Codes to identify the value being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.

.... detail[x] ΣC 0..1 The target value to be achieved
Binding: (unbound) (example): Codes to identify the target value of the focus to be achieved to signify the fulfillment of the goal.

..... detailQuantity Quantity
..... detailRange Range
..... detailCodeableConcept CodeableConcept
..... detailString string
..... detailBoolean boolean
..... detailInteger integer
..... detailRatio Ratio
.... due[x] SΣ 0..1 Reach goal on or before
..... dueDate date S
..... dueDuration Duration
... statusDate Σ 0..1 date When goal status took effect
... statusReason 0..1 string Reason for current status
... expressedBy Σ 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson) Who's responsible for creating Goal?
... addresses 0..* Reference(Condition | Observation | MedicationStatement | NutritionOrder | ServiceRequest | RiskAssessment) Issues addressed by this goal
... note 0..* Annotation Comments about the goal
... outcomeCode 0..* CodeableConcept What result was achieved regarding the goal?
Binding: SNOMEDCTClinicalFindings (example): The result of the goal; e.g. "25% increase in shoulder mobility", "Anxiety reduced to moderate levels". "15 kg weight loss sustained over 6 months".


... outcomeReference 0..* Reference(Observation) Observation that resulted from goal

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Goal.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Goal.lifecycleStatusrequiredGoalLifecycleStatus
http://hl7.org/fhir/ValueSet/goal-status
from the FHIR Standard
Goal.achievementStatuspreferredGoalAchievementStatus
http://hl7.org/fhir/ValueSet/goal-achievement
from the FHIR Standard
Goal.categoryexampleGoalCategory
http://hl7.org/fhir/ValueSet/goal-category
from the FHIR Standard
Goal.prioritypreferredGoalPriority
http://hl7.org/fhir/ValueSet/goal-priority
from the FHIR Standard
Goal.descriptionextensibleUSCoreGoalCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-goal-description
Goal.start[x]preferredGoalStartEvent
http://hl7.org/fhir/ValueSet/goal-start-event
from the FHIR Standard
Goal.target.measureexampleLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Goal.target.detail[x]example
Goal.outcomeCodeexampleSNOMEDCTClinicalFindings
http://hl7.org/fhir/ValueSet/clinical-findings
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorGoalIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorGoalIf 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-4errorGoalIf 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-5errorGoalIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceGoalA 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()
gol-1errorGoal.targetGoal.target.measure is required if Goal.target.detail is populated
: (detail.exists() and measure.exists()) or detail.exists().not()

This structure is derived from USCoreGoalProfile

Summary

Mandatory: 1 element

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron