GP Connect (Patient Facing) Prescriptions - FHIR API

This guidance is under active development by NHS Digital and content may be added or updated on a regular basis.
Note: This is a deprecated version (draft) of the specification - please see the latest for the latest version.

UKCore-MedicationStatement

MedicationStatement

Command 'tree' could not render: File was not found for 'https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationStatement'
Command 'dict' could not render: File was not found for 'https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationStatement'
{
    "resourceType": "MedicationStatement",
    "id": "44f85d15-8744-47c2-a790-4f5e38aacdb0",
    "identifier":  [
        {
            "system": "https://tools.ietf.org/html/rfc4122",
            "value": "123jkwndf-1234-dgdg-134dd-4f5e38aacdb0"
        }
    ],
    "basedOn":  [
        {
            "reference": "MedicationRequest/0ae6ac98-6b0f-404f-a95b-c38a4318f686",
            "display": "Repeat prescription request for Aspirin 300mg Dispersible tablets."
        }
    ],
    "status": "active",
    "medicationCodeableConcept": {
        "coding":  [
            {
                "system": "https://dmd.nhs.uk",
                "code": "329526003",
                "display": "Aspirin 300mg dispersible tablets"
            }
        ]
    },
    "subject": {
        "reference": "Patient/9000000009",
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/nhs-number",
            "value": "9000000009"
        },
        "display": "Jane Smith"
    },
    "effectivePeriod": {
        "start": "2022-10-23T13:50:00+00:00",
        "end": "2023-01-10T13:50:00+00:00"
    },
    "dateAsserted": "2022-11-23T13:50:00+00:00",
    "dosage":  [
        {
            "text": "2 tablet - 4 times a day - at a meal - Dissolve or mix with water before taking - up to a maximum of 3.6 gram in 24 hours",
            "additionalInstruction":  [
                {
                    "coding":  [
                        {
                            "system": "http://snomed.info/sct",
                            "code": "417995008",
                            "display": "Dissolve or mix with water before taking"
                        }
                    ]
                }
            ],
            "timing": {
                "repeat": {
                    "frequency": 4,
                    "period": 1,
                    "periodUnit": "d",
                    "when":  [
                        "C"
                    ]
                }
            },
            "doseAndRate":  [
                {
                    "doseQuantity": {
                        "value": 2,
                        "unit": "tablet",
                        "system": "http://snomed.info/sct",
                        "code": "428673006"
                    }
                }
            ]
        }
    ]
}

Minimum Viable Content

A minimum viable content that all provider and consumer systems should support is the following elements.

Element Required?
id
meta.profile
extension[pharmacistVerifiedIndicator]
extension[medicationPrescribingOrganization]
extension[medicationStatementLastIssued]
identifier
basedOn
partOf
status
statusReason
category
medicationCodeableConcept
subject
context
effectivePeriod
dateAsserted
informationSource
derivedFrom
reasonCode
reasonReference
note
dosage

id

DataType Optionality Cardinality
identifier required 1:1

The logical identifier of the MedicationStatement resource.

Example

 "id":"44f85d15-8744-47c2-a790-4f5e38aacdb0" 

meta.profile

DataType Optionality Cardinality
uri required 1:1

The MedicationStatement profile URL.

Fixed value: https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationStatement

Example

  "meta": {
    "profile": [
      "https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationStatement"
    ]

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

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

Example

    "identifier": {
      "system": "https://tools.ietf.org/html/rfc4122",
      "value": "123jkwndf-1234-dgdg-134dd-4f5e38aacdb0"
    },

basedOn

DataType Optionality Cardinality
Reference required 1:1

Must reference a MedicationRequest within the basedOn attribute: MedicationRequests provide details of specific prescriptions. The referenced MedicationRequest must have intent of plan.

The display within basedOn should quote the courseOfTherapyType from the referenced MedicationRequest, showing the prescription treatment type.

Example

      "basedOn" : {
        "reference" : "MedicationRequest/0f450c33-67b2-4ca3-b0f9-fea75ccdcd44",
        "display" : "Acute prescription request for Amoxicillin 250mg capsules."
      },

status

DataType Optionality Cardinality
code required 1:1

The status of the authorisation.

Use one of active, completed or stopped:

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

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

  • complete represents an authorisation which has run its course

For repeat and repeat dispensed the status refers to the status of the plan (the entire cycle of prescriptions).

For acute, the status refers to the status of the prescription issue.

Example

 "status": active

medicationCodeableConcept

DataType Optionality Cardinality
code required 1:1

Where the requested medication is contained within the NHS dm+d then it must be recorded using the dm+d standard.

  • The medicationCodeableConcept.coding.code should be the code for the medication.

  • The medicationCodeableConcept.coding.display should be the description for the medication, i.e. the same value as medicationCodeableConcept.text.

Example

    "medicationCodeableConcept": [
      {
        "coding": [
          {
            "system": "http://snomed.info/ct",
            "code": 3113111000001106,
            "display": "Pulmicort 100 Turbohaler (AstraZeneca UK Ltd)"
          }
        ]
      }
    ]

subject

DataType Optionality Cardinality
Reference(Patient) required 1:1

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

Reference to Patient.

Example

"subject": {
    "reference": "Patient/9000000009",
    "identifier": {
        "system": "https://fhir.nhs.uk/Id/nhs-number",
        "value": "9000000009"
    },
    "display": "Jane Smith"
},

effectivePeriod

DataType Optionality Cardinality
Period required 1:1

The period the medication or medical device is authorised under this medication/medical device plan. For items that are repeats and repeat dispensed this refers to the entire cycle of prescriptions made under the authorisation. For acutes, this refers to the period of the prescription issue.

effectivePeriod.start is mandatory

The date from which the medication or medical device is authorised under this plan.

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

  • the authorised date as recorded in the patient record

    • for authorisation that were performed during a consultation this will be the date when the consultation took place
  • the date of the first issue under the medication/medical device plan

  • the date the medication/medical device plan was recorded onto the system (the audit date)

effectivePeriod.end is required

The date when the authorisation under this plan ends.

Where the medication/medical device plan is still active, set to null.

Where the medication/medical device plan has ended use one of the following dates in order of descending preference:

  • the end date recorded in the patient record

  • the end date of the final issue under the medication/medical device plan. This is the start date of the final issue plus the expected supply duration.

  • the date the plan was updated to ended

  • 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 plan will always have an end date

Example

    "effectivePeriod": {
      "start": "2022-10-23T13:50:00+00:00",
      "end": "2023-01-10T13:50:00+00:00"
    },

dateAsserted

DataType Optionality Cardinality
dateTime required 1:1

When this medication statement was believed true.

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

    "dateAsserted": "2022-11-23T13:50:00+00:00",

dosage

DataType Optionality Cardinality
Dosage required 0:*

Preferable as a structured dosage aligned to the FHIR Dose Syntax Guidance but as a minimum, dosage.text must be used.

back to top