Electronic Prescription Service (EPS) Implementation Guide

NHSDigital-MedicationRequest

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

An order or request for both supply of the medication and the instructions for administration of the medication to a patient. EPS constraints and extensions derived from the UKCore FHIR MedicationRequest.

EPS supports three types of prescription as defined by the courseOfTherapyType data element.

courseOfTherapyType Usage
acute For one-off / single issue / acute prescriptions.
continuous For repeat prescribing prescriptions. The prescriber has authorised medication that can be repeated. The prescribing organisation manages the creation of each repeat prescription and submits this to the EPS, based on patient need.
continuous-repeat-dispensing For repeat dispensing prescriptions. The prescriber pre-authorises multiple issues of medication on a "repeatable" prescription submitted to the EPS. Issues can be dispensed over a period of maximum 12 months. The dispenser manages when issues are downloaded and dispensed based on patient need. Additional data is required within this resource for repeat dispensing prescriptions. Repeat dispensing is not permitted for Schedule 2 and 3 controlled drug medication.


idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
medicationRepeatInformationS C0..1Extension(Complex)
responsiblePractitionerS C0..1Extension(Reference(NHSDigitalPractitionerRole))
prescriptionEndorsementS C0..*Extension(CodeableConcept)
NHSBSAprescriptionTypeS C0..1Extension(Coding)
controlledDrugS C0..1Extension(Complex)
dispensingInformationS C0..1Extension(Complex)
prescriptionStatusHistoryC0..*Extension(Complex)
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
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
intentΣ ?!1..1codeBinding
id0..1string
extensionC0..*Extension
codingΣ1..1CodingBinding
textΣ0..1string
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
reportedBooleanboolean
reportedReferenceReference( | | | | )
medicationCodeableConceptNHSDigitalMedicationRequestCodeableConcept
medicationReferenceReference(NHSDigitalMedicationRequestMedication)
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
authoredOnS Σ0..1dateTime
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
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
performerTypeΣ0..1CodeableConcept
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
reasonCode0..*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
instantiatesCanonicalΣ0..*canonical
instantiatesUriΣ0..*uri
id0..1string
repeatInformationS C0..1Extension(Complex)
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
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
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
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
sequenceS Σ0..1integer
textS Σ0..1string
additionalInstructionS Σ0..*CodeableConcept
patientInstructionS Σ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
eventΣ0..*dateTime
id0..1string
extensionC0..*Extension
boundsDurationDuration
boundsPeriodPeriod
boundsRangeNHSDigitalRange
countΣ0..1positiveInt
countMaxΣ0..1positiveInt
durationΣ0..1decimal
durationMaxΣ0..1decimal
durationUnitΣ0..1codeBinding
frequencyΣ0..1positiveInt
frequencyMaxΣ0..1positiveInt
periodΣ0..1decimal
periodMaxΣ0..1decimal
periodUnitΣ0..1codeBinding
dayOfWeekΣ0..*codeBinding
timeOfDayΣ0..*time
whenΣ0..*codeBinding
offsetΣ0..1unsignedInt
codeΣ0..1CodeableConceptBinding
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteS Σ0..1CodeableConcept
routeS Σ0..1CodeableConcept
methodS Σ0..1CodeableConcept
id0..1string
extensionC0..*Extension
typeΣ0..1CodeableConcept
doseQuantitySimpleQuantity
doseRangeNHSDigitalRange
rateQuantitySimpleQuantity
rateRangeRange
rateRatioRatio
maxDosePerPeriodS Σ C0..1Ratio
maxDosePerAdministrationΣ C0..1SimpleQuantity
maxDosePerLifetimeΣ C0..1SimpleQuantity
id0..0string
performerSiteTypeS C1..1Extension(Coding)
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
quantityC0..1SimpleQuantity
durationC0..1Duration
dispenseIntervalC0..1Duration
id0..1string
extensionC0..*Extension
startΣ C1..1dateTime
endΣ C0..1dateTime
numberOfRepeatsAllowedS0..1unsignedInt
id0..1string
extensionC0..*Extension
valueΣ1..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ1..1string
systemΣ C0..1uri
codeΣ1..1code
id0..1string
extensionC0..*Extension
valueΣ1..1decimal
comparatorΣ ?!0..1codeBinding
unitΣ0..1string
systemΣ C0..1uri
codeΣ1..1codeFixed Value
id0..1string
dispensingPractitionerS C0..1Extension(Reference(NHSDigitalPractitionerRole))
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
modifierExtensionΣ ?! C0..*Extension
allowedBooleanboolean
reason0..1CodeableConcept
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

Differential from UK Core MedicationRequest

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
medicationRepeatInformationS C0..1Extension(Complex)
responsiblePractitionerS C0..1Extension(Reference(NHSDigitalPractitionerRole))
prescriptionEndorsementS C0..*Extension(CodeableConcept)
NHSBSAprescriptionTypeS C0..1Extension(Coding)
controlledDrugS C0..1Extension(Complex)
dispensingInformationS C0..1Extension(Complex)
prescriptionStatusHistoryC0..*Extension(Complex)
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
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
intentΣ ?!1..1codeBinding
id0..1string
extensionC0..*Extension
codingΣ1..1CodingBinding
textΣ0..1string
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
reportedBooleanboolean
reportedReferenceReference( | | | | )
medicationCodeableConceptNHSDigitalMedicationRequestCodeableConcept
medicationReferenceReference(NHSDigitalMedicationRequestMedication)
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
authoredOnS Σ0..1dateTime
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
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
performerTypeΣ0..1CodeableConcept
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
reasonCode0..*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
instantiatesCanonicalΣ0..*canonical
instantiatesUriΣ0..*uri
id0..1string
repeatInformationS C0..1Extension(Complex)
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
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
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
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
sequenceS Σ0..1integer
textS Σ0..1string
additionalInstructionS Σ0..*CodeableConcept
patientInstructionS Σ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
eventΣ0..*dateTime
id0..1string
extensionC0..*Extension
boundsDurationDuration
boundsPeriodPeriod
boundsRangeNHSDigitalRange
countΣ0..1positiveInt
countMaxΣ0..1positiveInt
durationΣ0..1decimal
durationMaxΣ0..1decimal
durationUnitΣ0..1codeBinding
frequencyΣ0..1positiveInt
frequencyMaxΣ0..1positiveInt
periodΣ0..1decimal
periodMaxΣ0..1decimal
periodUnitΣ0..1codeBinding
dayOfWeekΣ0..*codeBinding
timeOfDayΣ0..*time
whenΣ0..*codeBinding
offsetΣ0..1unsignedInt
codeΣ0..1CodeableConceptBinding
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteS Σ0..1CodeableConcept
routeS Σ0..1CodeableConcept
methodS Σ0..1CodeableConcept
id0..1string
extensionC0..*Extension
typeΣ0..1CodeableConcept
doseQuantitySimpleQuantity
doseRangeNHSDigitalRange
rateQuantitySimpleQuantity
rateRangeRange
rateRatioRatio
maxDosePerPeriodS Σ C0..1Ratio
maxDosePerAdministrationΣ C0..1SimpleQuantity
maxDosePerLifetimeΣ C0..1SimpleQuantity
id0..0string
performerSiteTypeS C1..1Extension(Coding)
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
quantityC0..1SimpleQuantity
durationC0..1Duration
dispenseIntervalC0..1Duration
id0..1string
extensionC0..*Extension
startΣ C1..1dateTime
endΣ C0..1dateTime
numberOfRepeatsAllowedS0..1unsignedInt
id0..1string
extensionC0..*Extension
valueΣ1..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ1..1string
systemΣ C0..1uri
codeΣ1..1code
id0..1string
extensionC0..*Extension
valueΣ1..1decimal
comparatorΣ ?!0..1codeBinding
unitΣ0..1string
systemΣ C0..1uri
codeΣ1..1codeFixed Value
id0..1string
dispensingPractitionerS C0..1Extension(Reference(NHSDigitalPractitionerRole))
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
modifierExtensionΣ ?! C0..*Extension
allowedBooleanboolean
reason0..1CodeableConcept
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

Implementation Guidance

Jump to guidance on specific resource data elements. Data elements not listed are not supported by the EPS.

Resource Extensions

extension:medicationRepeatInformation
extension:responsiblePractitioner
extension:prescriptionEndorsement
extension:NHSBSAprescriptionType
extension:controlledDrug
extension:dispensingInformation
basedOn.extension:repeatInformation
extension:prescriptionStatusHistory

Resource Data Elements

identifier:prescriptionOrderItem
status
statusReason
intent
category
medication[x]
subject
authoredOn
requester
basedOn.extension:repeatInformation
groupIdentifier
courseOfTherapyType
note
dosageInstruction
dispenseRequest
substitution

extension:medicationRepeatInformation

Extension ExtensionUKCoreMedicationRepeatInformation used for repeat dispensing prescriptions.

Extension URL Usage
numberOfPrescriptionsIssued Running total of number of issues dispensed against a repeat dispensed prescription, including this issue.
Note: Prescribing systems will never populate this field. It will be populated within responses to cancellations requests on repeat dispensing prescriptions. It will identify how many issues have been dispensed so the consumer system can calculate how many remaining issues have been cancelled.
authorisationExpiryDate Required for repeat dispensing prescriptions. The date a repeat prescription authorisation will expire. Will often be the same date as validityPeriod.high. Optional for repeat prescribing prescriptions and if provided indicates the "review date" as recorded within the prescribing system.

Example

"extension": [
  {
       "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation",
       "extension": [
           {
               "url": "numberOfPrescriptionsIssued",
               "valueUnsignedInt": 3
           },
           {
               "url": "authorisationExpiryDate",
               "valueDateTime": "2020-08-07"
           }
       ]
   }
]

extension:responsiblePractitioner

Extension ExtensionDMResponsiblePractitioner must only be populated if the signing clinician identified within requester is not the same person as who would be printed on the bottom of an FP10 paper prescription. This generally only occurs for Primary Care for prescriptions signed by a GP Locum or GP Registrar, where the responsible practitioner would be a GP partner. The reference is to a PractitionerRole resource contained within the prescriptiobn-order message bundle.

Example

"extension": [ 
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner",
        "valueReference": {
            "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466",
            "display": "DR SAZ RAZ"
        }
    }
]

extension:prescriptionEndorsement

Extension ExtensionPrescriptionEndorsement for prescribing endorsements that may be required for some prescribed medication items.

Example

"extension":  [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement",
        "valueCodeableConcept": {
            "coding":  [
                {
                    "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement",
                    "code": "SLS",
                    "display": "Selected List Scheme"
                }
            ]
        }
    }   
]

extension:NHSBSAprescriptionType

Mandatory extension ExtensionNHSBSAprescriptionType to categorise the prescription type for NHS BSA processing purposes.

Example

"extension":  [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType",
        "valueCoding": {
            "system": "https://fhir.nhs.uk/CodeSystem/prescription-type",
            "code": "1201",
            "display": "Outpatient Homecare Prescriber - Medical Prescriber"
        }
    }
]

extension:controlledDrug

Required extension ExtensionDMControlledDrug when the prescribed medication is listed within the Controlled Drug schedules. The schedule extension must be given for any controlled drug. It is a legal requirement to provide the quantityWords for Schedule 2 and 3 controlled drugs and the quantity stated must match the quantity defined as a numerical value within dispenseRequest.quantity.

Schedule Code EPS Scope Expiry Date Quantity Representation Repeat Dispensing Allowed RD 1st Issue Expiry RD Subsequent Expiry
1 CD1 Out of scope N/A N/A N/A N/A
2 CD2 In scope 28 days Words and Figures No N/A N/A
3 CD3 In scope 28 days Words and Figures No N/A N/A
4 CD4-1
CD4-2
In scope 28 days Figures Yes 28 days Up to 12 months
5 CD5 In scope 6 Months Figures Yes 6 months Up to 12 months

Example

An example for a Schedule 2 controlled drug with a prescribed quantity of 28.

{
    "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug",
    "extension": [
        {
            "url": "quantityWords",
            "valueString": "twenty eight"
        },
        {
            "url": "schedule",
            "valueCoding": {
                "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug",
                "code": "CD2",
                "display": "Schedule 2"
            }
        }
    ]
}

extension:dispensingInformation

Note: Prescribing systems will never populate the extension ExtensionEPSDispensingInformation.

The extension will be populated in downloaded issues of repeat dispensing prescriptions to inform the dispenser when the last issue of the prescription was completed. This can aid the dispenser with their clinical judgement for if the next issue of the prescription is being requested too soon or later than expected, to have an informed discussion with the patient about their medicines compliance.

Example

"extension":  [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-DispensingInformation",
        "extension":  [
            {
                "url": "dispenseStatus",
                "valueCoding": {
                    "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type",
                    "code": "0001",
                    "display": "Item fully dispensed"
                }
            },
            {
                "url": "dateLastDispensed",
                "valueDateTime": "2018-04-22T09:57:03+00:00"
            }
        ]
    }
]

extension:prescriptionStatusHistory

Note: Prescribing systems will never populate the extension ExtensionPrescriptionStatusHistory.

It is used to convey the status of the MedicationRequest within a prescription-order-response which is the response to a cancellation request.

When a 200 response is returned, the applicable codes from the valueset DM-Prescription-Task-Status-Reason is as follows.

Code Description
R-0001 Prescription or item was cancelled.
R-0002 Prescription or item was not cancelled. With dispenser. Marked for cancellation.
R-0003 Prescription or item was not cancelled. With dispenser active. Marked for cancellation.
R-0004 Prescription or item was not cancelled. Prescription has been dispensed.
R-0005 Prescription or item had expired.
R-0006 Prescription or item had already been cancelled.
R-0007 Prescription or item cancellation requested by another prescriber.
R-0010 Prescription or item was not cancelled. Prescription has been not dispensed.

Note: When a 4XX response is returned following a prescription-order-update then this will be returned as an OperationOutcome resource using other codes from the valueset DM-Prescription-Task-Status-Reason.

identifier:prescriptionOrderItem

Mandatory business identifier (UUID) for the MedicationRequest. The system must be https://fhir.nhs.uk/Id/prescription-order-item-number.

Example

 "identifier":  [
    {
        "system": "https://fhir.nhs.uk/Id/prescription-order-item-number",
        "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6"
    }
]

status

The status of the prescription using the medicationrequestStatus valueset. A prescribing system submitting a new prescription to the EPS will always use the value active.

Other status values may be seen in prescriptions downloaded by a dispenser, such as cancelled if the prescription has been cancelled.

Example

"status": "active"

statusReason

Always omit when the status is active.

Mandatory when requesting the cancellation of a prescription using the prescription-order-update message to share the reason for cancellation using the MedicationRequestStatusReason valueset.

Example

"statusReason": {
    "coding": [
        {
            "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason",
            "code": "0001",
            "display": "Prescribing Error"
        }
    ]
}

intent

The intent is the type of order and use depends on the courseOfTherapyType.

intent courseOfTherapyType
order acute
instance-order continuous
original-order continuous-repeat-dispensing

Example

"intent": "instance-order"

category

Required data item for the care setting for the prescription using the MedicationRequestCategory valueset.

Code Usage
community Primary Care prescriptions
outpatient Outpatient prescriptions, for dispensing in the community, opposed to dispensing by Trust pharmacy
inpatient Not currently used by EPS
discharge Not currently used by EPS
leave Not currently used by EPS

Example

"category": [
    {
        "coding": [
            {
                "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category",
                "code": "community",
                "display": "Community"
            }
        ]
    }
]

medication[x]

Mandatory to define the prescribed medication item. Highly recommended to use a medicationCodeableConcept. Alternatively can accept a referenced Medication resource included elsewhere within the Bundle.

The EPS only accepts dm+d medication therefore the system shall always be http://dmd.nhs.uk with a terminology binding to NHS Digital Medication Code.

Note: EPS currently mandates the "system" as "http://snomed.info/sct" but this is planned to be changed to allow either coding system.

Only Virtual Medical Products (VMP) and Actual Medical Products (AMP) can be used with the EPS for the prescribed medication item as constrained by NHSDigitalMedicationRequestMedication.

Example

"medicationCodeableConcept": {
    "coding": [
        {
            "system": "http://dmd.nhs.uk",
            "code": "39720311000001101",
            "display": "Paracetamol 500mg soluble tablets"
        }
    ]
}

subject

Mandatory reference to an NHSDigital-Patient resource with a traced NHS Number. An untraced NHS Number MUST NOT be used for EPS.

Example

 "subject": {
    "type": "Patient",
    "reference": "urn:uuid:bde9eba6-079f-4210-8108-6ea8db58de8c",
    "display": "Miss Bernie Kanfeld"
}

authoredOn

Currently not used by EPS but may be provided.

Example

"authoredOn": "2025-09-08T09:00:00+00:00"

requester

Mandatory reference to a NHSDigital-PractitionerRole resource found elsewhere in the Bundle for the prescribing clincian who has electronically signed the prescription.

See also extension:responsiblePractitioner which may be required for some prescriptions.

Example

"requester": {
    "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666"
}

basedOn.extension:repeatInformation

Note: Prescribing systems do not include this extension.

The extension ExtensionEPSRepeatInformation will be populated for repeat dispensing prescriptions downloaded by dispensing systems. It will inform the system of the current issue number of the repeat dispensing prescription, e.g. this is issue 3, where the dispenseRequest.numberOfRepeatsAllowed defined the maximum number of repeats, e.g. up to 6 issues. Therefore this issue is 3 of 6.

Example

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

groupIdentifier

The purpose of the groupIdentifier (also known as the "Short Form Prescription ID" or "Prescription ID") is as a unique identifier for the prescription during its lifecycle within the EPS (i.e. through prescribing, dispensing & claim). The format of the Short Form Prescription ID is as follows.

<RandomNumber>-<ODSCode>-<Sequence><CheckDigit>

Hyphens are always included to separate the Prescription ID into 3 blocks of 6 characters.

groupIdentifier element Length Format Definition
RandomNumber 6 Hex Locally generated random number each time a Prescription ID is generated.
ODSCode 6 Char ODS organisation code for the prescribing organisation. Where the prescribing organisation ODS code is shorter than 6 characters it must be zero-padded up to six characters from the start of the ODS code, e.g. “0A1B2C”.
Sequence 5 Hex Incremental sequence number starting from 00000 that is reset after FFFFF back to zero. For instances of prescribing systems that support prescribing practice/clinic, a sequence number per practice/clinic is required. This is to ensure uniqueness of prescriptions within the EPS during the prescription lifecycle.
CheckDigit 1 Char Calculated on the entire ID using the ISO/IEC 7064:2003 MOD 37-2 standard. The EPS implementation of the MOD 37-2 standard uses a “+” character for char 36 opposed to a “*” character.

The system must be https://fhir.nhs.uk/Id/prescription-order-number.

Example

Short Form Prescription ID example.

83C40E-A23856-00123W

"groupIdentifier": {
    ...
    "system": "https://fhir.nhs.uk/Id/prescription-order-number",
    "value": "83C40E-A23856-00123W"
}

groupIdentifier.extension:PrescriptionOrderUUID

Mandatory extension Extension-DM-PrescriptionId for a UUID for the entire prescription. All MedicationRequest resources in the same prescription-order will have the same PrescriptionOrderUUID.

Example

"groupIdentifier": {
    "system": "https://fhir.nhs.uk/Id/prescription-order-number",
    "value": "83C40E-A23856-00123W",
    "extension": [
        {
            "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId",
            "valueIdentifier": {
            "system": "https://fhir.nhs.uk/Id/prescription",
            "value": "d9ad29cd-fb94-4dac-8e8e-ad5b4bbe5698"
            }
        }
    ]
}

courseOfTherapyType

Mandatory to state the nature of the prescribing regime used for the prescription. Note the binding is to a value set with codes taken from two code systems.

courseOfTherapyType Usage System
acute For one-off / acute prescriptions http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy
continuous For repeat prescribing prescriptions http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy
continuous-repeat-dispensing For repeat dispensing prescriptions https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy

Example

"courseOfTherapyType": {
    "coding": [
        {
            "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy",
            "code": "acute",
            "display": "Short course (acute) therapy"
        }
    ]
}

note

Optional clinical information relating to a prescribed medication item that cannot be conveyed within dosage instructions is populated within note field.

Examples of dispensing notes are:

  • To explain changes in dosage, e.g. “Dosage has been increased on advice of the hospital
  • Reminders of the patient, e.g. "Tell patient to stop their statin whilst on this anitbiotic"
  • Information for the dispensing that may avoid a clinical query, e.g. "hospital consultant has confirmed dual treatment"

One scenario where note must be populated is for repeat prescribing when the current prescribed item is the last authorised repeat for that authorised cycle. Appropriate text, such as “Last authorised repeat” must be included within the note to inform the dispenser and to allow the dispenser to communicate this to the patient or patient representative. Note this is not required for repeat dispensing as the numberOfRepeatPrescriptionsIssued element conveys this information.

Example

"note": [
    {
        "text": "Dosage has been increased on advice of the hospital"
    }
]

dosageInstruction

The content of the dosageInstruction should follow guidance in Digital Medicines Dosage.

The dosageInstruction.text must be supplied as a human readable version of the complete dosage instruction as would be printed on a paper prescription.

As per BNF guidelines, the dosage must be presented to the user without abbreviation although it may be entered and stored within the PMR in an abbreviated form.

Example

"dosageInstruction": [
   {
        "text": "Inject 10 milligram - once a week - Subcutaneous route - for 10 weeks",
        "timing": {
            "repeat": {
                "boundsDuration": {
                    "value": 10,
                    "unit": "week",
                    "system": "http://unitsofmeasure.org",
                    "code": "wk"
                },
                "frequency": 1,
                "period": 1,
                "periodUnit": "wk"
             }
        },
        "route": {
            "coding": [
                {
                    "system": "http://snomed.info/sct",
                    "code": "34206005",
                    "display": "Subcutaneous route"
                }
            ]
        },
        "method": {
            "coding": [
                {
                    "system": "http://snomed.info/sct",
                    "code": "422145002",
                    "display": "Inject"
                }
            ]
        },
        "doseAndRate": [
            {
                "doseQuantity": {
                    "value": 10,
                    "unit": "milligram",
                    "system": "http://unitsofmeasure.org",
                    "code": "mg"
                }
            }
        ]
    }
]

dispenseRequest

Mandatory for the EPS to indicate the specific details for the medication request.

dispenseRequest.extension:performerSiteType

Mandatory extension ExtensionPerformerSiteType to specify the nomination type, including if a non-nominated prescription.

dispensing-site-preference Usage
P1 Community pharmacy or Homecare dispensing contractor
P2 Dispensing appliance contractor
P3 Dispensing doctor
0004 Non-nominated

Example

"dispenseRequest": {
    "extension":  [
        {
            "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType",
            "valueCoding": {
                "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference",
                "code": "0004"
            }
        },
    ]
}

dispenseRequest.validityPeriod

The validityPeriod.start is mandatory for all prescriptions and represents the start date for the prescription. Use a future date for post-dated prescriptions.

The validityPeriod.end is required for repeat dispensing prescriptions. It shall be the end date the repeat dispensing prescription validity. Legislation constrains the maximum validity period to 12 months but the prescriber may only want to issue 6 months of medication using repeat dispensing so can constrain the validity period using this data element.

Example for acute or repeat prescribing

"dispenseRequest": {
    "validityPeriod": {
        "start": "2020-06-10"
    }
}

Example for repeat dispensing

"dispenseRequest": {
    "validityPeriod": {
        "start": "2020-06-10",
        "end": "2020-12-07"
    }
}

dispenseRequest.numberOfRepeatsAllowed

Required for repeat dispensing prescriptions. An integer indicating the number of times, in addition to the original dispense, (aka refills or repeats) that the patient can receive the prescribed medication. A value of 5 means total of 6 issues of the repeat dispensing prescription will be created.

Note: If populated for repeat prescribing prescriptions, use a fixed value of 0. Always omit for acute prescriptions.

Example

"dispenseRequest": {
    "numberOfRepeatsAllowed": 11 
    ...for a repeat dispensing prescription with 12 issues
}

dispenseRequest.quantity

Mandatory field for the requested medication quantity to be dispensed. For repeat dispensing prescriptions this is the requested quantity to dispense per issue, not the total quantity over the overall authorisation.

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.

Note: Dispensers in England have some flexibility for the quantity they dispense when products are available in different packs sizes, e.g. 28 tablet packs or 30 tablet packs. The NHS BSA will allow +/- 10% of the prescribed quantity when a prescriber requests, say 28 tablets, but the product is only available as 30 tablet products.

Example

Example using UCUM.

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

Example using SNOMED-CT.

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

dispenseRequest.expectedSupplyDuration

Required for repeat dispensing prescriptions. This element defines the expected duration, in days, of each issue of the prescription.

Example

"dispenseRequest": {
    "expectedSupplyDuration": {
        "value": 28,
        "unit": "days",
        "system": "http://unitsofmeasure.org",
        "code": "d"
    }
}

dispenseRequest.performer

Required for nominated prescriptions to specify, by ODS code, the dispensing organisation that the patient has chosen to use for this prescription. Prescribing systems can optionally include the nominated dispenser name in performer.display.

Must be omitted for non-nominated prescriptions to allow the patient to present at any dispenser.

Example

"dispenseRequest": {
    "performer": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "VNE51"
        },
        "display": "The Simple Pharmacy"
    }
}

dispenseRequest.performer.extension:dispensingPractitioner

Prescribing systems will never include this extension within a prescription-order message.

The extension ExtensionDMDispensingPerformer will be populated in a response to a Prescription Release or prescription-order-update for prescriptions unable to be downloaded or cancelled as with another dispenser. This extension is a reference of a PractitionerRole resource that will be included within the response Bundle along with other referenced resources. This information will be used by the dispensing system to inform the user that the prescription is with another dispenser, with contact details for that dispenser.

Example

"dispenseRequest": { 
    "performer": {
        "extension":  [
            {
                "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-DispensingPerformer",
                "valueReference": {
                    "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666",
                    "display": "LOTTIE POTTS"
                }
            }
        ]
    }
}
... elsewhere in the Bundle
{
    "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666",
    "resource": {
    "resourceType": "PractitionerRole",
    "practitioner": {
        "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a"
    },
    "organization": {
        "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8"
    }
    ... other resource data items
},
{
    "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a",
    "resource": {
    "resourceType": "Practitioner"
    ... other resource data items
},
{
    "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8",
    "resource": {
    "resourceType": "Organization"
    ... other resource data items
}

substitution

Must be defined as false as EPS does not support substitution as defined within the FHIR standard.

Example

"substitution": {
    "allowedBoolean": false
}

back to top