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
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:
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:
Each Goal Must Support:
*see guidance below
Profile Specific Implementation Guidance:
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.Goal.description.text
when a concept isn’t available or a legacy goal is not mapped to a LOINC or SNOMED concept.Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Goal
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Goal | 0..* | Goal | Describes the intended objective(s) for a patient, group or organization | |
lifecycleStatus | S | 1..1 | code | proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected Binding: GoalLifecycleStatus (required) |
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(US Core Patient Profile S | Group | Organization) | Who this goal is intended for |
start[x] | S | 0..1 | When goal pursuit begins | |
startDate | date S | |||
startCodeableConcept | CodeableConcept | |||
target | S | 0..* | BackboneElement | Target outcome for the goal |
due[x] | S | 0..1 | Reach goal on or before | |
dueDate | date S | |||
dueDuration | Duration | |||
Documentation for this format |
Path | Conformance | ValueSet |
Goal.lifecycleStatus | required | GoalLifecycleStatus |
Goal.description | extensible | USCoreGoalCodes |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Goal | 0..* | Goal | 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) |
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(US Core Patient Profile) | Who this goal is intended for |
start[x] | SΣ | 0..1 | When goal pursuit begins Binding: GoalStartEvent (example): Codes describing events that can trigger the initiation of a goal. | |
startDate | date | |||
target | SC | 0..* | BackboneElement | Target outcome for the goal |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
due[x] | SΣ | 0..1 | Reach goal on or before | |
dueDate | date | |||
Documentation for this format |
Path | Conformance | ValueSet |
Goal.lifecycleStatus | required | GoalLifecycleStatus |
Goal.description | extensible | USCoreGoalCodes |
Goal.start[x] | example | GoalStartEvent |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Goal | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Goal | If 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-4 | error | Goal | If 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-5 | error | Goal | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Goal | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
gol-1 | error | Goal.target | Goal.target.measure is required if Goal.target.detail is populated : (detail.exists() and measure.exists()) or detail.exists().not() |
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Goal | 0..* | Goal | 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 | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
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(US Core Patient Profile S | Group | Organization) | Who this goal is intended for | ||||
start[x] | SΣ | 0..1 | When goal pursuit begins Binding: GoalStartEvent (example): Codes describing events that can trigger the initiation of a goal. | |||||
startDate | date S | |||||||
startCodeableConcept | CodeableConcept | |||||||
target | SC | 0..* | BackboneElement | Target outcome for the goal | ||||
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 | |||||
Documentation for this format |
Path | Conformance | ValueSet | ||||
Goal.language | preferred | CommonLanguages
| ||||
Goal.lifecycleStatus | required | GoalLifecycleStatus | ||||
Goal.achievementStatus | preferred | GoalAchievementStatus | ||||
Goal.category | example | GoalCategory | ||||
Goal.priority | preferred | GoalPriority | ||||
Goal.description | extensible | USCoreGoalCodes | ||||
Goal.start[x] | example | GoalStartEvent | ||||
Goal.target.measure | example | LOINCCodes (a valid code from LOINC) | ||||
Goal.target.detail[x] | example | |||||
Goal.outcomeCode | example | SNOMEDCTClinicalFindings |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Goal | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Goal | If 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-4 | error | Goal | If 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-5 | error | Goal | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Goal | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
gol-1 | error | Goal.target | Goal.target.measure is required if Goal.target.detail is populated : (detail.exists() and measure.exists()) or detail.exists().not() |
Differential View
This structure is derived from Goal
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Goal | 0..* | Goal | Describes the intended objective(s) for a patient, group or organization | |
lifecycleStatus | S | 1..1 | code | proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected Binding: GoalLifecycleStatus (required) |
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(US Core Patient Profile S | Group | Organization) | Who this goal is intended for |
start[x] | S | 0..1 | When goal pursuit begins | |
startDate | date S | |||
startCodeableConcept | CodeableConcept | |||
target | S | 0..* | BackboneElement | Target outcome for the goal |
due[x] | S | 0..1 | Reach goal on or before | |
dueDate | date S | |||
dueDuration | Duration | |||
Documentation for this format |
Path | Conformance | ValueSet |
Goal.lifecycleStatus | required | GoalLifecycleStatus |
Goal.description | extensible | USCoreGoalCodes |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Goal | 0..* | Goal | 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) |
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(US Core Patient Profile) | Who this goal is intended for |
start[x] | SΣ | 0..1 | When goal pursuit begins Binding: GoalStartEvent (example): Codes describing events that can trigger the initiation of a goal. | |
startDate | date | |||
target | SC | 0..* | BackboneElement | Target outcome for the goal |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
due[x] | SΣ | 0..1 | Reach goal on or before | |
dueDate | date | |||
Documentation for this format |
Path | Conformance | ValueSet |
Goal.lifecycleStatus | required | GoalLifecycleStatus |
Goal.description | extensible | USCoreGoalCodes |
Goal.start[x] | example | GoalStartEvent |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Goal | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Goal | If 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-4 | error | Goal | If 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-5 | error | Goal | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Goal | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
gol-1 | error | Goal.target | Goal.target.measure is required if Goal.target.detail is populated : (detail.exists() and measure.exists()) or detail.exists().not() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Goal | 0..* | Goal | 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 | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
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(US Core Patient Profile S | Group | Organization) | Who this goal is intended for | ||||
start[x] | SΣ | 0..1 | When goal pursuit begins Binding: GoalStartEvent (example): Codes describing events that can trigger the initiation of a goal. | |||||
startDate | date S | |||||||
startCodeableConcept | CodeableConcept | |||||||
target | SC | 0..* | BackboneElement | Target outcome for the goal | ||||
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 | |||||
Documentation for this format |
Path | Conformance | ValueSet | ||||
Goal.language | preferred | CommonLanguages
| ||||
Goal.lifecycleStatus | required | GoalLifecycleStatus | ||||
Goal.achievementStatus | preferred | GoalAchievementStatus | ||||
Goal.category | example | GoalCategory | ||||
Goal.priority | preferred | GoalPriority | ||||
Goal.description | extensible | USCoreGoalCodes | ||||
Goal.start[x] | example | GoalStartEvent | ||||
Goal.target.measure | example | LOINCCodes (a valid code from LOINC) | ||||
Goal.target.detail[x] | example | |||||
Goal.outcomeCode | example | SNOMEDCTClinicalFindings |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Goal | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Goal | If 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-4 | error | Goal | If 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-5 | error | Goal | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Goal | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
gol-1 | error | Goal.target | Goal.target.measure is required if Goal.target.detail is populated : (detail.exists() and measure.exists()) or detail.exists().not() |
Other representations of profile: CSV, Excel, Schematron
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.
Servers providing access to goal data SHALL support these US Core SMART Scopes:
patient/Goal.rs
.The following search parameters and search parameter combinations SHALL be supported:
SHALL support searching for all goals for a patient using the patient
search parameter:
GET [base]/Goal?patient={Type/}[id]
Example:
Implementation Notes: Fetches a bundle of all Goal resources for the specified patient (how to search by reference)
The following search parameter combinations SHOULD be supported:
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:
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)
patient
and target-date
search parameters:
target-date
comparators: gt,lt,ge,le
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:
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)
SHOULD support searching using the combination of the patient
and description
search parameters:
GET [base]/Goal?patient={Type/}[id]&description={system|}[code]
Example:
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)