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

Resource Profile: Eswatini Episode of Care

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.

Scope and Usage

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

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. EpisodeOfCare 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
... id Σ 1..1 id Logical id of this artifact
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... type SΣ 1..1 CodeableConcept Episode of care classification
Binding: Eswatini Episode of Care Valueset (preferred)
... patient Σ 1..1 Reference(Patient) The patient who is the focus of this episode of care
... managingOrganization Σ 1..1 Reference(Organization) Organization that assumes care
... period Σ 1..1 Period Start and end datest of the Episode of care
.... start ΣC 1..1 dateTime Starting time with inclusive boundary

doco Documentation for this format

Terminology Bindings

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

Constraints

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. EpisodeOfCare 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
... id 1..1 id Logical id of this artifact
... type S 1..1 CodeableConcept Episode of care classification
Binding: Eswatini Episode of Care Valueset (preferred)
... managingOrganization 1..1 Reference(Organization) Organization that assumes care
.... start 1..1 dateTime Starting time with inclusive boundary

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
EpisodeOfCare.type Base preferred Eswatini Episode of Care Valueset 📦1.0.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. EpisodeOfCare 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
... id Σ 1..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 Business Identifier(s) relevant for this EpisodeOfCare
... status ?!Σ 1..1 code planned | waitlist | active | onhold | finished | cancelled | entered-in-error
Binding: EpisodeOfCareStatus (required): The status of the episode of care.
... statusHistory 0..* BackboneElement Past list of status codes (the current status may be included to cover the start date of the status)
.... 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
.... status 1..1 code planned | waitlist | active | onhold | finished | cancelled | entered-in-error
Binding: EpisodeOfCareStatus (required): The status of the episode of care.
.... period 1..1 Period Duration the EpisodeOfCare was in the specified status
... type SΣ 1..1 CodeableConcept Episode of care classification
Binding: Eswatini Episode of Care Valueset (preferred)
... diagnosis Σ 0..* BackboneElement The list of diagnosis relevant to this episode of care
.... 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
.... condition Σ 1..1 Reference(Condition) Conditions/problems/diagnoses this episode of care is for
.... role Σ 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.
.... rank Σ 0..1 positiveInt Ranking of the diagnosis (for each role type)
... patient Σ 1..1 Reference(Patient) The patient who is the focus of this episode of care
... managingOrganization Σ 1..1 Reference(Organization) Organization that assumes care
... period Σ 1..1 Period Start and end datest of the Episode of care
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... start ΣC 1..1 dateTime Starting time with inclusive boundary
.... end ΣC 0..1 dateTime End time with inclusive boundary, if not ongoing
... referralRequest 0..* Reference(ServiceRequest) Originating Referral Request(s)
... careManager 0..1 Reference(Practitioner | PractitionerRole) Care manager/care coordinator for the patient
... team 0..* Reference(CareTeam) Other practitioners facilitating this episode of care
... account 0..* Reference(Account) The set of accounts that may be used for billing for this EpisodeOfCare

doco Documentation for this format

Terminology Bindings

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.

Constraints

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

Summary

Mandatory: 5 elements
Must-Support: 1 element

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. EpisodeOfCare 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
... id Σ 1..1 id Logical id of this artifact
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... type SΣ 1..1 CodeableConcept Episode of care classification
Binding: Eswatini Episode of Care Valueset (preferred)
... patient Σ 1..1 Reference(Patient) The patient who is the focus of this episode of care
... managingOrganization Σ 1..1 Reference(Organization) Organization that assumes care
... period Σ 1..1 Period Start and end datest of the Episode of care
.... start ΣC 1..1 dateTime Starting time with inclusive boundary

doco Documentation for this format

Terminology Bindings

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

Constraints

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. EpisodeOfCare 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
... id 1..1 id Logical id of this artifact
... type S 1..1 CodeableConcept Episode of care classification
Binding: Eswatini Episode of Care Valueset (preferred)
... managingOrganization 1..1 Reference(Organization) Organization that assumes care
.... start 1..1 dateTime Starting time with inclusive boundary

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
EpisodeOfCare.type Base preferred Eswatini Episode of Care Valueset 📦1.0.0 This IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. EpisodeOfCare 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
... id Σ 1..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 Business Identifier(s) relevant for this EpisodeOfCare
... status ?!Σ 1..1 code planned | waitlist | active | onhold | finished | cancelled | entered-in-error
Binding: EpisodeOfCareStatus (required): The status of the episode of care.
... statusHistory 0..* BackboneElement Past list of status codes (the current status may be included to cover the start date of the status)
.... 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
.... status 1..1 code planned | waitlist | active | onhold | finished | cancelled | entered-in-error
Binding: EpisodeOfCareStatus (required): The status of the episode of care.
.... period 1..1 Period Duration the EpisodeOfCare was in the specified status
... type SΣ 1..1 CodeableConcept Episode of care classification
Binding: Eswatini Episode of Care Valueset (preferred)
... diagnosis Σ 0..* BackboneElement The list of diagnosis relevant to this episode of care
.... 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
.... condition Σ 1..1 Reference(Condition) Conditions/problems/diagnoses this episode of care is for
.... role Σ 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.
.... rank Σ 0..1 positiveInt Ranking of the diagnosis (for each role type)
... patient Σ 1..1 Reference(Patient) The patient who is the focus of this episode of care
... managingOrganization Σ 1..1 Reference(Organization) Organization that assumes care
... period Σ 1..1 Period Start and end datest of the Episode of care
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... start ΣC 1..1 dateTime Starting time with inclusive boundary
.... end ΣC 0..1 dateTime End time with inclusive boundary, if not ongoing
... referralRequest 0..* Reference(ServiceRequest) Originating Referral Request(s)
... careManager 0..1 Reference(Practitioner | PractitionerRole) Care manager/care coordinator for the patient
... team 0..* Reference(CareTeam) Other practitioners facilitating this episode of care
... account 0..* Reference(Account) The set of accounts that may be used for billing for this EpisodeOfCare

doco Documentation for this format

Terminology Bindings

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.

Constraints

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

Summary

Mandatory: 5 elements
Must-Support: 1 element

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Core Data Requirements

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.

Interoperability and National Alignment

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.

Data Quality and Conformance

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.

Extensibility

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.

Summary

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.