NHS Digital FHIR Medicines (Retired - 2.1.14)

This guidance is under active development by NHS Digital and content may be added or updated on a regular basis.

OperationDefinition

prepare

Name Url
prepare-message https://fhir.nhs.uk/OperationDefinition/MessageHeader-prepare-message

Invocations

URL: [base]/$prepare

Parameters (In)

NameCardinalityTypeDocumentation
content1..1Bundle

The prescription order message to process (without Provence resource)

Return Values (Out)

NameCardinalityTypeDocumentation
message-digest1..1string

Message Digest response containing the signed signature in XML format

This operation does not use the parameters resource for input parameters, it does for the response. \n\n A server may return one of several status codes: \n\n * 200 OK: Indicates that the message has been fully processed.

{
    "resourceType": "OperationDefinition",
    "id": "MessageHeader-prepare-message",
    "url": "https://fhir.nhs.uk/OperationDefinition/MessageHeader-prepare-message",
    "version": "4.0.1",
    "name": "Prepare Message",
    "status": "draft",
    "kind": "operation",
    "date": "2020-08-03T00:00:00+00:00",
    "publisher": "NHS Digital",
    "contact":  [
        {
            "telecom":  [
                {
                    "system": "email",
                    "value": "interoperabilityteam@nhs.net"
                }
            ]
        }
    ],
    "description": "Convert a prescription in FHIR format into the canonicalised HL7 V3 signature fragments which should be signed by the prescriber.",
    "code": "prepare",
    "comment": "This operation does not use the parameters resource for input parameters, it does for the response.  \\n\\n A server may return one of several status codes: \\n\\n * **200 OK**: Indicates that the message has been fully processed.",
    "system": true,
    "type": false,
    "instance": false,
    "parameter":  [
        {
            "name": "content",
            "use": "in",
            "min": 1,
            "max": "1",
            "documentation": "The prescription order message to process (without Provence resource)",
            "type": "Bundle"
        },
        {
            "name": "message-digest",
            "use": "out",
            "min": 1,
            "max": "1",
            "documentation": "Message Digest response containing the signed signature in XML format",
            "type": "string"
        }
    ]
}
<OperationDefinition xmlns="http://hl7.org/fhir">
    <id value="MessageHeader-prepare-message" />
    <url value="https://fhir.nhs.uk/OperationDefinition/MessageHeader-prepare-message" />
    <version value="4.0.1" />
    <name value="Prepare Message" />
    <status value="draft" />
    <kind value="operation" />
    <date value="2020-08-03T00:00:00+00:00" />
    <publisher value="NHS Digital" />
    <contact>
        <telecom>
            <system value="email" />
            <value value="interoperabilityteam@nhs.net" />
        </telecom>
    </contact>
    <description value="Convert a prescription in FHIR format into the canonicalised HL7 V3 signature fragments which should be signed by the prescriber." />
    <code value="prepare" />
    <comment value="This operation does not use the parameters resource for input parameters, it does for the response.  \n\n A server may return one of several status codes: \n\n * **200 OK**: Indicates that the message has been fully processed." />
    <system value="true" />
    <type value="false" />
    <instance value="false" />
    <parameter>
        <name value="content" />
        <use value="in" />
        <min value="1" />
        <max value="1" />
        <documentation value="The prescription order message to process (without Provence resource)" />
        <type value="Bundle" />
    </parameter>
    <parameter>
        <name value="message-digest" />
        <use value="out" />
        <min value="1" />
        <max value="1" />
        <documentation value="Message Digest response containing the signed signature in XML format" />
        <type value="string" />
    </parameter>
</OperationDefinition>

process-message

Name Url
process-message http://hl7.org/fhir/OperationDefinition/MessageHeader-process-message

Invocations

URL: [base]/$process-message

Parameters (In)

NameCardinalityTypeDocumentation
content1..1Bundle

The message to process (or, if using asynchronous messaging, it may be a response message to accept)

async0..1boolean

If 'true' the message is processed using the asynchronous messaging pattern

response-url0..1url

A URL to submit response messages to, if asynchronous messaging is being used, and if the MessageHeader.source.endpoint is not the appropriate place to submit responses

Return Values (Out)

NameCardinalityTypeDocumentation
return0..1Bundle

A response message, if synchronous messaging is being used (mandatory in this case). For asynchronous messaging, there is no return value

This operation does not use the parameters resource; the parameters "async" and "response-url" always go in the URL, if they are used, and the "content" parameter is always the body of the HTTP message.

When processing messages, a server may return one of several status codes:

  • 200 OK: Indicates that the message has been fully processed. If an application-level response is expected for the submitted message, that response SHALL be returned as the body of the 200 response.
  • 202 Accepted: Indicates that the receiving system has accepted custody of the message
  • 204 No Content: Indicates that the message has been fully processed and would normally have had an application-level response, but because of instructions from the sender (e.g. the messageheader-response-request extension), no response is being provided
  • 300+: Indicates that the message was not successfully processed. The server MAY return an OperationOutcome with additional information, and SHOULD do so if the response code is 400 or greater.<br/> The client SHALL interpret a 4xx response to indicate that there is no point resubmitting the unaltered message, and a 5xx response to indicate an unexpected error occurred on the part of the server, with the implication that it may be appropriate to resubmit the original message. Doing so SHOULD NOT result in a duplicate message response. Repeated failures indicate either a fatal problem with the submission or a problem with the receiving application.

The following rules apply when using $process-message:

  • The operation only accepts POST transactions - any other HTTP method will result in an HTTP error
  • The request content type submitted is always Bundle with type "message" containing a Message Header resource as the first resource
  • The response content type returned is always Bundle with type "message" containing a Message Header resource as the first resource, or an HTTP error
  • If the response is an error, the body SHOULD be an Errors ∓ Warning resource with full details
  • The mailbox may be authenticated using standard HTTP authentication methods, including OAuth

The $process-message operation can be used by any HTTP end-point that accepts FHIR messages, not just FHIR RESTful servers.

In order to ensure consistency of processing, the logical rules regarding processing of Bundle.id and message id SHALL be followed when messages are processed using this operation.

The $process-message operation may be used synchronously, or asynchronously.

The following rules apply when using the $process-message operation synchronously:

  • The URL (http://server/base/$process-message) has no parameters
  • It is an error if the sender POSTs a message that requires multiple response messages
  • Servers SHALL accept multiple concurrent message submissions and process them correctly (they are allowed to process them sequentially internally, but multiple concurrent submissions is not an error in its own right)

The following rules apply when using the $process-message operation asynchronously:

  • The URL has at least one parameter: http://server/base/$process-message?async=true
  • The server acknowledges the message with a 200 OK with no body, or returns an HTTP error if the message cannot be processed
  • Accepting the message means that the server has understood the message enough to know where to respond
  • An OperationOutcome SHOULD be returned in either case
  • By default, the server responds by invoking the $process-message using the sender's stated end-point in the message: POST [MessageHeader.source.endpoint]/$process-messages]
  • Since the source end-point may be manipulated by message transfer engines, an alternative response address may be specified using the parameter "response-url": http://server/base/$process-message?async=true&response-url=http://server2.com/base/anything. The endpoint at the specified URL SHALL implement the signature of the $process-message operation (parameter async=true, accept a Bundle, return a 200 OK or an error)
  • The server submits response messages to the appropriate end-point with the parameter async=true. There is no response message for the response messages

{
    "resourceType": "OperationDefinition",
    "id": "MessageHeader-process-message",
    "meta": {
        "lastUpdated": "2019-11-01T09:29:23.356+11:00"
    },
    "extension":  [
        {
            "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
            "valueInteger": 4
        },
        {
            "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
            "valueCode": "trial-use"
        }
    ],
    "url": "http://hl7.org/fhir/OperationDefinition/MessageHeader-process-message",
    "version": "4.0.1",
    "name": "Process Message",
    "status": "draft",
    "kind": "operation",
    "date": "2019-11-01T09:29:23+11:00",
    "publisher": "HL7 (FHIR Project)",
    "contact":  [
        {
            "telecom":  [
                {
                    "system": "url",
                    "value": "http://hl7.org/fhir"
                },
                {
                    "system": "email",
                    "value": "fhir@lists.hl7.org"
                }
            ]
        }
    ],
    "description": "This operation accepts a message, processes it according to the definition of the event in the message header, and returns one or more response messages.  \n\nIn addition to processing the message event, a server may choose to retain all or some the resources and make them available on a RESTful interface, but is not required to do so.",
    "code": "process-message",
    "comment": "This operation does not use the parameters resource; the parameters \"async\" and \"response-url\" always go in the URL, if they are used, and the \"content\" parameter is always the body of the HTTP message.\n\nWhen processing messages, a server may return one of several status codes:\n* **200 OK**: Indicates that the message has been fully processed.  If an application-level response is expected for the submitted message, that response SHALL be returned as the body of the 200 response.\n* **202 Accepted**: Indicates that the receiving system has accepted custody of the message\n* **204 No Content**: Indicates that the message has been fully processed and would normally have had an application-level response, but because of instructions from the sender (e.g. the [messageheader-response-request](extension-messageheader-response-request.html) extension), no response is being provided\n* **300+**: Indicates that the message was not successfully processed.  The server MAY return an [OperationOutcome](operationoutcome.html) with additional information, and SHOULD do so if the response code is 400 or greater.<br/>\n    The client SHALL interpret a 4xx response to indicate that there is no point resubmitting the unaltered message, and a 5xx response to indicate an unexpected error occurred on the part of the server, with the implication that it may be appropriate to resubmit the original message. Doing so SHOULD NOT result in a duplicate message response. Repeated failures indicate either a fatal problem with the submission or a problem with the receiving application.\n\nThe following rules apply when using $process-message:\n\n* The operation only accepts POST transactions - any other HTTP method will result in an HTTP error\n* The request content type submitted is always [Bundle](bundle.html) with type \"message\" containing a [Message Header](messageheader.html) resource as the first resource\n* The response content type returned is always [Bundle](bundle.html) with type \"message\" containing a [Message Header](messageheader.html) resource as the first resource, or an HTTP error\n* If the response is an error, the body SHOULD be an [Errors &mp; Warning](operationoutcome.html) resource with full details\n* The mailbox may be authenticated using standard HTTP authentication methods, including OAuth\n\nThe $process-message operation can be used by any HTTP end-point that accepts FHIR messages, not just FHIR RESTful servers.\n\nIn order to ensure consistency of processing, the [logical rules regarding processing of Bundle.id and message id](messaging.html#reliable) SHALL be followed when messages are processed using this operation.\n\nThe $process-message operation may be used synchronously, or asynchronously.\n\nThe following rules apply when using the $process-message operation synchronously:\n\n* The URL (http://server/base/$process-message) has no parameters\n* It is an error if the sender POSTs a message that requires multiple response messages\n* Servers SHALL accept multiple concurrent message submissions and process them correctly (they are allowed to process them sequentially internally, but multiple concurrent submissions is not an error in its own right)\n\nThe following rules apply when using the $process-message operation asynchronously:\n\n* The URL has at least one parameter: http://server/base/$process-message?async=true\n* The server acknowledges the message with a 200 OK with no body, or returns an HTTP error if the message cannot be processed\n* Accepting the message means that the server has understood the message enough to know where to respond\n* An [OperationOutcome](operationoutcome.html) SHOULD be returned in either case\n* By default, the server responds by invoking the $process-message using the sender's stated end-point in the message: POST [MessageHeader.source.endpoint]/$process-messages]\n* Since the source end-point may be manipulated by message transfer engines, an alternative response address may be specified using the parameter \"response-url\": http://server/base/$process-message?async=true&amp;response-url=http://server2.com/base/anything.  The endpoint at the specified URL SHALL implement the signature of the $process-message operation (parameter async=true, accept a Bundle, return a 200 OK or an error)\n* The server submits response messages to the appropriate end-point with the parameter async=true. There is no response message for the response messages",
    "resource":  [
        "MessageHeader"
    ],
    "system": true,
    "type": false,
    "instance": false,
    "parameter":  [
        {
            "name": "content",
            "use": "in",
            "min": 1,
            "max": "1",
            "documentation": "The message to process (or, if using asynchronous messaging, it may be a response message to accept)",
            "type": "Bundle"
        },
        {
            "name": "async",
            "use": "in",
            "min": 0,
            "max": "1",
            "documentation": "If 'true' the message is processed using the asynchronous messaging pattern",
            "type": "boolean"
        },
        {
            "name": "response-url",
            "use": "in",
            "min": 0,
            "max": "1",
            "documentation": "A URL to submit response messages to, if asynchronous messaging is being used, and if the MessageHeader.source.endpoint is not the appropriate place to submit responses",
            "type": "url"
        },
        {
            "name": "return",
            "use": "out",
            "min": 0,
            "max": "1",
            "documentation": "A response message, if synchronous messaging is being used (mandatory in this case). For asynchronous messaging, there is no return value",
            "type": "Bundle"
        }
    ]
}
<OperationDefinition xmlns="http://hl7.org/fhir">
    <id value="MessageHeader-process-message" />
    <meta>
        <lastUpdated value="2019-11-01T09:29:23.356+11:00" />
    </meta>
    <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
        <valueInteger value="4" />
    </extension>
    <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
        <valueCode value="trial-use" />
    </extension>
    <url value="http://hl7.org/fhir/OperationDefinition/MessageHeader-process-message" />
    <version value="4.0.1" />
    <name value="Process Message" />
    <status value="draft" />
    <kind value="operation" />
    <date value="2019-11-01T09:29:23+11:00" />
    <publisher value="HL7 (FHIR Project)" />
    <contact>
        <telecom>
            <system value="url" />
            <value value="http://hl7.org/fhir" />
        </telecom>
        <telecom>
            <system value="email" />
            <value value="fhir@lists.hl7.org" />
        </telecom>
    </contact>
    <description value="This operation accepts a message, processes it according to the definition of the event in the message header, and returns one or more response messages.  \n\nIn addition to processing the message event, a server may choose to retain all or some the resources and make them available on a RESTful interface, but is not required to do so." />
    <code value="process-message" />
    <comment value="This operation does not use the parameters resource; the parameters &quot;async&quot; and &quot;response-url&quot; always go in the URL, if they are used, and the &quot;content&quot; parameter is always the body of the HTTP message.\n\nWhen processing messages, a server may return one of several status codes:\n* **200 OK**: Indicates that the message has been fully processed.  If an application-level response is expected for the submitted message, that response SHALL be returned as the body of the 200 response.\n* **202 Accepted**: Indicates that the receiving system has accepted custody of the message\n* **204 No Content**: Indicates that the message has been fully processed and would normally have had an application-level response, but because of instructions from the sender (e.g. the [messageheader-response-request](extension-messageheader-response-request.html) extension), no response is being provided\n* **300+**: Indicates that the message was not successfully processed.  The server MAY return an [OperationOutcome](operationoutcome.html) with additional information, and SHOULD do so if the response code is 400 or greater.&lt;br/&gt;\n    The client SHALL interpret a 4xx response to indicate that there is no point resubmitting the unaltered message, and a 5xx response to indicate an unexpected error occurred on the part of the server, with the implication that it may be appropriate to resubmit the original message. Doing so SHOULD NOT result in a duplicate message response. Repeated failures indicate either a fatal problem with the submission or a problem with the receiving application.\n\nThe following rules apply when using $process-message:\n\n* The operation only accepts POST transactions - any other HTTP method will result in an HTTP error\n* The request content type submitted is always [Bundle](bundle.html) with type &quot;message&quot; containing a [Message Header](messageheader.html) resource as the first resource\n* The response content type returned is always [Bundle](bundle.html) with type &quot;message&quot; containing a [Message Header](messageheader.html) resource as the first resource, or an HTTP error\n* If the response is an error, the body SHOULD be an [Errors &amp;mp; Warning](operationoutcome.html) resource with full details\n* The mailbox may be authenticated using standard HTTP authentication methods, including OAuth\n\nThe $process-message operation can be used by any HTTP end-point that accepts FHIR messages, not just FHIR RESTful servers.\n\nIn order to ensure consistency of processing, the [logical rules regarding processing of Bundle.id and message id](messaging.html#reliable) SHALL be followed when messages are processed using this operation.\n\nThe $process-message operation may be used synchronously, or asynchronously.\n\nThe following rules apply when using the $process-message operation synchronously:\n\n* The URL (http://server/base/$process-message) has no parameters\n* It is an error if the sender POSTs a message that requires multiple response messages\n* Servers SHALL accept multiple concurrent message submissions and process them correctly (they are allowed to process them sequentially internally, but multiple concurrent submissions is not an error in its own right)\n\nThe following rules apply when using the $process-message operation asynchronously:\n\n* The URL has at least one parameter: http://server/base/$process-message?async=true\n* The server acknowledges the message with a 200 OK with no body, or returns an HTTP error if the message cannot be processed\n* Accepting the message means that the server has understood the message enough to know where to respond\n* An [OperationOutcome](operationoutcome.html) SHOULD be returned in either case\n* By default, the server responds by invoking the $process-message using the sender&#39;s stated end-point in the message: POST [MessageHeader.source.endpoint]/$process-messages]\n* Since the source end-point may be manipulated by message transfer engines, an alternative response address may be specified using the parameter &quot;response-url&quot;: http://server/base/$process-message?async=true&amp;amp;response-url=http://server2.com/base/anything.  The endpoint at the specified URL SHALL implement the signature of the $process-message operation (parameter async=true, accept a Bundle, return a 200 OK or an error)\n* The server submits response messages to the appropriate end-point with the parameter async=true. There is no response message for the response messages" />
    <resource value="MessageHeader" />
    <system value="true" />
    <type value="false" />
    <instance value="false" />
    <parameter>
        <name value="content" />
        <use value="in" />
        <min value="1" />
        <max value="1" />
        <documentation value="The message to process (or, if using asynchronous messaging, it may be a response message to accept)" />
        <type value="Bundle" />
    </parameter>
    <parameter>
        <name value="async" />
        <use value="in" />
        <min value="0" />
        <max value="1" />
        <documentation value="If &#39;true&#39; the message is processed using the asynchronous messaging pattern" />
        <type value="boolean" />
    </parameter>
    <parameter>
        <name value="response-url" />
        <use value="in" />
        <min value="0" />
        <max value="1" />
        <documentation value="A URL to submit response messages to, if asynchronous messaging is being used, and if the MessageHeader.source.endpoint is not the appropriate place to submit responses" />
        <type value="url" />
    </parameter>
    <parameter>
        <name value="return" />
        <use value="out" />
        <min value="0" />
        <max value="1" />
        <documentation value="A response message, if synchronous messaging is being used (mandatory in this case). For asynchronous messaging, there is no return value" />
        <type value="Bundle" />
    </parameter>
</OperationDefinition>

release

Name Url
Task-release https://fhir.nhs.uk/OperationDefinition/Task-release-message

Invocations

URL: [base]/Task/$release

Parameters (In)

NameCardinalityTypeDocumentation
group-identifier0..1Identifier

The short-form-prescription-id (token) of the prescription. Used for releasing Patient prescriptions

owner0..1Identifier

The ODS code of the pharmacy. Used for releasing Nominated Pharmacy prescriptions

status1..1code

Status from ValueSet http://hl7.org/fhir/valueset-task-status.html Use: accepted

Return Values (Out)

NameCardinalityTypeDocumentation
return1..1Bundle

A FHIR Bundle (type=searchset) which contains prescription-order FHIR Messages which match the search parameters. An empty search will still return a FHIR Bundle but with no entries.

Only one of the parameters based-on.identifier and owner MUST be provided. This operation performs both a query on the message queue and updates the status of returned prescriptions.

{
    "resourceType": "OperationDefinition",
    "id": "Task-release-message",
    "meta": {
        "lastUpdated": "2019-11-01T09:29:23.356+11:00"
    },
    "url": "https://fhir.nhs.uk/OperationDefinition/Task-release-message",
    "version": "4.0.1",
    "name": "release-task",
    "status": "draft",
    "kind": "operation",
    "date": "2020-11-13T09:29:23+11:00",
    "publisher": "NHS Digital",
    "contact":  [
        {
            "telecom":  [
                {
                    "system": "email",
                    "value": "interoperabilityteam@nhs.net"
                }
            ]
        }
    ],
    "description": "TODO - Add description",
    "code": "release",
    "comment": "Only one of the parameters based-on.identifier and owner MUST be provided. This operation performs both a query on the message queue and updates the status of returned prescriptions.",
    "resource":  [
        "Task"
    ],
    "system": false,
    "type": true,
    "instance": false,
    "parameter":  [
        {
            "name": "group-identifier",
            "use": "in",
            "min": 0,
            "max": "1",
            "documentation": "The short-form-prescription-id (token) of the prescription. Used for releasing Patient prescriptions",
            "type": "Identifier"
        },
        {
            "name": "owner",
            "use": "in",
            "min": 0,
            "max": "1",
            "documentation": "The ODS code of the pharmacy. Used for releasing Nominated Pharmacy prescriptions",
            "type": "Identifier"
        },
        {
            "name": "status",
            "use": "in",
            "min": 1,
            "max": "1",
            "documentation": "Status from ValueSet http://hl7.org/fhir/valueset-task-status.html Use: accepted",
            "type": "code"
        },
        {
            "name": "return",
            "use": "out",
            "min": 1,
            "max": "1",
            "documentation": "A FHIR Bundle (type=searchset) which contains prescription-order FHIR Messages which match the search parameters. An empty search will still return a FHIR Bundle but with no entries.",
            "type": "Bundle"
        }
    ]
}
<OperationDefinition xmlns="http://hl7.org/fhir">
    <id value="Task-release-message" />
    <meta>
        <lastUpdated value="2019-11-01T09:29:23.356+11:00" />
    </meta>
    <url value="https://fhir.nhs.uk/OperationDefinition/Task-release-message" />
    <version value="4.0.1" />
    <name value="release-task" />
    <status value="draft" />
    <kind value="operation" />
    <date value="2020-11-13T09:29:23+11:00" />
    <publisher value="NHS Digital" />
    <contact>
        <telecom>
            <system value="email" />
            <value value="interoperabilityteam@nhs.net" />
        </telecom>
    </contact>
    <description value="TODO - Add description" />
    <code value="release" />
    <comment value="Only one of the parameters based-on.identifier and owner MUST be provided. This operation performs both a query on the message queue and updates the status of returned prescriptions." />
    <resource value="Task" />
    <system value="false" />
    <type value="true" />
    <instance value="false" />
    <parameter>
        <name value="group-identifier" />
        <use value="in" />
        <min value="0" />
        <max value="1" />
        <documentation value="The short-form-prescription-id (token) of the prescription. Used for releasing Patient prescriptions" />
        <type value="Identifier" />
    </parameter>
    <parameter>
        <name value="owner" />
        <use value="in" />
        <min value="0" />
        <max value="1" />
        <documentation value="The ODS code of the pharmacy. Used for releasing Nominated Pharmacy prescriptions" />
        <type value="Identifier" />
    </parameter>
    <parameter>
        <name value="status" />
        <use value="in" />
        <min value="1" />
        <max value="1" />
        <documentation value="Status from ValueSet http://hl7.org/fhir/valueset-task-status.html Use: accepted" />
        <type value="code" />
    </parameter>
    <parameter>
        <name value="return" />
        <use value="out" />
        <min value="1" />
        <max value="1" />
        <documentation value="A FHIR Bundle (type=searchset) which contains prescription-order FHIR Messages which match the search parameters. An empty search will still return a FHIR Bundle but with no entries." />
        <type value="Bundle" />
    </parameter>
</OperationDefinition>

group-identifier and owner

One of these values MUST be populated.

  • group-identifier is used to download a single prescription. This is called a Patient Release Request. This group identifier is either retrieved via the Task API Prescription Tracker API or is presented to the pharmacy to the pharmacy by the patient (on paper or patient App).
  • owner is used to download prescriptions where the pharmacy is the nominated pharmacy and have not been downloaded before. This is called a Nominated Pharmacy Release

Patient Release Request

        {
            "name": "group-identifier",
            "valueIdentifier": {
                "system": "https://fhir.nhs.uk/Id/prescription-order-number",
                "value": "82D996-C81010-11DB12"
            }
        },

Nominated Pharmacy Release Request

        {
            "name": "owner",
            "valueIdentifier": {
                "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                "value": "VNE51"
            }
        }

accept

The only value to be used is accepted. This is for consistency with NHSDigital-Task and for future use.

        {
            "name": "status",
            "valueCode": "accepted"
        },

agent

This is the provenance behind the request and is NHSDigital-PractitionerRole resource. The resource should be populated using the guidance for this profile. Strict compliance to the profile is not enforced.

For attended request this should match CIS2 details being used. For unattended requests, a practitioner is still required, this should be a nominated member of the pharmacy and the data reflects their CIS2 identity.

The value of the telecom field should be the contact number a prescriber will use to contact the pharmacy.


PractitionerRole Patient Release Request (attended) Nominated Pharmacy Release Request (attended) Nominated Pharmacy Release Request (unattended)
identifier
practitioner (professional code)
organization (ODS code) ✓ (if different to owner) ✓ (if different to owner)
telecom
        {
            "name": "agent",
            "resource": {
                "resourceType": "PractitionerRole",
                "identifier":  [
                    {
                        "system": "https://fhir.nhs.uk/Id/sds-role-profile-id",
                        "value": "555086415105"
                    }
                ],
                "practitioner": {
                    "identifier": {
                        "system": "https://fhir.hl7.org.uk/Id/gmc-number",
                        "value": "C1231234"
                    },
                    "display": "Jackie Clark"
                },
                "organization": {
                    "identifier": {
                        "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                        "value": "RHM"
                    },
                    "display": "UNIVERSITY HOSPITAL SOUTHAMPTON NHS FOUNDATION TRUST"
                },
                "telecom":  [
                    {
                        "system": "phone",
                        "value": "02380798431",
                        "use": "work"
                    }
                ]
            }
        }

back to top