DHIN 2025Connectathon FHIR IG
0.1.0 - draft

DHIN 2025Connectathon FHIR IG, published by DHIN. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/Nigeria-FHIR-Community/2025Connectathon/ and changes regularly. See the Directory of published versions

Resource Profile: NG Goal

Official URL: https://sandbox.dhin-hie.org/ig/StructureDefinition/NgGoal Version: 0.1.0
Draft as of 2025-10-21 Computable Name: NgGoal

Minimal Goal profile for the 2025 Connectathon.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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)
... category SΣ 0..* CodeableConcept E.g. Treatment, dietary, behavioral, etc.
Binding: GoalCategory (preferred)
... priority Σ 0..1 CodeableConcept high-priority | medium-priority | low-priority
Binding: GoalPriority (preferred)
... description SΣ 1..1 CodeableConcept Code or text describing goal
Binding: SNOMEDCTClinicalFindings (example): 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.
... subject SΣ 1..1 Reference(NG Patient) Who this goal is intended for
... target SC 0..* BackboneElement Target outcome for the goal
Constraints: gol-1
.... 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)
... addresses 0..* Reference(NG Condition | NG Observations | NG ServiceRequest) Issues addressed by this goal

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Goal.lifecycleStatus Base required GoalLifecycleStatus 📦4.0.1 FHIR Std.
Goal.achievementStatus Base preferred Goal achievement status 📦4.0.1 FHIR Std.
Goal.category Base preferred Goal category 📦4.0.1 FHIR Std.
Goal.priority Base preferred Goal priority 📦4.0.1 FHIR Std.
Goal.description Base example SNOMED CT Clinical Findings 📍4.0.1 FHIR Std.
Goal.target.measure Base example LOINC Codes 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
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()

This structure is derived from Goal

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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)
... achievementStatus 0..1 CodeableConcept in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable
Binding: GoalAchievementStatus (preferred)
... category S 0..* CodeableConcept E.g. Treatment, dietary, behavioral, etc.
Binding: GoalCategory (preferred)
... description S 1..1 CodeableConcept Code or text describing goal
... subject S 1..1 Reference(NG Patient) Who this goal is intended for
... target S 0..* BackboneElement Target outcome for the goal
.... measure 0..1 CodeableConcept The parameter whose value is being tracked
Binding: LOINCCodes (example)
... addresses 0..* Reference(NG Condition | NG Observations | NG ServiceRequest) Issues addressed by this goal

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Goal.lifecycleStatus Base required GoalLifecycleStatus 📦4.0.1 FHIR Std.
Goal.achievementStatus Base preferred Goal achievement status 📦4.0.1 FHIR Std.
Goal.category Base preferred Goal category 📦4.0.1 FHIR Std.
Goal.priority Base preferred Goal priority 📦4.0.1 FHIR Std.
Goal.target.measure Base example LOINC Codes 📦4.0.1 FHIR Std.
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... 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)
... category SΣ 0..* CodeableConcept E.g. Treatment, dietary, behavioral, etc.
Binding: GoalCategory (preferred)
... priority Σ 0..1 CodeableConcept high-priority | medium-priority | low-priority
Binding: GoalPriority (preferred)
... description SΣ 1..1 CodeableConcept Code or text describing goal
Binding: SNOMEDCTClinicalFindings (example): 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.
... subject SΣ 1..1 Reference(NG Patient) Who this goal is intended for
... start[x] Σ 0..1 When goal pursuit begins
Binding: GoalStartEvent (example): Codes describing events that can trigger the initiation of a goal.
.... startDate date
.... startCodeableConcept CodeableConcept
... target SC 0..* BackboneElement Target outcome for the goal
Constraints: gol-1
.... 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)
.... detail[x] ΣC 0..1 The target value to be achieved
Binding Description: (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] Σ 0..1 Reach goal on or before
..... dueDate date
..... 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(NG Condition | NG Observations | NG ServiceRequest) Issues addressed by this goal
... note 0..* Annotation Comments about the goal
... outcomeCode 0..* CodeableConcept What result was achieved regarding the goal?
Binding: SNOMEDCTClinicalFindings (example): The result of the goal; e.g. "25% increase in shoulder mobility", "Anxiety reduced to moderate levels". "15 kg weight loss sustained over 6 months".
... outcomeReference 0..* Reference(Observation) Observation that resulted from goal

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Goal.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Goal.lifecycleStatus Base required GoalLifecycleStatus 📦4.0.1 FHIR Std.
Goal.achievementStatus Base preferred Goal achievement status 📦4.0.1 FHIR Std.
Goal.category Base preferred Goal category 📦4.0.1 FHIR Std.
Goal.priority Base preferred Goal priority 📦4.0.1 FHIR Std.
Goal.description Base example SNOMED CT Clinical Findings 📍4.0.1 FHIR Std.
Goal.start[x] Base example Goal start event 📍4.0.1 FHIR Std.
Goal.target.measure Base example LOINC Codes 📦4.0.1 FHIR Std.
Goal.target.detail[x] Base example Not Stated Unknown
Goal.outcomeCode Base example SNOMED CT Clinical Findings 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
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()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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)
... category SΣ 0..* CodeableConcept E.g. Treatment, dietary, behavioral, etc.
Binding: GoalCategory (preferred)
... priority Σ 0..1 CodeableConcept high-priority | medium-priority | low-priority
Binding: GoalPriority (preferred)
... description SΣ 1..1 CodeableConcept Code or text describing goal
Binding: SNOMEDCTClinicalFindings (example): 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.
... subject SΣ 1..1 Reference(NG Patient) Who this goal is intended for
... target SC 0..* BackboneElement Target outcome for the goal
Constraints: gol-1
.... 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)
... addresses 0..* Reference(NG Condition | NG Observations | NG ServiceRequest) Issues addressed by this goal

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Goal.lifecycleStatus Base required GoalLifecycleStatus 📦4.0.1 FHIR Std.
Goal.achievementStatus Base preferred Goal achievement status 📦4.0.1 FHIR Std.
Goal.category Base preferred Goal category 📦4.0.1 FHIR Std.
Goal.priority Base preferred Goal priority 📦4.0.1 FHIR Std.
Goal.description Base example SNOMED CT Clinical Findings 📍4.0.1 FHIR Std.
Goal.target.measure Base example LOINC Codes 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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)
... achievementStatus 0..1 CodeableConcept in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable
Binding: GoalAchievementStatus (preferred)
... category S 0..* CodeableConcept E.g. Treatment, dietary, behavioral, etc.
Binding: GoalCategory (preferred)
... description S 1..1 CodeableConcept Code or text describing goal
... subject S 1..1 Reference(NG Patient) Who this goal is intended for
... target S 0..* BackboneElement Target outcome for the goal
.... measure 0..1 CodeableConcept The parameter whose value is being tracked
Binding: LOINCCodes (example)
... addresses 0..* Reference(NG Condition | NG Observations | NG ServiceRequest) Issues addressed by this goal

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Goal.lifecycleStatus Base required GoalLifecycleStatus 📦4.0.1 FHIR Std.
Goal.achievementStatus Base preferred Goal achievement status 📦4.0.1 FHIR Std.
Goal.category Base preferred Goal category 📦4.0.1 FHIR Std.
Goal.priority Base preferred Goal priority 📦4.0.1 FHIR Std.
Goal.target.measure Base example LOINC Codes 📦4.0.1 FHIR Std.

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... 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)
... category SΣ 0..* CodeableConcept E.g. Treatment, dietary, behavioral, etc.
Binding: GoalCategory (preferred)
... priority Σ 0..1 CodeableConcept high-priority | medium-priority | low-priority
Binding: GoalPriority (preferred)
... description SΣ 1..1 CodeableConcept Code or text describing goal
Binding: SNOMEDCTClinicalFindings (example): 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.
... subject SΣ 1..1 Reference(NG Patient) Who this goal is intended for
... start[x] Σ 0..1 When goal pursuit begins
Binding: GoalStartEvent (example): Codes describing events that can trigger the initiation of a goal.
.... startDate date
.... startCodeableConcept CodeableConcept
... target SC 0..* BackboneElement Target outcome for the goal
Constraints: gol-1
.... 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)
.... detail[x] ΣC 0..1 The target value to be achieved
Binding Description: (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] Σ 0..1 Reach goal on or before
..... dueDate date
..... 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(NG Condition | NG Observations | NG ServiceRequest) Issues addressed by this goal
... note 0..* Annotation Comments about the goal
... outcomeCode 0..* CodeableConcept What result was achieved regarding the goal?
Binding: SNOMEDCTClinicalFindings (example): The result of the goal; e.g. "25% increase in shoulder mobility", "Anxiety reduced to moderate levels". "15 kg weight loss sustained over 6 months".
... outcomeReference 0..* Reference(Observation) Observation that resulted from goal

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Goal.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Goal.lifecycleStatus Base required GoalLifecycleStatus 📦4.0.1 FHIR Std.
Goal.achievementStatus Base preferred Goal achievement status 📦4.0.1 FHIR Std.
Goal.category Base preferred Goal category 📦4.0.1 FHIR Std.
Goal.priority Base preferred Goal priority 📦4.0.1 FHIR Std.
Goal.description Base example SNOMED CT Clinical Findings 📍4.0.1 FHIR Std.
Goal.start[x] Base example Goal start event 📍4.0.1 FHIR Std.
Goal.target.measure Base example LOINC Codes 📦4.0.1 FHIR Std.
Goal.target.detail[x] Base example Not Stated Unknown
Goal.outcomeCode Base example SNOMED CT Clinical Findings 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
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