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 Location Profile

Official URL: https://eswatinihie.com/fhir/StructureDefinition/SzLocation Version: 1.0.0
Active as of 2026-08-21 Computable Name: SzLocation

The Eswatini Location Profile defines the constraints and usage of the HL7 FHIR Location resource for representing physical and logical locations where healthcare services are delivered within the Eswatini National Digital Health Ecosystem. It provides a standardized and interoperable way to identify, describe, and reference healthcare locations across systems participating in health information exchange. This profile ensures that location information is captured in a consistent, accurate, and nationally aligned manner, supporting care delivery, referrals, reporting, and service coordination.

Scope and Usage

This profile SHALL be used by systems that create, manage, or exchange information about healthcare locations, including:

Electronic Medical Record (EMR) systems Facility and service management systems Referral and care coordination platforms National health information exchange (HIE) services

The profile applies to a wide range of healthcare-related locations, such as:

Health facilities (e.g. hospitals, clinics, health centres) Departments, wards, and service points within facilities Community and outreach service locations Diagnostic and laboratory locations Logical or virtual locations relevant to service delivery

Locations defined using this profile may represent both where care is provided and where healthcare resources are organized.

Conceptual Overview

The Eswatini Location Profile represents a place or setting where healthcare-related activities occur. It provides a referenceable entity that can be linked to clinical, administrative, and logistical resources to indicate service delivery context. A Location:

May represent a physical place or a logical service point Can be hierarchical, supporting parent–child relationships (e.g. facility → ward → room) May be associated with one or more Organizations responsible for managing it Can be referenced by clinical resources to indicate where care was delivered

This enables consistent use of location data across encounters, appointments, and diagnostic workflows.

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
.. Location 0..* Location Details and position information for a physical place
... 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
... name SΣ 1..1 string Location Name
... type SΣ 1..1 CodeableConcept Location Type
Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location.
... managingOrganization Σ 0..1 Reference(Eswatini Organization Profile) Organization responsible for provisioning and upkeep

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Location.status Base required LocationStatus 📍4.0.1 FHIR Std.
Location.type Base extensible ServiceDeliveryLocationRoleType 📦3.0.0 THO v7.3

Constraints

Id Grade Path(s) Description Expression
dom-2 error Location If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Location 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 Location 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 Location If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Location 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 Location

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location 0..* Location Details and position information for a physical place
... id 1..1 id Logical id of this artifact
... name S 1..1 string Location Name
... type S 1..1 CodeableConcept Location Type

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location 0..* Location Details and position information for a physical place
... 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 Unique code or number identifying the location to its users
... status ?!Σ 0..1 code active | suspended | inactive
Binding: LocationStatus (required): Indicates whether the location is still in use.
... operationalStatus Σ 0..1 Coding The operational status of the location (typically only for a bed/room)
Binding: hl7VS-bedStatus (preferred): The operational status if the location (where typically a bed/room).
... name SΣ 1..1 string Location Name
... alias 0..* string A list of alternate names that the location is known as, or was known as, in the past
... description Σ 0..1 string Additional details about the location that could be displayed as further information to identify the location beyond its name
... mode Σ 0..1 code instance | kind
Binding: LocationMode (required): Indicates whether a resource instance represents a specific location or a class of locations.
... type SΣ 1..1 CodeableConcept Location Type
Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location.
... telecom 0..* ContactPoint Contact details of the location
... address 0..1 Address Physical location
... physicalType Σ 0..1 CodeableConcept Physical form of the location
Binding: LocationType (example): Physical form of the location.
... position 0..1 BackboneElement The absolute geographic location
.... 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
.... longitude 1..1 decimal Longitude with WGS84 datum
.... latitude 1..1 decimal Latitude with WGS84 datum
.... altitude 0..1 decimal Altitude with WGS84 datum
... managingOrganization Σ 0..1 Reference(Eswatini Organization Profile) Organization responsible for provisioning and upkeep
... partOf 0..1 Reference(Location) Another Location this one is physically a part of
... hoursOfOperation 0..* BackboneElement What days/times during a week is this location usually open
.... 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
.... daysOfWeek 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required): The days of the week.
.... allDay 0..1 boolean The Location is open all day
.... openingTime 0..1 time Time that the Location opens
.... closingTime 0..1 time Time that the Location closes
... availabilityExceptions 0..1 string Description of availability exceptions
... endpoint 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the location

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Location.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Location.status Base required LocationStatus 📍4.0.1 FHIR Std.
Location.operationalStatus Base preferred hl7VS-bedStatus 📦3.0.0 THO v7.3
Location.mode Base required LocationMode 📍4.0.1 FHIR Std.
Location.type Base extensible ServiceDeliveryLocationRoleType 📦3.0.0 THO v7.3
Location.physicalType Base example Location type 📍4.0.1 FHIR Std.
Location.hoursOfOperation.​daysOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Location If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Location 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 Location 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 Location If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Location 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 Location

Summary

Mandatory: 3 elements
Must-Support: 2 elements

Structures

This structure refers to these other structures:

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location 0..* Location Details and position information for a physical place
... 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
... name SΣ 1..1 string Location Name
... type SΣ 1..1 CodeableConcept Location Type
Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location.
... managingOrganization Σ 0..1 Reference(Eswatini Organization Profile) Organization responsible for provisioning and upkeep

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Location.status Base required LocationStatus 📍4.0.1 FHIR Std.
Location.type Base extensible ServiceDeliveryLocationRoleType 📦3.0.0 THO v7.3

Constraints

Id Grade Path(s) Description Expression
dom-2 error Location If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Location 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 Location 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 Location If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Location 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 Location

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location 0..* Location Details and position information for a physical place
... id 1..1 id Logical id of this artifact
... name S 1..1 string Location Name
... type S 1..1 CodeableConcept Location Type

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location 0..* Location Details and position information for a physical place
... 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 Unique code or number identifying the location to its users
... status ?!Σ 0..1 code active | suspended | inactive
Binding: LocationStatus (required): Indicates whether the location is still in use.
... operationalStatus Σ 0..1 Coding The operational status of the location (typically only for a bed/room)
Binding: hl7VS-bedStatus (preferred): The operational status if the location (where typically a bed/room).
... name SΣ 1..1 string Location Name
... alias 0..* string A list of alternate names that the location is known as, or was known as, in the past
... description Σ 0..1 string Additional details about the location that could be displayed as further information to identify the location beyond its name
... mode Σ 0..1 code instance | kind
Binding: LocationMode (required): Indicates whether a resource instance represents a specific location or a class of locations.
... type SΣ 1..1 CodeableConcept Location Type
Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location.
... telecom 0..* ContactPoint Contact details of the location
... address 0..1 Address Physical location
... physicalType Σ 0..1 CodeableConcept Physical form of the location
Binding: LocationType (example): Physical form of the location.
... position 0..1 BackboneElement The absolute geographic location
.... 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
.... longitude 1..1 decimal Longitude with WGS84 datum
.... latitude 1..1 decimal Latitude with WGS84 datum
.... altitude 0..1 decimal Altitude with WGS84 datum
... managingOrganization Σ 0..1 Reference(Eswatini Organization Profile) Organization responsible for provisioning and upkeep
... partOf 0..1 Reference(Location) Another Location this one is physically a part of
... hoursOfOperation 0..* BackboneElement What days/times during a week is this location usually open
.... 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
.... daysOfWeek 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required): The days of the week.
.... allDay 0..1 boolean The Location is open all day
.... openingTime 0..1 time Time that the Location opens
.... closingTime 0..1 time Time that the Location closes
... availabilityExceptions 0..1 string Description of availability exceptions
... endpoint 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the location

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Location.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Location.status Base required LocationStatus 📍4.0.1 FHIR Std.
Location.operationalStatus Base preferred hl7VS-bedStatus 📦3.0.0 THO v7.3
Location.mode Base required LocationMode 📍4.0.1 FHIR Std.
Location.type Base extensible ServiceDeliveryLocationRoleType 📦3.0.0 THO v7.3
Location.physicalType Base example Location type 📍4.0.1 FHIR Std.
Location.hoursOfOperation.​daysOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Location If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Location 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 Location 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 Location If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Location 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 Location

Summary

Mandatory: 3 elements
Must-Support: 2 elements

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Core Data Requirements

The profile constrains the base Location resource to ensure capture of essential location information, including:

Location name to identify the place of service Location status indicating whether the location is active or inactive Location type, describing the kind of healthcare setting or service point Managing organization, identifying the entity responsible for the location Physical or descriptive details, where applicable, to support identification and use

These elements enable reliable identification and reuse of location data across systems.

Interoperability and National Alignment

This profile is designed to:

Conform to HL7 FHIR R4 Location semantics Support interoperability within the Eswatini National HIE Enable consistent referencing of facilities and service points across systems Support national service mapping, reporting, and health system planning

Standardized location data enables accurate aggregation and analysis of service utilization across the country.

Data Quality and Conformance

Systems claiming conformance to this profile SHALL:

Populate all required and Must Support elements defined by the profile Ensure location identifiers and descriptions are accurate and consistently used Maintain appropriate location status to reflect operational availability

Optional elements from the base Location resource may be used where relevant, provided they do not conflict with the constraints defined in this profile.

Extensibility

The Eswatini Location Profile supports extensibility using standard FHIR mechanisms. Additional location-related attributes—such as geo-coordinates, service availability, or programme-specific classifications—may be introduced using FHIR extensions, subject to national governance and approval.

Summary

The Eswatini Location Profile provides a standardized and interoperable representation of healthcare locations, enabling consistent identification of where services are delivered across the health system. Adoption of this profile improves care coordination, supports accurate reporting, and strengthens interoperability between systems throughout the Kingdom of Eswatini.