NHS Digital FHIR Medicines

This guidance is under active development by NHS Digital and content may be added or updated on a regular basis.

Prescription Download and Dispensing

User Storey: Whaleshame community pharmacy downloads the FHIR Message and dispenses the medicine to Svetlana. The pharmacy stock control system sends a FHIR Message back to EPS using MedicationDispense to inform the prescription has been dispensed.

Each time medication is provided to a patient (or a patient’s representative) a “Dispense Notification” HL7 interaction must be submitted to EPS. The dispense notification interaction contains the information of the dispensed medication items for the prescription.

It should be noted that no communication with the EPS is required during the medication preparation stage of the dispensing process.

During the process of preparing the medication, the dispense notification interaction can be created and populated with medication information. The “Author” entity of this message must be the currently logged on user. The dispense notification should be submitted when the medication is supplied to the patient (or patient representative) as closely as business processes allow. Dispense Notification messages can be submitted after the supply event, and outside the “Dispensing Window”, in which case the “effectiveTime” attribute within the message should record the date/time that the supply event occurred, rather than the date/time the Dispense Notification was submitted.

See also:

Prescription Release

FHIR Exchange API FHIR Operation Definition
FHIR Operation POST /Task/$release release

Is the methods the pharmacy will use to retrieve prescriptions from EPS. Both methods use a common release operation and will return a FHIR Bundle consisting of 0..* prescription-order messages.

Nominated Pharmacy Release Request

Patient Release Request

Build Notes

Dispense Notification

FHIR Exchange API Event Type FHIR (Bundle) Message Definition
FHIR Messaging POST /$process-message dispense-notification dispense-notification

Each time medication is provided to a patient (or a patient’s representative) a “Dispense Notification” HL7 interaction must be submitted to EPS.

Build Notes

Dispense Notification Update

FHIR Exchange API Event Type FHIR (Bundle) Message Definition
FHIR Messaging POST /$process-message dispense-notification-update dispense-notification-update

This interaction is used to amend a previously sent dispense-notification

Cancel a Dispense Notification

FHIR Exchange API FHIR Resource Profile
FHIR RESTful PUT /Task/(dispense-notification-reference) NHSDigital-Task

The dispense-notification-reference is taken from the Bundle.identifier.value of the dispense-notification which is to be cancelled.

Example

PUT /Task/334a3195-1f6c-497a-8efe-d272ca9c4e38

Payload:

Returning Prescriptions to EPS

FHIR Exchange API FHIR Resource Profile
FHIR RESTful PUT /Task/(prescription-order-reference) NHSDigital-Task

A prescription may be downloaded, but never dispensed by the pharmacy, for example if the pharmacy cannot supply the prescribed medication items. To allow the patient to visit a different dispenser the prescription must be returned to the EPS using the PUT /Task interaction . Once returned, the prescription should be removed from the local System.

Note. The PUT /Task interaction can be submitted when no user’s smartcard is present provided this is a system-triggered function rather than a user initiated one. An example would be when the system returns an invalid prescription without human intervention.

If no response is received after 60 seconds, then assume failure. The System should automatically resubmit the ‘Dispense Proposal Return’ interaction. If it fails the second time then the user must be informed of a possible system failure and that the issue needs to be reported to the local service help desk.

Example

For acute and continuous prescriptions this will be the Short Form Prescription ID (MedicationRequest.groupIdentifier)

PUT /Task/83C40E-A23856-00123C

Payload:

For continuous-repeat-dispensing prescriptions this is taken from the Bundle.identifier.value of the prescription-order which is to be returned.

PUT /Task/0dd4773e-938f-4cc4-87bf-047e07657b27

Build Notes

back to top