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.

How to request a new prescription

There are two entry points for ordering a new issue of a prescription

These start from either viewing a patient's Medications (MedicationStatement) or from viewing a patient's Prescriptions (MedicationRequest).

Starting with Medication

If a patient wants to view their medications, a standard user journey looks like this:

  1. Search by NHS number to obtain MedicationStatement resources related to the patient, using the endpoint: GET /FHIR/R4/Patient/{NHSNumber}/MedicationStatement.

    This returns a Bundle containing MedicationStatement's which includes information surrounding the medication to be displayed to the patient.

    Each MedicationStatement references a MedicationRequest with intent of plan. The MedicationRequest is a representation of the prescription, these contain further details about the prescription itself, i.e. whether it's acute or repeat and if it has expired.

  2. The next stage in the user journey would be to resolve the referenced MedicationRequest to obtain the courseOfTherapyType of the Prescription (as part of MVP we're only building for reordering of repeat prescriptions, although the API can cater for this), and also to validate that it is a valid authorization that hasn't expired. Use the Endpoint: GET /MedicationRequest/{id} for this stage.

    Once the prescription has been validated as authorized and repeat, we can then use the same id to request a reorder of that prescription.

  3. Create a new request of a prescription reorder using Task and having a focus that has a reference of the same MedicationRequest that has intent, the Task resource is then used as the requestbody for the endpoint: POST /FHIR/R4/Task/

  4. At this stage the patient can then track the status of the order, or send a cancellation up (until the point the request is actioned).

INTERACTION DIAGRAMS TO BE COMPLETED

Starting with Prescriptions

If a Patient wishes to start at viewing their Prescriptions, a standard user journey would look like this:

  1. Search by NHS Number to obtain MedicationRequest resources related to the patient, using the endpoint: GET /FHIR/R4/Patient/{NHSNumber}/MedicationRequest

    This returns a Bundle containing MedictionRequest's which includes information surrounding the Prescription's to be displayed to the patient.

    At this stage it is possible to verify which are repeat prescriptions, by the courseOfTherapyType and which are still authorized to be reordered.

  2. Now the id of the validated MedicationRequest can be used to create a new request of a prescription reorder.

This will be done the same way, using Task and having a focus that references the same MedicationRequest that has intent, the Task resource is then used as the requestbody for the endpoint: POST /FHIR/R4/Task/

  1. At this stage the patient can then track the status of the order, or send a cancellation (up until the point the request is actioned).

INTERACTION DIAGRAMS TO BE COMPLETED

Requesting to a one off pharmacy nomination

Should the patient choose to order to a one off nomination this can simply be done by including the ODS code of the one off nominated pharmacy in the input element of the Task resource.

Example:

        "input": [
            {
                "type": {
                    "coding": [
                        {
                            "system": "https://fhir.hl7.org.uk/GPConnect-PrescriptionOrderingParameters",
                            "code": "preferred-performer",
                            "display": "Preferred performer"
                        }
                    ]
                },
                "valueIdentifier": {
                    "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                    "value": "FLM49"
                }
            }
        ]

back to top