Skip to main content
Skip table of contents

Schema: MedicationRequest

Introduction

The headings below list the elements of the MedicationRequest profile and describe how to populate and consume them.

Important: Any element not specifically listed below will NOT be populated or consumed.

Tip: You’ll find it helpful to read it in conjunction with the underlying MedicationRequest profile definition

Overarching Principles

When populating the MedicationRequest profile it may appear that fields are duplicated in other associated resources. In the interests of minimising redundancy, the 2 following principles will be applied when populating the MedicationRequest profiles:

  1. All mandatory fields will be populated.

  2. Required fields will always be populated where the data exists in the system apart from where a lexically identical value exists for an equivalent data item in one of the parent profiles. For a MedicationRequest with intent of plan the associated MedicationStatement would be the parent profile. For a MedicationRequest with intent of order, the associated MedicationStatement and MedicationRequest with intent of plan are both considered parent profiles.

MedicationRequest Elements

id

Data type: Id

Optionality: Mandatory

Cardinality: 1..1

The logical identifier of the MedicationRequest profile.

meta.profile

Data type: uri

Optionality: Mandatory

Cardinality: 1..1

The MedicationRequest profile URL.

Fixed value https://fhir.nhs.uk/STU3/StructureDefinition/CareConnect-GPC-MedicationRequest-1

extension[repeatInformation]

Data type: Extension

Optionality: Required

Cardinality: 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.

extension[repeatInformation].numberOfRepeatPrescriptionsAllowed

Data type: UnsignedInt

Optionality: Required

Cardinality: 0..1

The number of repeat issues authorised if specified.

Will be present where a repeat is authorised for a defined number of issues.

Will NOT be specified for acute prescriptions or where the number of repeat issues has not been defined. The numberOfRepeats allowed is the total number of allowed issues.

extension[repeatInformation].numberOfRepeatPrescriptionsIssued

Data type: UnsignedInt

Optionality: Mandatory

Cardinality: 1..1

Running total of number of issues made against a repeat authorisation.

will be zero, if not yet issued.

extension[repeatInformation].authorisationExpiryDate

Data type: dateTime

Optionality: Required

Cardinality: 0..1

The date a repeat prescription authorisation will expire.

Only populate for a MedicationRequest with an intent = plan. For a MedicationRequest with an intent = order this is not populated.

extension[statusReason]

Data type: extension (statusReason)

Optionality: Required

Cardinality: 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.

extension[statusReason].date

Data type: extension (valueDateTime)

Optionality: Mandatory

Cardinality: 1..1

The dateTime the medication/medical device was stopped/discontinued.

Mandatory for stopped/discontinued medications/medical devices as the date will always be known. In exceptional cases where for legacy data there is no statusReason recorder in the system then this will be populated with the text ‘No information available’.

extension[statusReason].reason

Data type: extension (CodeableConcept)

Optionality: Required

Cardinality: 0..1

The textual reason either free text or the term of a code for stopping/discontinuing the medication/medical device.

Will be populated when StatusReason.date is populated.

Tip: Please see CodeableConcept and common code systems

extension[prescriptionType]

Data type: extension (CodeableConcept)

Optionality: Mandatory

Cardinality: 0..1

If a medication/medical device is an acute (code : acute), delayed acute (delayed-prescribing), repeat (repeat) or repeat dispense (repeat-dispensing).

This field provides an explicit repeat/acute flag rather than deriving it from the presence of extension elements or repeatNumber.

In exceptional cases where for legacy data there is no prescriptionType recorded in the system then this will be populated with the text ‘No information available’.

identifier

Data type: Identifier

Optionality: Mandatory

Cardinality: 1..*

This will be populated with a globally unique and persistent identifier (that is, it doesn’t change between requests and therefore stored with the source data).

If the EPS identifier is present 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

basedOn

Data type: Reference(CarePlan, MedicationRequest, ProcedureRequest, ReferralRequest)

Optionality: Required

Cardinality: 0..*

This field is used to create the links between MedicationRequest profiles to represent the medication ordering process as described here. This will 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.

groupIdentifier

Data type: Identifier

Optionality: Required

Cardinality: 0..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 will be populated when a groupIdentifier is populated is identifier.value.

All EPS prescribed drugs will have the prescriptionID present in this field and have system element set to https://fhir.nhs.uk/Id/prescription-order-number.

status

Data type: Code

Optionality: Mandatory

Cardinality: 1..1

The status of the authorisation.

Use one of active, completed or stopped:

  • active represents an active authorisation - used for active medications/medical devices.

  • stopped represents an authorisation which has been discontinued, cancelled or stopped.

  • complete 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.

intent

Data type: Code

Optionality: Mandatory

Cardinality: 1..1

Used to distinguish between authorisations and issues.

Use one of plan or order:

  • plan represents an authorisation of a medication or medical device.

  • order represents a prescription or issue of a medication or medical device.

medication

Data type: Reference(Medication)

Optionality: Mandatory

Cardinality: 1..1

The medication/medical device the authorisation is for.

The Medication profile provides the coded representation of the medication/medical device.

subject

Data type: Reference(Patient)

Optionality: Mandatory

Cardinality: 1..1

Who the medication/medical device is for - that is, to whom it will be administered.

Reference to patient.

context

Data type: Reference(Encounter)

Optionality: Required

Cardinality: 0..1

The consultation when the medication/medical device was authorised.

For a MedicationRequest with an intent = plan this is the consultation where the plan was authorised. For a MedicationRequest with an intent = order this is the consultation where the specific issue was authorised.

authoredOn

Data type: dateTime

Optionality: Mandatory

Cardinality: 1..1

Authorisation date, when the medication/medical device was authorised.

Unless there is a distinct user-modifiable date and time for the authorisation, this is the audit trail dateTime for when the authorisation was entered.

requester

Data type: BackboneElement

Optionality: Required

Cardinality: 0..1

Person and their organization requesting authorisation for prescription.

May not always be the user who entered the record on the system but, where a system supports attribution to a responsible clinician, the attributed clinician will be referenced here.

If it was prescribed at another practice, the onBehalfOf will be completed with a reference to the other organisation.

recorder

Data type: Reference(Practitioner)

Optionality: Mandatory

Cardinality: 1..1

The person who entered the record on the system.

note

Data type: Annotation

Optionality: Required

Cardinality: 0..*

All notes that are associated with this medication/medical device record.

Sometimes labelled Pharmacy text or instructions for pharmacy.

dosageInstruction

Data type: Dosage

Optionality: Mandatory

Cardinality: 1..1

The elements of the dosage datatype detailed below should be populated as described. All other elements that are part of the dosage datatype are optional.

dosageInstruction.text

Data type: String

Optionality: Mandatory

Cardinality: 1..1

Complete dosage instructions as text.

In exceptional cases where for legacy data there is no dosage information recorded in the system then this will be populated with the text ‘No information available’.

dosageInstruction.patientInstruction

Data type: String

Optionality: Required

Cardinality: 0..1

Additional instructions for patient - that is, RHS of prescription label.

dispenseRequest.validityPeriod

Data type: Period

Optionality: Mandatory

Cardinality: 1..1

Prescription start and end dates.

Start date is mandatory. Where there is a defined expiry or end date the end date will be supplied.

For MedicationRequest instances where intent is set to plan:

  • This refers to the period that the medication/medical device plan is active.

  • This will mirror MedicationStatement.effective

For MedicationRequest instances where intent is set to order:

  • This refers to the period that the issued prescription is active

Period.start is MANDATORY.

Use one of the following dates in order of descending preference:

  • The prescription issue date recorded in the patient record

  • The date the prescription was recorded.

Period.end is MANDATORY.

Use one of the following dates in order of descending preference:

  • The prescription end date recorded in the patient record

  • The prescription end date derived from period.start and the duration

  • The Period.start date

    • This option should only occur where data has been lost (for example, during the record transfer between two systems) and is used to ensure that an ended prescription will always have an end date.

dispenseRequest.quantity

Data type: SimpleQuantity

Optionality: Required

Cardinality: 0..1

The quantity to dispense.

If the value is text, then the extension dispenseRequest.quantityText will be used.

dispenseRequest.quantityText

Data type: String

Optionality: Required

Cardinality: 0..1

This field is used to contain the units relating to the quantity. For example, ‘tablet(s)’, ‘capsule(s)’ or ‘dose(s)’.

It may also be a textual representation of quantity. Only to be used in this way if there is no numerical value.

dispenseRequest.expectedSupplyDuration

Data type: Duration

Optionality: Required

Cardinality: 0..1

Number of days’ supply per dispense.

dispenseRequest.performer

Data type: Reference(Organization)

Optionality: Required

Cardinality: 0..1

The organisation that dispensed the issue. Is only completed where Medicus knows explicitly which organisation dispensed the issue. It cannot be assumed to be the nominated pharmacy or appliance supplier.

Only populate for a medicationRequest with an intent = order. For a medicationRequest with an intent = plan this field is not populated.

priorPrescription

Data type: Reference(MedicationRequest)

Optionality: Optional

Cardinality: 0..1

References prior prescription authorisation.

May be used, for example, to reference prior authorisation where prescription is re-authorised or where amendments have been made. May reference the previous authorisation before the amendment.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.