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/SzPractitioner | Version: 1.0.0 | |||
| Active as of 2026-08-21 | Computable Name: SzPractitioner | |||
The Eswatini Practitioner Profile defines the constraints and usage of the HL7 FHIR Practitioner resource for representing individual healthcare professionals involved in the delivery of healthcare services within the Eswatini National Digital Health Ecosystem. It provides a standardized and interoperable way to identify and describe healthcare practitioners, supporting consistent referencing across clinical, administrative, and reporting workflows. This profile ensures that practitioner information is captured in a consistent, authoritative, and nationally aligned manner, supporting care delivery, accountability, and interoperability.
This profile SHALL be used by systems that create, manage, or exchange information about healthcare practitioners, including:
Electronic Medical Record (EMR) systems Facility and workforce management systems Laboratory and pharmacy systems Referral and care coordination platforms National health information exchange (HIE) services
The profile applies to practitioners such as:
Medical doctors and clinicians Nurses and midwives Pharmacists and laboratory personnel Allied health professionals Community and outreach health workers
Each Practitioner resource represents a single individual professional involved in healthcare service delivery or related activities.
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..* | Practitioner | A person with a formal responsibility in the provisioning of healthcare or related services | |
![]() ![]() |
Σ | 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 |
![]() ![]() |
SΣ | 1..1 | HumanName | Practitioner's name |
![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | nickname | anonymous | old | maiden Binding: NameUse (required): The use of a human name. |
![]() ![]() ![]() |
Σ | 1..1 | string | Family name (often called 'Surname') |
![]() ![]() ![]() |
Σ | 1..* | string | Practitioner's given name This repeating element order: Given Names appear in the correct order for presenting the name |
![]() ![]() |
Σ | 1..1 | code | Sex at birth: male | female | other | unknown Binding: AdministrativeGender (required): The gender of a person used for administrative purposes. |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Practitioner.name.use | Base | required | NameUse | 📍4.0.1 | FHIR Std. |
| Practitioner.gender | Base | required | AdministrativeGender | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Practitioner | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Practitioner | 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 | Practitioner | 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 | Practitioner | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Practitioner | 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 Practitioner
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Practitioner | A person with a formal responsibility in the provisioning of healthcare or related services | |
![]() ![]() |
1..1 | id | Logical id of this artifact | |
![]() ![]() |
S | 1..1 | HumanName | Practitioner's name |
![]() ![]() ![]() |
1..1 | string | Family name (often called 'Surname') | |
![]() ![]() ![]() |
1..* | string | Practitioner's given name | |
![]() ![]() |
1..1 | code | Sex at birth: male | female | other | unknown | |
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | Practitioner | A person with a formal responsibility in the provisioning of healthcare or related services | |||||
![]() ![]() |
Σ | 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 | An identifier for the person as this agent | ||||
![]() ![]() |
Σ | 0..1 | boolean | Whether this practitioner's record is in active use | ||||
![]() ![]() |
SΣ | 1..1 | HumanName | Practitioner's name | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | nickname | anonymous | old | maiden Binding: NameUse (required): The use of a human name. | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Text representation of the full name | ||||
![]() ![]() ![]() |
Σ | 1..1 | string | Family name (often called 'Surname') | ||||
![]() ![]() ![]() |
Σ | 1..* | string | Practitioner's given name This repeating element order: Given Names appear in the correct order for presenting the name | ||||
![]() ![]() ![]() |
Σ | 0..* | string | Parts that come before the name This repeating element order: Prefixes appear in the correct order for presenting the name | ||||
![]() ![]() ![]() |
Σ | 0..* | string | Parts that come after the name This repeating element order: Suffixes appear in the correct order for presenting the name | ||||
![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when name was/is in use | ||||
![]() ![]() |
Σ | 0..* | ContactPoint | A contact detail for the practitioner (that apply to all roles) | ||||
![]() ![]() |
Σ | 0..* | Address | Address(es) of the practitioner that are not role specific (typically home address) | ||||
![]() ![]() |
Σ | 1..1 | code | Sex at birth: male | female | other | unknown Binding: AdministrativeGender (required): The gender of a person used for administrative purposes. | ||||
![]() ![]() |
Σ | 0..1 | date | The date on which the practitioner was born | ||||
![]() ![]() |
0..* | Attachment | Image of the person | |||||
![]() ![]() |
0..* | BackboneElement | Certification, licenses, or training pertaining to the provision 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 | ||||
![]() ![]() ![]() |
0..* | Identifier | An identifier for this qualification for the practitioner | |||||
![]() ![]() ![]() |
1..1 | CodeableConcept | Coded representation of the qualification Binding: v2 table 0360, Version 2.7 (example): Specific qualification the practitioner has to provide a service. | |||||
![]() ![]() ![]() |
0..1 | Period | Period during which the qualification is valid | |||||
![]() ![]() ![]() |
0..1 | Reference(Organization) | Organization that regulates and issues the qualification | |||||
![]() ![]() |
0..* | CodeableConcept | A language the practitioner can use in patient communication Binding: CommonLanguages (preferred): A human language.
| |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Practitioner.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Practitioner.name.use | Base | required | NameUse | 📍4.0.1 | FHIR Std. |
| Practitioner.gender | Base | required | AdministrativeGender | 📍4.0.1 | FHIR Std. |
| Practitioner.qualification.code | Base | example | v2 table 0360, Version 2.7 | 📦0360 | FHIR Std. |
| Practitioner.communication | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Practitioner | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Practitioner | 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 | Practitioner | 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 | Practitioner | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Practitioner | 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 Practitioner
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Practitioner | A person with a formal responsibility in the provisioning of healthcare or related services | |
![]() ![]() |
Σ | 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 |
![]() ![]() |
SΣ | 1..1 | HumanName | Practitioner's name |
![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | nickname | anonymous | old | maiden Binding: NameUse (required): The use of a human name. |
![]() ![]() ![]() |
Σ | 1..1 | string | Family name (often called 'Surname') |
![]() ![]() ![]() |
Σ | 1..* | string | Practitioner's given name This repeating element order: Given Names appear in the correct order for presenting the name |
![]() ![]() |
Σ | 1..1 | code | Sex at birth: male | female | other | unknown Binding: AdministrativeGender (required): The gender of a person used for administrative purposes. |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Practitioner.name.use | Base | required | NameUse | 📍4.0.1 | FHIR Std. |
| Practitioner.gender | Base | required | AdministrativeGender | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Practitioner | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Practitioner | 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 | Practitioner | 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 | Practitioner | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Practitioner | 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 Practitioner
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Practitioner | A person with a formal responsibility in the provisioning of healthcare or related services | |
![]() ![]() |
1..1 | id | Logical id of this artifact | |
![]() ![]() |
S | 1..1 | HumanName | Practitioner's name |
![]() ![]() ![]() |
1..1 | string | Family name (often called 'Surname') | |
![]() ![]() ![]() |
1..* | string | Practitioner's given name | |
![]() ![]() |
1..1 | code | Sex at birth: male | female | other | unknown | |
Documentation for this format | ||||
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | Practitioner | A person with a formal responsibility in the provisioning of healthcare or related services | |||||
![]() ![]() |
Σ | 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 | An identifier for the person as this agent | ||||
![]() ![]() |
Σ | 0..1 | boolean | Whether this practitioner's record is in active use | ||||
![]() ![]() |
SΣ | 1..1 | HumanName | Practitioner's name | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | nickname | anonymous | old | maiden Binding: NameUse (required): The use of a human name. | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Text representation of the full name | ||||
![]() ![]() ![]() |
Σ | 1..1 | string | Family name (often called 'Surname') | ||||
![]() ![]() ![]() |
Σ | 1..* | string | Practitioner's given name This repeating element order: Given Names appear in the correct order for presenting the name | ||||
![]() ![]() ![]() |
Σ | 0..* | string | Parts that come before the name This repeating element order: Prefixes appear in the correct order for presenting the name | ||||
![]() ![]() ![]() |
Σ | 0..* | string | Parts that come after the name This repeating element order: Suffixes appear in the correct order for presenting the name | ||||
![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when name was/is in use | ||||
![]() ![]() |
Σ | 0..* | ContactPoint | A contact detail for the practitioner (that apply to all roles) | ||||
![]() ![]() |
Σ | 0..* | Address | Address(es) of the practitioner that are not role specific (typically home address) | ||||
![]() ![]() |
Σ | 1..1 | code | Sex at birth: male | female | other | unknown Binding: AdministrativeGender (required): The gender of a person used for administrative purposes. | ||||
![]() ![]() |
Σ | 0..1 | date | The date on which the practitioner was born | ||||
![]() ![]() |
0..* | Attachment | Image of the person | |||||
![]() ![]() |
0..* | BackboneElement | Certification, licenses, or training pertaining to the provision 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 | ||||
![]() ![]() ![]() |
0..* | Identifier | An identifier for this qualification for the practitioner | |||||
![]() ![]() ![]() |
1..1 | CodeableConcept | Coded representation of the qualification Binding: v2 table 0360, Version 2.7 (example): Specific qualification the practitioner has to provide a service. | |||||
![]() ![]() ![]() |
0..1 | Period | Period during which the qualification is valid | |||||
![]() ![]() ![]() |
0..1 | Reference(Organization) | Organization that regulates and issues the qualification | |||||
![]() ![]() |
0..* | CodeableConcept | A language the practitioner can use in patient communication Binding: CommonLanguages (preferred): A human language.
| |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Practitioner.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Practitioner.name.use | Base | required | NameUse | 📍4.0.1 | FHIR Std. |
| Practitioner.gender | Base | required | AdministrativeGender | 📍4.0.1 | FHIR Std. |
| Practitioner.qualification.code | Base | example | v2 table 0360, Version 2.7 | 📦0360 | FHIR Std. |
| Practitioner.communication | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Practitioner | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Practitioner | 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 | Practitioner | 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 | Practitioner | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Practitioner | 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 Practitioner
Other representations of profile: CSV, Excel, Schematron
The profile constrains the base Practitioner resource to ensure capture of essential practitioner information, including:
Practitioner identifier(s) to uniquely identify the individual Practitioner name, for display and identification Practitioner status, where applicable, to indicate whether the individual is active Professional details, where supported, to contextualize the practitioner’s role
These elements enable reliable identification and consistent referencing of practitioners across systems.
This profile is designed to:
Conform to HL7 FHIR R4 Practitioner semantics Support interoperability within the Eswatini National HIE Enable consistent identification of healthcare professionals across systems Support national workforce reporting, planning, and governance activities
Standardized practitioner data strengthens coordination of care and improves visibility of service delivery capacity across the health system.
Systems claiming conformance to this profile SHALL:
Populate all required and Must Support elements defined by the profile Ensure practitioner identifiers and names are accurate and maintained over time Use practitioner references consistently across related resources
Optional elements from the base Practitioner resource may be used where relevant, provided they do not conflict with the constraints defined in this profile.
The Eswatini Practitioner Profile supports extensibility through standard FHIR mechanisms. Additional practitioner‑related attributes—such as professional registration details, specialties, or programme roles—may be introduced using FHIR extensions, subject to national governance and approval.
The Eswatini Practitioner Profile provides a standardized and interoperable representation of healthcare professionals, enabling consistent identification and attribution of healthcare services across the national health system. Adoption of this profile improves accountability, supports workforce management, and enhances interoperability across healthcare systems throughout the Kingdom of Eswatini.