1.7.1 - release

SHINNYHRSN - Local Development build (v1.7.1) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## Resource Profile: SHINNYSDOHCCGoalProfile - Detailed Descriptions

Active as of 2025-12-09

Definitions for the shinny-SDOHCCGoal resource profile.

- Key Elements Table
- Differential Elements Table
- Snapshot Elements Table

Guidance on how to interpret the contents of this table can be foundhere

0. Goal
Definition | For representation of SDOH goals. Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc.
Short | Describes the intended SDOH-related objective(s) for a patient.Describes the intended objective(s) for a patient, group or organization
Comments | Many of the SDOHCC profiles reference one another. One flow supported by this IG is that QuestionnaireResponses result in Observations that can be used as evidence for Conditions that can lead to Goals, ServiceRequests and Procedures. However, alternatives paths are also possible. Goal can be achieving a particular change or merely maintaining a current state or even slowing a decline.
Control | 0..*
Is Modifier | false
Must Support | false
Summary | false
Invariants | dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty()) dom-3: 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: 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: If a resource is contained in another resource, it SHALL NOT have a security label (contained.meta.security.empty()) dom-6: A resource should have narrative for robust management (text.`div`.exists())
2. Goal.id
Definition | The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Short | The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.Logical id of this artifact
Comments | The only time that a resource does not have an id is when it is being submitted to the server using a create operation.
Control | 10..1
Type | id string
Is Modifier | false
Must Support | true
Summary | true
4. Goal.meta
Definition | The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
Short | Metadata about the resource
Control | 10..1
Type | Meta(SHINNYMeta)
Is Modifier | false
Must Support | true
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
6. Goal.implicitRules
Definition | A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
Short | A set of rules under which this content was created
Comments | Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.
Control | 0..1
Type | uri
Is Modifier | true because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
8. Goal.language
Definition | The base language in which the resource is written.
Short | Language of the resource content
Comments | Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).
Control | 0..1
Binding | The codes SHOULD be taken from SHINNYLanguageVS http://hl7.org/fhir/ValueSet/languages (preferred to `http://test.shinny.org/us/ny/hrsn/ValueSet/SHINNYLanguageVS` )
Type | code
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
10. Goal.modifierExtension
Definition | May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Short | Extensions that cannot be ignored
Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
Control | 0..*
Type | Extension
Is Modifier | true because Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
Summary | false
Requirements | Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.
Alternate Names | extensions, user content
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
12. Goal.lifecycleStatus
Definition | The state of the goal throughout its lifecycle.
Short | proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
Comments | This element is labeled as a modifier because the lifecycleStatus contains codes that mark the resource as not currently valid.
Control | 1..1
Binding | The codes SHALL be taken from GoalLifecycleStatus http://hl7.org/fhir/ValueSet/goal-status|4.0.1 (required to `http://hl7.org/fhir/ValueSet/goal-status` )
Type | code
Is Modifier | true because This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Must Support | true
Summary | true
Requirements | Allows knowing whether goal needs to be further tracked.
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
14. Goal.achievementStatus
Definition | Describes the progression, or lack thereof, towards the goal against the target.
Short | in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable
Control | 0..1
Binding | The codes SHOULD be taken from GoalAchievementStatus http://hl7.org/fhir/ValueSet/goal-achievement (preferred to `http://hl7.org/fhir/ValueSet/goal-achievement` ) Indicates the progression, or lack thereof, towards the goal against the target.
Type | CodeableConcept
Is Modifier | false
Must Support | true
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
16. Goal.category
Definition | Indicates a category the goal falls within.
Short | E.g. Treatment, dietary, behavioral, etc.
Control | 0..*
Binding | For example codes, see GoalCategory http://hl7.org/fhir/ValueSet/goal-category (example to `http://hl7.org/fhir/ValueSet/goal-category` ) Codes for grouping and sorting goals.
Type | CodeableConcept
Is Modifier | false
Summary | true
Requirements | Allows goals to be filtered and sorted.
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
Slicing | This element introduces a set of slices on `Goal.category`. The slices areUnordered and Open, and can be differentiated using the following discriminators: value @ $this
18. Goal.category:SDOH
Slice Name | SDOH
Definition | An SDOH category assigned to the goal. Indicates a category the goal falls within.
Short | e.g., food-insecurity | transportation-insecurityE.g. Treatment, dietary, behavioral, etc.
Control | 0..*
Binding | The codes SHALL be taken from For example codes, see SDOHCC ValueSet SDOH Category http://hl7.org/fhir/ValueSet/goal-category (required to `http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory` ) Codes for high-level SDOH categories. Codes for grouping and sorting goals.
Type | CodeableConcept
Is Modifier | false
Must Support | true
Summary | true
Requirements | Codes from this value set can be used to assign one or more SDOH categories (e.g., food-insecurity, transportation-insecurity, etc.) to a goal. It is recommended that SDOH category codes be used to facilitate searching for SDOH-related goals. Allows goals to be filtered and sorted.
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
20. Goal.description
Definition | Human-readable and/or coded description of a specific desired objective of care, such as "control blood pressure" or "negotiate an obstacle course" or "dance with child at wedding".
Short | Code or text describing goal
Comments | If no code is available, use CodeableConcept.text.
Control | 1..1
Binding | The codes SHOULD be taken from For example codes, see SDOHCC ValueSet LOINC SNOMEDCT http://hl7.org/fhir/ValueSet/clinical-findings (preferred to `http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetLOINCSNOMEDCT` ) Codes providing the details of a particular goal. In many systems, only the text element will be used. Codes providing the details of a particular goal. This will generally be system or implementation guide-specific. In many systems, only the text element will be used.
Type | CodeableConcept
Is Modifier | false
Must Support | true
Summary | true
Requirements | Without a description of what's trying to be achieved, element has no purpose.
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
22. Goal.subject
Definition | Identifies the patient for whom the goal is being established. Identifies the patient, group or organization for whom the goal is being established.
Short | Who this goal is intended for
Control | 1..1
Type | Reference(US Core Patient Profile, Patient, Group, Organization)
Is Modifier | false
Must Support | true
Summary | true
Requirements | Subject is optional to support annonymized reporting.
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
24. Goal.target
Definition | Indicates what should be done by when.
Short | Target outcome for the goal
Comments | When multiple targets are present for a single goal instance, all targets must be met for the overall goal to be met.
Control | 0..* This element is affected by the following invariants: gol-1
Type | BackboneElement
Is Modifier | false
Must Support | true
Summary | false
Requirements | Allows the progress of the goal to be monitored against an observation or due date. Target is 0..* to support Observations with multiple components, such as blood pressure goals with both a systolic and diastolic target.
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) gol-1: Goal.target.measure is required if Goal.target.detail is populated (`(detail.exists() and measure.exists()) or detail.exists().not()`) gol-1: Goal.target.measure is required if Goal.target.detail is populated ((detail.exists() and measure.exists()) or detail.exists().not())
26. Goal.target.modifierExtension
Definition | May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Short | Extensions that cannot be ignored even if unrecognized
Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
Control | 0..*
Type | Extension
Is Modifier | true because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
Summary | true
Requirements | Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.
Alternate Names | extensions, user content, modifiers
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
28. Goal.target.due[x]
Definition | Indicates either the date or the duration after start by which the goal should be met.
Short | Reach goal on or before
Control | 0..1
Type | date, Duration
[x] Note | SeeChoice of Data Typesfor further information about how to use [x]
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Requirements | Identifies when the goal should be evaluated.
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
Slicing | This element introduces a set of slices on `Goal.target.due[x]`. The slices areUnordered and Closed, and can be differentiated using the following discriminators: type @ $this
30. Goal.target.due[x]:dueDate
Slice Name | dueDate
Definition | Indicates either the date or the duration after start by which the goal should be met.
Short | Reach goal on or before
Control | 0..1
Type | date, Duration
[x] Note | SeeChoice of Data Typesfor further information about how to use [x]
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Must Support | true
Summary | true
Requirements | Identifies when the goal should be evaluated.
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
32. Goal.addresses
Definition | The identified conditions and other health record elements that are intended to be addressed by the goal.
Short | Issues addressed by this goal
Control | 0..*
Type | Reference(Condition, Observation, RiskAssessment, MedicationStatement, NutritionOrder, ServiceRequest)
Is Modifier | false
Summary | false
Requirements | Allows specific goals to explicitly linked to the concerns they're dealing with - makes the goal more understandable.
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
Slicing | This element introduces a set of slices on `Goal.addresses`. The slices areUnordered and Open, and can be differentiated using the following discriminators: profile @ resolve()
34. Goal.addresses:SupportedAddresses
Slice Name | SupportedAddresses
Definition | The identified conditions and other health record elements that are intended to be addressed by the goal.
Short | Issues addressed by this goal
Control | 0..*
Type | Reference(SDOHCC Condition, SDOHCC Observation Screening Response, SDOHCC Observation Assessment, Condition, Observation, MedicationStatement, NutritionOrder, ServiceRequest, RiskAssessment)
Is Modifier | false
Must Support | true
Must Support Types | No must-support rules about the choice of types/profiles
Summary | false
Requirements | When a goal addresses SDOH screening response observations generated from a survey/questionnaire, SDOH assessment observations, or SDOH conditions, Goal.addresses should reference instances that comply with the SDOHCC Observation Screening Response, SDOHCC Condition, or SDOHCC Observation Assessment profiles. However, references to other instance types are also possible. Allows specific goals to explicitly linked to the concerns they're dealing with - makes the goal more understandable.
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
36. Goal.outcomeReference
Definition | Details of what's changed (or not changed).
Short | Observation that resulted from goal
Comments | The goal outcome is independent of the outcome of the related activities. For example, if the Goal is to achieve a target body weight of 150 lb and a care plan activity is defined to diet, then the care plan’s activity outcome could be calories consumed whereas goal outcome is an observation for the actual body weight measured. Additionally, see comments for Goal.outcomeCode. The goal outcome is independent of the outcome of the related activities. For example, if the Goal is to achieve a target body weight of 150 lb and a care plan activity is defined to diet, then the care plan’s activity outcome could be calories consumed whereas goal outcome is an observation for the actual body weight measured.
Control | 0..*
Type | Reference(Observation)
Is Modifier | false
Summary | false
Requirements | Outcome tracking is a key aspect of care planning.
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
Slicing | This element introduces a set of slices on `Goal.outcomeReference`. The slices areUnordered and Open, and can be differentiated using the following discriminators: profile @ resolve()
38. Goal.outcomeReference:SupportedOutcomeReference
Slice Name | SupportedOutcomeReference
Definition | Details of what's changed (or not changed).
Short | Observation that resulted from goal
Comments | The goal outcome is independent of the outcome of the related activities. For example, if the Goal is to achieve a target body weight of 150 lb and a care plan activity is defined to diet, then the care plan’s activity outcome could be calories consumed whereas goal outcome is an observation for the actual body weight measured.
Control | 0..*
Type | Reference(SDOHCC Observation Screening Response, SDOHCC Observation Assessment, Observation)
Is Modifier | false
Must Support | true
Must Support Types | No must-support rules about the choice of types/profiles
Summary | false
Requirements | When a goal outcome can be represented by SDOH screening response observations or SDOH assessment observations, Goal.outcome should reference instances that comply with the SDOHCC Observation Screening Response or SDOHCC Observation Assessment profiles. However, references to other instance types are also possible. Outcome tracking is a key aspect of care planning.
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))

Guidance on how to interpret the contents of this table can be foundhere

0. Goal
2. Goal.id
Short | The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Control | 1..?
Must Support | true
4. Goal.meta
Control | 1..?
Type | Meta(SHINNYMeta)
Must Support | true
6. Goal.language
Binding | The codes SHOULD be taken from SHINNYLanguageVS (preferred to `http://test.shinny.org/us/ny/hrsn/ValueSet/SHINNYLanguageVS` )

Guidance on how to interpret the contents of this table can be foundhere

0. Goal
Definition | For representation of SDOH goals.
Short | Describes the intended SDOH-related objective(s) for a patient.
Comments | Many of the SDOHCC profiles reference one another. One flow supported by this IG is that QuestionnaireResponses result in Observations that can be used as evidence for Conditions that can lead to Goals, ServiceRequests and Procedures. However, alternatives paths are also possible.
Control | 0..*
Is Modifier | false
Must Support | false
Summary | false
Invariants | dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (`contained.contained.empty()`) dom-3: 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: 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: If a resource is contained in another resource, it SHALL NOT have a security label (`contained.meta.security.empty()`) dom-6: A resource should have narrative for robust management (`text.`div`.exists()`)
2. Goal.id
Definition | The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Short | The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Comments | The only time that a resource does not have an id is when it is being submitted to the server using a create operation.
Control | 1..1
Type | id
Is Modifier | false
Must Support | true
Summary | true
4. Goal.meta
Definition | The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
Short | Metadata about the resource
Control | 1..1
Type | Meta(SHINNYMeta)
Is Modifier | false
Must Support | true
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
6. Goal.implicitRules
Definition | A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
Short | A set of rules under which this content was created
Comments | Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.
Control | 0..1
Type | uri
Is Modifier | true because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
8. Goal.language
Definition | The base language in which the resource is written.
Short | Language of the resource content
Comments | Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).
Control | 0..1
Binding | The codes SHOULD be taken from SHINNYLanguageVS (preferred to `http://test.shinny.org/us/ny/hrsn/ValueSet/SHINNYLanguageVS` )
Type | code
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
10. Goal.text
Definition | A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.
Short | Text summary of the resource, for human interpretation
Comments | Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.
Control | 0..1
Type | Narrative
Is Modifier | false
Summary | false
Alternate Names | narrative, html, xhtml, display
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
12. Goal.contained
Definition | These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.
Short | Contained, inline Resources
Comments | This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.
Control | 0..*
Type | Resource
Is Modifier | false
Summary | false
Alternate Names | inline resources, anonymous resources, contained resources
14. Goal.extension
Definition | May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Short | Additional content defined by implementations
Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
Control | 0..*
Type | Extension
Is Modifier | false
Summary | false
Alternate Names | extensions, user content
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
16. Goal.modifierExtension
Definition | May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Short | Extensions that cannot be ignored
Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
Control | 0..*
Type | Extension
Is Modifier | true because Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
Summary | false
Requirements | Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.
Alternate Names | extensions, user content
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
18. Goal.identifier
Definition | Business identifiers assigned to this goal by the performer or other systems which remain constant as the resource is updated and propagates from server to server.
Short | External Ids for this goal
Comments | This is a business identifier, not a resource identifier (see discussion). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and a Person resource instance might share the same social insurance number.
Note | This is a business identifier, not a resource identifier (see discussion)
Control | 0..*
Type | Identifier
Is Modifier | false
Summary | false
Requirements | Allows identification of the goal as it is known by various participating systems and in a way that remains consistent across servers.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
20. Goal.lifecycleStatus
Definition | The state of the goal throughout its lifecycle.
Short | proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
Comments | This element is labeled as a modifier because the lifecycleStatus contains codes that mark the resource as not currently valid.
Control | 1..1
Binding | The codes SHALL be taken from GoalLifecycleStatus (required to `http://hl7.org/fhir/ValueSet/goal-status` )
Type | code
Is Modifier | true because This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Must Support | true
Summary | true
Requirements | Allows knowing whether goal needs to be further tracked.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
22. Goal.achievementStatus
Definition | Describes the progression, or lack thereof, towards the goal against the target.
Short | in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable
Control | 0..1
Binding | The codes SHOULD be taken from GoalAchievementStatus (preferred to `http://hl7.org/fhir/ValueSet/goal-achievement` ) Indicates the progression, or lack thereof, towards the goal against the target.
Type | CodeableConcept
Is Modifier | false
Must Support | true
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
24. Goal.category
Definition | Indicates a category the goal falls within.
Short | E.g. Treatment, dietary, behavioral, etc.
Control | 0..*
Binding | For example codes, see GoalCategory (example to `http://hl7.org/fhir/ValueSet/goal-category` ) Codes for grouping and sorting goals.
Type | CodeableConcept
Is Modifier | false
Summary | true
Requirements | Allows goals to be filtered and sorted.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
Slicing | This element introduces a set of slices on `Goal.category`. The slices areUnordered and Open, and can be differentiated using the following discriminators: value @ $this
26. Goal.category:SDOH
Slice Name | SDOH
Definition | An SDOH category assigned to the goal.
Short | e.g., food-insecurity | transportation-insecurity
Control | 0..*
Binding | The codes SHALL be taken from SDOHCC ValueSet SDOH Category (required to `http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetSDOHCategory` ) Codes for high-level SDOH categories.
Type | CodeableConcept
Is Modifier | false
Must Support | true
Summary | true
Requirements | Codes from this value set can be used to assign one or more SDOH categories (e.g., food-insecurity, transportation-insecurity, etc.) to a goal. It is recommended that SDOH category codes be used to facilitate searching for SDOH-related goals.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
28. Goal.priority
Definition | Identifies the mutually agreed level of importance associated with reaching/sustaining the goal.
Short | high-priority | medium-priority | low-priority
Comments | Extensions are available to track priorities as established by each participant (i.e. Priority from the patient's perspective, different practitioners' perspectives, family member's perspectives) The ordinal extension on Coding can be used to convey a numerically comparable ranking to priority. (Keep in mind that different coding systems may use a "low value=important".
Control | 0..1
Binding | The codes SHOULD be taken from GoalPriority (preferred to `http://hl7.org/fhir/ValueSet/goal-priority` ) The level of importance associated with a goal.
Type | CodeableConcept
Is Modifier | false
Summary | true
Requirements | Used for sorting and presenting goals.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
30. Goal.description
Definition | Human-readable and/or coded description of a specific desired objective of care, such as "control blood pressure" or "negotiate an obstacle course" or "dance with child at wedding".
Short | Code or text describing goal
Comments | If no code is available, use CodeableConcept.text.
Control | 1..1
Binding | The codes SHOULD be taken from SDOHCC ValueSet LOINC SNOMEDCT (preferred to `http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetLOINCSNOMEDCT` ) Codes providing the details of a particular goal. In many systems, only the text element will be used.
Type | CodeableConcept
Is Modifier | false
Must Support | true
Summary | true
Requirements | Without a description of what's trying to be achieved, element has no purpose.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
32. Goal.subject
Definition | Identifies the patient for whom the goal is being established.
Short | Who this goal is intended for
Control | 1..1
Type | Reference(US Core Patient Profile)
Is Modifier | false
Must Support | true
Summary | true
Requirements | Subject is optional to support annonymized reporting.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
34. Goal.start[x]
Definition | The date or event after which the goal should begin being pursued.
Short | When goal pursuit begins
Control | 0..1
Binding | For example codes, see GoalStartEvent (example to `http://hl7.org/fhir/ValueSet/goal-start-event` ) Codes describing events that can trigger the initiation of a goal.
Type | Choice of: date, CodeableConcept
[x] Note | SeeChoice of Data Typesfor further information about how to use [x]
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Requirements | Goals can be established prior to there being an intention to start pursuing them; e.g. Goals for post-surgical recovery established prior to surgery.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
36. Goal.target
Definition | Indicates what should be done by when.
Short | Target outcome for the goal
Comments | When multiple targets are present for a single goal instance, all targets must be met for the overall goal to be met.
Control | 0..* This element is affected by the following invariants: gol-1
Type | BackboneElement
Is Modifier | false
Must Support | true
Summary | false
Requirements | Allows the progress of the goal to be monitored against an observation or due date. Target is 0..* to support Observations with multiple components, such as blood pressure goals with both a systolic and diastolic target.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) gol-1: Goal.target.measure is required if Goal.target.detail is populated (`(detail.exists() and measure.exists()) or detail.exists().not()`)
38. Goal.target.id
Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Short | Unique id for inter-element referencing
Control | 0..1
Type | string
Is Modifier | false
XML Format | In the XML format, this property is represented as an attribute.
Summary | false
40. Goal.target.extension
Definition | May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Short | Additional content defined by implementations
Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
Control | 0..*
Type | Extension
Is Modifier | false
Summary | false
Alternate Names | extensions, user content
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
42. Goal.target.modifierExtension
Definition | May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Short | Extensions that cannot be ignored even if unrecognized
Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
Control | 0..*
Type | Extension
Is Modifier | true because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
Summary | true
Requirements | Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.
Alternate Names | extensions, user content, modifiers
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
44. Goal.target.measure
Definition | The parameter whose value is being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.
Short | The parameter whose value is being tracked
Control | 0..1 This element is affected by the following invariants: gol-1
Binding | The codes SHOULD be taken from LOINCCodes (preferred to `http://hl7.org/fhir/ValueSet/observation-codes` ) Codes to identify the value being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.
Type | CodeableConcept
Is Modifier | false
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
46. Goal.target.detail[x]
Definition | The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.
Short | The target value to be achieved
Comments | A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Goal.target.measure defines a coded value.
Control | 0..1 This element is affected by the following invariants: gol-1
Binding | Codes to identify the target value of the focus to be achieved to signify the fulfillment of the goal.
Type | Choice of: Quantity, Range, CodeableConcept, string, boolean, integer, Ratio
[x] Note | SeeChoice of Data Typesfor further information about how to use [x]
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
48. Goal.target.due[x]
Definition | Indicates either the date or the duration after start by which the goal should be met.
Short | Reach goal on or before
Control | 0..1
Type | date
[x] Note | SeeChoice of Data Typesfor further information about how to use [x]
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Requirements | Identifies when the goal should be evaluated.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
Slicing | This element introduces a set of slices on `Goal.target.due[x]`. The slices areUnordered and Closed, and can be differentiated using the following discriminators: type @ $this
50. Goal.target.due[x]:dueDate
Slice Name | dueDate
Definition | Indicates either the date or the duration after start by which the goal should be met.
Short | Reach goal on or before
Control | 0..1
Type | date
[x] Note | SeeChoice of Data Typesfor further information about how to use [x]
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Must Support | true
Summary | true
Requirements | Identifies when the goal should be evaluated.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
52. Goal.statusDate
Definition | Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc.
Short | When goal status took effect
Comments | To see the date for past statuses, query history. The Goal Resource does not clearly specify whether Goal.statusDate applies to Goal.achievementStatus or to Goal.lifecycleStatus. For consistent use in the SDOH context, it is recommended that Goal.statusDate be synchronized with Goal.achievementStatus.
Control | 0..1
Type | date
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
54. Goal.statusReason
Definition | Captures the reason for the current status.
Short | Reason for current status
Comments | This will typically be captured for statuses such as rejected, on-hold or cancelled, but could be present for others.
Control | 0..1
Type | string
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
56. Goal.expressedBy
Definition | Indicates whose goal this is - patient goal, practitioner goal, etc.
Short | Who's responsible for creating Goal?
Comments | This is the individual responsible for establishing the goal, not necessarily who recorded it. (For that, use the Provenance resource.).
Control | 0..1
Type | Reference(Patient, Practitioner, PractitionerRole, RelatedPerson)
Is Modifier | false
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
58. Goal.addresses
Definition | The identified conditions and other health record elements that are intended to be addressed by the goal.
Short | Issues addressed by this goal
Control | 0..*
Type | Reference(Condition, Observation, RiskAssessment)
Is Modifier | false
Summary | false
Requirements | Allows specific goals to explicitly linked to the concerns they're dealing with - makes the goal more understandable.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
Slicing | This element introduces a set of slices on `Goal.addresses`. The slices areUnordered and Open, and can be differentiated using the following discriminators: profile @ resolve()
60. Goal.addresses:SupportedAddresses
Slice Name | SupportedAddresses
Definition | The identified conditions and other health record elements that are intended to be addressed by the goal.
Short | Issues addressed by this goal
Control | 0..*
Type | Reference(SDOHCC Condition, SDOHCC Observation Screening Response, SDOHCC Observation Assessment)
Is Modifier | false
Must Support | true
Must Support Types | No must-support rules about the choice of types/profiles
Summary | false
Requirements | When a goal addresses SDOH screening response observations generated from a survey/questionnaire, SDOH assessment observations, or SDOH conditions, Goal.addresses should reference instances that comply with the SDOHCC Observation Screening Response, SDOHCC Condition, or SDOHCC Observation Assessment profiles. However, references to other instance types are also possible.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
62. Goal.note
Definition | Any comments related to the goal.
Short | Comments about the goal
Comments | May be used for progress notes, concerns or other related information that doesn't actually describe the goal itself.
Control | 0..*
Type | Annotation
Is Modifier | false
Summary | false
Requirements | There's a need to capture information about the goal that doesn't actually describe the goal.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
64. Goal.outcomeCode
Definition | Identifies the change (or lack of change) at the point when the status of the goal is assessed.
Short | What result was achieved regarding the goal?
Comments | Note that this should not duplicate the goal status. Information represented by Goal.outcomeCode may overlap significantly with information represented by Goal.outcomeReference. Multiple approaches to representing the same information may negatively impact interoperability. Therefore, where there is significant overlap in information provided by Goal.outcomeCode and Goal.outcomeReference, it is recommended that Goal.outcomeReference should be used to provide details of goal outcomes.
Control | 0..*
Binding | The codes SHOULD be taken from SDOHCC ValueSet LOINC SNOMEDCT (preferred to `http://hl7.org/fhir/us/sdoh-clinicalcare/ValueSet/SDOHCC-ValueSetLOINCSNOMEDCT` ) The result of the goal; e.g., "Food security", "Has access to a car ".
Type | CodeableConcept
Is Modifier | false
Summary | false
Requirements | Outcome tracking is a key aspect of care planning.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
66. Goal.outcomeReference
Definition | Details of what's changed (or not changed).
Short | Observation that resulted from goal
Comments | The goal outcome is independent of the outcome of the related activities. For example, if the Goal is to achieve a target body weight of 150 lb and a care plan activity is defined to diet, then the care plan’s activity outcome could be calories consumed whereas goal outcome is an observation for the actual body weight measured. Additionally, see comments for Goal.outcomeCode.
Control | 0..*
Type | Reference(Observation)
Is Modifier | false
Summary | false
Requirements | Outcome tracking is a key aspect of care planning.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
Slicing | This element introduces a set of slices on `Goal.outcomeReference`. The slices areUnordered and Open, and can be differentiated using the following discriminators: profile @ resolve()
68. Goal.outcomeReference:SupportedOutcomeReference
Slice Name | SupportedOutcomeReference
Definition | Details of what's changed (or not changed).
Short | Observation that resulted from goal
Comments | The goal outcome is independent of the outcome of the related activities. For example, if the Goal is to achieve a target body weight of 150 lb and a care plan activity is defined to diet, then the care plan’s activity outcome could be calories consumed whereas goal outcome is an observation for the actual body weight measured.
Control | 0..*
Type | Reference(SDOHCC Observation Screening Response, SDOHCC Observation Assessment)
Is Modifier | false
Must Support | true
Must Support Types | No must-support rules about the choice of types/profiles
Summary | false
Requirements | When a goal outcome can be represented by SDOH screening response observations or SDOH assessment observations, Goal.outcome should reference instances that comply with the SDOHCC Observation Screening Response or SDOHCC Observation Assessment profiles. However, references to other instance types are also possible.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)