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/SzMedicationDispense | Version: 1.0.0 | |||
| Active as of 2026-08-21 | Computable Name: SzMedicationDispense | |||
The Eswatini Medication Dispense Profile defines the constraints and usage of the HL7 FHIR MedicationDispense resource for representing the dispensing of medications to patients within the Eswatini National Digital Health Ecosystem. It provides a standardized and interoperable way to document when, how, and to whom medications are supplied as part of clinical care. This profile ensures that medication dispensing information is captured and exchanged in a consistent, traceable, and nationally aligned manner, supporting patient safety, continuity of care, and pharmaceutical reporting.
This profile SHALL be used by systems that create, manage, or exchange medication dispensing information, including:
Electronic Medical Record (EMR) systems Pharmacy management and dispensing systems Facility-based medication tracking systems Programme-specific pharmaceutical reporting platforms National health information exchange (HIE) services
The profile applies to medication dispensing events such as:
Outpatient medication dispensing Facility-based or inpatient dispensing Programme-related medication distribution (e.g. chronic care) Partial, repeated, or refill dispensing events
Each Medication Dispense represents a single event in which medication is supplied to a patient.
The Eswatini Medication Dispense Profile represents the actual supply of medication to a patient, distinguishing it from medication ordering or prescribing activities. It captures what medication was dispensed, in what quantity, and under what context. A medication dispense:
Is associated with a Patient Is typically based on a Medication Request (prescription or order) Records the quantity and timing of medication supplied May occur once or multiple times for the same prescription
This model enables accurate tracking of medication supply and supports adherence monitoring and pharmacovigilance.
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: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | MedicationDispense | Dispensing a medication to a named patient Constraints: mdd-1 |
![]() ![]() |
Σ | 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 | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event. |
![]() ![]() |
Σ | 1..1 | CodeableConcept | What medication was supplied Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed. |
![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Supplied Medication Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed. |
![]() ![]() |
0..* | BackboneElement | Dispensing Practitioner | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
1..1 | Reference(Eswatini Practitioner Profile) | Individual who was performing | |
![]() ![]() |
1..1 | Reference(Eswatini Location Profile) | Where the dispense occurred | |
![]() ![]() |
S | 1..1 | SimpleQuantity(4.0.1) | Amount dispensed |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.medication[x]:medicationCodeableConcept | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationDispense | 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 | MedicationDispense | 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 | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationDispense | 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()
|
| mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared |
whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared
|
This structure is derived from MedicationDispense
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | MedicationDispense | Dispensing a medication to a named patient | |
![]() ![]() |
1..1 | id | Logical id of this artifact | |
![]() ![]() |
1..1 | CodeableConcept | What medication was supplied Slice: Unordered, Open by type:$this | |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Supplied Medication |
![]() ![]() |
0..* | BackboneElement | Dispensing Practitioner | |
![]() ![]() ![]() |
1..1 | Reference(Eswatini Practitioner Profile) | Individual who was performing | |
![]() ![]() |
1..1 | Reference(Eswatini Location Profile) | Where the dispense occurred | |
![]() ![]() |
S | 1..1 | SimpleQuantity(4.0.1) | Amount dispensed |
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | MedicationDispense | Dispensing a medication to a named patient Constraints: mdd-1 | ||||
![]() ![]() |
Σ | 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 | External identifier | |||||
![]() ![]() |
0..* | Reference(Procedure) | Event that dispense is part of | |||||
![]() ![]() |
?!Σ | 1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event. | ||||
![]() ![]() |
0..1 | Why a dispense was not performed Binding: MedicationDispense Status Reason Codes (example): A code describing why a dispense was not performed. | ||||||
![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() |
Reference(DetectedIssue) | |||||||
![]() ![]() |
0..1 | CodeableConcept | Type of medication dispense Binding: MedicationDispense Category Codes (preferred): A code describing where the dispensed medication is expected to be consumed or administered. | |||||
![]() ![]() |
Σ | 1..1 | CodeableConcept | What medication was supplied Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed. | ||||
![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Supplied Medication Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed. | ||||
![]() ![]() |
Σ | 0..1 | Reference(Patient | Group) | Who the dispense is for | ||||
![]() ![]() |
0..1 | Reference(Encounter | EpisodeOfCare) | Encounter / Episode associated with event | |||||
![]() ![]() |
0..* | Reference(Resource) | Information that supports the dispensing of the medication | |||||
![]() ![]() |
0..* | BackboneElement | Dispensing Practitioner | |||||
![]() ![]() ![]() |
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..1 | CodeableConcept | Who performed the dispense and what they did Binding: MedicationDispense Performer Function Codes (example): A code describing the role an individual played in dispensing a medication. | |||||
![]() ![]() ![]() |
1..1 | Reference(Eswatini Practitioner Profile) | Individual who was performing | |||||
![]() ![]() |
1..1 | Reference(Eswatini Location Profile) | Where the dispense occurred | |||||
![]() ![]() |
0..* | Reference(MedicationRequest) | Medication order that authorizes the dispense | |||||
![]() ![]() |
0..1 | CodeableConcept | Trial fill, partial fill, emergency fill, etc. Binding: ActPharmacySupplyType (example): Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc. | |||||
![]() ![]() |
S | 1..1 | SimpleQuantity(4.0.1) | Amount dispensed | ||||
![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | Amount of medication expressed as a timing amount | |||||
![]() ![]() |
Σ | 0..1 | dateTime | When product was packaged and reviewed | ||||
![]() ![]() |
0..1 | dateTime | When product was given out | |||||
![]() ![]() |
0..1 | Reference(Location) | Where the medication was sent | |||||
![]() ![]() |
0..* | Reference(Patient | Practitioner) | Who collected the medication | |||||
![]() ![]() |
0..* | Annotation | Information about the dispense | |||||
![]() ![]() |
0..* | Dosage | How the medication is to be used by the patient or administered by the caregiver | |||||
![]() ![]() |
0..1 | BackboneElement | Whether a substitution was performed on the dispense | |||||
![]() ![]() ![]() |
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 | boolean | Whether a substitution was or was not performed on the dispense | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Code signifying whether a different drug was dispensed from what was prescribed Binding: ActSubstanceAdminSubstitutionCode (example): A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription. | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | Why was substitution made Binding: SubstanceAdminSubstitutionReason (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. | |||||
![]() ![]() ![]() |
0..* | Reference(Practitioner | PractitionerRole) | Who is responsible for the substitution | |||||
![]() ![]() |
0..* | Reference(DetectedIssue) | Clinical issue with action | |||||
![]() ![]() |
0..* | Reference(Provenance) | A list of relevant lifecycle events | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationDispense.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.statusReason[x] | Base | example | Medication dispense status reason codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.category | Base | preferred | Medication dispense category codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.medication[x]:medicationCodeableConcept | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.performer.function | Base | example | Medication dispense performer function codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.type | Base | example | ActPharmacySupplyType | 📦3.0.0 | THO v7.3 |
| MedicationDispense.substitution.type | Base | example | ActSubstanceAdminSubstitutionCode | 📦3.0.0 | THO v7.3 |
| MedicationDispense.substitution.reason | Base | example | SubstanceAdminSubstitutionReason | 📦3.0.0 | THO v7.3 |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationDispense | 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 | MedicationDispense | 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 | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationDispense | 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()
|
| mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared |
whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared
|
This structure is derived from MedicationDispense
Summary
Mandatory: 4 elements
Must-Support: 2 elements
Structures
This structure refers to these other structures:
Slices
This structure defines the following Slices:
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | MedicationDispense | Dispensing a medication to a named patient Constraints: mdd-1 |
![]() ![]() |
Σ | 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 | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event. |
![]() ![]() |
Σ | 1..1 | CodeableConcept | What medication was supplied Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed. |
![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Supplied Medication Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed. |
![]() ![]() |
0..* | BackboneElement | Dispensing Practitioner | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
1..1 | Reference(Eswatini Practitioner Profile) | Individual who was performing | |
![]() ![]() |
1..1 | Reference(Eswatini Location Profile) | Where the dispense occurred | |
![]() ![]() |
S | 1..1 | SimpleQuantity(4.0.1) | Amount dispensed |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.medication[x]:medicationCodeableConcept | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationDispense | 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 | MedicationDispense | 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 | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationDispense | 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()
|
| mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared |
whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared
|
Differential View
This structure is derived from MedicationDispense
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | MedicationDispense | Dispensing a medication to a named patient | |
![]() ![]() |
1..1 | id | Logical id of this artifact | |
![]() ![]() |
1..1 | CodeableConcept | What medication was supplied Slice: Unordered, Open by type:$this | |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Supplied Medication |
![]() ![]() |
0..* | BackboneElement | Dispensing Practitioner | |
![]() ![]() ![]() |
1..1 | Reference(Eswatini Practitioner Profile) | Individual who was performing | |
![]() ![]() |
1..1 | Reference(Eswatini Location Profile) | Where the dispense occurred | |
![]() ![]() |
S | 1..1 | SimpleQuantity(4.0.1) | Amount dispensed |
Documentation for this format | ||||
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | MedicationDispense | Dispensing a medication to a named patient Constraints: mdd-1 | ||||
![]() ![]() |
Σ | 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 | External identifier | |||||
![]() ![]() |
0..* | Reference(Procedure) | Event that dispense is part of | |||||
![]() ![]() |
?!Σ | 1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event. | ||||
![]() ![]() |
0..1 | Why a dispense was not performed Binding: MedicationDispense Status Reason Codes (example): A code describing why a dispense was not performed. | ||||||
![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() |
Reference(DetectedIssue) | |||||||
![]() ![]() |
0..1 | CodeableConcept | Type of medication dispense Binding: MedicationDispense Category Codes (preferred): A code describing where the dispensed medication is expected to be consumed or administered. | |||||
![]() ![]() |
Σ | 1..1 | CodeableConcept | What medication was supplied Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed. | ||||
![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Supplied Medication Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed. | ||||
![]() ![]() |
Σ | 0..1 | Reference(Patient | Group) | Who the dispense is for | ||||
![]() ![]() |
0..1 | Reference(Encounter | EpisodeOfCare) | Encounter / Episode associated with event | |||||
![]() ![]() |
0..* | Reference(Resource) | Information that supports the dispensing of the medication | |||||
![]() ![]() |
0..* | BackboneElement | Dispensing Practitioner | |||||
![]() ![]() ![]() |
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..1 | CodeableConcept | Who performed the dispense and what they did Binding: MedicationDispense Performer Function Codes (example): A code describing the role an individual played in dispensing a medication. | |||||
![]() ![]() ![]() |
1..1 | Reference(Eswatini Practitioner Profile) | Individual who was performing | |||||
![]() ![]() |
1..1 | Reference(Eswatini Location Profile) | Where the dispense occurred | |||||
![]() ![]() |
0..* | Reference(MedicationRequest) | Medication order that authorizes the dispense | |||||
![]() ![]() |
0..1 | CodeableConcept | Trial fill, partial fill, emergency fill, etc. Binding: ActPharmacySupplyType (example): Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc. | |||||
![]() ![]() |
S | 1..1 | SimpleQuantity(4.0.1) | Amount dispensed | ||||
![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | Amount of medication expressed as a timing amount | |||||
![]() ![]() |
Σ | 0..1 | dateTime | When product was packaged and reviewed | ||||
![]() ![]() |
0..1 | dateTime | When product was given out | |||||
![]() ![]() |
0..1 | Reference(Location) | Where the medication was sent | |||||
![]() ![]() |
0..* | Reference(Patient | Practitioner) | Who collected the medication | |||||
![]() ![]() |
0..* | Annotation | Information about the dispense | |||||
![]() ![]() |
0..* | Dosage | How the medication is to be used by the patient or administered by the caregiver | |||||
![]() ![]() |
0..1 | BackboneElement | Whether a substitution was performed on the dispense | |||||
![]() ![]() ![]() |
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 | boolean | Whether a substitution was or was not performed on the dispense | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Code signifying whether a different drug was dispensed from what was prescribed Binding: ActSubstanceAdminSubstitutionCode (example): A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription. | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | Why was substitution made Binding: SubstanceAdminSubstitutionReason (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. | |||||
![]() ![]() ![]() |
0..* | Reference(Practitioner | PractitionerRole) | Who is responsible for the substitution | |||||
![]() ![]() |
0..* | Reference(DetectedIssue) | Clinical issue with action | |||||
![]() ![]() |
0..* | Reference(Provenance) | A list of relevant lifecycle events | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationDispense.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.statusReason[x] | Base | example | Medication dispense status reason codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.category | Base | preferred | Medication dispense category codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.medication[x]:medicationCodeableConcept | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.performer.function | Base | example | Medication dispense performer function codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.type | Base | example | ActPharmacySupplyType | 📦3.0.0 | THO v7.3 |
| MedicationDispense.substitution.type | Base | example | ActSubstanceAdminSubstitutionCode | 📦3.0.0 | THO v7.3 |
| MedicationDispense.substitution.reason | Base | example | SubstanceAdminSubstitutionReason | 📦3.0.0 | THO v7.3 |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationDispense | 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 | MedicationDispense | 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 | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationDispense | 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()
|
| mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared |
whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared
|
This structure is derived from MedicationDispense
Summary
Mandatory: 4 elements
Must-Support: 2 elements
Structures
This structure refers to these other structures:
Slices
This structure defines the following Slices:
Other representations of profile: CSV, Excel, Schematron
The profile constrains the base MedicationDispense resource to ensure capture of essential medication dispensing information, including:
Dispense status, indicating the lifecycle state of the dispense event Medication, identifying the medication dispensed Subject (Patient) who received the medication Quantity dispensed, reflecting the amount supplied When the medication was dispensed Dispenser, identifying the individual or organization responsible
These elements ensure dispensing records are complete, auditable, and suitable for clinical and operational use.
This profile is designed to:
Conform to HL7 FHIR R4 MedicationDispense semantics Support interoperability within the Eswatini National HIE Enable exchange of dispensing data between pharmacies and clinical systems Support national pharmaceutical monitoring, reporting, and supply management
Standardized medication dispense data enables better coordination of care and improves visibility into medication use across the health system.
Systems claiming conformance to this profile SHALL:
Populate all required and Must Support elements defined by the profile Ensure medication, quantity, and dispensing dates are accurate Maintain correct dispense status values reflecting real dispensing workflows
Optional elements from the base MedicationDispense resource may be used where relevant, provided they do not conflict with the constraints defined in this profile.
The Eswatini Medication Dispense Profile supports extensibility through standard FHIR mechanisms. Additional medication‑related attributes—such as programme indicators, adherence information, or logistics-related details—may be added using FHIR extensions, subject to national governance and approval.
The Eswatini Medication Dispense Profile provides a standardized and interoperable representation of medication dispensing events, supporting safe medication use, continuity of care, and reliable pharmaceutical reporting. Adoption of this profile strengthens medication management practices and enhances interoperability across pharmacies and healthcare providers throughout the Kingdom of Eswatini.