UKCore-MedicationRequest
MedicationRequest
{ "resourceType": "MedicationRequest", "id": "b269d1d7-1acf-47bb-8b3c-e38b583d9a07", "extension": [ { "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", "extension": [ { "url": "numberOfPrescriptionsIssued", "valueUnsignedInt": 1 }, { "url": "authorisationExpiryDate", "valueDateTime": "2023-09-10T19:00:00.000Z" } ] } ], "identifier": [ { "system": "https://fhir.nhs.uk/Id/prescription-order-number", "value": "CDT38E-Y765968-4FG3BQ" } ], "status": "active", "intent": "plan", "category": [ { "coding": [ { "system": "http://terminology.hl7.or/CodeSystem/medicationrequest-category", "code": "community", "display": "Community" } ] } ], "medicationCodeableConcept": { "coding": [ { "system": "http://snomed.info/ct", "code": "3113111000001106", "display": "Pulmicort 100 Turbohaler (AstraZeneca UK Ltd)" } ] }, "subject": { "reference": "Patient/9000000009", "identifier": { "system": "https://fhir.nhs.uk/Id/nhs-number", "value": "9000000009" }, "display": "Jane Smith" }, "requester": { "reference": "Practitioner/16708936-6397-4e03-b84f-4aaa790633e0" }, "courseOfTherapyType": { "coding": [ { "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-MedicationRequestCourseOfTherapy", "code": "continuous", "display": "Continuous long term therapy" } ] }, "authoredOn": "2022-10-13T16:20:27+07:00", "substitution": { "allowedBoolean": false }, "dosageInstruction": [ { "text": "One to two puffs to be inhaled as needed", "method": { "coding": [ { "system": "http://snomed.info/sct", "code": "420652005", "display": "Until Gone" } ] } } ] }
Definition
An order or request for both supply of the medication and the instructions for administration of the medication to a patient. The resource is called "MedicationRequest" rather than "MedicationPrescription" or "MedicationOrder" to generalize the use across inpatient and outpatient settings, including care plans and so on, and to harmonize with workflow patterns.
Minimum Viable Content
The minimum viable content that all provider and consumer systems should support contains the following elements:
Element | Required? |
---|---|
id | |
meta.profile | |
extension[medicationRepeatInformation] | |
identifier | |
status | |
statusReason | |
intent | |
category | |
priority | |
doNotPerform | |
reported | |
medicationCodeableConcept | |
subject | |
encounter | |
supportingInformation | |
authoredOn | |
requester | |
performer | |
performerType | |
recorder | |
reasonCode | |
reasonReference | |
instantiatesCanonical | |
instantiatesUri | |
basedOn | |
groupIdentifier | |
courseOfTherapyType | |
insurance | |
note | |
dispenseRequest | |
substitution | |
priorPrescription | |
detectedIssue | |
eventHistory |
id
DataType | Optionality | Cardinality |
---|---|---|
identifier | required | 1:1 |
The logical identifier
of the MedicationRequest
resource.
Example
"id":"44f85d15-8744-47c2-a790-4f5e38aacdb0"
meta.profile
DataType | Optionality | Cardinality |
---|---|---|
uri | required | 1:1 |
The MedicationRequest
profile URL.
Fixed value: https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest
Example
"meta": { "profile": [ "https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest" ]
extension:medicationRepeatInformation
DataType | Optionality | Cardinality |
---|---|---|
Extension | conditional | 0:1 |
Extension elements to hold details of repeat authorisation.
Only populate for a MedicationRequest
with an intent = plan. For a MedicationRequest
with an intent = order none of the repeatInformation fields are populated.
This extension must be present for continuous
and continuous-repeat-dispensing
therapy types.
medicationRepeatInformation.authorisationExpiryDate
Only populate for a MedicationRequest
with an intent = plan. For a MedicationRequest
with an intent = order this is not populated.
medicationRepeatInformation.numberOfPrescriptionsIssued
Running total of number of issues made against a repeat authorisation.
MUST be zero, if not yet issued.
Example
"extension": [ { "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", "extension": [ { "url": "numberOfPrescriptionsIssued", "valueUnsignedInt": 2 }, { "url": "authorisationExpiryDate", "valueDateTime": "2022-10-11T19:00:00.000Z" } ] } ],
identifier
DataType | Optionality | Cardinality |
---|---|---|
identifier | required | 1:1 |
This MUST be populated with a globally unique and persistent identifier (that is, it doesn’t change between requests and therefore stored with the source data). This MUST be scoped by a provider specific namespace for the identifier.
Where consuming systems are integrating data from this resource to their local system, they MUST also persist this identifier at the same time.
If the EPS identifier is present (will only be with an intent
of order) then the identifier.value is where the EPS Id SHOULD also be added. The codeSystem for this identifier is https://fhir.nhs.uk/Id/prescription-order-item-number
Example of intent order with EPS Id
"identifier" : [ { "system" : "https://fhir.nhs.uk/Id/prescription-order-item-number", "value" : "4857b9d3-b714-44b9-9e67-3df67275b785" }, ]
Example of intent plan with uuid
"identifier": [ { "system": "https://tools.ietf.org/html/rfc4122", "value": "42b4a841-9d69-4d13-bf91-ee5882e85765" } ],
Comment
This is a business identifier, not a resource identifier.
status
DataType | Optionality | Cardinality |
---|---|---|
code | required | 1:1 |
A code specifying the current state of the order. Generally, this will be active or completed state.
code | Definition |
---|---|
active | Represents an active authorisation - used for active medications/medical devices. |
stopped | Represents an authorisation which has been discontinued, cancelled or stopped. |
completed | Represents an authorisation which has run its course. |
For MedicationRequest instances where intent is set to plan:
- For repeats and repeat dispensed the status refers to the status of the plan (the entire cycle of prescriptions).
- For acutes the status refers to the status of the prescription issue.
For MedicationRequest instances where intent is set to order:
- The status refers to the status of the prescription issue.
Example
"status" : "active",
statusReason
DataType | Optionality | Cardinality |
---|---|---|
code | optional | 0:1 |
Where a medication/medical device has been stopped (status == ‘stopped’), the reason is provided in the statusReason extension.
Mandatory for authorisations with stopped status.
Only populate for a MedicationRequest with an intent = plan. Do not populate for a MedicationRequest with an intent = order.
Example
"statusReason": { "coding": [ { "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", "code": "0001", "display": "Prescribing Error" } ] },
intent
DataType | Optionality | Cardinality |
---|---|---|
code | required | 1:1 |
Whether the request is a plan
or order
.
plan
represents an authorisation of a medication or medical deviceorder
represents a prescription or issue of a medication/medical device
Example
"intent" : "order",
category
DataType | Optionality | Cardinality |
---|---|---|
code | required | 1:1 |
Required as part of the resource. Must be set to "community" as this includes requests for medications to be administered or consumed by the patient in their home (this would include long term care or nursing homes, hospices, etc.)
"category": [ { "coding": [ { "system": "http://terminology.hl7.or/CodeSystem/medicationrequest-category", "code": "community", "display": "Community" } ] } ],
medicationCodeableConcept
DataType | Optionality | Cardinality |
---|---|---|
code | required | 1:1 |
The medicationCodeableConcept.text should be the description for the medication.
The medicationCodeableConcept.coding.code should be the code for the medication.
- Supported codesystems: DM+D
The medicationCodeableConcept.coding.display should be the description for the medication, i.e. the same value as medicationCodeableConcept.text.
Example
"medicationCodeableConcept": [ { "coding": [ { "system": "https://dmd.nhs.uk", "code": 329526003, "display": "Apirin 300mg dispersible tablets" } ] } ],
subject
DataType | Optionality | Cardinality |
---|---|---|
Reference(Patient) | required | 1:1 |
Reference to the patient that the medication is for.
Example
"subject" : { "reference" : "Patient/9000000009", "identifier" : { "system" : "https://fhir.nhs.uk/Id/nhs-number", "value" : "9000000009" }, "display" : "Jane Smith" },
authoredOn
DataType | Optionality | Cardinality |
---|---|---|
dateTime | required | 1:1 |
Authorisation date, when the medication/medical device was authorised.
Example
"authoredOn" : "2022-10-13T16:20:27+07:00",
requester
DataType | Optionality | Cardinality |
---|---|---|
Reference | optional | 1:1 |
A business-required element identifying the clinically qualified human prescriber referenced by a PractitionerRole resource.
They may be other possible references depending on the use case the full list is below. The resource being referenced should conform to one of the following:
Example
"requester" : { "reference" : "PractitionerRole/ed313d93-f470-420f-ae4e-2b7eb91d3f45", "display" : "Dr Jane Smith" },
basedOn
DataType | Optionality | Cardinality |
---|---|---|
Reference(MedicationRequest) | Conditional | 0..1 |
This field is used to create the links between MedicationRequest
profiles to represent the medication ordering process as described here. This MUST be used when a profile has an intent
element that is set to order
and is basedOn
a MedicationRequest
profile that has an intent
set to plan
.
DO NOT USE for authorisations - that is, for a MedicationRequest
with intent
of plan
.
Example
"basedOn": [ { "reference": "MedicationRequest/06c7d0e2-1022-4e47-ac55-f6463d701a4f" } ],
groupIdentifier
DataType | Optionality | Cardinality |
---|---|---|
identifier | required | 1:1 |
The EPS prescriptionID if this medication or medical device has been prescribed via the Electronic Prescriptions Service. The element in the Identifier data type that MUST be populated when a groupIdentifier is populated is identifier.value.
All EPS prescribed drugs MUST have the prescriptionID present in this field and have system element set to https://fhir.nhs.uk/Id/prescription-order-number.
Example
"groupIdentifier" : { "system" : "https://fhir.nhs.uk/Id/prescription-order-number", "value" : "PDI12E-Y765908-4FF3LQ" },
courseOfTherapyType
DataType | Optionality | Cardinality |
---|---|---|
Code | required | 1:1 |
Necessary in order to denote the type of therapy, such as an acute/one-off medication compared to a repeat/on-going medication.
Will be used in order to denote whether a prescription is acute or repeat.
Code | System | Display |
---|---|---|
continuous | http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy | Continuous long term therapy |
acute | http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy | Short course (acute) therapy |
Example
"courseOfTherapyType" : { "coding" : [ { "system" : "https://fhir.hl7.org.uk/CodeSystem/UKCore-MedicationRequestCourseOfTherapy", "code" : "continuous", "display" : "Continuous long term therapy" } ] },
note
DataType | Optionality | Cardinality |
---|---|---|
Annotation | optional | 0:* |
Use when the prescriber wishes to provide supporting textual information to the dispenser.
Example
"note" : [ { "authorString" : "Patient", "text" : "Ran out of previous prescription" } ]
dosageInstruction
DataType | Optionality | Cardinality |
---|---|---|
Dosage | required | 0..* |
Preferable as a structured dosage aligned to the FHIR Dose Syntax Guidance but as a minimum, dosage.text.
Example
"dosageInstruction" : [ { "text" : "One to two puffs to be inhaled as needed", "method" : { "coding" : [ { "system" : "http://snomed.info/sct", "code" : 420652005, "display" : "Until Gone" } ] } } ]
dispenseRequest
DataType | Optionality | Cardinality |
---|---|---|
BackboneElement | required | 0..1 |
dispenseRequest.numberOfRepeatsAllowed
DataType | Optionality | Cardinality |
---|---|---|
unsignedInt | optional | 0..1 |
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. Usage Notes: This integer does not include the original order dispense. This means that if an order indicates dispense 30 tablets plus "3 repeats", then the order can be dispensed a total of 4 times and the patient can receive a total of 120 tablets. A prescriber may explicitly say that zero refills are permitted after the initial dispense.
The number of repeat issues authorised if specified.
MUST be present where a continuous
is authorised for a defined number of issues.
MUST NOT be specified where the number of repeat issues has not been defined. Therefore, the numberOfRepeats
allowed is the total number of allowed issues. See also extension repeatInformation
Example
"numberOfRepeatsAllowed": 6,
dispenseRequest.quantity
DataType | Optionality | Cardinality |
---|---|---|
simpleQuantity | required | 0..1 |
The amount that is to be dispensed for one fill.
"quantity": { "value": 1, "unit": "inhaler", "system": "http://snomed.info/sct", "code": "334980009" },
dispenseRequest.expectedSupplyDuration
DataType | Optionality | Cardinality |
---|---|---|
Duration | required | 0..1 |
Number of days’ supply per dispense.
"expectedSupplyDuration": { "value": 28, "unit": "days", "system": "http://unitsofmeasure.org", "code": "d" },
dispenseRequest.performer
DataType | Optionality | Cardinality |
---|---|---|
Duration | required | 0..1 |
Patients pharmacy preferences may be sourced from PDS.
Patients pharmacy preferences may be overriden by an 'one-off pharmacy nomination' by populating the dispenseRequest.performer.identifier with the ODS code of the destination pharmacy. The one off ODS code can be obtained from input element of the corresponding Task resource.
"performer": { "identifier": { "system": "https://fhir.nhs.uk/Id/ods-organization-code", "value": "FX748" } }
substitution
DataType | Optionality | Cardinality |
---|---|---|
BabckboneElement | required | 1..1 |
UK Core has profiled this element as mandatory and must have a default boolean value of false
to denote substitution is not allowed.
Example
"substitution": { "allowedBoolean": false }