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-Task

Task

Command 'tree' could not render: File was not found for 'https://fhir.hl7.org.uk/StructureDefinition/UKCore-Task'
Command 'dict' could not render: File was not found for 'https://fhir.hl7.org.uk/StructureDefinition/UKCore-Task'
{
    "resourceType": "Task",
    "id": "7c747c6e-15c8-4b2f-8aa0-441f2ef703d6",
    "identifier":  [
        {
            "system": "https://tools.ietf.org/html/rfc4122",
            "value": "30d65c8e-98e8-4806-b6a6-fpwjfkhs729"
        }
    ],
    "status": "requested",
    "intent": "order",
    "code": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "103742009",
                "display": "Renewal of prescription"
            }
        ]
    },
    "focus": {
        "reference": "MedicationRequest/b269d1d7-1acf-47bb-8b3c-e38b583d9a07"
    },
    "for": {
        "reference": "Patient/9000000009",
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/nhs-number",
            "value": "9000000009"
        },
        "display": "Jane Smith"
    },
    "authoredOn": "2022-10-13T09:20:27.000Z",
    "lastModified": "2022-10-13T09:20:27.000Z",
    "requester": {
        "reference": "Patient/9000000009",
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/nhs-number",
            "value": "9000000009"
        },
        "display": "Jane Smith"
    },
    "note":  [
        {
            "authorString": "Patient",
            "text": "ran out of previous prescription"
        }
    ],
    "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"
            }
        }
    ]
}

Definition

A Task resource describes an activity that can be performed and tracks the state of completion of that activity. It is a representation that an activity should be or has been initiated, and eventually, represents the successful or unsuccessful completion of that activity.

A Task resource often exists in parallel with clinical resources.

In this instance, the task will exist have a focus reference of a MedicationRequest.

Minimum Viable Content

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

Element Required?
id
meta.profile
instantiatesCanonical
instantiatesUri
basedOn
identifier
basedOn
groupIdentifier
partOf
status
statusReason
businessStatus
intent
priority
code
description
focus
for
encounter
executionPeriod
authoredOn
lastModified
requester
performerType
owner
reasonCode
reasonReference
insurance
note
relevantHistory
restriction
input
output

id

DataType Optionality Cardinality
identifier required 1:1

The logical identifier of the Task resource.

Example

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

meta.profile

DataType Optionality Cardinality
uri required 1:1

The Task profile URL.

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

Example

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

identifier

identifier must be present within the task resource and the value must be a UUID.

"identifier":  [
    {
        "system": "https://tools.ietf.org/html/rfc4122",
        "value": "5AC84C11-DB8B-44DA-8FCF-8980B3D13596"      
    }
],

Comment

This is a business identifier, not a resource identifier.

status

DataType Optionality Cardinality
code required 1:1

The status of the Task must be provided and updated as the Task passes through the GP system workflow.

Status Description
requested Repeat request has been submitted to the GP practice but processing has not started.
accepted The request has passed auto-system checks, e.g. valid patient, practice, etc. and is now pending user processing.
rejected The request will not be actioned. The business reason will be conveyed in ‘statusReason’, e.g. patient not known at the practice.
cancelled The patient cancelled the request before it was actioned.
in-progress The request has been processed by a prescription clerk and is awaiting confirmation/authorisation (signing) by a prescriber.
completed The prescription has been authorised/signed. Refer to the EPS state model for the dispensing status.
failed A prescription has not been authorised. The business reason will be conveyed in ‘statusReason’, e.g. on clinical grounds.

Example

 "status": completed

statusReason

DataType Optionality Cardinality
string optional, only used to notify the patient of rejection reasons 1:1

This will be free text containing the rejection reason to be shown back to the patient.

"statusReason": {
    "text": "No longer suitable, please contact GP to organise an appointment"
},

intent

DataType Optionality Cardinality
code required 1:1

Is needed for FHIR compliance reasons. The value must always be order in this use case.

    "intent": "order",

code

DataType Optionality Cardinality
code required 1:1

The code indicates the action to perform on the focus resource.

It is a Snomed CT and must always be set Renewal of prescription.

Snomed CT Display
103742009 Renewal of prescription
"code" : {
    "coding" : [ {
      "system" : "http://snomed.info/sct",
      "code" : 103742009,
      "display" : "Renewal of prescription"
    } ]
  },

focus

DataType Optionality Cardinality
Reference(MedicationRequest) required 1:1

The focus must point to a previous MedicationRequest when requesting an instance of a prescription. The MedicationRequest must have an intent of plan.

In returning the Task resource the provider must return a short summary of the referenced medication resource under the display element with the corresponding reference.

This display must contain the type of prescription, i.e. repeat, acute etc. and the title of the medication. See the example below.

Example

  "focus": {
    "reference": "MedicationRequest/b269d1d7-1acf-47bb-8b3c-e38b583d9a07"
    "display": "Repeat prescription for Pulmicort 100 Turbohaler (AstraZeneca UK Ltd)"
  },

for

DataType Optionality Cardinality
Reference(Patient) required 1:1

This must reference the patient that the request is for, using NHS number as the ID.

Example

  "for" : {
    "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

The dateTime of the request being made.

Example

  "authoredOn" : "2022-10-13T09:20:27.000Z",

lastModified

DataType Optionality Cardinality
dateTime optional 1:1
The `dateTime` that the Task object was last modified.

Example

  "lastModified" : "2022-10-13T09:20:27.000Z",

requester

DataType Optionality Cardinality
Reference(Patient) required 1:1

In this use case, since it is Patient Facing the requester must always be the Patient. Beyond MVP this could be updated to facilitate proxy ordering.

Example

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

note

DataType Optionality Cardinality
Annotation optional 0:1

Note to be supplied by the patient when completing the request.

Example

  "note": [
    {
      "authorString": "Patient",
      "text": "ran out of previous prescription"
    }
  ]

input

DataType Optionality Cardinality
Code optional 0:1

Information used to perform the task.

In this case it will be supplied when the patient wishes for their prescription to be dispensed by a different pharmacy to their nominated pharmacy on PDS.

When applicable it must contain the organization ODS code and reference the code preferred-performer.

The set of prescription ordering parameters can be found here.

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"
        }
    }
]

output

DataType Optionality Cardinality
Code Conditional 0..1

Information produced as part of the task.

This can be used to identify the prescription outside of the scope of the patient facing API.

In this specific case, once the prescription is created and been sent to EPS to be dispensed. This allows full end to end tracking of the request.

When applicable it must contain the EPS prescription ID and reference the code sent-to-eps.

The set of prescription ordering parameters can be found here.

Example

"output": [
    {
        "type": {
            "coding": [
                {
                    "system": "https://fhir.hl7.org.uk/GPConnect-PrescriptionOrderingParameters",
                    "code": "sent-to-eps",
                    "display": "Sent to EPS"
                }
            ]
        },
            "valueIdentifier": {
                "system": "https://fhir.nhs.uk/Id/prescription-order-item-number",
                "value": "4857b9d3-b714-44b9-9e67-3df67275b785"
            }
    }
]

back to top