QI-Core Implementation Guide
4.1.0 - release

This page is part of the Quality Improvement Core Framework (v4.1.0: STU 4) based on FHIR R4. The current version which supercedes this version is 4.1.1. For a full list of available versions, see the Directory of published versions

Resource Profile: QICoreGoal

Defining URL:http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-goal
Version:4.1.0
Name:QICoreGoal
Status:Draft as of 8/22/18
Definition:

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

Publisher:http://www.hl7.org/Special/committees/cqi/index.cfm
Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-goal
Usage

See the patterns page for implementation and usage patterns.

Examples

Weight Loss Example

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..*USCoreGoalProfileDescribes the intended objective(s) for a patient, group or organization
... id 0..1stringLogical id of this artifact
... goal-reasonRejected 0..1CodeableConceptThe reason the goal was not accepted
URL: http://hl7.org/fhir/StructureDefinition/goal-reasonRejected
Binding: Reasons for rejecting goal codes (example): The value set to instantiate this attribute should be drawn from a terminologically robust code system that consists of or contains concepts to support the goal process, in particular the process and reasons for rejecting a goal. This value set is provided as a suggestive example.

... lifecycleStatus S1..1codeproposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
... category S0..*CodeableConceptE.g. Treatment, dietary, behavioral, etc.
... description S1..1CodeableConceptCode or text describing goal
Binding: SNOMEDCTClinicalFindings (preferred): This value set includes all the "Clinical finding" SNOMED CT codes - concepts where concept is-a 404684003 (Clinical finding (finding)).

... subject S1..1Reference(QICorePatient)Who this goal is intended for
... start[x] 0..1dateWhen goal pursuit begins
... target S0..*BackboneElementTarget outcome for the goal
.... measure 1..1CodeableConceptThe parameter whose value is being tracked
Binding: LOINCCodes (preferred): LOINC codes

.... detail[x] 1..1Quantity, Range, CodeableConcept, string, boolean, integer, RatioThe target value to be achieved
.... due[x] 0..1dateReach goal on or before
... statusDate S0..1dateWhen goal status took effect
... expressedBy 0..1Reference(QICorePatient | QICorePractitioner | QICoreRelatedPerson)Who's responsible for creating Goal?
... addresses S0..*Reference(QICoreCondition | QICoreObservation | QICoreMedicationStatement | NutritionOrder | QICoreServiceRequest | RiskAssessment)Issues addressed by this goal

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..*USCoreGoalProfileDescribes the intended objective(s) for a patient, group or organization
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... 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
... goal-reasonRejected 0..1CodeableConceptThe reason the goal was not accepted
URL: http://hl7.org/fhir/StructureDefinition/goal-reasonRejected
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierExternal Ids for this goal
... lifecycleStatus ?!SΣ1..1codeproposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
Binding: GoalLifecycleStatus (required)
... achievementStatus SΣ0..1CodeableConceptin-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 SΣ0..*CodeableConceptE.g. Treatment, dietary, behavioral, etc.
Binding: GoalCategory (example): Codes for grouping and sorting goals.


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

... description SΣ1..1CodeableConceptCode or text describing goal
Binding: SNOMEDCTClinicalFindings (preferred): This value set includes all the "Clinical finding" SNOMED CT codes - concepts where concept is-a 404684003 (Clinical finding (finding)).

... subject SΣ1..1Reference(QICorePatient)Who this goal is intended for
... start[x] Σ0..1dateWhen goal pursuit begins
... target SI0..*BackboneElementTarget outcome for the goal
.... 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
.... measure ΣI1..1CodeableConceptThe parameter whose value is being tracked
Binding: LOINCCodes (preferred): LOINC codes

.... detail[x] ΣI1..1The 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.

..... detailQuantityQuantity
..... detailRangeRange
..... detailCodeableConceptCodeableConcept
..... detailStringstring
..... detailBooleanboolean
..... detailIntegerinteger
..... detailRatioRatio
.... Slices for due[x] Σ0..1dateReach goal on or before
Slice: Unordered, Closed by type:$this
..... due[x]:dueDate SΣ0..1dateReach goal on or before
... statusDate SΣ0..1dateWhen goal status took effect
... statusReason 0..1stringReason for current status
... expressedBy Σ0..1Reference(QICorePatient | QICorePractitioner | QICoreRelatedPerson)Who's responsible for creating Goal?
... addresses S0..*Reference(QICoreCondition | QICoreObservation | QICoreMedicationStatement | NutritionOrder | QICoreServiceRequest | RiskAssessment)Issues addressed by this goal
... note 0..*AnnotationComments about the goal
... outcomeCode 0..*CodeableConceptWhat 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
NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..*USCoreGoalProfileDescribes the intended objective(s) for a patient, group or organization
... lifecycleStatus ?!Σ1..1codeproposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
Binding: GoalLifecycleStatus (required)
... achievementStatus Σ0..1CodeableConceptin-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..*CodeableConceptE.g. Treatment, dietary, behavioral, etc.
Binding: GoalCategory (example): Codes for grouping and sorting goals.


... subject Σ1..1Reference(QICorePatient)Who this goal is intended for
... target I0..*BackboneElementTarget outcome for the goal
.... due[x]:dueDate Σ0..1dateReach goal on or before
... statusDate Σ0..1dateWhen goal status took effect
... addresses 0..*Reference(QICoreCondition | QICoreObservation | QICoreMedicationStatement | NutritionOrder | QICoreServiceRequest | RiskAssessment)Issues addressed by this goal

doco Documentation for this format

Differential View

This structure is derived from USCoreGoalProfile

NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..*USCoreGoalProfileDescribes the intended objective(s) for a patient, group or organization
... id 0..1stringLogical id of this artifact
... goal-reasonRejected 0..1CodeableConceptThe reason the goal was not accepted
URL: http://hl7.org/fhir/StructureDefinition/goal-reasonRejected
Binding: Reasons for rejecting goal codes (example): The value set to instantiate this attribute should be drawn from a terminologically robust code system that consists of or contains concepts to support the goal process, in particular the process and reasons for rejecting a goal. This value set is provided as a suggestive example.

... lifecycleStatus S1..1codeproposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
... category S0..*CodeableConceptE.g. Treatment, dietary, behavioral, etc.
... description S1..1CodeableConceptCode or text describing goal
Binding: SNOMEDCTClinicalFindings (preferred): This value set includes all the "Clinical finding" SNOMED CT codes - concepts where concept is-a 404684003 (Clinical finding (finding)).

... subject S1..1Reference(QICorePatient)Who this goal is intended for
... start[x] 0..1dateWhen goal pursuit begins
... target S0..*BackboneElementTarget outcome for the goal
.... measure 1..1CodeableConceptThe parameter whose value is being tracked
Binding: LOINCCodes (preferred): LOINC codes

.... detail[x] 1..1Quantity, Range, CodeableConcept, string, boolean, integer, RatioThe target value to be achieved
.... due[x] 0..1dateReach goal on or before
... statusDate S0..1dateWhen goal status took effect
... expressedBy 0..1Reference(QICorePatient | QICorePractitioner | QICoreRelatedPerson)Who's responsible for creating Goal?
... addresses S0..*Reference(QICoreCondition | QICoreObservation | QICoreMedicationStatement | NutritionOrder | QICoreServiceRequest | RiskAssessment)Issues addressed by this goal

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..*USCoreGoalProfileDescribes the intended objective(s) for a patient, group or organization
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... 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
... goal-reasonRejected 0..1CodeableConceptThe reason the goal was not accepted
URL: http://hl7.org/fhir/StructureDefinition/goal-reasonRejected
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierExternal Ids for this goal
... lifecycleStatus ?!SΣ1..1codeproposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
Binding: GoalLifecycleStatus (required)
... achievementStatus SΣ0..1CodeableConceptin-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 SΣ0..*CodeableConceptE.g. Treatment, dietary, behavioral, etc.
Binding: GoalCategory (example): Codes for grouping and sorting goals.


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

... description SΣ1..1CodeableConceptCode or text describing goal
Binding: SNOMEDCTClinicalFindings (preferred): This value set includes all the "Clinical finding" SNOMED CT codes - concepts where concept is-a 404684003 (Clinical finding (finding)).

... subject SΣ1..1Reference(QICorePatient)Who this goal is intended for
... start[x] Σ0..1dateWhen goal pursuit begins
... target SI0..*BackboneElementTarget outcome for the goal
.... 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
.... measure ΣI1..1CodeableConceptThe parameter whose value is being tracked
Binding: LOINCCodes (preferred): LOINC codes

.... detail[x] ΣI1..1The 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.

..... detailQuantityQuantity
..... detailRangeRange
..... detailCodeableConceptCodeableConcept
..... detailStringstring
..... detailBooleanboolean
..... detailIntegerinteger
..... detailRatioRatio
.... Slices for due[x] Σ0..1dateReach goal on or before
Slice: Unordered, Closed by type:$this
..... due[x]:dueDate SΣ0..1dateReach goal on or before
... statusDate SΣ0..1dateWhen goal status took effect
... statusReason 0..1stringReason for current status
... expressedBy Σ0..1Reference(QICorePatient | QICorePractitioner | QICoreRelatedPerson)Who's responsible for creating Goal?
... addresses S0..*Reference(QICoreCondition | QICoreObservation | QICoreMedicationStatement | NutritionOrder | QICoreServiceRequest | RiskAssessment)Issues addressed by this goal
... note 0..*AnnotationComments about the goal
... outcomeCode 0..*CodeableConceptWhat 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

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet
Goal.languagepreferredCommonLanguages
Max Binding: AllLanguages
Goal.lifecycleStatusrequiredGoalLifecycleStatus
Goal.achievementStatuspreferredGoalAchievementStatus
Goal.categoryexampleGoalCategory
Goal.prioritypreferredGoalPriority
Goal.descriptionpreferredSNOMEDCTClinicalFindings
Goal.target.measurepreferredLOINCCodes
Goal.target.detail[x]example
Goal.outcomeCodeexampleSNOMEDCTClinicalFindings

Constraints

IdGradePathDetailsRequirements
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-1errorGoal.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorGoal.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorGoal.extension:reasonRejectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorGoal.extension:reasonRejectedMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorGoal.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorGoal.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorGoal.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.lifecycleStatusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.achievementStatusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.priorityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.start[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.targetAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
gol-1errorGoal.targetGoal.target.measure is required if Goal.target.detail is populated
: (detail.exists() and measure.exists()) or detail.exists().not()
ele-1errorGoal.target.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorGoal.target.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorGoal.target.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorGoal.target.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorGoal.target.measureAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.target.detail[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.target.due[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.target.due[x]:dueDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.statusDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.statusReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.expressedByAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.addressesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.outcomeCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorGoal.outcomeReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())