PharmacySpokeToHub

FHIR Transaction to share prescription data from a spoke pharamcy to a hub pharmacy.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
identifierΣ0..1Identifier
typeΣ1..1codeBindingFixed Value
timestampΣ0..1instant
totalΣ C0..1unsignedInt
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
relationΣ1..1string
urlΣ1..1uri
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ0..1uri
resourceΣ0..1Resource
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
modeΣ0..1codeBinding
scoreΣ0..1decimal
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBinding
urlΣ1..1uri
ifNoneMatchΣ0..1string
ifModifiedSinceΣ0..1instant
ifMatchΣ0..1string
ifNoneExistΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
statusΣ1..1string
locationΣ0..1uri
etagΣ0..1string
lastModifiedΣ0..1instant
outcomeΣ0..1Resource
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ0..1uri
resourceΣ C0..1Task
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
modeΣ0..1codeBinding
scoreΣ0..1decimal
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBinding
urlΣ1..1uri
ifNoneMatchΣ0..1string
ifModifiedSinceΣ0..1instant
ifMatchΣ0..1string
ifNoneExistΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
statusΣ1..1string
locationΣ0..1uri
etagΣ0..1string
lastModifiedΣ0..1instant
outcomeΣ0..1Resource
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ0..1uri
resourceΣ C0..1UKCoreMedicationRequest
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
modeΣ0..1codeBinding
scoreΣ0..1decimal
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBinding
urlΣ1..1uri
ifNoneMatchΣ0..1string
ifModifiedSinceΣ0..1instant
ifMatchΣ0..1string
ifNoneExistΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
statusΣ1..1string
locationΣ0..1uri
etagΣ0..1string
lastModifiedΣ0..1instant
outcomeΣ0..1Resource
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ0..1uri
resourceΣ C0..1UKCorePatient
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
modeΣ0..1codeBinding
scoreΣ0..1decimal
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBinding
urlΣ1..1uri
ifNoneMatchΣ0..1string
ifModifiedSinceΣ0..1instant
ifMatchΣ0..1string
ifNoneExistΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
statusΣ1..1string
locationΣ0..1uri
etagΣ0..1string
lastModifiedΣ0..1instant
outcomeΣ0..1Resource
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ0..1uri
resourceΣ C0..1UKCoreOrganization
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
modeΣ0..1codeBinding
scoreΣ0..1decimal
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBinding
urlΣ1..1uri
ifNoneMatchΣ0..1string
ifModifiedSinceΣ0..1instant
ifMatchΣ0..1string
ifNoneExistΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
statusΣ1..1string
locationΣ0..1uri
etagΣ0..1string
lastModifiedΣ0..1instant
outcomeΣ0..1Resource
signatureΣ0..1Signature
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="England-Bundle-PharmacySpokeToHub" />
<url value="https://fhir.nhs.uk/England/StructureDefinition/England-Bundle-PharmacySpokeToHub" />
<version value="0.1.0" />
<name value="EnglandBundlePharmacySpokeToHub" />
<title value="England Bundle Pharmacy Spoke To Hub" />
<status value="draft" />
<date value="2025-12-04T00:00:00+00:00" />
<publisher value="NHS England" />
<name value="NHS England" />
<system value="email" />
<value value="interoperabilityteam@nhs.net" />
<use value="work" />
<rank value="1" />
</telecom>
</contact>
<description value="Transaction Bundle Definition" />
<purpose value="Documents the requirements for Spoke to Hub Pharmacy transactions" />
<copyright value="Copyright © 2024+ NHS England Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." />
<fhirVersion value="4.0.1" />
<kind value="resource" />
<abstract value="false" />
<type value="Bundle" />
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Bundle" />
<derivation value="constraint" />
<element id="Bundle.type">
<path value="Bundle.type" />
<fixedCode value="transaction" />
</element>
<element id="Bundle.entry">
<path value="Bundle.entry" />
<type value="profile" />
<path value="resolve()" />
</discriminator>
<rules value="open" />
</slicing>
</element>
<element id="Bundle.entry:Task">
<path value="Bundle.entry" />
<sliceName value="Task" />
<min value="1" />
<max value="1" />
</element>
<element id="Bundle.entry:Task.resource">
<path value="Bundle.entry.resource" />
<comment value="The `Task.status` SHOULD be fixed to `requested`" />
<code value="Resource" />
<profile value="http://hl7.org/fhir/StructureDefinition/Task" />
</type>
</element>
<element id="Bundle.entry:MedicationRequest">
<path value="Bundle.entry" />
<sliceName value="MedicationRequest" />
<comment value="The spoke pharmacy implementation, in agreement with their hub pharmacy, will decide on how MedicationRequest resources are bundled. For example sent individually in separate bundles, bundles grouped by patient, or bundles containing multiple prescribed items for multiple patients." />
<min value="1" />
</element>
<element id="Bundle.entry:MedicationRequest.resource">
<path value="Bundle.entry.resource" />
<code value="Resource" />
<profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest" />
</type>
</element>
<element id="Bundle.entry:Patient">
<path value="Bundle.entry" />
<sliceName value="Patient" />
<min value="1" />
</element>
<element id="Bundle.entry:Patient.resource">
<path value="Bundle.entry.resource" />
<comment value="Must provide each patient's name, NHS Number (if known), date of birth and address." />
<code value="Resource" />
<profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient" />
</type>
</element>
<element id="Bundle.entry:Organisation">
<path value="Bundle.entry" />
<sliceName value="Organisation" />
<comment value="Must provide the name and address of the requesting spoke pharmacy." />
<min value="1" />
<max value="1" />
</element>
<element id="Bundle.entry:Organisation.resource">
<path value="Bundle.entry.resource" />
<code value="Resource" />
<profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization" />
</type>
</element>
</differential>
</StructureDefinition>
{
"resourceType": "StructureDefinition",
"id": "England-Bundle-PharmacySpokeToHub",
"url": "https://fhir.nhs.uk/England/StructureDefinition/England-Bundle-PharmacySpokeToHub",
"version": "0.1.0",
"name": "EnglandBundlePharmacySpokeToHub",
"title": "England Bundle Pharmacy Spoke To Hub",
"status": "draft",
"date": "2025-12-04T00:00:00+00:00",
"publisher": "NHS England",
"contact": [
{
"name": "NHS England",
"telecom": [
{
"system": "email",
"value": "interoperabilityteam@nhs.net",
"use": "work",
"rank": 1
}
]
}
],
"description": "Transaction Bundle Definition",
"purpose": "Documents the requirements for Spoke to Hub Pharmacy transactions",
"copyright": "Copyright © 2024+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html.",
"fhirVersion": "4.0.1",
"kind": "resource",
"abstract": false,
"type": "Bundle",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Bundle",
"derivation": "constraint",
"element": [
{
"id": "Bundle.type",
"path": "Bundle.type",
"fixedCode": "transaction"
},
{
"id": "Bundle.entry",
"path": "Bundle.entry",
"slicing": {
{
"type": "profile",
"path": "resolve()"
}
],
"rules": "open"
}
},
{
"id": "Bundle.entry:Task",
"path": "Bundle.entry",
"sliceName": "Task",
"min": 1,
"max": "1"
},
{
"id": "Bundle.entry:Task.resource",
"path": "Bundle.entry.resource",
"comment": "The `Task.status` SHOULD be fixed to `requested`",
"type": [
{
"code": "Resource",
"profile": [
"http://hl7.org/fhir/StructureDefinition/Task"
]
}
]
},
{
"id": "Bundle.entry:MedicationRequest",
"path": "Bundle.entry",
"sliceName": "MedicationRequest",
"comment": "The spoke pharmacy implementation, in agreement with their hub pharmacy, will decide on how MedicationRequest resources are bundled. For example sent individually in separate bundles, bundles grouped by patient, or bundles containing multiple prescribed items for multiple patients.",
"min": 1
},
{
"id": "Bundle.entry:MedicationRequest.resource",
"path": "Bundle.entry.resource",
"type": [
{
"code": "Resource",
"profile": [
"https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest"
]
}
]
},
{
"id": "Bundle.entry:Patient",
"path": "Bundle.entry",
"sliceName": "Patient",
"min": 1
},
{
"id": "Bundle.entry:Patient.resource",
"path": "Bundle.entry.resource",
"comment": "Must provide each patient's name, NHS Number (if known), date of birth and address.",
"type": [
{
"code": "Resource",
"profile": [
"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient"
]
}
]
},
{
"id": "Bundle.entry:Organisation",
"path": "Bundle.entry",
"sliceName": "Organisation",
"comment": "Must provide the name and address of the requesting spoke pharmacy.",
"min": 1,
"max": "1"
},
{
"id": "Bundle.entry:Organisation.resource",
"path": "Bundle.entry.resource",
"type": [
{
"code": "Resource",
"profile": [
"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization"
]
}
]
}
]
}
}
{
"resourceType": "Bundle",
"system": "https://tools.ietf.org/html/rfc4122",
"value": "309a7f37-0735-4902-aac1-b4d59ba2fca2"
},
"type": "transaction",
"timestamp": "2025-12-09T13:50:00+00:00",
"entry": [
{
"fullUrl": "urn:uuid:309a7f37-0735-4902-aac1-b4d59ba2fca2",
"resourceType": "Task",
"id": "ae92a488-92a1-42e0-a1c7-e61f6beb8c78",
"meta": {
"profile": [
"https://hl7.org/fhir/r4/StructureDefinition/Task"
]
},
"status": "requested",
"intent": "order",
"reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466"
},
"input": [
{
"type": {
"coding": [
{
"system": "http://hl7.org/fhir/resource-types",
"code": "MedicationRequest",
"display": "MedicationRequest"
}
]
},
"reference": "urn:uuid:29356196-1c07-4057-a7f3-e8d9b7e20926",
"type": "MedicationRequest"
}
}
]
},
"request": {
"method": "POST",
"url": "Task"
}
},
{
"fullUrl": "urn:uuid:2b3edca7-3455-4ec7-9fa1-88f757e91f67",
"resourceType": "MedicationRequest",
"id": "29356196-1c07-4057-a7f3-e8d9b7e20926",
"meta": {
"profile": [
"https://fhir.nhs.uk/StructureDefinition/UKCore-MedicationRequest"
]
},
{
"system": "https://fhir.nhs.uk/Id/prescription-order-item-number",
"value": "7dc0390a-f416-4d8a-9751-257bfa6294cd"
}
],
"status": "active",
"intent": "order",
"coding": [
{
"system": "http://dmd.nhs.uk",
"code": "39720311000001101",
"display": "Paracetamol 500mg soluble tablets"
}
]
},
"subject": {
"reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2"
},
"authoredOn": "2025-09-08T09:00:00+00:00",
"reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466"
},
{
"patientInstruction": "Take 2 tablets - 3 times a day - for 1 week"
}
],
"value": 60,
"unit": "tablet",
"system": "http://snomed.info/sct",
"code": "428673006"
},
"reference": "urn:uuid:89d46cf0-94a6-4ec4-97e1-2bdfca664b77"
}
}
},
"request": {
"method": "POST",
"url": "MedicationRequest"
}
},
{
"fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2",
"resourceType": "Patient",
"meta": {
"profile": [
"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient"
]
},
{
"system": "https://fhir.nhs.uk/Id/nhs-number",
"value": "9449304130"
}
],
"name": [
{
"use": "usual",
"family": "Mouser",
"given": [
"Michael"
],
"prefix": [
"Mr"
]
}
],
"gender": "male",
"birthDate": "1932-01-06",
"address": [
{
"use": "home",
"line": [
"1 Trevelyan Square",
"Boar Lane",
"Leeds",
"West Yorkshire"
],
"postalCode": "LS1 6AE"
}
]
},
"request": {
"method": "POST",
"url": "Patient"
}
},
{
"fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d9",
"resourceType": "Organization",
"meta": {
"profile": [
"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization"
]
},
{
"system": "https://fhir.nhs.uk/Id/ods-organization-code",
"value": "VNE51"
}
],
"name": "The Simple Pharmacy",
"telecom": [
{
"system": "phone",
"value": "0113 3180277",
"use": "work"
}
],
"address": [
{
"use": "work",
"line": [
"17 Austhorpe Road",
"Crossgates",
"Leeds"
],
"city": "West Yorkshire",
"postalCode": "LS15 8BA"
}
]
},
"request": {
"method": "POST",
"url": "Organization"
}
}
]
}

Bundle.identifier

Populate with a UUID.

Bundle.type

Must be transaction.

Bundle.timestamp

Populate with the current date and time.

Bundle.total

Should be omitted as this Bundle is not the response to a search operation.

Should be omitted.

Bundle.entry

The entry.request element is required for a FHIR Transaction.

entry Min Max request.method request.url Notes
Task 1 1 POST Task The Task.status is requested.
UKCore-MedicationRequest 1 * POST MedicationRequest The spoke pharmacy implementation, in agreement with their hub pharmacy, will decide on how MedicationRequest resources are bundled. For example sent individually in separate bundles, bundles grouped by patient, or bundles containing multiple prescribed items for multiple patients.
UKCore-Patient 1 * POST Patient Must provide each patient's name, NHS Number (if known), date of birth and address.
UKCore-Organization 1 1 POST Organization Must provide the name and address of the requesting spoke pharmacy.

Bundle.signature

Should be omitted.

Response

HTTP Response Description
201 Transaction has been successfully received and persisted within the hub pharmacy system.
400 Invalid message. Details will be provided within an OperationOutcome resource
401 Missing or invalid authentication token
500 Unexpected internal server error

PharmacyHubToSpoke

FHIR Transaction to share details of assembled medication from a hub pharmacy back to a spoke pharmacy.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
identifierΣ0..1Identifier
typeΣ1..1codeBindingFixed Value
timestampΣ0..1instant
totalΣ C0..1unsignedInt
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
relationΣ1..1string
urlΣ1..1uri
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ0..1uri
resourceΣ0..1Resource
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
modeΣ0..1codeBinding
scoreΣ0..1decimal
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBinding
urlΣ1..1uri
ifNoneMatchΣ0..1string
ifModifiedSinceΣ0..1instant
ifMatchΣ0..1string
ifNoneExistΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
statusΣ1..1string
locationΣ0..1uri
etagΣ0..1string
lastModifiedΣ0..1instant
outcomeΣ0..1Resource
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ0..1uri
resourceΣ C0..1Task
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
modeΣ0..1codeBinding
scoreΣ0..1decimal
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBinding
urlΣ1..1uri
ifNoneMatchΣ0..1string
ifModifiedSinceΣ0..1instant
ifMatchΣ0..1string
ifNoneExistΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
statusΣ1..1string
locationΣ0..1uri
etagΣ0..1string
lastModifiedΣ0..1instant
outcomeΣ0..1Resource
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ0..1uri
resourceΣ C0..1UKCoreMedicationDispense
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
modeΣ0..1codeBinding
scoreΣ0..1decimal
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBinding
urlΣ1..1uri
ifNoneMatchΣ0..1string
ifModifiedSinceΣ0..1instant
ifMatchΣ0..1string
ifNoneExistΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
statusΣ1..1string
locationΣ0..1uri
etagΣ0..1string
lastModifiedΣ0..1instant
outcomeΣ0..1Resource
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ0..1uri
resourceΣ C0..1UKCoreOrganization
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
modeΣ0..1codeBinding
scoreΣ0..1decimal
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBinding
urlΣ1..1uri
ifNoneMatchΣ0..1string
ifModifiedSinceΣ0..1instant
ifMatchΣ0..1string
ifNoneExistΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
statusΣ1..1string
locationΣ0..1uri
etagΣ0..1string
lastModifiedΣ0..1instant
outcomeΣ0..1Resource
signatureΣ0..1Signature
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="England-Bundle-PharmacyHubToSpoke" />
<url value="https://fhir.nhs.uk/England/StructureDefinition/England-Bundle-PharmacyHubToSpoke" />
<version value="0.1.0" />
<name value="EnglandBundlePharmacyHubToSpoke" />
<title value="England Bundle Pharmacy Hub To Spoke" />
<status value="draft" />
<date value="2025-12-04T00:00:00+00:00" />
<publisher value="NHS England" />
<name value="NHS England" />
<system value="email" />
<value value="interoperabilityteam@nhs.net" />
<use value="work" />
<rank value="1" />
</telecom>
</contact>
<description value="Transaction Bundle Definition" />
<purpose value="Documents the requirements for Hub to Spoke Pharmacy transactions" />
<copyright value="Copyright © 2024+ NHS England Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." />
<fhirVersion value="4.0.1" />
<kind value="resource" />
<abstract value="false" />
<type value="Bundle" />
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Bundle" />
<derivation value="constraint" />
<element id="Bundle.type">
<path value="Bundle.type" />
<fixedCode value="transaction" />
</element>
<element id="Bundle.entry">
<path value="Bundle.entry" />
<type value="profile" />
<path value="resolve()" />
</discriminator>
<rules value="open" />
</slicing>
</element>
<element id="Bundle.entry:Task">
<path value="Bundle.entry" />
<sliceName value="Task" />
<min value="1" />
<max value="1" />
</element>
<element id="Bundle.entry:Task.resource">
<path value="Bundle.entry.resource" />
<comment value="The `Task.status` SHOULD be fixed to `completed` or `failed`" />
<code value="Resource" />
<profile value="http://hl7.org/fhir/StructureDefinition/Task" />
</type>
</element>
<element id="Bundle.entry:MedicationDispense">
<path value="Bundle.entry" />
<sliceName value="MedicationDispense" />
<comment value="The hub pharmacy implementation will decide on how MedicationDispense resources are bundled. For example; sent individually in separate bundles, bundles grouped by patient, or bundles containing multiple dispensed items for multiple patients." />
<min value="1" />
</element>
<element id="Bundle.entry:MedicationDispense.resource">
<path value="Bundle.entry.resource" />
<code value="Resource" />
<profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationDispense" />
</type>
</element>
<element id="Bundle.entry:Organisation">
<path value="Bundle.entry" />
<sliceName value="Organisation" />
<definition value="Must provide the name and address of the performing hub pharmacy." />
<comment value="Must provide the name and address of the requesting spoke pharmacy." />
<min value="1" />
<max value="1" />
</element>
<element id="Bundle.entry:Organisation.resource">
<path value="Bundle.entry.resource" />
<code value="Resource" />
<profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization" />
</type>
</element>
</differential>
</StructureDefinition>
{
"resourceType": "StructureDefinition",
"id": "England-Bundle-PharmacyHubToSpoke",
"url": "https://fhir.nhs.uk/England/StructureDefinition/England-Bundle-PharmacyHubToSpoke",
"version": "0.1.0",
"name": "EnglandBundlePharmacyHubToSpoke",
"title": "England Bundle Pharmacy Hub To Spoke",
"status": "draft",
"date": "2025-12-04T00:00:00+00:00",
"publisher": "NHS England",
"contact": [
{
"name": "NHS England",
"telecom": [
{
"system": "email",
"value": "interoperabilityteam@nhs.net",
"use": "work",
"rank": 1
}
]
}
],
"description": "Transaction Bundle Definition",
"purpose": "Documents the requirements for Hub to Spoke Pharmacy transactions",
"copyright": "Copyright © 2024+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html.",
"fhirVersion": "4.0.1",
"kind": "resource",
"abstract": false,
"type": "Bundle",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Bundle",
"derivation": "constraint",
"element": [
{
"id": "Bundle.type",
"path": "Bundle.type",
"fixedCode": "transaction"
},
{
"id": "Bundle.entry",
"path": "Bundle.entry",
"slicing": {
{
"type": "profile",
"path": "resolve()"
}
],
"rules": "open"
}
},
{
"id": "Bundle.entry:Task",
"path": "Bundle.entry",
"sliceName": "Task",
"min": 1,
"max": "1"
},
{
"id": "Bundle.entry:Task.resource",
"path": "Bundle.entry.resource",
"comment": "The `Task.status` SHOULD be fixed to `completed` or `failed`",
"type": [
{
"code": "Resource",
"profile": [
"http://hl7.org/fhir/StructureDefinition/Task"
]
}
]
},
{
"id": "Bundle.entry:MedicationDispense",
"path": "Bundle.entry",
"sliceName": "MedicationDispense",
"comment": "The hub pharmacy implementation will decide on how MedicationDispense resources are bundled. For example; sent individually in separate bundles, bundles grouped by patient, or bundles containing multiple dispensed items for multiple patients.",
"min": 1
},
{
"id": "Bundle.entry:MedicationDispense.resource",
"path": "Bundle.entry.resource",
"type": [
{
"code": "Resource",
"profile": [
"https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationDispense"
]
}
]
},
{
"id": "Bundle.entry:Organisation",
"path": "Bundle.entry",
"sliceName": "Organisation",
"definition": "Must provide the name and address of the performing hub pharmacy.",
"comment": "Must provide the name and address of the requesting spoke pharmacy.",
"min": 1,
"max": "1"
},
{
"id": "Bundle.entry:Organisation.resource",
"path": "Bundle.entry.resource",
"type": [
{
"code": "Resource",
"profile": [
"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization"
]
}
]
}
]
}
}
{
"resourceType": "Bundle",
"system": "https://tools.ietf.org/html/rfc4122",
"value": "309a7f37-0735-4902-aac1-b4d59ba2fca2"
},
"type": "transaction",
"timestamp": "2025-12-09T13:50:00+00:00",
"entry": [
{
"fullUrl": "urn:uuid:309a7f37-0735-4902-aac1-b4d59ba2fca2",
"resourceType": "Parameters",
{
"name": "operation",
"part": [
{
"name": "type",
"valueCode": "replace"
},
{
"name": "path",
"valueString": "Task.status"
},
{
"name": "value",
"valueString": "completed"
}
]
},
{
"name": "operation",
"part": [
{
"name": "type",
"valueCode": "add"
},
{
"name": "path",
"valueString": "Task.output[0].type"
},
{
"name": "value",
"coding": [
{
"system": "http://hl7.org/fhir/resource-types",
"code": "MedicationDispense",
"display": "MedicationDispense"
}
]
}
}
]
},
{
"name": "operation",
"part": [
{
"name": "type",
"valueCode": "add"
},
{
"name": "path",
"valueString": "Task.output[0].valueReference"
},
{
"name": "value",
"reference": "urn:uuid:312d757e-21f1-4f10-9f02-1746768bc31d"
}
}
]
}
]
},
"request": {
"method": "PATCH",
"url": "Task"
}
},
{
"fullUrl": "urn:uuid:2b3edca7-3455-4ec7-9fa1-88f757e91f67",
"resourceType": "MedicationDispense",
"id": "312d757e-21f1-4f10-9f02-1746768bc31d",
"meta": {
"profile": [
"https://fhir.nhs.uk/StructureDefinition/UKCore-MedicationDispense"
]
},
"status": "completed",
"coding": [
{
"system": "http://dmd-nhs.uk",
"code": "42234211000001100",
"display": "ProSource 20 liquid red berry (Nutrinovo Ltd)"
}
]
},
"subject": {
"system": "https://fhir.nhs.uk/Id/nhs-number",
"value": "9449304130"
},
"display": "Mr Michael Mouser"
},
{
"actor": {
"reference": "urn:uuid:7535862a-d46b-43a3-9d7f-2f489861e24c"
}
}
],
{
"reference": "urn:uuid:7dc0390a-f416-4d8a-9751-257bfa6294cd"
}
],
"value": 60,
"unit": "tablets",
"system": "http://snomed.info/sct",
"code": "428673006"
},
"whenPrepared": "2025-11-07T11:45:00+00:00",
{
"text": "Swallow 2 tablets - 3 times a day - for 1 week"
}
]
},
"request": {
"method": "POST",
"url": "MedicationDispense"
}
},
{
"fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d9",
"resourceType": "Organization",
"meta": {
"profile": [
"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization"
]
},
{
"system": "https://fhir.nhs.uk/Id/ods-organization-code",
"value": "HUB123"
}
],
"name": "Megahub Pharmacy Services",
"telecom": [
{
"system": "phone",
"value": "01904 123983",
"use": "work"
}
],
"address": [
{
"use": "work",
"line": [
"York Business Park",
"10 Great North Way",
"York"
],
"city": "West Yorkshire",
"postalCode": "YO26 6RB"
}
]
},
"request": {
"method": "POST",
"url": "Organization"
}
}
]
}

Bundle.identifier

Populate with a UUID.

Bundle.type

Must be transaction.

Bundle.timestamp

Populate with the current date and time.

Bundle.total

Should be omitted as this Bundle is not the response to a search operation.

Should be omitted.

Bundle.entry

The entry.request element is required for a FHIR Transaction.

entry Min Max request.method request.url Notes
Task 1 1 PATCH Task Patch the Task.status to either completed or failed.
UKCore-MedicationDispense 1 * POST MedicationDispense The hub pharmacy implementation will decide on how MedicationDispense resources are bundled. For example; sent individually in separate bundles, bundles grouped by patient, or bundles containing multiple dispensed items for multiple patients.
UKCore-Organization 1 1 POST Organization Must provide the name and address of the performing hub pharmacy.

Bundle.signature

Should be omitted.

Response

HTTP Response Description
201 Transaction has been successfully received and persisted within the spoke pharmacy system.
400 Invalid message. Details will be provided within an OperationOutcome resource
401 Missing or invalid authentication token
500 Unexpected internal server error