Electronic Prescription Service (EPS) Implementation Guide

Profiles

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
}

NHSDigital-CommunicationRequest

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

This resource may be included within the EPS prescription-order message to convey information to the patient. The EPS requirement for dispensing systems is that communications shared in this way must be made visible to the patient. This is not the only method for patient communications. Methods such as via the NHS App may be more appropriate. This use of this resource is primarily for Primary Care (GP) prescribing systems that continue to print patient communications on the right-hand side of paper FP10 prescriptions. Where EPS is used, the prescription may be paperless, so using this resource replaces the right-hand side of the paper prescription.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
identifierΣ0..*Identifier
basedOnΣ C0..*Reference(Resource)
replacesΣ C0..*Reference(CommunicationRequest)
groupIdentifierΣ0..1Identifier
statusS Σ ?!1..1codeBinding
statusReason0..1CodeableConcept
category0..*CodeableConcept
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
medium0..*CodeableConceptBinding
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(Organization)
displayΣ0..1string
aboutC0..*Reference(Resource)
encounterΣ C0..1Reference(Encounter)
id0..1string
deviceContentC0..1Extension(Complex)
modifierExtensionΣ ?! C0..*Extension
contentAttachmentAttachment
contentReferenceReference(Resource)
contentStringstring
occurrenceDateTimedateTime
occurrencePeriodPeriod
authoredOnΣ0..1dateTime
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(Organization)
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(Organization)
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(Organization)
displayΣ0..1string
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
reasonReferenceΣ C0..*Reference(Condition | DiagnosticReport | DocumentReference | Observation)
note0..*Annotation
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
identifierΣ0..*Identifier
basedOnΣ C0..*Reference(Resource)
replacesΣ C0..*Reference(CommunicationRequest)
groupIdentifierΣ0..1Identifier
statusS Σ ?!1..1codeBinding
statusReason0..1CodeableConcept
category0..*CodeableConcept
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
medium0..*CodeableConceptBinding
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(Organization)
displayΣ0..1string
aboutC0..*Reference(Resource)
encounterΣ C0..1Reference(Encounter)
id0..1string
deviceContentC0..1Extension(Complex)
modifierExtensionΣ ?! C0..*Extension
contentAttachmentAttachment
contentReferenceReference(Resource)
contentStringstring
occurrenceDateTimedateTime
occurrencePeriodPeriod
authoredOnΣ0..1dateTime
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(Organization)
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(Organization)
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(Organization)
displayΣ0..1string
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
reasonReferenceΣ C0..*Reference(Condition | DiagnosticReport | DocumentReference | Observation)
note0..*Annotation

payload.contentString

Optional communications to the patient, not related to the prescription, may be shared within this data element. Such communications would be akin to what could historically have been printed on the right-hand side of a paper FP10 prescription.

Note: Patient communications specific to the prescribed medication item must be MedicationRequest.

Example

"payload": [
    {
        "contentString": "Due to Coronavirus restrictions Church View Surgery is CLOSED until further notice"
    }
]

payload.contentReference

Optional reference to a UKCore-List resource containing a list of the patient's authorised repeat medications. A Primary Care (GP) prescribing system may choose to include this information with the prescription if this will benefit the patient. Prescribing systems outside General Practice should not have the need to provide this data.

Example

"payload": [ 
    {
        "contentReference": {
            "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9",
            "display": "List of Repeat Medications for re-ordering"
        }
    }
]

Full example with CommunicationRequest and List resources

{
    "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e",
    "resource": {
        "resourceType": "CommunicationRequest",
        "status": "unknown",
        "subject": {
            "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2"
        },
        "payload": [
            {
                "contentString": "Due to Coronavirus restrictions Church View Surgery is CLOSED until further notice"
            },
            {
                "contentReference": {
                    "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9",
                    "display": "List of Repeat Medications for re-ordering"
                }
            }
        ],
        "requester": {
            "type": "Organization",
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                "value": "C81010"
            },
            "display": "The Moir Medical Centre"
        },
        "recipient": [
            {
                "type": "Patient",
                "identifier": {
                    "system": "https://fhir.nhs.uk/Id/nhs-number",
                    "value": "9876543210"
                }
            }
        ]
    }
},
{
    "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9",
    "resource": {
        "resourceType": "List",
        "status": "current",
        "mode": "snapshot",
        "subject": {
            "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2"
        },
        "entry": [
            {
                "item": {
                    "display": "Bendroflumethiazide 2.5 mg Tablets (3/6)"
                }
            },
            {
                "item": {
                    "display": "Salbutamol 100micrograms/dose inhaler CFC free 200 dose (2/6)"
                }
            }
        ]
    }
}

UKCore-List

The UKCore-List resource is used to list a patient's authorised repeat medications, referenced from a NHSDigital-CommunicationRequest resource, which may be included within the EPS prescription-order message. A Primary Care (GP) prescribing system may choose to include this information with the prescription if this will benefit the patient. Prescribing systems outside General Practice should not have the need to use this resource.

Profile url
https://fhir.nhs.uk/StructureDefinition/UKCore-List
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
careSettingTypeC0..1Extension(CodeableConcept)
listWarningCodeC0..*Extension(code)
relatedProblemHeaderC0..1Extension(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()
statusΣ ?!1..1codeBinding
modeΣ ?!1..1codeBinding
titleΣ0..1string
codeΣ0..1CodeableConceptBinding
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
dateΣ0..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
orderedBy0..1CodeableConceptBinding
id0..1string
extensionC0..*Extension
authorReferenceReference( | | | )
authorStringstring
timeΣ0..1dateTime
textΣ1..1markdown
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
flag0..1CodeableConcept
deleted?! C0..1boolean
date0..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
emptyReasonC0..1CodeableConceptBinding
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
careSettingTypeC0..1Extension(CodeableConcept)
listWarningCodeC0..*Extension(code)
relatedProblemHeaderC0..1Extension(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()
statusΣ ?!1..1codeBinding
modeΣ ?!1..1codeBinding
titleΣ0..1string
codeΣ0..1CodeableConceptBinding
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
dateΣ0..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
orderedBy0..1CodeableConceptBinding
id0..1string
extensionC0..*Extension
authorReferenceReference( | | | )
authorStringstring
timeΣ0..1dateTime
textΣ1..1markdown
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
flag0..1CodeableConcept
deleted?! C0..1boolean
date0..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
emptyReasonC0..1CodeableConceptBinding

For code.text use the fixed value of 'Repeat Medications'.

Reference the Patient resource that will already be in the Bundle as referenced elsewhere, as the subject.reference.

List each repeat medication as an entry[].item.display. The entry is free text but must contain the medication item name/description using dm+d terms, where these concepts exist or where a mapping from a proprietary terminology exists, otherwise expressed using proprietary terms. Where applicable the statement should contain the current issue number and maximum number of issues authorised, e.g. “Bendroflumethiazide 2.5 mg Tablets (3/6)”.

Example

{
    "resourceType": "List",
    "status": "current",
    "mode": "snapshot",
    "code": {
        "text": "Repeat Medications"
    },
    "subject": {
        "reference": "urn:uuid:848d8470-bd51-494e-9347-8142ea75cb23"
    },
    "entry": [
        {
            "item": {
                "display": "Bendroflumethiazide 2.5 mg Tablets (3/6)"
            }
        },
        {
            "item": {
                "display": "Salbutamol 100micrograms/dose inhaler CFC free 200 dose (2/6)"
            }
        }
    ]
}

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"
                }
            }
        ]
    }
]

NHSDigital-Claim

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

The Claim resource collates all the prescription and dispensing data required for prescription reimbursement financial processing. The dispensing of a single prescription-order is claimed for using a single Claim resource, therefore the cardinality of the item data element is different to the FHIR international standard, profiled as 1..1.

Many data items are taken from the downloaded prescription-order or submitted dispense-notification messages. Three additional items of business data will be captured by the dispensing system for reimbursement purposes.

  1. Did the patient pay a prescription charge, and how many charges (some combination pack medication products attract two prescription charges)?
  2. If prescription charge exempt, was evidence seen?
  3. Any associated dispensing endorsement codes with supporting data.

In the event of human error, a Claim can be amended by re-submission. The extension:Extension-replacementOf must contain the Claim.identifier for the Claim being replaced. Reimbursement authorities may have different business rules for when a claim can be amended.

Migration from HL7v3: A cross reference between HL7v3 Dispense Claim Information data elements and FHIR Claim data elements is provided at the bottom of this page.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
replacementOfS C0..1Extension(Identifier)
agentS C0..1Extension(Reference(NHSDigitalHealthcareService | NHSDigitalPractitioner | NHSDigitalPractitionerRole))
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(Organization)
statusS Σ ?!1..1codeBinding
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
subType0..1CodeableConcept
useΣ1..1codeBindingFixed Value
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(Organization)
displayΣ0..1string
billablePeriodΣ C0..1Period
createdS Σ1..1dateTime
entererC0..1Reference(Practitioner | PractitionerRole)
insurerΣ C0..1Reference(Organization)
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(Organization)
displayΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
fundsReserve0..1CodeableConcept
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
claimC0..1Reference(Claim)
relationship0..1CodeableConcept
reference0..1Identifier
id0..1string
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueIdentifierIdentifier
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueIdentifierIdentifier
url1..1uriFixed Value
referenceΣ C0..0string
typeΣ0..1uriBinding
displayΣ0..1string
id0..1string
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueIdentifierIdentifier
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueIdentifierIdentifier
url1..1uriFixed Value
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(Organization)
displayΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ1..1stringFixed Value
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Σ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
displayΣ0..1string
referralC0..1Reference(ServiceRequest)
facilityC0..1Reference(Location)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
sequence1..1positiveInt
providerC1..1Reference(Organization | Practitioner | PractitionerRole)
responsible0..1boolean
role0..1CodeableConcept
qualification0..1CodeableConcept
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
sequence1..1positiveInt
category1..1CodeableConcept
code0..1CodeableConcept
timingDatedate
timingPeriodPeriod
valueAttachmentAttachment
valueBooleanboolean
valueQuantityQuantity
valueReferenceReference(Resource)
valueStringstring
reason0..1CodeableConcept
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
sequence1..1positiveInt
diagnosisCodeableConceptCodeableConcept
diagnosisReferenceReference(Condition)
type0..*CodeableConcept
onAdmission0..1CodeableConcept
packageCode0..1CodeableConcept
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
sequence1..1positiveInt
type0..*CodeableConcept
date0..1dateTime
procedureCodeableConceptCodeableConcept
procedureReferenceReference(Procedure)
udiC0..*Reference(Device)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
sequenceΣ1..1positiveInt
focalΣ1..1boolean
identifier0..1Identifier
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
identifierΣ1..1Identifier
displayΣ0..1string
businessArrangement0..1string
preAuthRef0..*string
claimResponseC0..1Reference(ClaimResponse)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
date1..1date
type0..1CodeableConceptBinding
locationAddressAddress
locationReferenceReference(Location)
id0..1string
prescriptionStatusS C1..1Extension(Coding)
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
repeatInformationC0..*Extension(Complex)
modifierExtensionΣ ?! C0..*Extension
sequence1..1positiveIntFixed Value
careTeamSequence0..*positiveInt
diagnosisSequence0..*positiveInt
procedureSequence0..*positiveInt
informationSequence0..*positiveInt
revenue0..1CodeableConcept
category0..1CodeableConcept
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ1..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
modifier0..*CodeableConcept
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
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
servicedDatedate
servicedPeriodPeriod
locationAddressAddress
locationCodeableConceptCodeableConcept
locationReferenceReference(Location)
quantityC0..1SimpleQuantity
unitPrice0..1Money
factor0..1decimal
net0..1Money
udiC0..*Reference(Device)
bodySite0..1CodeableConcept
subSite0..*CodeableConcept
encounterC0..*Reference(Encounter)
id0..1string
medicationRequestS C1..1Extension(Reference(NHSDigitalMedicationRequest))
sequenceIdentifierS C1..1Extension(Identifier)
repeatInformationC0..1Extension(Complex)
taskBusinessStatusReasonC0..1Extension(Coding)Binding
modifierExtensionΣ ?! C0..*Extension
sequenceS1..1positiveInt
revenue0..1CodeableConcept
category0..1CodeableConcept
productOrServiceS1..1CodeableConceptBinding
modifierS1..*CodeableConceptBinding
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
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
quantityS C0..1SimpleQuantity
unitPrice0..1Money
factor0..1decimal
net0..1Money
udiC0..*Reference(Device)
id0..1string
medicationDispenseC0..1Extension(Reference(NHSDigitalMedicationDispense))
repeatInformationC0..1Extension(Complex)
modifierExtensionΣ ?! C0..*Extension
sequenceS1..1positiveInt
revenue0..1CodeableConcept
category0..1CodeableConcept
productOrServiceS1..1CodeableConceptBinding
modifier0..*CodeableConcept
programCode0..*CodeableConcept
id0..1string
runningTotalC0..1Extension(Quantity)
valueΣ0..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ0..1string
systemΣ C0..1uri
codeΣ0..1code
unitPrice0..1Money
factor0..1decimal
net0..1Money
udiC0..*Reference(Device)
total0..1Money
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
replacementOfS C0..1Extension(Identifier)
agentS C0..1Extension(Reference(NHSDigitalHealthcareService | NHSDigitalPractitioner | NHSDigitalPractitionerRole))
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(Organization)
statusS Σ ?!1..1codeBinding
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
subType0..1CodeableConcept
useΣ1..1codeBindingFixed Value
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(Organization)
displayΣ0..1string
billablePeriodΣ C0..1Period
createdS Σ1..1dateTime
entererC0..1Reference(Practitioner | PractitionerRole)
insurerΣ C0..1Reference(Organization)
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(Organization)
displayΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
fundsReserve0..1CodeableConcept
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
claimC0..1Reference(Claim)
relationship0..1CodeableConcept
reference0..1Identifier
id0..1string
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueIdentifierIdentifier
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueIdentifierIdentifier
url1..1uriFixed Value
referenceΣ C0..0string
typeΣ0..1uriBinding
displayΣ0..1string
id0..1string
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueIdentifierIdentifier
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueIdentifierIdentifier
url1..1uriFixed Value
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(Organization)
displayΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ1..1stringFixed Value
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Σ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
displayΣ0..1string
referralC0..1Reference(ServiceRequest)
facilityC0..1Reference(Location)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
sequence1..1positiveInt
providerC1..1Reference(Organization | Practitioner | PractitionerRole)
responsible0..1boolean
role0..1CodeableConcept
qualification0..1CodeableConcept
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
sequence1..1positiveInt
category1..1CodeableConcept
code0..1CodeableConcept
timingDatedate
timingPeriodPeriod
valueAttachmentAttachment
valueBooleanboolean
valueQuantityQuantity
valueReferenceReference(Resource)
valueStringstring
reason0..1CodeableConcept
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
sequence1..1positiveInt
diagnosisCodeableConceptCodeableConcept
diagnosisReferenceReference(Condition)
type0..*CodeableConcept
onAdmission0..1CodeableConcept
packageCode0..1CodeableConcept
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
sequence1..1positiveInt
type0..*CodeableConcept
date0..1dateTime
procedureCodeableConceptCodeableConcept
procedureReferenceReference(Procedure)
udiC0..*Reference(Device)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
sequenceΣ1..1positiveInt
focalΣ1..1boolean
identifier0..1Identifier
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
identifierΣ1..1Identifier
displayΣ0..1string
businessArrangement0..1string
preAuthRef0..*string
claimResponseC0..1Reference(ClaimResponse)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
date1..1date
type0..1CodeableConceptBinding
locationAddressAddress
locationReferenceReference(Location)
id0..1string
prescriptionStatusS C1..1Extension(Coding)
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
repeatInformationC0..*Extension(Complex)
modifierExtensionΣ ?! C0..*Extension
sequence1..1positiveIntFixed Value
careTeamSequence0..*positiveInt
diagnosisSequence0..*positiveInt
procedureSequence0..*positiveInt
informationSequence0..*positiveInt
revenue0..1CodeableConcept
category0..1CodeableConcept
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ1..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
modifier0..*CodeableConcept
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
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
servicedDatedate
servicedPeriodPeriod
locationAddressAddress
locationCodeableConceptCodeableConcept
locationReferenceReference(Location)
quantityC0..1SimpleQuantity
unitPrice0..1Money
factor0..1decimal
net0..1Money
udiC0..*Reference(Device)
bodySite0..1CodeableConcept
subSite0..*CodeableConcept
encounterC0..*Reference(Encounter)
id0..1string
medicationRequestS C1..1Extension(Reference(NHSDigitalMedicationRequest))
sequenceIdentifierS C1..1Extension(Identifier)
repeatInformationC0..1Extension(Complex)
taskBusinessStatusReasonC0..1Extension(Coding)Binding
modifierExtensionΣ ?! C0..*Extension
sequenceS1..1positiveInt
revenue0..1CodeableConcept
category0..1CodeableConcept
productOrServiceS1..1CodeableConceptBinding
modifierS1..*CodeableConceptBinding
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
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
quantityS C0..1SimpleQuantity
unitPrice0..1Money
factor0..1decimal
net0..1Money
udiC0..*Reference(Device)
id0..1string
medicationDispenseC0..1Extension(Reference(NHSDigitalMedicationDispense))
repeatInformationC0..1Extension(Complex)
modifierExtensionΣ ?! C0..*Extension
sequenceS1..1positiveInt
revenue0..1CodeableConcept
category0..1CodeableConcept
productOrServiceS1..1CodeableConceptBinding
modifier0..*CodeableConcept
programCode0..*CodeableConcept
id0..1string
runningTotalC0..1Extension(Quantity)
valueΣ0..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ0..1string
systemΣ C0..1uri
codeΣ0..1code
unitPrice0..1Money
factor0..1decimal
net0..1Money
udiC0..*Reference(Device)
total0..1Money

Implementation Guidance

Resource elements not defined below can be omitted.

Element Usage
Extension-Provenance-agent The sds-user-id of the authenticated user as the identifier.value within the ExtensionProvenanceAgent.
Extension-replacementOf Used to amend Claims and must reference the Claim.identifier of the Claim being replaced within the Extension-replacementOf.
identifier Unique identifier (UUID) for the Claim.
Where system=https://fhir.nhs.uk/Id/prescription-dispense-item-number.
status Fixed code of active.
type Fixed code of pharmacy.
use Fixed code of claim.
patient Must be an identifier reference for the patient's NHS Number.
created Timestamp for the claim.
provider Reference to a contained NHSDigital-PractitionerRole resource for the authenticated user.
priority Fixed code of normal.
prescription Use the extension ExtensionDMGroupIdentifier containing the prescription order number (short form id) and the prescription UUID.
payee Fixed value for type=provider.
Reference to a contained NHSDigital-Organization resource for the dispensing site.
insurance ODS code identifier for the reimbursement authority. For England use T1450 | NHS BUSINESS SERVICES AUTHORITY. For Wales use RQFZ1 | NWSSP AUDIT & ASSURANCE SERVICES. Use the fixed values of sequence=1 and focal=true.
item Backbone Element. See item guidance below.
item.detail Backbone Element. See item.detail guidance below.
item.detail.subDetail Backbone Element. See item.detail.subDetail guidance below.

item

Details of the prescribed and dispensed medication together with relevant endorsements and patient charge/exemption data.

item.extension:prescriptionStatus

The prescription status from the NHSDigital-MedicationDispense message using the extension ExtensionEPSTaskBusinessStatus and the DM-Task-Status-Reason valueset.

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

item.extension:prescriptionStatusReason

Required only when item.extension:prescriptionStatus is 0007 | Not Dispensed using the extension Extension-EPS-TaskBusinessStatusReason to record the reason the entire prescription was recorded as not dispensed, using the valueset https://simplifier.net/resolve?scope=package:uk.nhsdigital.r4.test@2.18.8-prerelease&filepath=package/ValueSet-DM-medicationdispense-status-reason.json.

Note: When items with a claim are recorded as 'not dispensed' (see item.detail.modifier) for different reasons, then use any of these reasons as the overall reason for not dispensing 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": "0007",
      "display": "Not Dispensed"
    }
  },
  {
    "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatusReason",
    "valueCoding": {
      "system": "https://fhir.nhs.uk/ValueSet/DM-medicationdispense-status-reason",
      "code": "0001",
      "display": "Not required as instructed by the patient"
    }
  }
]

item.extension:repeatInformation

Required for repeat dispensing prescriptions and is the repeat information for the overall prescription. This data can be taken from the medication item within the last dispense-notification recorded against the prescription using the Extension ExtensionEPSRepeatInformation.

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

Example

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

item.sequence

Fixed value of 1 as the EPS implementation only supports a single item entry.

item.productOrService

A fixed value codeableConcept that represents a prescription.

"productOrService": {
  "coding":  [
    {
      "system": "http://snomed.info/sct",
      "code": "16076005",
      "display": "Prescription"
    }
  ]
}

item.programCode

Mandatory coded Prescription Charge Exemption to denote the exemption reason, including if the patient as paid prescription charges.

Coded Exemption evidence to denote if evidence for exemption has been seen. If omitted, the reimbursement agency will assume evidence has not been seen.

"programCode": [
  {
    "coding": [
      {
        "code": "0001",
        "system": "https://fhir.nhs.uk/CodeSystem/prescription-charge-exemption",
        "display": "Patient has paid appropriate charges"
      }
    ]
  },
  {
    "coding": [
      {
        "system": "https://fhir.nhs.uk/CodeSystem/DM-exemption-evidence",
        "code": "no-evidence-seen",
        "display": "No Evidence Seen"
      }
    ]
  }
]

item.detail

A claim detail entry will relate to each MedicationRequest in the prescription-order being claimed. Based on current EPS rules, this will be between 1 to 4 medication items.

item.detail.extension:medicationRequest

Mandatory reference to the MedicationRequest.identifier:prescriptionOrderItem for the prescribed medication item using the Extension ExtensionClaimMedicationRequestIdentifier.

"extension":  [
  {
    "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference",
    "valueReference": {
      "identifier": {
        "system": "https://fhir.nhs.uk/Id/prescription-order-item-number",
        "value": "33560bee-bc0c-4e3b-a155-71591eee9ca5"
      }
    }
  }
]

item.detail.extension:sequenceIdentifier

Mandatory extension ExtensionClaimSequenceIdentifier for a locally generated UUID that is required for legacy EPS processing.

Example

"extension":  [
  {
    "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier",
    "valueReference": {
      "identifier": {
        "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier",
        "value": "be948cf8-5db1-4c39-8f9b-c7e049d55acb"
      }
    }
  }
]

item.detail.extension:repeatInformation

Required for repeat dispensing prescriptions and is the repeat information for this medication item. This data can be taken from the medication item within the last dispense-notification recorded against the prescription using the Extension ExtensionEPSRepeatInformation.

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

Example

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

item.detail.extension:taskBusinessStatusReason

Problem: The OAS spec does not mention this extension? The extension does not state the valueset, so which should be used?

Required when item.detail.modifier is 0002 | Item not dispensed which denotes the medication item has not been dispensed, where this extension provides a coded reason for non-dispensing.

The profile extension is ExtensionEPSTaskBusinessStatusReason which does not state any binding to a valueset. Use the valueset DM-MedicationDispense-Status-Reason.

Example

"modifier":  [
  {
    "coding":  [
      {
        "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type",
        "code": "0002",
        "display": "Item not dispensed"
      }
    ]
  }
],
"extension": [
  {
    "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatusReason",
    "valueCoding": {
      "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-status-reason",
      "code": "0001",
      "display": "Not required as instructed by the patient"
    }
  }
]

item.detail.sequence

A sequential integer to identify the item within the resource so will be betwen 1 and 4 depending on how many prescribed medication items are on the prescription.

item.detail.productOrService

The medicationCodeableConcept of the prescribed medication item, taken from the MedicationRequest.

Example

"productOrService": {
  "coding": [
      {
      "system": "http://dmd.nhs.uk",
      "code": "39732311000001104",
      "display": "Amoxicillin 250mg capsules"
      }
  ]
}

item.detail.modifier

Required code for the medication item dispensing status, taken from the NHSDigital-MedicationDispense and using the DM-MedicationDispense-Type valueset.

When the value is 0002 - Item not dispensed then the extension item.detail.extension:taskBusinessStatusReason must be provided.

Example

"modifier":  [
  {
    "coding":  [
      {
        "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type",
        "code": "0001",
        "display": "Item fully dispensed"
      }
    ]
  }
]

item.detail.programCode

Mandatory coded prescriptionCharge for whether or not a prescription charge was paid for the medication treatment, including if two charges applied.

Coded dispensingEndorsement for endorsements to support the claim for this medication items, including the code NDEC when no endorsements are declared. Multiple endorsements may be applicable.

Where an endorsement requires supporting information, include this within a text value.

Example

"programCode":  [
  {
    "coding":  [
      {
          "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge",
          "code": "paid-once",
          "display": "Paid Once"
      }
    ]
  },
  {
    "coding": [
      {
        "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-endorsement",
        "code": "IP",
        "display": "Invoice Price for less common products or special items"
      }
    ],
    "text": "15gram,£12.34,EFGH Ltd"
  }
]

item.detail.quantity

The quantity of the prescribed medication item, taken from the MedicationRequest.dispenseRequest.quantity.

Example

"quantity": {
  "value": 30,
  "unit": "tablet",
  "system": "http://snomed.info/sct",
  "code": "428673006"
}

item.detail.subDetail

The subDetail is present when medication has been dispensed, which will be the normal scenario when submitting a Claim.

It would be typical that a single medication item will be dispensed to fulfil a single medication request. This would result in a single instance of subDetail.

For example:
item.detail.productOrService = Atenolol 50mg tablets (VMP)
item.detail.subDetail[0].productOrService = Atenolol 50mg tablets (Accord-UK Ltd) 28 tablet (AMPP)

There will also be cases when multiple medication items may be dispensed to fulfil a single medication request. This would result in multiple instances of subDetail.

For example:
item.detail.productOrService = Elemental 028 Extra liquid (Flavour Not Specified) (AMP)
item.detail.subDetail[0].productOrService = Elemental 028 Extra liquid grapefruit (Nutricia Ltd) 250 ml (AMPP)
item.detail.subDetail[1].productOrService = Elemental 028 Extra liquid summer fruits (Nutricia Ltd) 250 ml (AMPP)
item.detail.subDetail[2].productOrService = Elemental 028 Extra liquid orange & pineapple (Nutricia Ltd) 250 ml (AMPP)

item.detail.subDetail.extension:medicationDispense

A reference to something outside the Claim - but what? It is not defined in the OAS schema? The system suggests the UUID identifier from the MedicationDispense resources so I'll assume that. This element is also maybe not even needed as does not appear to map across to any legacy HL7v3 data element?

Reference to the MedicationDispense.identifier for the dispensed medication item using the Extension ExtensionClaimMedicationRequestIdentifier.

Example

"extension": [
  {
    "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationDispenseReference",
    "valueReference": {
      "identifier": {
        "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number",
        "value": "fd833d33-f128-4fa2-a807-1fc8a7db2658"
      }
    }
  }
]

item.detail.subDetail.extension:repeatInformation

This extension has been deprecated and must not be used for new implementations.

item.detail.subDetail.sequence

Mandatory sequential integer id for each detail entry.

Example

"sequence": 1

item.detail.subDetail.productOrService

Mandatory dipensed medication dm+d concept taken from the NHSDigital-MedicationDispense using 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.

Example

"productOrService": {
  "coding":  [
    {
      "system": "http://dmd.nhs.uk",
      "code": "3416211000001106",
      "display": "Salbutamol 100micrograms/dose inhaler (Sandoz Ltd) 200 dose"
    }
  ]
}

item.detail.subDetail.quantity

Mandatory dipensed medication item quantity taken from the NHSDigital-MedicationDispense.

Example

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

HL7v3 to HL7 FHIR Data Element Cross Reference

Cross reference between HL7v3 Dispense Claim Information data elements and FHIR Claim data elements to assist suppliers migrating from HL7v3 EPS solutions.

HL7v3 Dispense Claim Information Data Element FHIR Claim Data Element
id identifier
effectiveTime created
primaryInformationRecipient.AgentOrg.agentOrganization insurance
replacementOf.priorMessageRef Extension-replacementOf
coverage.coveringChargeExempt item.programCode
coverage.coveringChargeExempt.authorization.authorizingEvidenceSeen item.programCode
...within pertinentInformation1.pertinentSupplyHeader
id identifier
repeatNumber item.extension:repeatInformation
pertinentInformation3.pertinentPrescriptionStatus item.extension:prescriptionStatus
pertinentInformation4.pertinentPrescriptionID prescription
inFulfillmentOf.priorOriginalPrescriptionRef prescription
pertinentInformation2.pertinentNonDispensingReason item.extension:prescriptionStatusReason
legalAuthenticator provider
legalAuthenticator.time created
...within pertinentSupplyHeader.pertinentInformation1.pertinentSuppliedLineItem
id item.detail.extension:sequenceIdentifier
repeatNumber item.detail.extension:repeatInformation
pertinentInformation3.pertinentItemStatus item.detail.modifier
inFulfillmentOf.priorOriginalItemRef item.detail.extension:medicationRequest
pertinentInformation2.pertinentNonDispensingReason item.detail.extension:taskBusinessStatusReason
...within pertinentSuppliedLineItem.component.suppliedLineItemQuantity
product.suppliedManufacturedProduct.manufacturedSuppliedMaterial item.detail.subDetail.productOrService
quantity item.detail.subDetail.quantity
pertinentInformation2.pertinentDispensingEndorsement item.detail.programCode
pertinentInformation1.pertinentChargePayment item.detail.programCode

NHSDigital-Task

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

The NHSDigital-Task resource is used by EPS dispensing (pharmacy) systems to perform two RESTful operations.

  1. Withdraw: Withdraw (delete) a submitted dispensing notification - see Dispense Notification Withdraw.
  2. Return: Return a downloaded prescription to the EPS, so it can be downloaded by another pharmacy - see Prescription Return.
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
prescriptionS C0..1Extension(Complex)
repeatInformationS C0..1Extension(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()
instantiatesCanonicalΣ0..1canonical(ActivityDefinition)
instantiatesUriΣ0..1uri
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
groupIdentifierS Σ0..1Identifier
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
statusReasonΣ0..1CodeableConcept
businessStatusΣ0..1CodeableConceptBinding
intentS Σ1..1codeBinding
priority0..1codeBinding
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
descriptionΣ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Σ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
executionPeriodΣ C0..1Period
authoredOnS C0..1dateTime
lastModifiedΣ C0..1dateTime
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Σ0..1string
performerType0..*CodeableConceptBinding
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Σ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
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..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
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
noteS0..*Annotation
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
repetitions0..1positiveInt
id0..1string
extensionC0..*Extension
startΣ C0..1dateTime
endS Σ C0..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
modifierExtensionΣ ?! C0..*Extension
type1..1CodeableConcept
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical
valueCodecode
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactDetailContactDetail
valueContactPointContactPoint
valueContributorContributor
valueCountCount
valueDataRequirementDataRequirement
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueDistanceDistance
valueDosageDosage
valueDurationDuration
valueExpressionExpression
valueHumanNameHumanName
valueIdid
valueIdentifierIdentifier
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueMetaMeta
valueMoneyMoney
valueOidoid
valueParameterDefinitionParameterDefinition
valuePeriodPeriod
valuePositiveIntpositiveInt
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueReferenceReference
valueRelatedArtifactRelatedArtifact
valueSampledDataSampledData
valueSignatureSignature
valueStringstring
valueTimetime
valueTimingTiming
valueTriggerDefinitionTriggerDefinition
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUsageContextUsageContext
valueUuiduuid
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
type1..1CodeableConcept
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical
valueCodecode
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactDetailContactDetail
valueContactPointContactPoint
valueContributorContributor
valueCountCount
valueDataRequirementDataRequirement
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueDistanceDistance
valueDosageDosage
valueDurationDuration
valueExpressionExpression
valueHumanNameHumanName
valueIdid
valueIdentifierIdentifier
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueMetaMeta
valueMoneyMoney
valueOidoid
valueParameterDefinitionParameterDefinition
valuePeriodPeriod
valuePositiveIntpositiveInt
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueReferenceReference
valueRelatedArtifactRelatedArtifact
valueSampledDataSampledData
valueSignatureSignature
valueStringstring
valueTimetime
valueTimingTiming
valueTriggerDefinitionTriggerDefinition
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUsageContextUsageContext
valueUuiduuid
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
prescriptionS C0..1Extension(Complex)
repeatInformationS C0..1Extension(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()
instantiatesCanonicalΣ0..1canonical(ActivityDefinition)
instantiatesUriΣ0..1uri
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
groupIdentifierS Σ0..1Identifier
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
statusReasonΣ0..1CodeableConcept
businessStatusΣ0..1CodeableConceptBinding
intentS Σ1..1codeBinding
priority0..1codeBinding
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
descriptionΣ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Σ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
executionPeriodΣ C0..1Period
authoredOnS C0..1dateTime
lastModifiedΣ C0..1dateTime
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Σ0..1string
performerType0..*CodeableConceptBinding
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Σ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
id0..1string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..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
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
noteS0..*Annotation
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
repetitions0..1positiveInt
id0..1string
extensionC0..*Extension
startΣ C0..1dateTime
endS Σ C0..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
modifierExtensionΣ ?! C0..*Extension
type1..1CodeableConcept
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical
valueCodecode
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactDetailContactDetail
valueContactPointContactPoint
valueContributorContributor
valueCountCount
valueDataRequirementDataRequirement
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueDistanceDistance
valueDosageDosage
valueDurationDuration
valueExpressionExpression
valueHumanNameHumanName
valueIdid
valueIdentifierIdentifier
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueMetaMeta
valueMoneyMoney
valueOidoid
valueParameterDefinitionParameterDefinition
valuePeriodPeriod
valuePositiveIntpositiveInt
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueReferenceReference
valueRelatedArtifactRelatedArtifact
valueSampledDataSampledData
valueSignatureSignature
valueStringstring
valueTimetime
valueTimingTiming
valueTriggerDefinitionTriggerDefinition
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUsageContextUsageContext
valueUuiduuid
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
type1..1CodeableConcept
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical
valueCodecode
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactDetailContactDetail
valueContactPointContactPoint
valueContributorContributor
valueCountCount
valueDataRequirementDataRequirement
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueDistanceDistance
valueDosageDosage
valueDurationDuration
valueExpressionExpression
valueHumanNameHumanName
valueIdid
valueIdentifierIdentifier
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueMetaMeta
valueMoneyMoney
valueOidoid
valueParameterDefinitionParameterDefinition
valuePeriodPeriod
valuePositiveIntpositiveInt
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueReferenceReference
valueRelatedArtifactRelatedArtifact
valueSampledDataSampledData
valueSignatureSignature
valueStringstring
valueTimetime
valueTimingTiming
valueTriggerDefinitionTriggerDefinition
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUsageContextUsageContext
valueUuiduuid

Implementation Guidance

Element Implementation Guidance
Extension-EPS-Prescription Required only for eRD prescriptions. Use the value continuous-repeat-dispensing.
Extension-EPS-RepeatInformation Required only for eRD prescriptions.
identifier A single UUID identifier MUST be present
status Use case: Withdraw - Acceptable values rejected, cancelled or failed
Use case: Return - Acceptable value in-progress
statusReason Use case: Withdraw - EPS Dispense Withdraw Reason
Use case Return - EPS Dispense Return Reason
intent Fixed value of order
groupIdentifier The short form identifier (prescription id) to the original prescription-order MUST be present.
code A code from TaskCode to indicate the action to perform on the focus resource.
Use case: Withdraw - Use the code fulfill
Use case: Return - Use the code abort
focus Use case: Withdraw - Bundle identifier to a dispense-notification message
Use case: Return - Bundle identifier to a prescription-order message
for Identifier reference for the patient's NHS Number
requester Reference to a CONTAINED NHSDigital-PractitionerRole resource for the authenticated user requesting the action. This will in turn reference a CONTAINED Organization resource.
authoredOn Date and time the task was created.
owner Use case: Withdraw - The dispensing site ODS code
Use case: Return - Not required
reasonCode Use case: Withdraw - must be 373784005 | Dispensing medication
Use case: Return - must be 33633005 | Prescription of drug

NHSDigital-Patient

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

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueAddressAddress
birthSexC0..1Extension(code)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueBooleanboolean
contactPreferenceC0..1Extension(Complex)
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueCodeableConceptCodeableConcept
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueDateTimedateTime
url1..1uriFixed Value
ethnicCategoryC0..1Extension(CodeableConcept)
residentialStatusC0..1Extension(CodeableConcept)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueBooleanboolean
medicalApplianceSupplierS C0..1Extension(Reference())
nominatedPharmacyS C0..1Extension(Reference())
preferredDispenserOrganizationS C0..1Extension(Reference())
modifierExtension?! C0..*Extension
id0..1string
nhsNumberVerificationStatusC0..1Extension(CodeableConcept)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
activeΣ ?!0..1boolean
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ0..1string
givenS Σ0..5string
prefixΣ0..*string
suffixΣ0..*string
periodΣ C0..1Period
id0..1string
extensionC0..*Extension
id0..1string
otherContactSystemC0..1Extension(Coding)
value0..1System.String
valueΣ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ C0..1Period
genderS Σ0..1codeBinding
id0..1string
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueDateTimedateTime
value0..1System.Date
deceasedBooleanboolean
deceasedDateTimedateTime
id0..1string
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueCodingCoding
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueStringstring
url1..1uriFixed Value
useΣ ?!0..1codeBinding
typeΣ0..1codeBinding
textΣ0..1string
lineΣ0..*string
cityΣ0..1string
districtΣ0..1string
stateΣ0..1string
postalCodeΣ0..1string
countryΣ0..1string
periodΣ C0..1Period
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoC0..*Attachment
id0..1string
contactRankC0..1Extension(positiveInt)
copyCorrespondenceIndicatorC0..1Extension(boolean)
modifierExtensionΣ ?! C0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
id0..1string
extensionC0..*Extension
id0..1string
otherContactSystemC0..1Extension(Coding)
value0..1System.String
valueΣ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ C0..1Period
address0..1Address
gender0..1codeBinding
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
periodC0..1Period
id0..1string
id0..1string
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueCodingCoding
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueCodingCoding
url1..1uriFixed Value
modifierExtensionΣ ?! C0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
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Σ0..1string
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Σ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..1uriFixed Value
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
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
typeΣ1..1codeBinding

Differential from UK Core Patient

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueAddressAddress
birthSexC0..1Extension(code)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueBooleanboolean
contactPreferenceC0..1Extension(Complex)
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueCodeableConceptCodeableConcept
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueDateTimedateTime
url1..1uriFixed Value
ethnicCategoryC0..1Extension(CodeableConcept)
residentialStatusC0..1Extension(CodeableConcept)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueBooleanboolean
medicalApplianceSupplierS C0..1Extension(Reference())
nominatedPharmacyS C0..1Extension(Reference())
preferredDispenserOrganizationS C0..1Extension(Reference())
modifierExtension?! C0..*Extension
id0..1string
nhsNumberVerificationStatusC0..1Extension(CodeableConcept)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
activeΣ ?!0..1boolean
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ0..1string
givenS Σ0..5string
prefixΣ0..*string
suffixΣ0..*string
periodΣ C0..1Period
id0..1string
extensionC0..*Extension
id0..1string
otherContactSystemC0..1Extension(Coding)
value0..1System.String
valueΣ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ C0..1Period
genderS Σ0..1codeBinding
id0..1string
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueDateTimedateTime
value0..1System.Date
deceasedBooleanboolean
deceasedDateTimedateTime
id0..1string
id0..1string
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueCodingCoding
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueStringstring
url1..1uriFixed Value
useΣ ?!0..1codeBinding
typeΣ0..1codeBinding
textΣ0..1string
lineΣ0..*string
cityΣ0..1string
districtΣ0..1string
stateΣ0..1string
postalCodeΣ0..1string
countryΣ0..1string
periodΣ C0..1Period
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoC0..*Attachment
id0..1string
contactRankC0..1Extension(positiveInt)
copyCorrespondenceIndicatorC0..1Extension(boolean)
modifierExtensionΣ ?! C0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
id0..1string
extensionC0..*Extension
id0..1string
otherContactSystemC0..1Extension(Coding)
value0..1System.String
valueΣ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ C0..1Period
address0..1Address
gender0..1codeBinding
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
periodC0..1Period
id0..1string
id0..1string
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueCodingCoding
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueCodingCoding
url1..1uriFixed Value
modifierExtensionΣ ?! C0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
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Σ0..1string
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Σ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..1uriFixed Value
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
displayΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
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
typeΣ1..1codeBinding

Implementation Guidance

The NHSDigital-Patient resource must be provided by prescribing systems within the prescription-order and prescription-order-update message. It will be consumed by dispensing systems.

FHIR Element EPS Usage
identifier Mandatory and must use the NHS Number
name Mandatory. The usual name of the patient.
gender Mandatory
birthDate Mandatory
address Mandatory. Full home address including postcode.
generalPractitioner ODS code of the patient's registered GP practice. Required for primary care prescriptions, otherwise can be omitted.

Example

{
  "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2",
  "resource": {
    "resourceType": "Patient",
    "identifier": [
      {
        "system": "https://fhir.nhs.uk/Id/nhs-number",
        "value": "5839945242"
      }
    ],
    "name": [
      {
        "use": "usual",
        "family": "TWITCHETT",
        "given": [
          "STACEY",
          "MARISA"
        ],
        "prefix": [
          "MS"
        ]
      }
    ],
    "gender": "female",
    "birthDate": "1998-04-30",
    "address": [
      {
        "use": "home",
        "line": [
          "10 HEATHFIELD",
          "COBHAM",
          "SURREY"
        ],
        "postalCode": "KT11 2QY"
      }
    ],
    "generalPractitioner": [
      {
        "identifier": {
          "system": "https://fhir.nhs.uk/Id/ods-organization-code",
          "value": "A83008"
        }
      }
    ]
  }
}

NHSDigital-PractitionerRole

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

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
costCentreS 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
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..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()
activeΣ0..1boolean
periodΣ C0..1Period
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Σ1..1uri
valueΣ1..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
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..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Σ1..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..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Σ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Σ0..1string
id0..1string
extensionC0..*Extension
systemΣ C0..1codeBinding
valueΣ1..1string
useΣ ?!1..1codeBinding
rankΣ0..1positiveInt
periodΣ C0..1Period
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
daysOfWeek0..*codeBinding
allDay0..1boolean
availableStartTime0..1time
availableEndTime0..1time
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
description1..1string
duringC0..1Period
availabilityExceptions0..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 PractitionerRole

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
costCentreS 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
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..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()
activeΣ0..1boolean
periodΣ C0..1Period
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Σ1..1uri
valueΣ1..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
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..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Σ1..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..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Σ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Σ0..1string
id0..1string
extensionC0..*Extension
systemΣ C0..1codeBinding
valueΣ1..1string
useΣ ?!1..1codeBinding
rankΣ0..1positiveInt
periodΣ C0..1Period
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
daysOfWeek0..*codeBinding
allDay0..1boolean
availableStartTime0..1time
availableEndTime0..1time
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
description1..1string
duringC0..1Period
availabilityExceptions0..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

The NHSDigital-PractitionerRole resource must be provided by prescribing systems within the prescription-order and prescription-order-update message. It will be consumed by dispensing systems.

FHIR Element EPS Usage
identifier The user's sds-user-role-id obtained during the process of user authentication. Use the system of https://fhir.nhs.uk/Id/sds-role-profile-id.
code The user's SDS-JobRoleCode obtained during the process of user authentication. Use the system of https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName.
practitioner Either a reference to an NHSDigital-Practitioner resource, or the practitioner by an identifier.
When used within the NHSDigital-MedicationRequest the complete Practitioner resource is required.
When used within the NHSDigital-MedicationDispense and NHSDigital-Claim the Practitioner can be referenced by identifier, and practitioner.display is required and must be the practitioner's full name.
organization A reference to an NHSDigital-Organization resource.
telecom A valid telephone number for the user when operating in this role.

Example

When referencing complete Practitioner and Organization resources.

{
    "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666",
    "resourceType": "PractitionerRole",
    "identifier": [
        {
            "system": "https://fhir.nhs.uk/Id/sds-role-profile-id",
            "value": "741555508105"
        }
    ],
    "code": [
        {
            "coding": [
                {
                    "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName",
                    "code": "S8000:G8000:R8000",
                    "display": "Clinical Practitioner Access Role"
                }
            ]
        }
    ],
    "practitioner": {
        "reference": "urn:uuid:d60ce51d-df79-40a5-b07b-cdd2245928d9"
        ... include the referenced Practitioner resource in the payload
    },
    "organization": {
        "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b"
        ... include the referenced Organization resource in the payload
    },
    "telecom": [
        {
            "system": "phone",
            "use": "work",
            "value": "0532567890"
        }
    ]
}

Example

When referencing the Practitioner by identifier.

{
    "resourceType": "PractitionerRole",
    "id": "performer",
    "identifier": [
        {
            "system": "https://fhir.nhs.uk/Id/sds-role-profile-id",
            "value": "741555508105"
        }
    ],
    "code": [
        {
            "coding": [
                {
                    "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName",
                    "code": "S8000:G8000:R8000",
                    "display": "Clinical Practitioner Access Role"
                }
            ]
        }
    ],
    "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 payload
    },
    "telecom": [
        {
            "system": "phone",
            "use": "work",
            "value": "0532567890"
        }
    ]
}

NHSDigital-Practitioner

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

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
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
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..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()
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..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()
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..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()
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..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()
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
activeΣ0..1boolean
nameS Σ1..*HumanName
id0..1string
extensionC0..*Extension
systemΣ C0..1codeBinding
valueΣ1..1string
useΣ ?!1..1codeBinding
rankΣ0..1positiveInt
periodΣ C0..1Period
addressΣ0..*Address
genderΣ0..1codeBinding
birthDateΣ0..1date
photoC0..*Attachment
id0..1string
extensionC0..*Extension
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()
code1..1CodeableConcept
periodC0..1Period
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
communication0..*CodeableConceptBinding

Differential from UK Core Practitioner

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
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
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..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()
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..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()
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..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()
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..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()
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
activeΣ0..1boolean
nameS Σ1..*HumanName
id0..1string
extensionC0..*Extension
systemΣ C0..1codeBinding
valueΣ1..1string
useΣ ?!1..1codeBinding
rankΣ0..1positiveInt
periodΣ C0..1Period
addressΣ0..*Address
genderΣ0..1codeBinding
birthDateΣ0..1date
photoC0..*Attachment
id0..1string
extensionC0..*Extension
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()
code1..1CodeableConcept
periodC0..1Period
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
communication0..*CodeableConceptBinding

Implementation Guidance

This resource is referenced by NHSDigital-PractitionerRole and identifies a clinical practitioner.

identifier

When used for an EPS prescription, two identifiers must be provided.

  1. The user's sds-user-id obtained during the process of user authentication.
  2. The relevant identifier as required by the NHS BSA for prescription processing such as the Doctor's Index Number (DIN) or General Pharmaceutical Council (GPhC) Code. Refer to the profile definition above for the code system and format for each identifier. Refer to NHS BSA documentation for the use of each identifier.

Example

"identifier": [
    {
        "system": "https://fhir.nhs.uk/Id/sds-user-id",
        "value": "555086689106"
    },
    {
        "system": "https://fhir.hl7.org.uk/Id/gmc-number",
        "value": "6095103"
    }
]

name

Mandatory when used within a NHSDigital-MedicationRequest and NHSDigital-MedicationDispense.

NHSDigital-Organization

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

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
mainLocationC0..*Extension(Reference())
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valuePeriodPeriod
relationshipsC0..1Extension(Complex)
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
activeΣ ?!0..1boolean
id0..1string
activePeriodC0..*Extension(Complex)
organisationRoleC0..1Extension(Complex)
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
nameS Σ C0..1string
alias0..*string
id0..1string
extensionC0..*Extension
systemΣ C0..1codeBinding
valueΣ1..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ C0..1Period
addressS C0..*Address
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Σ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
purpose0..1CodeableConceptBinding
name0..1HumanName
telecomC0..*ContactPoint
address0..1Address
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 Organization

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
mainLocationC0..*Extension(Reference())
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valuePeriodPeriod
relationshipsC0..1Extension(Complex)
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference()
activeΣ ?!0..1boolean
id0..1string
activePeriodC0..*Extension(Complex)
organisationRoleC0..1Extension(Complex)
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
nameS Σ C0..1string
alias0..*string
id0..1string
extensionC0..*Extension
systemΣ C0..1codeBinding
valueΣ1..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ C0..1Period
addressS C0..*Address
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Σ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
purpose0..1CodeableConceptBinding
name0..1HumanName
telecomC0..*ContactPoint
address0..1Address
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

This resource is referenced by NHSDigital-PractitionerRole and identifies an NHS organisation.

FHIR Element EPS Usage
identifier The ODS code of the organisation
name The name of the organisation
telecom A valid telephone number for the organisation
address A valid postal address for the organisation
partOf Required for primary care prescriptions for the ODS code and name of the parent CCG organisation of the prescribing organisation.
Otherwise optional.

NOTE: EPSAT (non-production EPS API testing tool) currently requires the inclusion of "partOf" when preparing and signing a test prescription.

Example

{
  "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8",
  "resource": {
    "resourceType": "Organization",
    "identifier": [
      {
        "system": "https://fhir.nhs.uk/Id/ods-organization-code",
        "value": "A83008"
      }
    ],
    "name": "HALLGARTH SURGERY",
    "telecom": [
      {
        "system": "phone",
        "use": "work",
        "value": "0115 9737320"
      }
    ],
    "address": [
      {
        "use": "work",
        "type": "both",
        "line": [
          "HALLGARTH SURGERY",
          "CHEAPSIDE"
        ],
        "city": "SHILDON",
        "district": "COUNTY DURHAM",
        "postalCode": "DL4 2HP"
      }
    ],
    "partOf": {
      "identifier": {
        "system": "https://fhir.nhs.uk/Id/ods-organization-code",
        "value": "84H"
      },
      "display": "NHS COUNTY DURHAM CCG"
    }
  }
}

back to top