Eswatini HL7 FHIR Implementation Guide
1.0.0 - draft
Eswatini
Eswatini HL7 FHIR Implementation Guide - Local Development build (v1.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Official URL: https://eswatinihie.com/fhir/StructureDefinition/SzEpisodeOfCare | Version: 1.0.0 | |||
| Active as of 2026-08-21 | Computable Name: SzEpisodeOfCare | |||
The Eswatini Episode of Care Profile defines the constraints and usage of the HL7 FHIR EpisodeOfCare resource for representing a coordinated period of care provided to a patient within the Eswatini National Digital Health Ecosystem. It supports the documentation of healthcare services that address a specific health need over time. This profile enables consistent documentation and exchange of episode-level care information, supporting care coordination, continuity, and national health system reporting.
This profile SHALL be used by systems that manage or exchange information about ongoing or completed episodes of care, including:
Electronic Medical Record (EMR) systems Care coordination and case management platforms Referral and continuity-of-care systems Disease program and longitudinal care tracking systems National health information exchange (HIE) services
The profile applies to episodes of care such as:
Management of chronic or long-term conditions Program-based care (e.g. HIV, TB, NCDs)
An episode of care may span multiple facilities, providers, and encounters over time.
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | EpisodeOfCare | An association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility | |
![]() ![]() |
Σ | 1..1 | id | Logical id of this artifact |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!Σ | 1..1 | code | planned | waitlist | active | onhold | finished | cancelled | entered-in-error Binding: EpisodeOfCareStatus (required): The status of the episode of care. |
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Episode of care classification Binding: Eswatini Episode of Care Valueset (preferred) |
![]() ![]() |
Σ | 1..1 | Reference(Patient) | The patient who is the focus of this episode of care |
![]() ![]() |
Σ | 1..1 | Reference(Organization) | Organization that assumes care |
![]() ![]() |
Σ | 1..1 | Period | Start and end datest of the Episode of care |
![]() ![]() ![]() |
ΣC | 1..1 | dateTime | Starting time with inclusive boundary |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| EpisodeOfCare.status | Base | required | EpisodeOfCareStatus | 📍4.0.1 | FHIR Std. |
| EpisodeOfCare.type | Base | preferred | Eswatini Episode of Care Valueset | 📦1.0.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | EpisodeOfCare | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | EpisodeOfCare | 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 | EpisodeOfCare | 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 | EpisodeOfCare | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | EpisodeOfCare | 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()
|
This structure is derived from EpisodeOfCare
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | EpisodeOfCare | An association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility | |
![]() ![]() |
1..1 | id | Logical id of this artifact | |
![]() ![]() |
S | 1..1 | CodeableConcept | Episode of care classification Binding: Eswatini Episode of Care Valueset (preferred) |
![]() ![]() |
1..1 | Reference(Organization) | Organization that assumes care | |
![]() ![]() |
1..1 | Period | Start and end datest of the Episode of care | |
![]() ![]() ![]() |
1..1 | dateTime | Starting time with inclusive boundary | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| EpisodeOfCare.type | Base | preferred | Eswatini Episode of Care Valueset | 📦1.0.0 | This IG |
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | EpisodeOfCare | An association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility | |||||
![]() ![]() |
Σ | 1..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
0..* | Identifier | Business Identifier(s) relevant for this EpisodeOfCare | |||||
![]() ![]() |
?!Σ | 1..1 | code | planned | waitlist | active | onhold | finished | cancelled | entered-in-error Binding: EpisodeOfCareStatus (required): The status of the episode of care. | ||||
![]() ![]() |
0..* | BackboneElement | Past list of status codes (the current status may be included to cover the start date of the status) | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
1..1 | code | planned | waitlist | active | onhold | finished | cancelled | entered-in-error Binding: EpisodeOfCareStatus (required): The status of the episode of care. | |||||
![]() ![]() ![]() |
1..1 | Period | Duration the EpisodeOfCare was in the specified status | |||||
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Episode of care classification Binding: Eswatini Episode of Care Valueset (preferred) | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | The list of diagnosis relevant to this episode of care | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(Condition) | Conditions/problems/diagnoses this episode of care is for | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge …) Binding: DiagnosisRole (preferred): The type of diagnosis this condition represents. | ||||
![]() ![]() ![]() |
Σ | 0..1 | positiveInt | Ranking of the diagnosis (for each role type) | ||||
![]() ![]() |
Σ | 1..1 | Reference(Patient) | The patient who is the focus of this episode of care | ||||
![]() ![]() |
Σ | 1..1 | Reference(Organization) | Organization that assumes care | ||||
![]() ![]() |
Σ | 1..1 | Period | Start and end datest of the Episode of care | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
ΣC | 1..1 | dateTime | Starting time with inclusive boundary | ||||
![]() ![]() ![]() |
ΣC | 0..1 | dateTime | End time with inclusive boundary, if not ongoing | ||||
![]() ![]() |
0..* | Reference(ServiceRequest) | Originating Referral Request(s) | |||||
![]() ![]() |
0..1 | Reference(Practitioner | PractitionerRole) | Care manager/care coordinator for the patient | |||||
![]() ![]() |
0..* | Reference(CareTeam) | Other practitioners facilitating this episode of care | |||||
![]() ![]() |
0..* | Reference(Account) | The set of accounts that may be used for billing for this EpisodeOfCare | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| EpisodeOfCare.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| EpisodeOfCare.status | Base | required | EpisodeOfCareStatus | 📍4.0.1 | FHIR Std. |
| EpisodeOfCare.statusHistory.status | Base | required | EpisodeOfCareStatus | 📍4.0.1 | FHIR Std. |
| EpisodeOfCare.type | Base | preferred | Eswatini Episode of Care Valueset | 📦1.0.0 | This IG |
| EpisodeOfCare.diagnosis.role | Base | preferred | DiagnosisRole | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | EpisodeOfCare | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | EpisodeOfCare | 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 | EpisodeOfCare | 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 | EpisodeOfCare | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | EpisodeOfCare | 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()
|
This structure is derived from EpisodeOfCare
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | EpisodeOfCare | An association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility | |
![]() ![]() |
Σ | 1..1 | id | Logical id of this artifact |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!Σ | 1..1 | code | planned | waitlist | active | onhold | finished | cancelled | entered-in-error Binding: EpisodeOfCareStatus (required): The status of the episode of care. |
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Episode of care classification Binding: Eswatini Episode of Care Valueset (preferred) |
![]() ![]() |
Σ | 1..1 | Reference(Patient) | The patient who is the focus of this episode of care |
![]() ![]() |
Σ | 1..1 | Reference(Organization) | Organization that assumes care |
![]() ![]() |
Σ | 1..1 | Period | Start and end datest of the Episode of care |
![]() ![]() ![]() |
ΣC | 1..1 | dateTime | Starting time with inclusive boundary |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| EpisodeOfCare.status | Base | required | EpisodeOfCareStatus | 📍4.0.1 | FHIR Std. |
| EpisodeOfCare.type | Base | preferred | Eswatini Episode of Care Valueset | 📦1.0.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | EpisodeOfCare | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | EpisodeOfCare | 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 | EpisodeOfCare | 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 | EpisodeOfCare | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | EpisodeOfCare | 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()
|
Differential View
This structure is derived from EpisodeOfCare
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | EpisodeOfCare | An association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility | |
![]() ![]() |
1..1 | id | Logical id of this artifact | |
![]() ![]() |
S | 1..1 | CodeableConcept | Episode of care classification Binding: Eswatini Episode of Care Valueset (preferred) |
![]() ![]() |
1..1 | Reference(Organization) | Organization that assumes care | |
![]() ![]() |
1..1 | Period | Start and end datest of the Episode of care | |
![]() ![]() ![]() |
1..1 | dateTime | Starting time with inclusive boundary | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| EpisodeOfCare.type | Base | preferred | Eswatini Episode of Care Valueset | 📦1.0.0 | This IG |
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | EpisodeOfCare | An association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility | |||||
![]() ![]() |
Σ | 1..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
0..* | Identifier | Business Identifier(s) relevant for this EpisodeOfCare | |||||
![]() ![]() |
?!Σ | 1..1 | code | planned | waitlist | active | onhold | finished | cancelled | entered-in-error Binding: EpisodeOfCareStatus (required): The status of the episode of care. | ||||
![]() ![]() |
0..* | BackboneElement | Past list of status codes (the current status may be included to cover the start date of the status) | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
1..1 | code | planned | waitlist | active | onhold | finished | cancelled | entered-in-error Binding: EpisodeOfCareStatus (required): The status of the episode of care. | |||||
![]() ![]() ![]() |
1..1 | Period | Duration the EpisodeOfCare was in the specified status | |||||
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Episode of care classification Binding: Eswatini Episode of Care Valueset (preferred) | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | The list of diagnosis relevant to this episode of care | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(Condition) | Conditions/problems/diagnoses this episode of care is for | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge …) Binding: DiagnosisRole (preferred): The type of diagnosis this condition represents. | ||||
![]() ![]() ![]() |
Σ | 0..1 | positiveInt | Ranking of the diagnosis (for each role type) | ||||
![]() ![]() |
Σ | 1..1 | Reference(Patient) | The patient who is the focus of this episode of care | ||||
![]() ![]() |
Σ | 1..1 | Reference(Organization) | Organization that assumes care | ||||
![]() ![]() |
Σ | 1..1 | Period | Start and end datest of the Episode of care | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
ΣC | 1..1 | dateTime | Starting time with inclusive boundary | ||||
![]() ![]() ![]() |
ΣC | 0..1 | dateTime | End time with inclusive boundary, if not ongoing | ||||
![]() ![]() |
0..* | Reference(ServiceRequest) | Originating Referral Request(s) | |||||
![]() ![]() |
0..1 | Reference(Practitioner | PractitionerRole) | Care manager/care coordinator for the patient | |||||
![]() ![]() |
0..* | Reference(CareTeam) | Other practitioners facilitating this episode of care | |||||
![]() ![]() |
0..* | Reference(Account) | The set of accounts that may be used for billing for this EpisodeOfCare | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| EpisodeOfCare.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| EpisodeOfCare.status | Base | required | EpisodeOfCareStatus | 📍4.0.1 | FHIR Std. |
| EpisodeOfCare.statusHistory.status | Base | required | EpisodeOfCareStatus | 📍4.0.1 | FHIR Std. |
| EpisodeOfCare.type | Base | preferred | Eswatini Episode of Care Valueset | 📦1.0.0 | This IG |
| EpisodeOfCare.diagnosis.role | Base | preferred | DiagnosisRole | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | EpisodeOfCare | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | EpisodeOfCare | 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 | EpisodeOfCare | 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 | EpisodeOfCare | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | EpisodeOfCare | 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()
|
This structure is derived from EpisodeOfCare
Other representations of profile: CSV, Excel, Schematron
The profile constrains the base EpisodeOfCare resource to ensure capture of essential episode-level information, including:
Episode status to reflect the lifecycle of the episode (e.g., active, finished) Type of episode describing the nature or purpose of care Subject (Patient) who is receiving care Managing organization responsible for coordinating the episode Period indicating the start and end of the episode, where applicable
These elements support traceability, reporting, and longitudinal analysis of care delivery.
This profile is designed to:
Conform to HL7 FHIR R4 EpisodeOfCare semantics Support interoperability within the Eswatini National HIE Enable coordination of care across facilities, programs, and levels of service Support national monitoring, evaluation, and reporting of service delivery
By standardizing episode-level data, the profile enables meaningful aggregation and analysis of care pathways at local and national levels.
Systems claiming conformance to this profile SHALL:
Populate all required and Must Support elements defined by the profile Maintain accurate episode status and relevant dates over the lifecycle of care Ensure episodes reflect real-world care coordination workflows
Optional elements from the base EpisodeOfCare resource may be used where relevant, provided they do not conflict with the constraints defined in this profile.
The Eswatini Episode of Care Profile supports extensibility using standard FHIR mechanisms. Additional program-specific, administrative, or workflow-related information may be introduced using FHIR extensions, subject to national governance and approval.
The Eswatini Episode of Care Profile provides a standardized and interoperable representation of coordinated care over time, supporting continuity of care, care management, and health system oversight. Adoption of this profile strengthens longitudinal patient tracking, improves care coordination, and enables integrated service delivery across the Kingdom of Eswatini.