• API Hub
  • Search loading...

    API Hub

    Explore and Make use of Nationally Defined Messaging APIs

     

    MedicationRequest resource

    Guidance for populating and consuming the MedicationRequest resource

    Introduction

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

    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 MUST be applied when populating the MedicationRequest profiles:

    1. All mandatory fields MUST be populated.

    2. Required fields MUST 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 resource.

    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.

    extension[repeatInformation].numberOfRepeatPrescriptionsAllowed

    Data type: PositiveInt Optionality: Required Cardinality: 0..1

    The number of repeat issues authorised if specified.

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

    MUST NOT be specified for acute medications or where the number of repeat issues has not been defined. There is no concept of an initial dispense in GP Connect usage. Therefore, the numberOfRepeats allowed is the total number of allowed issues.

    extension[repeatInformation].numberOfRepeatPrescriptionsIssued

    Data type: PositiveInt Optionality: Mandatory Cardinality: 1..1

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

    MUST 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.

    extension[statusReason]

    Data type: extension (statusReason) Optionality: Required Cardinality: 0..1

    Where a medication has been stopped (status == ‘stopped’), the reason is provided in the statusReason extension.

    Mandatory for authorisations with stopped status.

    extension[statusReason].date

    Data type: extension (valueDateTime) Optionality: Mandatory Cardinality: 1..1

    The dateTime the medication was stopped/discontinued.

    Mandatory for stopped/discontinued medications as the date will always be known. In exceptional cases where for legacy data there is no statusReason recorder in the system then this MUST 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.

    MUST be populated when StatusReason.date is populated.

    extension[prescriptionType]

    Data type: extension (prescriptionType) Optionality: Mandatory Cardinality: 0..1

    If a medication is an acute, acute-handwritten, delayed acute, repeat or repeat dispense.

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

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

    identifier

    Data type: Identifier Optionality: Mandatory Cardinality: 1..*

    This is for business identifiers.

    This is sliced to include a cross care setting identifier which MUST be populated. The codeSystem for this identifier is https://fhir.nhs.uk/Id/cross-care-setting-identifier.

    This MUST be a GUID.

    Providing systems MUST ensure this GUID is globally unique and a persistent identifier (i.e. doesn’t change between requests and therefore stored with the source data).

    Where consuming systems are integrating data from this resource to their local system, they MUST also persist this GUID at the same time.

    If the EPS identifier is present then the identifier.value is where the EPS Id SHOULD also be added.

    basedOn

    Data type: Reference(CarePlan, MedicationRequest, ProcedureRequest, ReferralRequest) Optionality: Required Cardinality: 0..*

    This field is used to create the links between MedicationRequest resources to represent the medication ordering process as described here. This MUST be used when a resource has an intent element that is set to order and is basedOn a MedicationRequest resource that has an intent set to plan.

    DO NOT USE for authorisations - that is, for a MedicationRequest with intent of plan.

    groupIdentifier

    Data type: Identifier Optionality: Required Cardinality: 0..1

    Composite request this is part of. The element in the Identifier data type that MUST be populated when a groupIdentifier is populated is identifier.value.

    All repeat prescribed and repeat dispensed medications MUST have a group identifier that is populated for the ‘plan’ and all ‘orders’ relating to them.

    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.
    • 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 medication 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 the authorisation is for.

    The Medication resource provides the coded representation of the medication.

    subject

    Data type: Reference(Patient) Optionality: Mandatory Cardinality: 1..1

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

    Reference to patient.

    context

    Data type: Reference(Encounter) Optionality: Required Cardinality: 0..1

    The Encounter within which the medication was authorised.

    As per base profile guidance.

    authoredOn

    Data type: dateTime Optionality: Mandatory Cardinality: 1..1

    Authorisation date, when the medication was authorised.

    Unless there is a distinct user-modifiable availabilityTime 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.

    To be used if the medication was prescribed at another practice and has been imported via GP2GP. In that case, the onBehalfOf MUST be completed with a reference to the other organisation.

    If the medication has been prescribed elsewhere and, for example, is detailed in the sending system as a hospital medication, this MUST be detailed using an organisation.type code in the agent reference in the requester element.

    recorder

    Data type: Reference(Practitioner) Optionality: Mandatory Cardinality: 1..1

    The responsible Practitioner who authorised the medication.

    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 MUST be referenced here.

    reasonCode

    Data type: CodeableConcept Optionality: Optional Cardinality: 0..*

    The coded reason for authorising the medication.

    reasonReference

    Data type: Reference(Condition), Reference(Observation) Optionality: Optional Cardinality: 0..*

    References the condition or observation that was the reason for this authorisation.

    Unless there is a specific linkage in the context of medication, indirect linkages to be handled via Problem list.

    note

    Data type: Annotation Optionality: Required Cardinality: 0..*

    All notes that are associated with this medication 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 MUST 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 MUST be supplied.

    For MedicationRequest instances where intent is set to plan:

    • For repeats and repeat dispensed this refers to the period of the plan (the entire cycle of prescriptions).
    • For acutes this refers to the period of the prescription issue

    For MedicationRequest instances where intent is set to order:

    • This refers to the period of the prescription issue.

    dispenseRequest.quantity

    Data type: SimpleQuantity Optionality: Required Cardinality: 0..1

    The quantity to dispense.

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

    dispenseRequest.quantityText

    Data type: String Optionality: Required Cardinality: 0..1

    Textual representation of quantity.

    Only to be used 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

    Nominated pharmacy for dispense.

    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.

    MedicationRequest elements not in use

    The following elements MUST NOT be populated:

    meta.versionId

    Data type: Id

    meta.lastUpdated

    Data type: Instant

    definition

    Data type: Reference(ActivityDefinition, PlanDefinition)

    This is not in scope for this version of Care Connect and therefore not available for use in GP Connect.

    category

    Data type: CodeableConcept

    This is not in scope for this version of Care Connect and therefore not available for use in GP Connect.

    priority

    Data type: code

    This is not in scope for this version of Care Connect and therefore not available for use in GP Connect.

    supportingInformation

    Data type: Reference(Any)

    This is not in scope for this version of Care Connect and therefore not available for use in GP Connect.

    substitution

    Data type: BackboneElement

    This is not in scope for this version of Care Connect and therefore not available for use in GP Connect.

    detectedIssue

    Data type: Reference(DetectedIssue)

    This is not in scope for this version of Care Connect and therefore not available for use in GP Connect.

    eventHistory

    Data type: Reference(Provenance)

    This is not in scope for this version of Care Connect and therefore not available for use in GP Connect.


    All content is available under the Open Government Licence v3.0, except where otherwise stated