Electronic Prescription Service (EPS) Implementation Guide

NHSDigital-MedicationDispense

Profile url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationDispense

Records a dispensing event against a prescribed medication item.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
prescriptionNonDispensingReasonS C0..1Extension(Coding)
prescriptionStatusC0..*Extension(Coding)
repeatInformationS C0..1Extension(Complex)
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
statusS Σ ?!1..1codeBinding
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
medicationCodeableConceptNHSDigitalMedicationDispenseCodeableConcept
medicationReferenceReference(NHSDigitalMedicationDispenseMedication)
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
function0..1CodeableConcept
id0..1string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ1..1string
id0..1string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
runningTotalC0..1Extension(Quantity)
valueΣ1..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ1..1string
systemΣ C1..1uri
codeΣ1..1code
daysSupplyC0..1SimpleQuantity
whenPreparedΣ0..1dateTime
whenHandedOverS0..1dateTime
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
authorReferenceReference( | | | )
authorStringstring
timeΣ0..1dateTime
textΣ1..1markdown
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
sequenceΣ0..1integer
textΣ0..1string
additionalInstructionΣ0..*CodeableConcept
patientInstructionΣ0..1string
timingΣ0..1Timing
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteΣ0..1CodeableConceptBinding
routeΣ0..1CodeableConceptBinding
methodΣ0..1CodeableConceptBinding
id0..1string
extensionC0..*Extension
typeΣ0..1CodeableConcept
doseQuantitySimpleQuantity
doseRangeRange
rateQuantitySimpleQuantity
rateRangeRange
rateRatioRatio
maxDosePerPeriodΣ C0..1Ratio
maxDosePerAdministrationΣ C0..1SimpleQuantity
maxDosePerLifetimeΣ C0..1SimpleQuantity
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
wasSubstituted1..1boolean
type0..1CodeableConcept
reason0..*CodeableConcept
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
prescriptionNonDispensingReasonS C0..1Extension(Coding)
prescriptionStatusC0..*Extension(Coding)
repeatInformationS C0..1Extension(Complex)
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
statusS Σ ?!1..1codeBinding
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
medicationCodeableConceptNHSDigitalMedicationDispenseCodeableConcept
medicationReferenceReference(NHSDigitalMedicationDispenseMedication)
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
function0..1CodeableConcept
id0..1string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ1..1string
id0..1string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
runningTotalC0..1Extension(Quantity)
valueΣ1..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ1..1string
systemΣ C1..1uri
codeΣ1..1code
daysSupplyC0..1SimpleQuantity
whenPreparedΣ0..1dateTime
whenHandedOverS0..1dateTime
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
authorReferenceReference( | | | )
authorStringstring
timeΣ0..1dateTime
textΣ1..1markdown
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
sequenceΣ0..1integer
textΣ0..1string
additionalInstructionΣ0..*CodeableConcept
patientInstructionΣ0..1string
timingΣ0..1Timing
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteΣ0..1CodeableConceptBinding
routeΣ0..1CodeableConceptBinding
methodΣ0..1CodeableConceptBinding
id0..1string
extensionC0..*Extension
typeΣ0..1CodeableConcept
doseQuantitySimpleQuantity
doseRangeRange
rateQuantitySimpleQuantity
rateRangeRange
rateRatioRatio
maxDosePerPeriodΣ C0..1Ratio
maxDosePerAdministrationΣ C0..1SimpleQuantity
maxDosePerLifetimeΣ C0..1SimpleQuantity
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
wasSubstituted1..1boolean
type0..1CodeableConcept
reason0..*CodeableConcept
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string

Prescription and Item Status Management

EPS manages the dispensing workflow status at both the medication item (i.e. this resource) and at the overall prescription level. Within the International FHIR data model there is no concept of an overall "prescription". EPS uses extensions to this MedicationRequest resource to convey the overall prescription status, all within the dispense-notification FHIR message.

FHIR Element Purpose
status Dispensing status of this medication item using the FHIR valueset
type Dispensing status of this medication item using a legacy EPS valueset
statusReason Coded reason if this medication item has been recorded as 'Not Dispensed' using a legacy EPS valueset
extension:prescriptionStatus Dispensing status for the overall prescription using a legacy EPS valueset
extension:prescriptionNonDispensingReason Coded reason if the overall prescription is recorded as 'Not Dispensed' using a legacy EPS valueset

Shortcuts to other elements within this resource


status

Mandatory status of the dispensed medication item using the international standard FHIR valueset.

FHIR Status Usage
preparation Not to be used for recording dispensing events.
in-progress When partial dispensing has occurred with some medication dispensed but a remaining quantity to follow as a separate dispensing event
cancelled When the item has been cancelled on EPS or has expired.
on-hold When the item is owing but other item(s) on the prescription have been dispensed.
completed When dispensing activities for the item have been completed.
entered-in-error Not to be used for recording dispensing events. See Dispense Notification Withdraw for how to correct human errors.
stopped When the item is marked as not dispensed as instructed by a clinician.
declined When the item is marked as not dispensed as instructed by the patient.
unknown Not to be used for recording dispensing events.

Example

"status": "completed"

type

Required status of the dispensed medication item using the legacy valueset DM-MedicationDispense-Type.

Use this mapping table to cross reference the FHIR status with the legacy EPS item status.

DM-MedicationDispenseType FHIR Status
0001 Item fully dispensed completed
0002 Item not dispensed stopped or declined
0003 Item dispensed - partial in-progress
0004 Item not dispensed - owing on-hold
0005 Item cancelled cancelled
0006 Expired cancelled

Example

"status": "on-hold",
"type": {
    "coding": [
        {
            "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type",
            "code": "0004",
            "display": "Item not dispensed - owing"
        }
    ]
}

statusReason

Required when type is 0002 Item not dispensed to provide a coded DM-MedicationDispense-Status-Reason for the medication item not being dispensed.

Example

"status": "declined",
"type": {
    "coding": [
        {
            "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type",
            "code": "0002",
            "display": "0002 Item not dispensed"
        }
    ]
},
"statusReason": {
    "coding": [
        {
            "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-status-reason",
            "code": "0001",
            "display": "Not required as instructed by the patient"
        }
    ]
}

extension:prescriptionStatus

Required overall business status of the prescription-order using the extension ExtensionEPSTaskBusinessStatus to provide a legacy EPS coded DM-Task-Status-Reason value which represents the dispensing status for ALL medication items on the prescription.

Example

"extension": [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus",
        "valueCoding": {
            "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status",
            "code": "0003",
            "display": "With Dispenser - Active"
        }
    }
]

extension:prescriptionNonDispensingReason

Required when extension:prescriptionStatus is 0007 Not Dispensed using the extension ExtensionPrescriptionNonDispensingReason to provide a legacy EPS coded DM-MedicationDispense-Status-Reason for why the whole prescription is being recorded as not dispensed.

Example

"extension": [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus",
        "valueCoding": {
            "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status",
            "code": "0007",
            "display": "Not Dispensed"
        }
    },
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionNonDispensingReason",
        "valueCoding": {
            "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-status-reason",
            "code": "0002",
            "display": "Clinically unsuitable"
        }
    }
]

Prescription and Item Status Valid Combinations

Cross reference for valid state combinations between the prescription status (extension:prescriptionStatus) and item status (type). The same logic applies if there are 3 or 4 medication items on the prescription. Dispense notifications are only submitted when medication has been dispensed, or consciously not dispensed for the patient.

Prescription Status
extension:prescriptionStatus
Item #1 Status
type
Item #2 Status
type
0001 To Be Dispensed See note below
0002 With Dispenser See note below
0003 With Dispenser - Active 0001 Item fully dispensed 0003 Item dispensed - partial
or
0004 Item not dispensed - owing
0003 With Dispenser - Active 0003 Item dispensed - partial 0005 Item cancelled
or
0004 Item not dispensed - owing
or
0002 Item not dispensed
0004 Expired 0006 Expired 0006 Expired
0005 Cancelled 0005 Item cancelled 0005 Item cancelled
or
0002 Item not dispensed
0006 Dispensed 0001 Item fully dispensed 0001 Item fully dispensed
or
0005 Item cancelled
or
0002 Item not dispensed
or
0006 Expired
0007 Not Dispensed 0002 Item not dispensed 0002 Item not dispensed
or
0006 Expired

Note: The prescription states of 0001 To Be Dispensed and 0002 With Dispenser are not applicable for an EPS Dispense Notification using this resource.


extension:repeatInformation

Required extension ExtensionEPSRepeatInformation for repeat dispensing prescriptions.

The numberOfRepeatsIssued will be the current issue, where the first issue is 1. The numberOfRepeatsAllowed will be the total number of authorised issues.

Example

"extension": [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation",
        "extension": [
            {
                "url" : "numberOfRepeatsAllowed",
                "valueInteger" : 6
            },
            {
                "url" : "numberOfRepeatsIssued",
                "valueInteger" : 2
            }
        ]
    }
]

identifier

Each MedicationDispense MUST be identified by an Universal Unique Identifiers (UUIDs) with a system of https://fhir.nhs.uk/Id/prescription-dispense-item-number. This is a business identifier, not a resource identifier.

Example

UUID example (for illustration purposes only);

4509B70D-D8B8-EA03-1105-64557CB54A29

 "identifier":  [
    {
        "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number",
        "value": "4509B70D-D8B8-EA03-1105-64557CB54A29"
    }
]

medication

Mandatory medicationCodeableConcept using the profiled NHSDigitalMedicationDispenseCodeableConcept data element to represent the dispensed medication. This uses the valueset DM-MedicationDispense-Code containing dm+d products from the VMP, AMP, VMPP and AMPP reference sets.

Where possible, Actual Medical Product Packs (AMPP) should be used as these concepts are those that physically exist on a pharmacy shelf.

dm+d Category dm+d Description UK SNOMED Members Of
AMPP Actual Medical Product Pack 999000551000001106
VMPP Virtual Medical Product Pack 999000571000001104
AMP Actual Medical Product 999000541000001108
VMP Virtual Medical Product 999000561000001109

Example

"medicationCodeableConcept": {
        "coding":  [
        {
            "system": "http://snomed.info/sct",
            "code": "10460811000001109",
            "display": "Amoxil 500mg capsules (Dowelhurst Ltd) 12 capsule"
        }
    ]
}

subject

Mandatory patient NHS Number identifier or reference to an NHSDigital-Patient resource.

Note: It is highly recommended to implement as a patient NHS Number identifier as this is the least complex option and EPS only needs to know the NHS Number.

Example when using a subject.identifier.

"subject": {
    "type": "Patient",
    "identifier": {
        "system": "https://fhir.nhs.uk/Id/nhs-number",
        "value": "2300992742"
    }
}

performer

Mandatory reference to a CONTAINED NHSDigital-PractitionerRole resource.

The PractitionerRole.organization must be a reference to an Organization resource. This resource is not a CONTAINED resource. It is included once within the dispense-notification Bundle as a single prescription can only be dispensed by a single organisation. For pharmacy hub & spoke operations, always reference the spoke pharmacy as this is the organisation clinically responsible for dispensing.

The referenced Organization resource must contain the extension Extension-ODS-OrganisationRelationships to identify the prescription reimbursement agency. For England use T1450 for the NHS BUSINESS SERVICES AUTHORITY. For Wales use RQFZ1 for the NWSSP AUDIT & ASSURANCE SERVICES.

Example

{
    "resourceType": "MedicationDispense",
    "id": "06167339-9337-d030-0366-514a6a46da17",
    "contained": [
        {
            "resourceType": "PractitionerRole",
            "id": "performer",
            "identifier": [
                {
                    "system": "https://fhir.nhs.uk/Id/sds-role-profile-id",
                    "value": "741555508105"
                }
            ],
            "code": [
                {
                    "coding": [
                        {
                            "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode",
                            "code": "S0030:G0100:R0620"
                        }
                    ]
                }
            ],
            "practitioner": {
                "identifier": {
                    "system": "https://fhir.nhs.uk/Id/sds-user-id",
                    "value": "7654321"
                },
                "display": "Mr Peter Potion"
            },
            "organization": {
                "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b"
                ... include the referenced Organization resource in the 'dispense-notification' Bundle
            },
            "telecom": [
                {
                    "system": "phone",
                    "use": "work",
                    "value": "0532567890"
                }
            ]
        }
    ],
    "performer": [
    {
        "actor": {
            "reference" : "#performer"
        }
    }
    ... the other MedicationDispense data items
},
... other resources in the Bundle
{
    "fullUrl": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b",
    "resource": {
        "resourceType": "Organization",
        "extension": [
            {
                "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships",
                "extension": [
                {
                    "url": "reimbursementAuthority",
                    "valueIdentifier": {
                        "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                        "value": "T1450"
                    }
                }
                ]
            }
        ],
        ... the other Organization data items
    }
}

authorizingPrescription

Mandatory reference to the MedicationRequest resource received from EPS.

For the EPS dispense-notification message, the referenced MedicationRequest MUST be a CONTAINED resource within this resource. It is recommended to reuse the MedicationRequest as received when the prescription was downloaded. Alternatively some data elements can be removed as defined by the NHSDigitalMedicationRequestMinimal profile, ensuring that for repeat dispensing prescriptions both extension:medicationRepeatInformation and dispenseRequest.numberOfRepeatsAllowed are included.

For the EPS implementation, there should only ever be a reference to a single MedicationRequest so the cardinality should be treated as 1..1.

Example

{
    "resourceType": "MedicationDispense",
    "contained":  [
        {
            "resourceType": "MedicationRequest",
            "id": "m1",
            ... the rest of the MedicationRequest data items
        }
    ],
    "authorizingPrescription":  [
        {
            "reference": "#m1"
        }
    ],
    ... the rest of the MedicationDispense data items
}

quantity

Mandatory quantity and unit of measure for the medication dispensed. If no actual quantity has been dispensed then use a value of zero.

The Unified Code for Units of Measure (UCUM) is preferred codeSystem for units of measure within the FHIR standard and should be used where the unit of measure is defined. Where a UCUM unit of measure is not defined, use a SNOMED-CT unit of measure instead. All units of measure are descendants of concept 767524001 | Unit of measure (qualifier value) which includes both UCUM and non-UCUM codes.

Example using UCUM.

"quantity": {
    "value": 12.5,
    "unit": "milliliter",
    "system": "http://unitsofmeasure.org",
    "code": "ml"
}

Example using SNOMED-CT.

"quantity": {
    "value": 28,
    "unit": "capsule",
    "system": "http://snomed.info/sct",
    "code": "3316911000001105"
}

daysSupply

Optional amount of medication expressed as a timing amount in days. This is currently not used by EPS processes.

Example

"daysSupply": {
    "value": 7,
    "unit": "Day",
    "system": "http://unitsofmeasure.org",
    "code": "d"
}

whenPrepared

Optional date and time of the dispensing event. This is currently not used by EPS processes.

Example

"whenPrepared": "2024-09-15T16:30:00+00:00"

whenHandedOver

Required date and time that the dispensed product was provided to the patient or their representative. The date should reflect, as close as business processes allow, when the patient was supplied the medication. For example, for home delivery services, this can represent a shipping timestamp.

Example

"whenHandedOver": "2024-09-16T17:15:00+00:00"

dosageInstruction

At present only the dosageInstruction.text element MUST be provided. It is recommended to follow the guidance with the NHS England Dose Syntax Implementation Guidance for implemementation of fully structured dosing instructions.

Example

"dosageInstruction": [
    {
        "text": "1 capsule - 4 times a day - for 7 days",
        "timing": {
            "repeat": {
                "boundsDuration": {
                    "value": 7,
                    "unit": "d"
                },
                "frequency": 4,
                "period": 1,
                "periodUnit": "d"
            }
        },
        "doseAndRate": [
            {
                "doseQuantity": {
                    "value": 1,
                    "unit": "capsule",
                    "system": "http://snomed.info/sct",
                    "code": "3316911000001105"
                }
            }
        ]
    }
]

back to top