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

This page is part of the US Core (v7.0.0-ballot: STU7 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. The current version which supersedes this version is 6.1.0. For a full list of available versions, see the Directory of published versions

Resource Profile: US Core Goal Profile

Official URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal Version: 7.0.0-ballot
Standards status: Trial-use Maturity Level: 3 Computable Name: USCoreGoalProfile

Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

This profile sets minimum expectations for the Goal resource to record, search, and fetch Goal information associated with a patient to promote interoperability and adoption through common implementation. It identifies which core elements, extensions, vocabularies, and value sets SHALL be present in the resource and constrains the way the elements are used when using this profile. It provides the floor for standards development for specific use cases

Example Usage Scenarios:

The following are example usage scenarios for this profile:

Mandatory and Must Support Data Elements

The following data-elements must always be present (Mandatory definition) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Views below provides the formal summary, definitions, and terminology requirements.

Each Goal Must Have:

  1. a status
  2. text description of the goal
  3. a patient

Each Goal Must Support:

  1. start date*
  2. target date(s)*

*see guidance below

Profile Specific Implementation Guidance:

  • *Although both Goal.startDate and Goal.target.dueDate are marked as Must Support, the server system is not required to support both, but SHALL support at least one of these elements. The client application SHALL support both elements.
  • Free text goals can be used in Goal.description.text when a concept isn’t available or a legacy goal is not mapped to a LOINC or SNOMED concept.
  • See the Screening and Assessments guidance page for more information when exchanging Social Determinants of Health (SDOH) Goals

Usage:

Formal Views of Profile Content

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

This structure is derived from Goal

NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..*GoalDescribes the intended objective(s) for a patient, group or organization
... lifecycleStatus S1..1codeproposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
Binding: GoalLifecycleStatus (required)
... description S1..1CodeableConceptCode or text describing goal
Binding: US Core Goal Codes (extensible): Value set to describe the Goal

... subject S1..1Reference(US Core Patient Profile S | Group | Organization)Who this goal is intended for
... start[x] S0..1When goal pursuit begins
.... startDatedate S
.... startCodeableConceptCodeableConcept
... target S0..*BackboneElementTarget outcome for the goal
.... due[x] S0..1Reach goal on or before
..... dueDatedate S
..... dueDurationDuration

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Goal.lifecycleStatusrequiredGoalLifecycleStatus
Goal.descriptionextensibleUSCoreGoalCodes
NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..*GoalDescribes the intended objective(s) for a patient, group or organization
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... lifecycleStatus ?!SΣ1..1codeproposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
Binding: GoalLifecycleStatus (required)
... description SΣ1..1CodeableConceptCode or text describing goal
Binding: US Core Goal Codes (extensible): Value set to describe the Goal

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

.... startDatedate
... target SC0..*BackboneElementTarget outcome for the goal
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... due[x] SΣ0..1Reach goal on or before
..... dueDatedate

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Goal.lifecycleStatusrequiredGoalLifecycleStatus
Goal.descriptionextensibleUSCoreGoalCodes
Goal.start[x]exampleGoalStartEvent

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..*GoalDescribes the intended objective(s) for a patient, group or organization
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... 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
... extension 0..*ExtensionAdditional content defined by implementations
... 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 Σ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.


... 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: US Core Goal Codes (extensible): Value set to describe the Goal

... subject SΣ1..1Reference(US Core Patient Profile S | Group | Organization)Who this goal is intended for
... start[x] SΣ0..1When goal pursuit begins
Binding: GoalStartEvent (example): Codes describing events that can trigger the initiation of a goal.

.... startDatedate S
.... startCodeableConceptCodeableConcept
... target SC0..*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 ΣC0..1CodeableConceptThe 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] ΣC0..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
.... due[x] SΣ0..1Reach goal on or before
..... dueDatedate S
..... dueDurationDuration
... statusDate Σ0..1dateWhen goal status took effect
... statusReason 0..1stringReason for current status
... expressedBy Σ0..1Reference(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..*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

Terminology Bindings

PathConformanceValueSet
Goal.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Goal.lifecycleStatusrequiredGoalLifecycleStatus
Goal.achievementStatuspreferredGoalAchievementStatus
Goal.categoryexampleGoalCategory
Goal.prioritypreferredGoalPriority
Goal.descriptionextensibleUSCoreGoalCodes
Goal.start[x]exampleGoalStartEvent
Goal.target.measureexampleLOINCCodes (a valid code from LOINC)
Goal.target.detail[x]example
Goal.outcomeCodeexampleSNOMEDCTClinicalFindings

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 Goal

Summary

Must-Support: 6 elements

Structures

This structure refers to these other structures:

Maturity: 3

Differential View

This structure is derived from Goal

NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..*GoalDescribes the intended objective(s) for a patient, group or organization
... lifecycleStatus S1..1codeproposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
Binding: GoalLifecycleStatus (required)
... description S1..1CodeableConceptCode or text describing goal
Binding: US Core Goal Codes (extensible): Value set to describe the Goal

... subject S1..1Reference(US Core Patient Profile S | Group | Organization)Who this goal is intended for
... start[x] S0..1When goal pursuit begins
.... startDatedate S
.... startCodeableConceptCodeableConcept
... target S0..*BackboneElementTarget outcome for the goal
.... due[x] S0..1Reach goal on or before
..... dueDatedate S
..... dueDurationDuration

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Goal.lifecycleStatusrequiredGoalLifecycleStatus
Goal.descriptionextensibleUSCoreGoalCodes

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Goal 0..*GoalDescribes the intended objective(s) for a patient, group or organization
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... lifecycleStatus ?!SΣ1..1codeproposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
Binding: GoalLifecycleStatus (required)
... description SΣ1..1CodeableConceptCode or text describing goal
Binding: US Core Goal Codes (extensible): Value set to describe the Goal

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

.... startDatedate
... target SC0..*BackboneElementTarget outcome for the goal
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... due[x] SΣ0..1Reach goal on or before
..... dueDatedate

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Goal.lifecycleStatusrequiredGoalLifecycleStatus
Goal.descriptionextensibleUSCoreGoalCodes
Goal.start[x]exampleGoalStartEvent

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..*GoalDescribes the intended objective(s) for a patient, group or organization
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... 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
... extension 0..*ExtensionAdditional content defined by implementations
... 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 Σ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.


... 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: US Core Goal Codes (extensible): Value set to describe the Goal

... subject SΣ1..1Reference(US Core Patient Profile S | Group | Organization)Who this goal is intended for
... start[x] SΣ0..1When goal pursuit begins
Binding: GoalStartEvent (example): Codes describing events that can trigger the initiation of a goal.

.... startDatedate S
.... startCodeableConceptCodeableConcept
... target SC0..*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 ΣC0..1CodeableConceptThe 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] ΣC0..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
.... due[x] SΣ0..1Reach goal on or before
..... dueDatedate S
..... dueDurationDuration
... statusDate Σ0..1dateWhen goal status took effect
... statusReason 0..1stringReason for current status
... expressedBy Σ0..1Reference(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..*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

Terminology Bindings

PathConformanceValueSet
Goal.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Goal.lifecycleStatusrequiredGoalLifecycleStatus
Goal.achievementStatuspreferredGoalAchievementStatus
Goal.categoryexampleGoalCategory
Goal.prioritypreferredGoalPriority
Goal.descriptionextensibleUSCoreGoalCodes
Goal.start[x]exampleGoalStartEvent
Goal.target.measureexampleLOINCCodes (a valid code from LOINC)
Goal.target.detail[x]example
Goal.outcomeCodeexampleSNOMEDCTClinicalFindings

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 Goal

Summary

Must-Support: 6 elements

Structures

This structure refers to these other structures:

Maturity: 3

 

Other representations of profile: CSV, Excel, Schematron

Notes:


Quick Start


Below is an overview of the required Server RESTful FHIR interactions for this profile - for example, search and read operations - when supporting the US Core interactions to access this profile’s information (Profile Support + Interaction Support). Note that systems that support only US Core Profiles (Profile Only Support) are not required to support these interactions. See the US Core Server CapabilityStatement for a complete list of supported RESTful interactions for this IG.

  • The syntax used to describe the interactions is described here.
  • See the General Requirements section for additional rules and expectations when a server requires status parameters.
  • See the General Guidance section for additional guidance on searching for multiple patients.

US Core Scopes

Servers providing access to goal data SHALL support these US Core SMART Scopes:

Mandatory Search Parameters:

The following search parameters and search parameter combinations SHALL be supported:

  1. SHALL support searching for all goals for a patient using the patient search parameter:

    GET [base]/Goal?patient={Type/}[id]

    Example:

    1. GET [base]/Goal?patient=1137192

    Implementation Notes: Fetches a bundle of all Goal resources for the specified patient (how to search by reference)

Optional Search Parameters:

The following search parameter combinations SHOULD be supported:

  1. SHOULD support searching using the combination of the patient and lifecycle-status search parameters:

    GET [base]/Goal?patient={Type/}[id]&lifecycle-status={system|}[code]

    Example:

    1. GET [base]/Goal?patient=1137192&lifecycle-status=active

    Implementation Notes: Fetches a bundle of all Goal resources for the specified patient and lifecycle-status (how to search by reference and how to search by token)

  2. SHOULD support searching using the combination of the patient and target-date search parameters:
    • including support for these target-date comparators: gt,lt,ge,le
    • including optional support for AND search on target-date (e.g.target-date=[date]&target-date=[date]]&...)

    GET [base]/Goal?patient={Type/}[id]&target-date={gt|lt|ge|le}[date]{&target-date={gt|lt|ge|le}[date]&...}

    Example:

    1. GET [base]/Goal?patient=1137192&target-date=ge2015-01-14&target-date=le2019-01-14

    Implementation Notes: Fetches a bundle of all Goal resources for the specified patient and target-date (how to search by reference and how to search by date)

  3. SHOULD support searching using the combination of the patient and description search parameters:

    GET [base]/Goal?patient={Type/}[id]&description={system|}[code]

    Example:

    1. GET [base]/Goal?patient=1137192&description=http://snomed.info/sct|1078229009

    Implementation Notes: Fetches a bundle of all Goal resources for the specified patient and description (how to search by reference and how to search by token)