Kenya ePrescription FHIR Implementation Guide
0.1.0 - ci-build Kenya flag

Kenya ePrescription FHIR Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: Kenya eRx MedicationDispense

Official URL: https://prescription.intellisoftkenya.com/StructureDefinition/ke-medication-dispense Version: 0.1.0
Draft as of 2026-04-13 Computable Name: KEMedicationDispense

Copyright/Legal: Copyright 2025+ IntelliSOFT Kenya. This content is licensed under Creative Commons Attribution 4.0 International (CC-BY-4.0). Terminology content from the Kenya Pharmacy and Poisons Board (PPB) via Open Concept Lab (OCL) is subject to separate terms.

Profile on MedicationDispense for the Kenya Electronic Prescription (eRx) Implementation Guide.

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
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
Constraints: mdd-1
... id SΣ 1..1 id Logical id of this artifact
... meta SΣ 1..1 Meta Metadata about the resource
.... profile SΣ 1..* canonical(StructureDefinition) Profiles this resource claims to conform to.
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... identifier S 0..* Identifier Unique dispense identifier (pharmacy system reference)
... status ?!SΣ 1..1 code Status of dispensing (preparation, in-progress, completed, cancelled)
Binding: MedicationDispense Status Codes (required)
... statusReason[x] S 0..1 CodeableConcept Reason for dispense status (e.g. out of stock)
Binding: MedicationDispense Status Reason ValueSet (required)
... category S 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.
... medication[x] SΣ 1..1 CodeableConcept Medication dispensed — Kenya MOH PPB Generic Products
Binding: Generic Products ValueSet (required)
.... coding SΣ 1..* Coding Code defined by a terminology system
..... system SΣ 1..1 uri Identity of the terminology system
..... code SΣ 1..1 code Symbol in syntax defined by the system
..... display SΣ 1..1 string Representation defined by the system
.... text SΣ 0..1 string Plain text representation of the concept
... subject SΣ 1..1 Reference(Patient) Patient receiving the medication
... context S 0..1 Reference(Encounter) Encounter / Episode associated with event
... performer S 1..* BackboneElement Who performed event
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... actor S 1..1 Reference(Organization | PractitionerRole) Dispensing pharmacy or authorised dispenser
... location S 1..1 Reference(Location) Where the dispense occurred
... authorizingPrescription S 1..* Reference(MedicationRequest) Prescription(s) being fulfilled
... type S 1..1 CodeableConcept Type of dispensing event (First Fill, Trial, Emergency, etc.)
Binding: ActPharmacySupplyType (required)
... quantity S 1..1 SimpleQuantity(4.0.1) Quantity dispensed
... daysSupply S 0..1 SimpleQuantity(4.0.1) Number of days the dispensed supply will last
... whenPrepared SΣ 0..1 dateTime When product was packaged and reviewed
... whenHandedOver S 0..1 dateTime When product was given out
... destination S 0..1 Reference(Location) Where the medication was sent
... receiver 0..* Reference(Patient) Who collected the medication
... dosageInstruction S 0..* Dosage How the medication is to be used by the patient or administered by the caregiver
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... sequence SΣ 0..1 integer The order of the dosage instructions
.... text SΣ 0..1 string Free text dosage instructions e.g. SIG
.... additionalInstruction Σ 0..* CodeableConcept Supplement instructions or warnings to the patient
Binding: Additional Instruction Codes ValueSet (required)
.... patientInstruction SΣ 0..1 string Patient or consumer oriented instructions
.... timing SΣ 0..1 Timing When medication should be administered
.... asNeeded[x] SΣ 0..1 Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.
..... asNeededBoolean boolean
..... asNeededCodeableConcept CodeableConcept
.... site SΣ 0..1 CodeableConcept Body site to administer to
Binding: Approach Site Codes ValueSet (required)
.... route SΣ 0..1 CodeableConcept How drug should enter body
Binding: Route of Administration ValueSet (required)
.... doseAndRate SΣ 0..* Element Amount of medication administered
... substitution S 0..1 BackboneElement Whether a substitution was performed on the dispense
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... wasSubstituted S 1..1 boolean Whether substitution occurred
.... type S 0..1 CodeableConcept Type of substitution
Binding: SubstanceAdminSubstitution (required)
.... reason S 0..* CodeableConcept Reason for substitution
Binding: SubstanceAdminSubstitutionReason (required)
... detectedIssue S 0..* Reference(DetectedIssue) Clinical issue with action
... eventHistory S 0..* Reference(Provenance) A list of relevant lifecycle events

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
MedicationDispense.status Base required Medication dispense status codes 📦4.0.1 FHIR Std.
MedicationDispense.statusReason[x] Base required MedicationDispense Status Reason ValueSet 📦0.1.0 This IG
MedicationDispense.category Base preferred Medication dispense category codes 📍4.0.1 FHIR Std.
MedicationDispense.medication[x] Base required Generic Products ValueSet 📦0.1.0 This IG
MedicationDispense.type Base required ActPharmacySupplyType 📦3.0.0 THO v7.1
MedicationDispense.dosageInstruction.​additionalInstruction Base required Additional Instruction Codes ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​asNeeded[x] Base example SNOMED CT Medication As Needed Reason Codes 📍4.0.1 FHIR Std.
MedicationDispense.dosageInstruction.​site Base required Approach Site Codes ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​route Base required Route of Administration ValueSet 📦0.1.0 This IG
MedicationDispense.substitution.​type Base required http://hl7.org/fhir/ValueSet/v3-SubstanceAdminSubstitution Not State Unknown
MedicationDispense.substitution.​reason Base required SubstanceAdminSubstitutionReason 📦3.0.0 THO v7.1

Constraints

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense 0..* MedicationDispense Dispensing a medication to a named patient
... id S 1..1 id Logical id of this artifact
... meta S 1..1 Meta Metadata about the resource
.... profile S 1..* canonical(StructureDefinition) Profiles this resource claims to conform to.
... identifier S 0..* Identifier Unique dispense identifier (pharmacy system reference)
... statusReason[x] S 0..1 CodeableConcept Reason for dispense status (e.g. out of stock)
Binding: MedicationDispense Status Reason ValueSet (required)
... category S 0..1 CodeableConcept Type of medication dispense
... medication[x] S 1..1 CodeableConcept Medication dispensed — Kenya MOH PPB Generic Products
Binding: Generic Products ValueSet (required)
.... coding S 1..* Coding Code defined by a terminology system
..... system S 1..1 uri Identity of the terminology system
..... code S 1..1 code Symbol in syntax defined by the system
..... display S 1..1 string Representation defined by the system
.... text S 0..1 string Plain text representation of the concept
... subject S 1..1 Reference(Patient) Patient receiving the medication
... context S 0..1 Reference(Encounter) Encounter / Episode associated with event
... performer S 1..* BackboneElement Who performed event
.... actor S 1..1 Reference(Organization | PractitionerRole) Dispensing pharmacy or authorised dispenser
... location S 1..1 Reference(Location) Where the dispense occurred
... authorizingPrescription S 1..* Reference(MedicationRequest) Prescription(s) being fulfilled
... type S 1..1 CodeableConcept Type of dispensing event (First Fill, Trial, Emergency, etc.)
Binding: ActPharmacySupplyType (required)
... quantity S 1..1 SimpleQuantity(4.0.1) Quantity dispensed
... daysSupply S 0..1 SimpleQuantity(4.0.1) Number of days the dispensed supply will last
... whenPrepared S 0..1 dateTime When product was packaged and reviewed
... whenHandedOver S 0..1 dateTime When product was given out
... destination S 0..1 Reference(Location) Where the medication was sent
... receiver 0..* Reference(Patient) Who collected the medication
... dosageInstruction S 0..* Dosage How the medication is to be used by the patient or administered by the caregiver
.... sequence S 0..1 integer The order of the dosage instructions
.... text S 0..1 string Free text dosage instructions e.g. SIG
.... additionalInstruction 0..* CodeableConcept Supplement instructions or warnings to the patient
Binding: Additional Instruction Codes ValueSet (required)
.... patientInstruction S 0..1 string Patient or consumer oriented instructions
.... timing S 0..1 Timing When medication should be administered
.... asNeeded[x] S 0..1 boolean, CodeableConcept Take "as needed" (for x)
.... site S 0..1 CodeableConcept Body site to administer to
Binding: Approach Site Codes ValueSet (required)
.... route S 0..1 CodeableConcept How drug should enter body
Binding: Route of Administration ValueSet (required)
.... doseAndRate S 0..* Element Amount of medication administered
... substitution S 0..1 BackboneElement Whether a substitution was performed on the dispense
.... wasSubstituted S 1..1 boolean Whether substitution occurred
.... type S 0..1 CodeableConcept Type of substitution
Binding: SubstanceAdminSubstitution (required)
.... reason S 0..* CodeableConcept Reason for substitution
Binding: SubstanceAdminSubstitutionReason (required)
... detectedIssue S 0..* Reference(DetectedIssue) Clinical issue with action
... eventHistory S 0..* Reference(Provenance) A list of relevant lifecycle events

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
MedicationDispense.status Base required Medication dispense status codes 📦4.0.1 FHIR Std.
MedicationDispense.statusReason[x] Base required MedicationDispense Status Reason ValueSet 📦0.1.0 This IG
MedicationDispense.medication[x] Base required Generic Products ValueSet 📦0.1.0 This IG
MedicationDispense.type Base required ActPharmacySupplyType 📦3.0.0 THO v7.1
MedicationDispense.dosageInstruction.​additionalInstruction Base required Additional Instruction Codes ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​site Base required Approach Site Codes ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​route Base required Route of Administration ValueSet 📦0.1.0 This IG
MedicationDispense.substitution.​type Base required http://hl7.org/fhir/ValueSet/v3-SubstanceAdminSubstitution Not State Unknown
MedicationDispense.substitution.​reason Base required SubstanceAdminSubstitutionReason 📦3.0.0 THO v7.1
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
Constraints: mdd-1
... id SΣ 1..1 id Logical id of this artifact
... meta SΣ 1..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile SΣ 1..* canonical(StructureDefinition) Profiles this resource claims to conform to.
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... 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 S 0..* Identifier Unique dispense identifier (pharmacy system reference)
... partOf 0..* Reference(Procedure) Event that dispense is part of
... status ?!SΣ 1..1 code Status of dispensing (preparation, in-progress, completed, cancelled)
Binding: MedicationDispense Status Codes (required)
... statusReason[x] S 0..1 CodeableConcept Reason for dispense status (e.g. out of stock)
Binding: MedicationDispense Status Reason ValueSet (required)
... category S 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.
... medication[x] SΣ 1..1 CodeableConcept Medication dispensed — Kenya MOH PPB Generic Products
Binding: Generic Products ValueSet (required)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding SΣ 1..* Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system SΣ 1..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code SΣ 1..1 code Symbol in syntax defined by the system
..... display SΣ 1..1 string Representation defined by the system
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text SΣ 0..1 string Plain text representation of the concept
... subject SΣ 1..1 Reference(Patient) Patient receiving the medication
... context S 0..1 Reference(Encounter) Encounter / Episode associated with event
... supportingInformation 0..* Reference(Resource) Information that supports the dispensing of the medication
... performer S 1..* BackboneElement Who performed event
.... 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
.... function 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.
.... actor S 1..1 Reference(Organization | PractitionerRole) Dispensing pharmacy or authorised dispenser
... location S 1..1 Reference(Location) Where the dispense occurred
... authorizingPrescription S 1..* Reference(MedicationRequest) Prescription(s) being fulfilled
... type S 1..1 CodeableConcept Type of dispensing event (First Fill, Trial, Emergency, etc.)
Binding: ActPharmacySupplyType (required)
... quantity S 1..1 SimpleQuantity(4.0.1) Quantity dispensed
... daysSupply S 0..1 SimpleQuantity(4.0.1) Number of days the dispensed supply will last
... whenPrepared SΣ 0..1 dateTime When product was packaged and reviewed
... whenHandedOver S 0..1 dateTime When product was given out
... destination S 0..1 Reference(Location) Where the medication was sent
... receiver 0..* Reference(Patient) Who collected the medication
... note 0..* Annotation Information about the dispense
... dosageInstruction S 0..* Dosage How the medication is to be used by the patient or administered by the caregiver
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... sequence SΣ 0..1 integer The order of the dosage instructions
.... text SΣ 0..1 string Free text dosage instructions e.g. SIG
.... additionalInstruction Σ 0..* CodeableConcept Supplement instructions or warnings to the patient
Binding: Additional Instruction Codes ValueSet (required)
.... patientInstruction SΣ 0..1 string Patient or consumer oriented instructions
.... timing SΣ 0..1 Timing When medication should be administered
.... asNeeded[x] SΣ 0..1 Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.
..... asNeededBoolean boolean
..... asNeededCodeableConcept CodeableConcept
.... site SΣ 0..1 CodeableConcept Body site to administer to
Binding: Approach Site Codes ValueSet (required)
.... route SΣ 0..1 CodeableConcept How drug should enter body
Binding: Route of Administration ValueSet (required)
.... method Σ 0..1 CodeableConcept Technique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered.
.... doseAndRate SΣ 0..* Element Amount of medication administered
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... type Σ 0..1 CodeableConcept The kind of dose or rate specified
Binding: DoseAndRateType (example): The kind of dose or rate specified.
..... dose[x] Σ 0..1 Amount of medication per dose
...... doseRange Range
...... doseQuantity Quantity(SimpleQuantity)
..... rate[x] Σ 0..1 Amount of medication per unit of time
...... rateRatio Ratio
...... rateRange Range
...... rateQuantity Quantity(SimpleQuantity)
.... maxDosePerPeriod Σ 0..1 Ratio Upper limit on medication per unit of time
.... maxDosePerAdministration Σ 0..1 SimpleQuantity(4.0.1) Upper limit on medication per administration
.... maxDosePerLifetime Σ 0..1 SimpleQuantity(4.0.1) Upper limit on medication per lifetime of the patient
... substitution S 0..1 BackboneElement Whether a substitution was performed on the dispense
.... 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
.... wasSubstituted S 1..1 boolean Whether substitution occurred
.... type S 0..1 CodeableConcept Type of substitution
Binding: SubstanceAdminSubstitution (required)
.... reason S 0..* CodeableConcept Reason for substitution
Binding: SubstanceAdminSubstitutionReason (required)
.... responsibleParty 0..* Reference(Practitioner | PractitionerRole) Who is responsible for the substitution
... detectedIssue S 0..* Reference(DetectedIssue) Clinical issue with action
... eventHistory S 0..* Reference(Provenance) A list of relevant lifecycle events

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
MedicationDispense.meta.​security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
MedicationDispense.meta.​tag Base example Common Tags 📍4.0.1 FHIR Std.
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 required MedicationDispense Status Reason ValueSet 📦0.1.0 This IG
MedicationDispense.category Base preferred Medication dispense category codes 📍4.0.1 FHIR Std.
MedicationDispense.medication[x] Base required Generic Products ValueSet 📦0.1.0 This IG
MedicationDispense.performer.​function Base example Medication dispense performer function codes 📍4.0.1 FHIR Std.
MedicationDispense.type Base required ActPharmacySupplyType 📦3.0.0 THO v7.1
MedicationDispense.dosageInstruction.​additionalInstruction Base required Additional Instruction Codes ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​asNeeded[x] Base example SNOMED CT Medication As Needed Reason Codes 📍4.0.1 FHIR Std.
MedicationDispense.dosageInstruction.​site Base required Approach Site Codes ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​route Base required Route of Administration ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​method Base example SNOMED CT Administration Method Codes 📍4.0.1 FHIR Std.
MedicationDispense.dosageInstruction.​doseAndRate.type Base example DoseAndRateType 📍4.0.1 FHIR Std.
MedicationDispense.substitution.​type Base required http://hl7.org/fhir/ValueSet/v3-SubstanceAdminSubstitution Not State Unknown
MedicationDispense.substitution.​reason Base required SubstanceAdminSubstitutionReason 📦3.0.0 THO v7.1

Constraints

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: 13 elements
Must-Support: 40 elements

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
Constraints: mdd-1
... id SΣ 1..1 id Logical id of this artifact
... meta SΣ 1..1 Meta Metadata about the resource
.... profile SΣ 1..* canonical(StructureDefinition) Profiles this resource claims to conform to.
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... identifier S 0..* Identifier Unique dispense identifier (pharmacy system reference)
... status ?!SΣ 1..1 code Status of dispensing (preparation, in-progress, completed, cancelled)
Binding: MedicationDispense Status Codes (required)
... statusReason[x] S 0..1 CodeableConcept Reason for dispense status (e.g. out of stock)
Binding: MedicationDispense Status Reason ValueSet (required)
... category S 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.
... medication[x] SΣ 1..1 CodeableConcept Medication dispensed — Kenya MOH PPB Generic Products
Binding: Generic Products ValueSet (required)
.... coding SΣ 1..* Coding Code defined by a terminology system
..... system SΣ 1..1 uri Identity of the terminology system
..... code SΣ 1..1 code Symbol in syntax defined by the system
..... display SΣ 1..1 string Representation defined by the system
.... text SΣ 0..1 string Plain text representation of the concept
... subject SΣ 1..1 Reference(Patient) Patient receiving the medication
... context S 0..1 Reference(Encounter) Encounter / Episode associated with event
... performer S 1..* BackboneElement Who performed event
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... actor S 1..1 Reference(Organization | PractitionerRole) Dispensing pharmacy or authorised dispenser
... location S 1..1 Reference(Location) Where the dispense occurred
... authorizingPrescription S 1..* Reference(MedicationRequest) Prescription(s) being fulfilled
... type S 1..1 CodeableConcept Type of dispensing event (First Fill, Trial, Emergency, etc.)
Binding: ActPharmacySupplyType (required)
... quantity S 1..1 SimpleQuantity(4.0.1) Quantity dispensed
... daysSupply S 0..1 SimpleQuantity(4.0.1) Number of days the dispensed supply will last
... whenPrepared SΣ 0..1 dateTime When product was packaged and reviewed
... whenHandedOver S 0..1 dateTime When product was given out
... destination S 0..1 Reference(Location) Where the medication was sent
... receiver 0..* Reference(Patient) Who collected the medication
... dosageInstruction S 0..* Dosage How the medication is to be used by the patient or administered by the caregiver
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... sequence SΣ 0..1 integer The order of the dosage instructions
.... text SΣ 0..1 string Free text dosage instructions e.g. SIG
.... additionalInstruction Σ 0..* CodeableConcept Supplement instructions or warnings to the patient
Binding: Additional Instruction Codes ValueSet (required)
.... patientInstruction SΣ 0..1 string Patient or consumer oriented instructions
.... timing SΣ 0..1 Timing When medication should be administered
.... asNeeded[x] SΣ 0..1 Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.
..... asNeededBoolean boolean
..... asNeededCodeableConcept CodeableConcept
.... site SΣ 0..1 CodeableConcept Body site to administer to
Binding: Approach Site Codes ValueSet (required)
.... route SΣ 0..1 CodeableConcept How drug should enter body
Binding: Route of Administration ValueSet (required)
.... doseAndRate SΣ 0..* Element Amount of medication administered
... substitution S 0..1 BackboneElement Whether a substitution was performed on the dispense
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... wasSubstituted S 1..1 boolean Whether substitution occurred
.... type S 0..1 CodeableConcept Type of substitution
Binding: SubstanceAdminSubstitution (required)
.... reason S 0..* CodeableConcept Reason for substitution
Binding: SubstanceAdminSubstitutionReason (required)
... detectedIssue S 0..* Reference(DetectedIssue) Clinical issue with action
... eventHistory S 0..* Reference(Provenance) A list of relevant lifecycle events

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
MedicationDispense.status Base required Medication dispense status codes 📦4.0.1 FHIR Std.
MedicationDispense.statusReason[x] Base required MedicationDispense Status Reason ValueSet 📦0.1.0 This IG
MedicationDispense.category Base preferred Medication dispense category codes 📍4.0.1 FHIR Std.
MedicationDispense.medication[x] Base required Generic Products ValueSet 📦0.1.0 This IG
MedicationDispense.type Base required ActPharmacySupplyType 📦3.0.0 THO v7.1
MedicationDispense.dosageInstruction.​additionalInstruction Base required Additional Instruction Codes ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​asNeeded[x] Base example SNOMED CT Medication As Needed Reason Codes 📍4.0.1 FHIR Std.
MedicationDispense.dosageInstruction.​site Base required Approach Site Codes ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​route Base required Route of Administration ValueSet 📦0.1.0 This IG
MedicationDispense.substitution.​type Base required http://hl7.org/fhir/ValueSet/v3-SubstanceAdminSubstitution Not State Unknown
MedicationDispense.substitution.​reason Base required SubstanceAdminSubstitutionReason 📦3.0.0 THO v7.1

Constraints

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense 0..* MedicationDispense Dispensing a medication to a named patient
... id S 1..1 id Logical id of this artifact
... meta S 1..1 Meta Metadata about the resource
.... profile S 1..* canonical(StructureDefinition) Profiles this resource claims to conform to.
... identifier S 0..* Identifier Unique dispense identifier (pharmacy system reference)
... statusReason[x] S 0..1 CodeableConcept Reason for dispense status (e.g. out of stock)
Binding: MedicationDispense Status Reason ValueSet (required)
... category S 0..1 CodeableConcept Type of medication dispense
... medication[x] S 1..1 CodeableConcept Medication dispensed — Kenya MOH PPB Generic Products
Binding: Generic Products ValueSet (required)
.... coding S 1..* Coding Code defined by a terminology system
..... system S 1..1 uri Identity of the terminology system
..... code S 1..1 code Symbol in syntax defined by the system
..... display S 1..1 string Representation defined by the system
.... text S 0..1 string Plain text representation of the concept
... subject S 1..1 Reference(Patient) Patient receiving the medication
... context S 0..1 Reference(Encounter) Encounter / Episode associated with event
... performer S 1..* BackboneElement Who performed event
.... actor S 1..1 Reference(Organization | PractitionerRole) Dispensing pharmacy or authorised dispenser
... location S 1..1 Reference(Location) Where the dispense occurred
... authorizingPrescription S 1..* Reference(MedicationRequest) Prescription(s) being fulfilled
... type S 1..1 CodeableConcept Type of dispensing event (First Fill, Trial, Emergency, etc.)
Binding: ActPharmacySupplyType (required)
... quantity S 1..1 SimpleQuantity(4.0.1) Quantity dispensed
... daysSupply S 0..1 SimpleQuantity(4.0.1) Number of days the dispensed supply will last
... whenPrepared S 0..1 dateTime When product was packaged and reviewed
... whenHandedOver S 0..1 dateTime When product was given out
... destination S 0..1 Reference(Location) Where the medication was sent
... receiver 0..* Reference(Patient) Who collected the medication
... dosageInstruction S 0..* Dosage How the medication is to be used by the patient or administered by the caregiver
.... sequence S 0..1 integer The order of the dosage instructions
.... text S 0..1 string Free text dosage instructions e.g. SIG
.... additionalInstruction 0..* CodeableConcept Supplement instructions or warnings to the patient
Binding: Additional Instruction Codes ValueSet (required)
.... patientInstruction S 0..1 string Patient or consumer oriented instructions
.... timing S 0..1 Timing When medication should be administered
.... asNeeded[x] S 0..1 boolean, CodeableConcept Take "as needed" (for x)
.... site S 0..1 CodeableConcept Body site to administer to
Binding: Approach Site Codes ValueSet (required)
.... route S 0..1 CodeableConcept How drug should enter body
Binding: Route of Administration ValueSet (required)
.... doseAndRate S 0..* Element Amount of medication administered
... substitution S 0..1 BackboneElement Whether a substitution was performed on the dispense
.... wasSubstituted S 1..1 boolean Whether substitution occurred
.... type S 0..1 CodeableConcept Type of substitution
Binding: SubstanceAdminSubstitution (required)
.... reason S 0..* CodeableConcept Reason for substitution
Binding: SubstanceAdminSubstitutionReason (required)
... detectedIssue S 0..* Reference(DetectedIssue) Clinical issue with action
... eventHistory S 0..* Reference(Provenance) A list of relevant lifecycle events

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
MedicationDispense.status Base required Medication dispense status codes 📦4.0.1 FHIR Std.
MedicationDispense.statusReason[x] Base required MedicationDispense Status Reason ValueSet 📦0.1.0 This IG
MedicationDispense.medication[x] Base required Generic Products ValueSet 📦0.1.0 This IG
MedicationDispense.type Base required ActPharmacySupplyType 📦3.0.0 THO v7.1
MedicationDispense.dosageInstruction.​additionalInstruction Base required Additional Instruction Codes ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​site Base required Approach Site Codes ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​route Base required Route of Administration ValueSet 📦0.1.0 This IG
MedicationDispense.substitution.​type Base required http://hl7.org/fhir/ValueSet/v3-SubstanceAdminSubstitution Not State Unknown
MedicationDispense.substitution.​reason Base required SubstanceAdminSubstitutionReason 📦3.0.0 THO v7.1

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
Constraints: mdd-1
... id SΣ 1..1 id Logical id of this artifact
... meta SΣ 1..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile SΣ 1..* canonical(StructureDefinition) Profiles this resource claims to conform to.
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... 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 S 0..* Identifier Unique dispense identifier (pharmacy system reference)
... partOf 0..* Reference(Procedure) Event that dispense is part of
... status ?!SΣ 1..1 code Status of dispensing (preparation, in-progress, completed, cancelled)
Binding: MedicationDispense Status Codes (required)
... statusReason[x] S 0..1 CodeableConcept Reason for dispense status (e.g. out of stock)
Binding: MedicationDispense Status Reason ValueSet (required)
... category S 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.
... medication[x] SΣ 1..1 CodeableConcept Medication dispensed — Kenya MOH PPB Generic Products
Binding: Generic Products ValueSet (required)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding SΣ 1..* Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system SΣ 1..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code SΣ 1..1 code Symbol in syntax defined by the system
..... display SΣ 1..1 string Representation defined by the system
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text SΣ 0..1 string Plain text representation of the concept
... subject SΣ 1..1 Reference(Patient) Patient receiving the medication
... context S 0..1 Reference(Encounter) Encounter / Episode associated with event
... supportingInformation 0..* Reference(Resource) Information that supports the dispensing of the medication
... performer S 1..* BackboneElement Who performed event
.... 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
.... function 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.
.... actor S 1..1 Reference(Organization | PractitionerRole) Dispensing pharmacy or authorised dispenser
... location S 1..1 Reference(Location) Where the dispense occurred
... authorizingPrescription S 1..* Reference(MedicationRequest) Prescription(s) being fulfilled
... type S 1..1 CodeableConcept Type of dispensing event (First Fill, Trial, Emergency, etc.)
Binding: ActPharmacySupplyType (required)
... quantity S 1..1 SimpleQuantity(4.0.1) Quantity dispensed
... daysSupply S 0..1 SimpleQuantity(4.0.1) Number of days the dispensed supply will last
... whenPrepared SΣ 0..1 dateTime When product was packaged and reviewed
... whenHandedOver S 0..1 dateTime When product was given out
... destination S 0..1 Reference(Location) Where the medication was sent
... receiver 0..* Reference(Patient) Who collected the medication
... note 0..* Annotation Information about the dispense
... dosageInstruction S 0..* Dosage How the medication is to be used by the patient or administered by the caregiver
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... sequence SΣ 0..1 integer The order of the dosage instructions
.... text SΣ 0..1 string Free text dosage instructions e.g. SIG
.... additionalInstruction Σ 0..* CodeableConcept Supplement instructions or warnings to the patient
Binding: Additional Instruction Codes ValueSet (required)
.... patientInstruction SΣ 0..1 string Patient or consumer oriented instructions
.... timing SΣ 0..1 Timing When medication should be administered
.... asNeeded[x] SΣ 0..1 Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.
..... asNeededBoolean boolean
..... asNeededCodeableConcept CodeableConcept
.... site SΣ 0..1 CodeableConcept Body site to administer to
Binding: Approach Site Codes ValueSet (required)
.... route SΣ 0..1 CodeableConcept How drug should enter body
Binding: Route of Administration ValueSet (required)
.... method Σ 0..1 CodeableConcept Technique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered.
.... doseAndRate SΣ 0..* Element Amount of medication administered
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... type Σ 0..1 CodeableConcept The kind of dose or rate specified
Binding: DoseAndRateType (example): The kind of dose or rate specified.
..... dose[x] Σ 0..1 Amount of medication per dose
...... doseRange Range
...... doseQuantity Quantity(SimpleQuantity)
..... rate[x] Σ 0..1 Amount of medication per unit of time
...... rateRatio Ratio
...... rateRange Range
...... rateQuantity Quantity(SimpleQuantity)
.... maxDosePerPeriod Σ 0..1 Ratio Upper limit on medication per unit of time
.... maxDosePerAdministration Σ 0..1 SimpleQuantity(4.0.1) Upper limit on medication per administration
.... maxDosePerLifetime Σ 0..1 SimpleQuantity(4.0.1) Upper limit on medication per lifetime of the patient
... substitution S 0..1 BackboneElement Whether a substitution was performed on the dispense
.... 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
.... wasSubstituted S 1..1 boolean Whether substitution occurred
.... type S 0..1 CodeableConcept Type of substitution
Binding: SubstanceAdminSubstitution (required)
.... reason S 0..* CodeableConcept Reason for substitution
Binding: SubstanceAdminSubstitutionReason (required)
.... responsibleParty 0..* Reference(Practitioner | PractitionerRole) Who is responsible for the substitution
... detectedIssue S 0..* Reference(DetectedIssue) Clinical issue with action
... eventHistory S 0..* Reference(Provenance) A list of relevant lifecycle events

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
MedicationDispense.meta.​security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
MedicationDispense.meta.​tag Base example Common Tags 📍4.0.1 FHIR Std.
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 required MedicationDispense Status Reason ValueSet 📦0.1.0 This IG
MedicationDispense.category Base preferred Medication dispense category codes 📍4.0.1 FHIR Std.
MedicationDispense.medication[x] Base required Generic Products ValueSet 📦0.1.0 This IG
MedicationDispense.performer.​function Base example Medication dispense performer function codes 📍4.0.1 FHIR Std.
MedicationDispense.type Base required ActPharmacySupplyType 📦3.0.0 THO v7.1
MedicationDispense.dosageInstruction.​additionalInstruction Base required Additional Instruction Codes ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​asNeeded[x] Base example SNOMED CT Medication As Needed Reason Codes 📍4.0.1 FHIR Std.
MedicationDispense.dosageInstruction.​site Base required Approach Site Codes ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​route Base required Route of Administration ValueSet 📦0.1.0 This IG
MedicationDispense.dosageInstruction.​method Base example SNOMED CT Administration Method Codes 📍4.0.1 FHIR Std.
MedicationDispense.dosageInstruction.​doseAndRate.type Base example DoseAndRateType 📍4.0.1 FHIR Std.
MedicationDispense.substitution.​type Base required http://hl7.org/fhir/ValueSet/v3-SubstanceAdminSubstitution Not State Unknown
MedicationDispense.substitution.​reason Base required SubstanceAdminSubstitutionReason 📦3.0.0 THO v7.1

Constraints

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: 13 elements
Must-Support: 40 elements

 

Other representations of profile: CSV, Excel, Schematron