SGHI FHIR Profile Implementation Guide
0.1.0 - ci-build

SGHI FHIR Profile Implementation Guide, published by Kathurima Kimathi. 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/savannahghi/sil_fhir_profile_ig/ and changes regularly. See the Directory of published versions

## Resource Profile: SGHI Plan Definition Profile

Official URL: https://fhir.slade360.co.ke/fhir/StructureDefinition/plandefinition | Version: 0.1.0
Draft as of 2026-05-21 | Computable Name: SGHIPlanDefinition

This resource allows for the definition of various types of plans as a sharable, consumable, and executable artifact.

Usages:

- Refer to this Profile: SGHI Plan Definition Profile
- Examples for this Profile: PlanDefinition Name

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.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PlanDefinition | C | 0..* | PlanDefinition | The definition of a plan for a series of actions, independent of any specific patient or context Interfaces Implemented: MetadataResource Constraints: cnl-0, pld-3, pld-4
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained |  | 0..* | Resource | Contained, inline Resources
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 1..* | Identifier | Additional identifier for the plan definition
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required)
type | Σ | 0..1 | SGHICodeableConcept | Description of identifier Binding: SGHI Default Identifier Types (required)
system | Σ | 1..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | Σ C | 1..1 | string | The value that is unique Example General: 123456
assigner | Σ | 1..1 | SGHIReference(SGHI Organization) | Organization that issued id (may be just text)
name | Σ C | 1..1 | string | Name for this plan definition (computer friendly)
title | Σ | 1..1 | string | Name for this plan definition (human friendly)
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
date | Σ | 1..1 | dateTime | Date last changed
useContext | Σ | 1..* | UsageContext | The context that the content is intended to support
code | Σ | 1..1 | Coding | Type of context being specified Binding: UsageContextType (extensible): A code that specifies a type of context being specified by a usage context.
Slices for value[x] | Σ | 1..1 |  | Value that defines the context Slice: Unordered, Open by type:$this Binding: ContextOfUseValueSet (example): A code that defines the specific value for the context being specified.
valueCodeableConcept |  |  | CodeableConcept |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueReference |  |  | Reference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization) |
value[x]:valueCodeableConcept | Σ | 0..1 | SGHICodeableConcept | Value that defines the context Binding: ContextOfUseValueSet (example): A code that defines the specific value for the context being specified.
value[x]:valueReference | Σ | 0..1 | SGHIReference(SGHI Plan Definition Profile | SGHI Location | SGHI Organization) | Value that defines the context
action | C | 1..* | BackboneElement | Action defined by the plan
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code |  | 0..1 | SGHICodeableConcept | Code representing the meaning of the action or sub-actions Binding: ActionCode (example): Provides examples of actions to be performed.
reason |  | 0..* | SGHICodeableConcept | Why the action should be performed Binding: ActionReasonCode (example): Provides examples of reasons for actions to be performed.
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
PlanDefinition.identifier.​use | Base | required | IdentifierUse | 📦5.0.0 | FHIR Std.
PlanDefinition.identifier.​type | Base | required | SGHI Default Identifier Types | 📦0.1.0 | This IG
PlanDefinition.status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std.
PlanDefinition.useContext.​code | Base | extensible | UsageContextType | 📦1.0.1 | THO v7.1
PlanDefinition.useContext.​value[x] | Base | example | Context of Use ValueSet | 📍5.0.0 | FHIR Std.
PlanDefinition.useContext.​value[x]:valueCodeableConcept | Base | example | Context of Use ValueSet | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​code | Base | example | Action Code | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​reason | Base | example | Action Reason Code | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cnl-0 | warning | PlanDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')`
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()`
pld-3 | warning | PlanDefinition | goalid should reference the id of a goal definition | `%context.repeat(action).where((goalId in %context.goal.id).not()).exists().not()`
pld-4 | warning | PlanDefinition | targetId should reference the id of an action | `%context.repeat(action).relatedAction.where((targetId in %context.repeat(action).id).not()).exists().not()`

This structure is derived from PlanDefinition

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PlanDefinition |  | 0..* | PlanDefinition | The definition of a plan for a series of actions, independent of any specific patient or context Interfaces Implemented: MetadataResource
identifier |  | 1..* | Identifier | Additional identifier for the plan definition
use |  | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required)
type |  | 0..1 | SGHICodeableConcept | Description of identifier Binding: SGHI Default Identifier Types (required)
system |  | 1..1 | uri | The namespace for the identifier value
value |  | 1..1 | string | The value that is unique
assigner |  | 1..1 | SGHIReference(SGHI Organization) | Organization that issued id (may be just text)
name |  | 1..1 | string | Name for this plan definition (computer friendly)
title |  | 1..1 | string | Name for this plan definition (human friendly)
date |  | 1..1 | dateTime | Date last changed
useContext |  | 1..* | UsageContext | The context that the content is intended to support
Slices for value[x] |  | 1..1 | CodeableConcept, Quantity, Range, Reference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization) | Value that defines the context Slice: Unordered, Open by type:$this
value[x]:valueCodeableConcept |  | 0..1 | SGHICodeableConcept | Value that defines the context
value[x]:valueReference |  | 0..1 | SGHIReference(SGHI Plan Definition Profile | SGHI Location | SGHI Organization) | Value that defines the context
action |  | 1..* | BackboneElement | Action defined by the plan
code |  | 0..1 | SGHICodeableConcept | Code representing the meaning of the action or sub-actions
reason |  | 0..* | SGHICodeableConcept | Why the action should be performed
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
PlanDefinition.identifier.​use | Base | required | IdentifierUse | 📦5.0.0 | FHIR Std.
PlanDefinition.identifier.​type | Base | required | SGHI Default Identifier Types | 📦0.1.0 | This IG

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PlanDefinition | C | 0..* | PlanDefinition | The definition of a plan for a series of actions, independent of any specific patient or context Interfaces Implemented: MetadataResource Constraints: cnl-0, pld-3, pld-4
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: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
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
url | Σ C | 0..1 | uri | Canonical identifier for this plan definition, represented as a URI (globally unique) Constraints: cnl-1
identifier | Σ | 1..* | Identifier | Additional identifier for the plan definition
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required)
type | Σ | 0..1 | SGHICodeableConcept | Description of identifier Binding: SGHI Default Identifier Types (required)
system | Σ | 1..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | Σ C | 1..1 | string | The value that is unique Example General: 123456
period | Σ | 0..1 | Period | Time period when id is/was valid for use
assigner | Σ | 1..1 | SGHIReference(SGHI Organization) | Organization that issued id (may be just text)
version | Σ | 0..1 | string | Business version of the plan definition
versionAlgorithm[x] | Σ | 0..1 |  | How to compare versions Binding: VersionAlgorithm (extensible)
versionAlgorithmString |  |  | string |
versionAlgorithmCoding |  |  | Coding |
name | Σ C | 1..1 | string | Name for this plan definition (computer friendly)
title | Σ | 1..1 | string | Name for this plan definition (human friendly)
subtitle |  | 0..1 | string | Subordinate title of the plan definition
type | Σ | 0..1 | CodeableConcept | order-set | clinical-protocol | eca-rule | workflow-definition Binding: PlanDefinitionType (extensible): The type of PlanDefinition.
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage
subject[x] |  | 0..1 |  | Type of individual the plan definition is focused on Binding: ParticipantResourceTypes (extensible): The possible types of subjects for a plan definition (E.g. Patient, Practitioner, Organization, Location, etc.).
subjectCodeableConcept |  |  | CodeableConcept |
subjectReference |  |  | Reference(Group | MedicinalProductDefinition | SubstanceDefinition | AdministrableProductDefinition | ManufacturedItemDefinition | PackagedProductDefinition) |
subjectCanonical |  |  | canonical(EvidenceVariable) |
date | Σ | 1..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher/steward (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description | Σ | 0..1 | markdown | Natural language description of the plan definition
useContext | Σ | 1..* | UsageContext | The context that the content is intended to support
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
code | Σ | 1..1 | Coding | Type of context being specified Binding: UsageContextType (extensible): A code that specifies a type of context being specified by a usage context.
Slices for value[x] | Σ | 1..1 |  | Value that defines the context Slice: Unordered, Open by type:$this Binding: ContextOfUseValueSet (example): A code that defines the specific value for the context being specified.
valueCodeableConcept |  |  | CodeableConcept |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueReference |  |  | Reference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization) |
value[x]:valueCodeableConcept | Σ | 0..1 | SGHICodeableConcept | Value that defines the context Binding: ContextOfUseValueSet (example): A code that defines the specific value for the context being specified.
value[x]:valueReference | Σ | 0..1 | SGHIReference(SGHI Plan Definition Profile | SGHI Location | SGHI Organization) | Value that defines the context
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for plan definition (if applicable) Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose |  | 0..1 | markdown | Why this plan definition is defined
usage |  | 0..1 | markdown | Describes the clinical usage of the plan
copyright |  | 0..1 | markdown | Use and/or publishing restrictions
copyrightLabel |  | 0..1 | string | Copyright holder and year(s)
approvalDate |  | 0..1 | date | When the plan definition was approved by publisher
lastReviewDate |  | 0..1 | date | When the plan definition was last reviewed by the publisher
effectivePeriod | Σ | 0..1 | Period | When the plan definition is expected to be used
topic |  | 0..* | CodeableConcept | E.g. Education, Treatment, Assessment Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering.
author |  | 0..* | ContactDetail | Who authored the content
editor |  | 0..* | ContactDetail | Who edited the content
reviewer |  | 0..* | ContactDetail | Who reviewed the content
endorser |  | 0..* | ContactDetail | Who endorsed the content
relatedArtifact |  | 0..* | RelatedArtifact | Additional documentation, citations
library |  | 0..* | canonical(Library) | Logic used by the plan definition
goal | C | 0..* | BackboneElement | What the plan is trying to accomplish
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
category |  | 0..1 | CodeableConcept | E.g. Treatment, dietary, behavioral Binding: GoalCategory (example): Example codes for grouping goals for filtering or presentation.
description |  | 1..1 | CodeableConcept | Code or text describing the goal Binding: SNOMEDCTClinicalFindings (example): Describes goals that can be achieved.
priority |  | 0..1 | CodeableConcept | high-priority | medium-priority | low-priority Binding: GoalPriority (preferred): Indicates the level of importance associated with reaching or sustaining a goal.
start |  | 0..1 | CodeableConcept | When goal pursuit begins Binding: GoalStartEvent (example): Identifies the types of events that might trigger the start of a goal.
addresses |  | 0..* | CodeableConcept | What does the goal address Binding: ConditionProblemDiagnosisCodes (example): Identifies problems, conditions, issues, or concerns that goals may address.
documentation |  | 0..* | RelatedArtifact | Supporting documentation for the goal
target |  | 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 |  | 0..1 | CodeableConcept | The parameter whose value is to be tracked Binding: LOINCCodes (example): Identifies types of parameters that can be tracked to determine goal achievement.
detail[x] |  | 0..1 |  | The target value to be achieved
detailQuantity |  |  | Quantity |
detailRange |  |  | Range |
detailCodeableConcept |  |  | CodeableConcept |
detailString |  |  | string |
detailBoolean |  |  | boolean |
detailInteger |  |  | integer |
detailRatio |  |  | Ratio |
due |  | 0..1 | Duration | Reach goal within
actor |  | 0..* | BackboneElement | Actors within the plan
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
title |  | 0..1 | string | User-visible title
description |  | 0..1 | markdown | Describes the actor
option |  | 1..* | BackboneElement | Who or what can be this actor
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
type |  | 0..1 | code | careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson Binding: ActionParticipantType (required): The type of participant in the activity.
typeCanonical |  | 0..1 | canonical(CapabilityStatement) | Who or what can participate
typeReference |  | 0..1 | Reference(CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who or what can participate
role |  | 0..1 | CodeableConcept | E.g. Nurse, Surgeon, Parent Binding: Action Participant Role (example)
action | C | 1..* | BackboneElement | Action defined by the plan
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
linkId |  | 0..1 | string | Unique id for the action in the PlanDefinition
prefix |  | 0..1 | string | User-visible prefix for the action (e.g. 1. or A.)
title |  | 0..1 | string | User-visible title
description |  | 0..1 | markdown | Brief description of the action
textEquivalent |  | 0..1 | markdown | Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system
priority |  | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
code |  | 0..1 | SGHICodeableConcept | Code representing the meaning of the action or sub-actions Binding: ActionCode (example): Provides examples of actions to be performed.
reason |  | 0..* | SGHICodeableConcept | Why the action should be performed Binding: ActionReasonCode (example): Provides examples of reasons for actions to be performed.
documentation |  | 0..* | RelatedArtifact | Supporting documentation for the intended performer of the action
goalId | C | 0..* | id | What goals this action supports
subject[x] |  | 0..1 |  | Type of individual the action is focused on Binding: ParticipantResourceTypes (extensible): The possible types of subjects for a plan definition (E.g. Patient, Practitioner, Organization, Location, etc.).
subjectCodeableConcept |  |  | CodeableConcept |
subjectReference |  |  | Reference(Group) |
subjectCanonical |  |  | canonical(Any) |
trigger |  | 0..* | TriggerDefinition | When the action should be triggered
condition |  | 0..* | BackboneElement | Whether or not the action is applicable
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
kind |  | 1..1 | code | applicability | start | stop Binding: ActionConditionKind (required): Defines the kinds of conditions that can appear on actions.
expression |  | 0..1 | Expression | Boolean-valued expression
input | C | 0..* | BackboneElement | Input data requirements Constraints: pld-0
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
title |  | 0..1 | string | User-visible title
requirement | C | 0..1 | DataRequirement | What data is provided
relatedData | C | 0..1 | id | What data is provided
output | C | 0..* | BackboneElement | Output data definition Constraints: pld-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
title |  | 0..1 | string | User-visible title
requirement | C | 0..1 | DataRequirement | What data is provided
relatedData | C | 0..1 | string | What data is provided
relatedAction | C | 0..* | BackboneElement | Relationship to another action
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
targetId | C | 1..1 | id | What action is this related to
relationship |  | 1..1 | code | before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end Binding: ActionRelationshipType (required): Defines the types of relationships between actions.
endRelationship |  | 0..1 | code | before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end Binding: ActionRelationshipType (required): Defines the types of relationships between actions.
offset[x] |  | 0..1 |  | Time offset for the relationship
offsetDuration |  |  | Duration |
offsetRange |  |  | Range |
timing[x] |  | 0..1 |  | When the action should take place
timingAge |  |  | Age |
timingDuration |  |  | Duration |
timingRange |  |  | Range |
timingTiming |  |  | Timing |
location |  | 0..1 | CodeableReference(Location) | Where it should happen
participant |  | 0..* | BackboneElement | Who should participate in the action
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
actorId |  | 0..1 | string | What actor
type |  | 0..1 | code | careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson Binding: ActionParticipantType (required): The type of participant in the activity.
typeCanonical |  | 0..1 | canonical(CapabilityStatement) | Who or what can participate
typeReference |  | 0..1 | Reference(CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who or what can participate
role |  | 0..1 | CodeableConcept | E.g. Nurse, Surgeon, Parent Binding: Action Participant Role (example): Defines roles played by participants for the action.
function |  | 0..1 | CodeableConcept | E.g. Author, Reviewer, Witness, etc Binding: ActionParticipantFunction (example)
type |  | 0..1 | CodeableConcept | create | update | remove | fire-event Binding: ActionType (extensible): The type of action to be performed.
groupingBehavior |  | 0..1 | code | visual-group | logical-group | sentence-group Binding: ActionGroupingBehavior (required): Defines organization behavior of a group.
selectionBehavior |  | 0..1 | code | any | all | all-or-none | exactly-one | at-most-one | one-or-more Binding: ActionSelectionBehavior (required): Defines selection behavior of a group.
requiredBehavior |  | 0..1 | code | must | could | must-unless-documented Binding: ActionRequiredBehavior (required): Defines expectations around whether an action or action group is required.
precheckBehavior |  | 0..1 | code | yes | no Binding: ActionPrecheckBehavior (required): Defines selection frequency behavior for an action or group.
cardinalityBehavior |  | 0..1 | code | single | multiple Binding: ActionCardinalityBehavior (required): Defines behavior for an action or a group for how many times that item may be repeated.
definition[x] |  | 0..1 |  | Description of the activity to be performed
definitionCanonical |  |  | canonical(ActivityDefinition | MessageDefinition | ObservationDefinition | PlanDefinition | Questionnaire | SpecimenDefinition) |
definitionUri |  |  | uri |
transform |  | 0..1 | canonical(StructureMap) | Transform to apply the template
dynamicValue |  | 0..* | BackboneElement | Dynamic aspects of the definition
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
path |  | 0..1 | string | The path to the element to be set dynamically
expression |  | 0..1 | Expression | An expression that provides the dynamic value for the customization
action |  | 0..* | See action (PlanDefinition) | A sub-action
asNeeded[x] | Σ | 0..1 |  | Preconditions for service Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the pre-condition that should hold prior to performing a procedure. For example "pain", "on flare-up", etc.
asNeededBoolean |  |  | boolean |
asNeededCodeableConcept |  |  | CodeableConcept |
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
PlanDefinition.language | Base | required | All Languages | 📍5.0.0 | FHIR Std.
PlanDefinition.identifier.​use | Base | required | IdentifierUse | 📦5.0.0 | FHIR Std.
PlanDefinition.identifier.​type | Base | required | SGHI Default Identifier Types | 📦0.1.0 | This IG
PlanDefinition.versionAlgorithm[x] | Base | extensible | Version Algorithm | 📍5.0.0 | FHIR Std.
PlanDefinition.type | Base | extensible | Plan Definition Type | 📍5.0.0 | FHIR Std.
PlanDefinition.status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std.
PlanDefinition.subject[x] | Base | extensible | Participant Resource Types | 📍5.0.0 | FHIR Std.
PlanDefinition.useContext.​code | Base | extensible | UsageContextType | 📦1.0.1 | THO v7.1
PlanDefinition.useContext.​value[x] | Base | example | Context of Use ValueSet | 📍5.0.0 | FHIR Std.
PlanDefinition.useContext.​value[x]:valueCodeableConcept | Base | example | Context of Use ValueSet | 📍5.0.0 | FHIR Std.
PlanDefinition.jurisdiction | Base | extensible | Jurisdiction ValueSet | 📍5.0.0 | FHIR Std.
PlanDefinition.topic | Base | example | Definition Topic | 📍5.0.0 | FHIR Std.
PlanDefinition.goal.​category | Base | example | Goal Category | 📍5.0.0 | FHIR Std.
PlanDefinition.goal.​description | Base | example | SNOMED CT Clinical Findings | 📍5.0.0 | FHIR Std.
PlanDefinition.goal.​priority | Base | preferred | Goal Priority | 📍5.0.0 | FHIR Std.
PlanDefinition.goal.​start | Base | example | Goal Start Event | 📍5.0.0 | FHIR Std.
PlanDefinition.goal.​addresses | Base | example | Condition/Problem/Diagnosis Codes | 📍5.0.0 | FHIR Std.
PlanDefinition.goal.​target.measure | Base | example | LOINC Codes | 📍5.0.0 | FHIR Std.
PlanDefinition.actor.​option.type | Base | required | Action Participant Type | 📍5.0.0 | FHIR Std.
PlanDefinition.actor.​option.role | Base | example | Action Participant Role | 📦2.0.0 | THO v7.1
PlanDefinition.action.​priority | Base | required | RequestPriority | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​code | Base | example | Action Code | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​reason | Base | example | Action Reason Code | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​subject[x] | Base | extensible | Participant Resource Types | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​condition.kind | Base | required | Action Condition Kind | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​relatedAction.relationship | Base | required | Action Relationship Type | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​relatedAction.endRelationship | Base | required | Action Relationship Type | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​participant.type | Base | required | Action Participant Type | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​participant.role | Base | example | Action Participant Role | 📦2.0.0 | THO v7.1
PlanDefinition.action.​participant.function | Base | example | Action Participant Function | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​type | Base | extensible | Action Type | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​groupingBehavior | Base | required | Action Grouping Behavior | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​selectionBehavior | Base | required | Action Selection Behavior | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​requiredBehavior | Base | required | Action Required Behavior | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​precheckBehavior | Base | required | Action Precheck Behavior | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​cardinalityBehavior | Base | required | Action Cardinality Behavior | 📍5.0.0 | FHIR Std.
PlanDefinition.asNeeded[x] | Base | example | SNOMED CT Medication As Needed Reason Codes | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cnl-0 | warning | PlanDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')`
cnl-1 | warning | PlanDefinition.url | URL should not contain | or # - these characters make processing canonical references problematic | `exists() implies matches('^[^|# ]+$')`
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()`
pld-0 | error | PlanDefinition.action.input | Input data elements must have a requirement or a relatedData, but not both | `requirement.exists() xor relatedData.exists()`
pld-1 | error | PlanDefinition.action.output | Output data element must have a requirement or a relatedData, but not both | `requirement.exists() xor relatedData.exists()`
pld-3 | warning | PlanDefinition | goalid should reference the id of a goal definition | `%context.repeat(action).where((goalId in %context.goal.id).not()).exists().not()`
pld-4 | warning | PlanDefinition | targetId should reference the id of an action | `%context.repeat(action).relatedAction.where((targetId in %context.repeat(action).id).not()).exists().not()`

This structure is derived from PlanDefinition

Summary

Mandatory: 9 elements

Structures

This structure refers to these other structures:

- SGHI CodeableConcept (https://fhir.slade360.co.ke/fhir/StructureDefinition/codeableconcept)
- SGHI Reference (https://fhir.slade360.co.ke/fhir/StructureDefinition/reference)
- SGHI Organization (https://fhir.slade360.co.ke/fhir/StructureDefinition/organization)
- SGHI Plan Definition Profile (https://fhir.slade360.co.ke/fhir/StructureDefinition/plandefinition)
- SGHI Location (https://fhir.slade360.co.ke/fhir/StructureDefinition/fhir-location)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of PlanDefinition.useContext.value[x]

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PlanDefinition | C | 0..* | PlanDefinition | The definition of a plan for a series of actions, independent of any specific patient or context Interfaces Implemented: MetadataResource Constraints: cnl-0, pld-3, pld-4
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained |  | 0..* | Resource | Contained, inline Resources
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 1..* | Identifier | Additional identifier for the plan definition
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required)
type | Σ | 0..1 | SGHICodeableConcept | Description of identifier Binding: SGHI Default Identifier Types (required)
system | Σ | 1..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | Σ C | 1..1 | string | The value that is unique Example General: 123456
assigner | Σ | 1..1 | SGHIReference(SGHI Organization) | Organization that issued id (may be just text)
name | Σ C | 1..1 | string | Name for this plan definition (computer friendly)
title | Σ | 1..1 | string | Name for this plan definition (human friendly)
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
date | Σ | 1..1 | dateTime | Date last changed
useContext | Σ | 1..* | UsageContext | The context that the content is intended to support
code | Σ | 1..1 | Coding | Type of context being specified Binding: UsageContextType (extensible): A code that specifies a type of context being specified by a usage context.
Slices for value[x] | Σ | 1..1 |  | Value that defines the context Slice: Unordered, Open by type:$this Binding: ContextOfUseValueSet (example): A code that defines the specific value for the context being specified.
valueCodeableConcept |  |  | CodeableConcept |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueReference |  |  | Reference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization) |
value[x]:valueCodeableConcept | Σ | 0..1 | SGHICodeableConcept | Value that defines the context Binding: ContextOfUseValueSet (example): A code that defines the specific value for the context being specified.
value[x]:valueReference | Σ | 0..1 | SGHIReference(SGHI Plan Definition Profile | SGHI Location | SGHI Organization) | Value that defines the context
action | C | 1..* | BackboneElement | Action defined by the plan
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code |  | 0..1 | SGHICodeableConcept | Code representing the meaning of the action or sub-actions Binding: ActionCode (example): Provides examples of actions to be performed.
reason |  | 0..* | SGHICodeableConcept | Why the action should be performed Binding: ActionReasonCode (example): Provides examples of reasons for actions to be performed.
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
PlanDefinition.identifier.​use | Base | required | IdentifierUse | 📦5.0.0 | FHIR Std.
PlanDefinition.identifier.​type | Base | required | SGHI Default Identifier Types | 📦0.1.0 | This IG
PlanDefinition.status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std.
PlanDefinition.useContext.​code | Base | extensible | UsageContextType | 📦1.0.1 | THO v7.1
PlanDefinition.useContext.​value[x] | Base | example | Context of Use ValueSet | 📍5.0.0 | FHIR Std.
PlanDefinition.useContext.​value[x]:valueCodeableConcept | Base | example | Context of Use ValueSet | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​code | Base | example | Action Code | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​reason | Base | example | Action Reason Code | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cnl-0 | warning | PlanDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')`
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()`
pld-3 | warning | PlanDefinition | goalid should reference the id of a goal definition | `%context.repeat(action).where((goalId in %context.goal.id).not()).exists().not()`
pld-4 | warning | PlanDefinition | targetId should reference the id of an action | `%context.repeat(action).relatedAction.where((targetId in %context.repeat(action).id).not()).exists().not()`

Differential View

This structure is derived from PlanDefinition

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PlanDefinition |  | 0..* | PlanDefinition | The definition of a plan for a series of actions, independent of any specific patient or context Interfaces Implemented: MetadataResource
identifier |  | 1..* | Identifier | Additional identifier for the plan definition
use |  | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required)
type |  | 0..1 | SGHICodeableConcept | Description of identifier Binding: SGHI Default Identifier Types (required)
system |  | 1..1 | uri | The namespace for the identifier value
value |  | 1..1 | string | The value that is unique
assigner |  | 1..1 | SGHIReference(SGHI Organization) | Organization that issued id (may be just text)
name |  | 1..1 | string | Name for this plan definition (computer friendly)
title |  | 1..1 | string | Name for this plan definition (human friendly)
date |  | 1..1 | dateTime | Date last changed
useContext |  | 1..* | UsageContext | The context that the content is intended to support
Slices for value[x] |  | 1..1 | CodeableConcept, Quantity, Range, Reference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization) | Value that defines the context Slice: Unordered, Open by type:$this
value[x]:valueCodeableConcept |  | 0..1 | SGHICodeableConcept | Value that defines the context
value[x]:valueReference |  | 0..1 | SGHIReference(SGHI Plan Definition Profile | SGHI Location | SGHI Organization) | Value that defines the context
action |  | 1..* | BackboneElement | Action defined by the plan
code |  | 0..1 | SGHICodeableConcept | Code representing the meaning of the action or sub-actions
reason |  | 0..* | SGHICodeableConcept | Why the action should be performed
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
PlanDefinition.identifier.​use | Base | required | IdentifierUse | 📦5.0.0 | FHIR Std.
PlanDefinition.identifier.​type | Base | required | SGHI Default Identifier Types | 📦0.1.0 | This IG

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PlanDefinition | C | 0..* | PlanDefinition | The definition of a plan for a series of actions, independent of any specific patient or context Interfaces Implemented: MetadataResource Constraints: cnl-0, pld-3, pld-4
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: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
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
url | Σ C | 0..1 | uri | Canonical identifier for this plan definition, represented as a URI (globally unique) Constraints: cnl-1
identifier | Σ | 1..* | Identifier | Additional identifier for the plan definition
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required)
type | Σ | 0..1 | SGHICodeableConcept | Description of identifier Binding: SGHI Default Identifier Types (required)
system | Σ | 1..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | Σ C | 1..1 | string | The value that is unique Example General: 123456
period | Σ | 0..1 | Period | Time period when id is/was valid for use
assigner | Σ | 1..1 | SGHIReference(SGHI Organization) | Organization that issued id (may be just text)
version | Σ | 0..1 | string | Business version of the plan definition
versionAlgorithm[x] | Σ | 0..1 |  | How to compare versions Binding: VersionAlgorithm (extensible)
versionAlgorithmString |  |  | string |
versionAlgorithmCoding |  |  | Coding |
name | Σ C | 1..1 | string | Name for this plan definition (computer friendly)
title | Σ | 1..1 | string | Name for this plan definition (human friendly)
subtitle |  | 0..1 | string | Subordinate title of the plan definition
type | Σ | 0..1 | CodeableConcept | order-set | clinical-protocol | eca-rule | workflow-definition Binding: PlanDefinitionType (extensible): The type of PlanDefinition.
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage
subject[x] |  | 0..1 |  | Type of individual the plan definition is focused on Binding: ParticipantResourceTypes (extensible): The possible types of subjects for a plan definition (E.g. Patient, Practitioner, Organization, Location, etc.).
subjectCodeableConcept |  |  | CodeableConcept |
subjectReference |  |  | Reference(Group | MedicinalProductDefinition | SubstanceDefinition | AdministrableProductDefinition | ManufacturedItemDefinition | PackagedProductDefinition) |
subjectCanonical |  |  | canonical(EvidenceVariable) |
date | Σ | 1..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher/steward (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description | Σ | 0..1 | markdown | Natural language description of the plan definition
useContext | Σ | 1..* | UsageContext | The context that the content is intended to support
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
code | Σ | 1..1 | Coding | Type of context being specified Binding: UsageContextType (extensible): A code that specifies a type of context being specified by a usage context.
Slices for value[x] | Σ | 1..1 |  | Value that defines the context Slice: Unordered, Open by type:$this Binding: ContextOfUseValueSet (example): A code that defines the specific value for the context being specified.
valueCodeableConcept |  |  | CodeableConcept |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueReference |  |  | Reference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization) |
value[x]:valueCodeableConcept | Σ | 0..1 | SGHICodeableConcept | Value that defines the context Binding: ContextOfUseValueSet (example): A code that defines the specific value for the context being specified.
value[x]:valueReference | Σ | 0..1 | SGHIReference(SGHI Plan Definition Profile | SGHI Location | SGHI Organization) | Value that defines the context
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for plan definition (if applicable) Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose |  | 0..1 | markdown | Why this plan definition is defined
usage |  | 0..1 | markdown | Describes the clinical usage of the plan
copyright |  | 0..1 | markdown | Use and/or publishing restrictions
copyrightLabel |  | 0..1 | string | Copyright holder and year(s)
approvalDate |  | 0..1 | date | When the plan definition was approved by publisher
lastReviewDate |  | 0..1 | date | When the plan definition was last reviewed by the publisher
effectivePeriod | Σ | 0..1 | Period | When the plan definition is expected to be used
topic |  | 0..* | CodeableConcept | E.g. Education, Treatment, Assessment Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering.
author |  | 0..* | ContactDetail | Who authored the content
editor |  | 0..* | ContactDetail | Who edited the content
reviewer |  | 0..* | ContactDetail | Who reviewed the content
endorser |  | 0..* | ContactDetail | Who endorsed the content
relatedArtifact |  | 0..* | RelatedArtifact | Additional documentation, citations
library |  | 0..* | canonical(Library) | Logic used by the plan definition
goal | C | 0..* | BackboneElement | What the plan is trying to accomplish
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
category |  | 0..1 | CodeableConcept | E.g. Treatment, dietary, behavioral Binding: GoalCategory (example): Example codes for grouping goals for filtering or presentation.
description |  | 1..1 | CodeableConcept | Code or text describing the goal Binding: SNOMEDCTClinicalFindings (example): Describes goals that can be achieved.
priority |  | 0..1 | CodeableConcept | high-priority | medium-priority | low-priority Binding: GoalPriority (preferred): Indicates the level of importance associated with reaching or sustaining a goal.
start |  | 0..1 | CodeableConcept | When goal pursuit begins Binding: GoalStartEvent (example): Identifies the types of events that might trigger the start of a goal.
addresses |  | 0..* | CodeableConcept | What does the goal address Binding: ConditionProblemDiagnosisCodes (example): Identifies problems, conditions, issues, or concerns that goals may address.
documentation |  | 0..* | RelatedArtifact | Supporting documentation for the goal
target |  | 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 |  | 0..1 | CodeableConcept | The parameter whose value is to be tracked Binding: LOINCCodes (example): Identifies types of parameters that can be tracked to determine goal achievement.
detail[x] |  | 0..1 |  | The target value to be achieved
detailQuantity |  |  | Quantity |
detailRange |  |  | Range |
detailCodeableConcept |  |  | CodeableConcept |
detailString |  |  | string |
detailBoolean |  |  | boolean |
detailInteger |  |  | integer |
detailRatio |  |  | Ratio |
due |  | 0..1 | Duration | Reach goal within
actor |  | 0..* | BackboneElement | Actors within the plan
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
title |  | 0..1 | string | User-visible title
description |  | 0..1 | markdown | Describes the actor
option |  | 1..* | BackboneElement | Who or what can be this actor
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
type |  | 0..1 | code | careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson Binding: ActionParticipantType (required): The type of participant in the activity.
typeCanonical |  | 0..1 | canonical(CapabilityStatement) | Who or what can participate
typeReference |  | 0..1 | Reference(CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who or what can participate
role |  | 0..1 | CodeableConcept | E.g. Nurse, Surgeon, Parent Binding: Action Participant Role (example)
action | C | 1..* | BackboneElement | Action defined by the plan
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
linkId |  | 0..1 | string | Unique id for the action in the PlanDefinition
prefix |  | 0..1 | string | User-visible prefix for the action (e.g. 1. or A.)
title |  | 0..1 | string | User-visible title
description |  | 0..1 | markdown | Brief description of the action
textEquivalent |  | 0..1 | markdown | Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system
priority |  | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
code |  | 0..1 | SGHICodeableConcept | Code representing the meaning of the action or sub-actions Binding: ActionCode (example): Provides examples of actions to be performed.
reason |  | 0..* | SGHICodeableConcept | Why the action should be performed Binding: ActionReasonCode (example): Provides examples of reasons for actions to be performed.
documentation |  | 0..* | RelatedArtifact | Supporting documentation for the intended performer of the action
goalId | C | 0..* | id | What goals this action supports
subject[x] |  | 0..1 |  | Type of individual the action is focused on Binding: ParticipantResourceTypes (extensible): The possible types of subjects for a plan definition (E.g. Patient, Practitioner, Organization, Location, etc.).
subjectCodeableConcept |  |  | CodeableConcept |
subjectReference |  |  | Reference(Group) |
subjectCanonical |  |  | canonical(Any) |
trigger |  | 0..* | TriggerDefinition | When the action should be triggered
condition |  | 0..* | BackboneElement | Whether or not the action is applicable
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
kind |  | 1..1 | code | applicability | start | stop Binding: ActionConditionKind (required): Defines the kinds of conditions that can appear on actions.
expression |  | 0..1 | Expression | Boolean-valued expression
input | C | 0..* | BackboneElement | Input data requirements Constraints: pld-0
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
title |  | 0..1 | string | User-visible title
requirement | C | 0..1 | DataRequirement | What data is provided
relatedData | C | 0..1 | id | What data is provided
output | C | 0..* | BackboneElement | Output data definition Constraints: pld-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
title |  | 0..1 | string | User-visible title
requirement | C | 0..1 | DataRequirement | What data is provided
relatedData | C | 0..1 | string | What data is provided
relatedAction | C | 0..* | BackboneElement | Relationship to another action
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
targetId | C | 1..1 | id | What action is this related to
relationship |  | 1..1 | code | before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end Binding: ActionRelationshipType (required): Defines the types of relationships between actions.
endRelationship |  | 0..1 | code | before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end Binding: ActionRelationshipType (required): Defines the types of relationships between actions.
offset[x] |  | 0..1 |  | Time offset for the relationship
offsetDuration |  |  | Duration |
offsetRange |  |  | Range |
timing[x] |  | 0..1 |  | When the action should take place
timingAge |  |  | Age |
timingDuration |  |  | Duration |
timingRange |  |  | Range |
timingTiming |  |  | Timing |
location |  | 0..1 | CodeableReference(Location) | Where it should happen
participant |  | 0..* | BackboneElement | Who should participate in the action
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
actorId |  | 0..1 | string | What actor
type |  | 0..1 | code | careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson Binding: ActionParticipantType (required): The type of participant in the activity.
typeCanonical |  | 0..1 | canonical(CapabilityStatement) | Who or what can participate
typeReference |  | 0..1 | Reference(CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who or what can participate
role |  | 0..1 | CodeableConcept | E.g. Nurse, Surgeon, Parent Binding: Action Participant Role (example): Defines roles played by participants for the action.
function |  | 0..1 | CodeableConcept | E.g. Author, Reviewer, Witness, etc Binding: ActionParticipantFunction (example)
type |  | 0..1 | CodeableConcept | create | update | remove | fire-event Binding: ActionType (extensible): The type of action to be performed.
groupingBehavior |  | 0..1 | code | visual-group | logical-group | sentence-group Binding: ActionGroupingBehavior (required): Defines organization behavior of a group.
selectionBehavior |  | 0..1 | code | any | all | all-or-none | exactly-one | at-most-one | one-or-more Binding: ActionSelectionBehavior (required): Defines selection behavior of a group.
requiredBehavior |  | 0..1 | code | must | could | must-unless-documented Binding: ActionRequiredBehavior (required): Defines expectations around whether an action or action group is required.
precheckBehavior |  | 0..1 | code | yes | no Binding: ActionPrecheckBehavior (required): Defines selection frequency behavior for an action or group.
cardinalityBehavior |  | 0..1 | code | single | multiple Binding: ActionCardinalityBehavior (required): Defines behavior for an action or a group for how many times that item may be repeated.
definition[x] |  | 0..1 |  | Description of the activity to be performed
definitionCanonical |  |  | canonical(ActivityDefinition | MessageDefinition | ObservationDefinition | PlanDefinition | Questionnaire | SpecimenDefinition) |
definitionUri |  |  | uri |
transform |  | 0..1 | canonical(StructureMap) | Transform to apply the template
dynamicValue |  | 0..* | BackboneElement | Dynamic aspects of the definition
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
path |  | 0..1 | string | The path to the element to be set dynamically
expression |  | 0..1 | Expression | An expression that provides the dynamic value for the customization
action |  | 0..* | See action (PlanDefinition) | A sub-action
asNeeded[x] | Σ | 0..1 |  | Preconditions for service Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the pre-condition that should hold prior to performing a procedure. For example "pain", "on flare-up", etc.
asNeededBoolean |  |  | boolean |
asNeededCodeableConcept |  |  | CodeableConcept |
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
PlanDefinition.language | Base | required | All Languages | 📍5.0.0 | FHIR Std.
PlanDefinition.identifier.​use | Base | required | IdentifierUse | 📦5.0.0 | FHIR Std.
PlanDefinition.identifier.​type | Base | required | SGHI Default Identifier Types | 📦0.1.0 | This IG
PlanDefinition.versionAlgorithm[x] | Base | extensible | Version Algorithm | 📍5.0.0 | FHIR Std.
PlanDefinition.type | Base | extensible | Plan Definition Type | 📍5.0.0 | FHIR Std.
PlanDefinition.status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std.
PlanDefinition.subject[x] | Base | extensible | Participant Resource Types | 📍5.0.0 | FHIR Std.
PlanDefinition.useContext.​code | Base | extensible | UsageContextType | 📦1.0.1 | THO v7.1
PlanDefinition.useContext.​value[x] | Base | example | Context of Use ValueSet | 📍5.0.0 | FHIR Std.
PlanDefinition.useContext.​value[x]:valueCodeableConcept | Base | example | Context of Use ValueSet | 📍5.0.0 | FHIR Std.
PlanDefinition.jurisdiction | Base | extensible | Jurisdiction ValueSet | 📍5.0.0 | FHIR Std.
PlanDefinition.topic | Base | example | Definition Topic | 📍5.0.0 | FHIR Std.
PlanDefinition.goal.​category | Base | example | Goal Category | 📍5.0.0 | FHIR Std.
PlanDefinition.goal.​description | Base | example | SNOMED CT Clinical Findings | 📍5.0.0 | FHIR Std.
PlanDefinition.goal.​priority | Base | preferred | Goal Priority | 📍5.0.0 | FHIR Std.
PlanDefinition.goal.​start | Base | example | Goal Start Event | 📍5.0.0 | FHIR Std.
PlanDefinition.goal.​addresses | Base | example | Condition/Problem/Diagnosis Codes | 📍5.0.0 | FHIR Std.
PlanDefinition.goal.​target.measure | Base | example | LOINC Codes | 📍5.0.0 | FHIR Std.
PlanDefinition.actor.​option.type | Base | required | Action Participant Type | 📍5.0.0 | FHIR Std.
PlanDefinition.actor.​option.role | Base | example | Action Participant Role | 📦2.0.0 | THO v7.1
PlanDefinition.action.​priority | Base | required | RequestPriority | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​code | Base | example | Action Code | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​reason | Base | example | Action Reason Code | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​subject[x] | Base | extensible | Participant Resource Types | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​condition.kind | Base | required | Action Condition Kind | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​relatedAction.relationship | Base | required | Action Relationship Type | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​relatedAction.endRelationship | Base | required | Action Relationship Type | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​participant.type | Base | required | Action Participant Type | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​participant.role | Base | example | Action Participant Role | 📦2.0.0 | THO v7.1
PlanDefinition.action.​participant.function | Base | example | Action Participant Function | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​type | Base | extensible | Action Type | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​groupingBehavior | Base | required | Action Grouping Behavior | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​selectionBehavior | Base | required | Action Selection Behavior | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​requiredBehavior | Base | required | Action Required Behavior | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​precheckBehavior | Base | required | Action Precheck Behavior | 📍5.0.0 | FHIR Std.
PlanDefinition.action.​cardinalityBehavior | Base | required | Action Cardinality Behavior | 📍5.0.0 | FHIR Std.
PlanDefinition.asNeeded[x] | Base | example | SNOMED CT Medication As Needed Reason Codes | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cnl-0 | warning | PlanDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')`
cnl-1 | warning | PlanDefinition.url | URL should not contain | or # - these characters make processing canonical references problematic | `exists() implies matches('^[^|# ]+$')`
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()`
pld-0 | error | PlanDefinition.action.input | Input data elements must have a requirement or a relatedData, but not both | `requirement.exists() xor relatedData.exists()`
pld-1 | error | PlanDefinition.action.output | Output data element must have a requirement or a relatedData, but not both | `requirement.exists() xor relatedData.exists()`
pld-3 | warning | PlanDefinition | goalid should reference the id of a goal definition | `%context.repeat(action).where((goalId in %context.goal.id).not()).exists().not()`
pld-4 | warning | PlanDefinition | targetId should reference the id of an action | `%context.repeat(action).relatedAction.where((targetId in %context.repeat(action).id).not()).exists().not()`

This structure is derived from PlanDefinition

Summary

Mandatory: 9 elements

Structures

This structure refers to these other structures:

- SGHI CodeableConcept (https://fhir.slade360.co.ke/fhir/StructureDefinition/codeableconcept)
- SGHI Reference (https://fhir.slade360.co.ke/fhir/StructureDefinition/reference)
- SGHI Organization (https://fhir.slade360.co.ke/fhir/StructureDefinition/organization)
- SGHI Plan Definition Profile (https://fhir.slade360.co.ke/fhir/StructureDefinition/plandefinition)
- SGHI Location (https://fhir.slade360.co.ke/fhir/StructureDefinition/fhir-location)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of PlanDefinition.useContext.value[x]

Other representations of profile: CSV, Excel, Schematron