NHS Booking and Referral Standard

Guide v1.8.1 | Core v1.1.5 | Package v1.34.0

Bookings and Referrals into GP (Application 7)

Use Cases Supported

This Application supports the use of the following use case:

Use Case Name Code
Appointments for Patient Facing Services (PFS) into GP Practice PFS to Primary Care A7T1

Introduction

Overview

This page provides guidance for implementing the Booking and Referral Standard (BaRS) specifically for the use cases listed above. It should be used alongside the BaRS Core implementation guide and Payload Definitions when developing to the standard.

For more information see Bookings and Referrals into GP (Application 7


Scope and Requirements

Scope Overview

This BaRS Application (Application 7) covers only use case:

  • Appointments for Patient Facing Services to GP Practice

The payloads and workflow have been designed to support these services. Other BaRS Applications offer scope for alternative use cases.

Functional Scope

Service Discovery

  • Establishing a service to direct requests to is a mandatory step in the workflow
  • There is no restriction on the service discovery tools used. Any are capable of being supported whether national or proprietary
  • The service must be configured within the BaRS infrastructure (Endpoint Catalogue) before requests can be made

Slot Management

  • Booking slots are the responsibility and ownership of Receivers to maintain and offer to Senders
  • All slot requests must occur in real-time without caching by either Senders or Receivers
  • The returned slots should contain sufficient information for Senders to know what they are booking i.e. have a clear 'type', indicate the role and/or gender of the individual performing on behalf of the service, within any given slot

Booking

  • Allowing bookings for a service is a method of managing capacity
  • A booking may indicate the exact time an individual can expect to be seen by or is expected to arrive at the service, as is traditionally understood when an 'appointment' is made. Alternatively, the booking timeframe could indicate a range through which the individual may be seen by the service
  • The slot the booking is made against may also indicate the type of booking e.g. face-to-face or over the phone and the role of the person who will engage with the individual on behalf of the service
  • Bookings are an administrative aspect of the workflow and should not contain clinically pertinent information

API-M

  • All requests and response associated with BaRS must occur through the BaRS API Proxy

Constraints

  • No additional guidance provided on Slot display for Booking
  • Consent within BaRS will be for Direct-Care only
  • Certificates for Receiving messages to use nhs.uk domains only.
  • Receiving endpoints are to be internet facing.
  • Limited Search Slot parameters for Booking - Schedule.actor:healthcareService, Start (range), (slot) status
  • Clinical Constraints exist - See Hazard Log
  • No element level 'updates' to requests. A new request must be generated to change information in a booking

Requirements

Service Discovery

  • The service must support a unique identifier which the Sender extracts to engage in the booking workflow

Slot display

  • The schedule and related slot(s) must contain the actual geographic location (e.g address) of the booking, rather than generic details of the location of the overall service provider.
  • The slot must contain details of the start/end times of the available slots
  • The available slot(s) must be capable of being retrieved from any booking Receiver, regardless of the relationship that the sending user’s organisation has with the receiving service
  • Where there are no available slots, the booking Receiver must send an appropriate response to indicate this not merely reply with an empty response
  • Where there are no available slots, the booking Sender must present an appropriate message to the end user
  • The booking Receiver must return available slots without requiring to know the potential patient details
  • Where the booking Receiver has a number of schedules available to fulfil a request (say, when 2 or more clinicians are delivering surgeries at the same site) they must return all of those slots as part of the initial response
  • If provided, in addition to Healthcare Service, Schedule and Slot, the booking Sender must display Delivery Channel and Practitioner Role, Name and Gender
  • Booking Receivers must not default the Delivery Channel value
  • A booking Sender must not assume a booking Receiver will return requested _includes e.g. Location
    • Booking Sender must handle a Slot response without non mandatory FHIR resources
    • Booking Sender must handle a Slot response with FHIR resources not requested

Booking

  • Where a national identifier is included, it must have a verification status of 'Number present and verified' or 'Number present but not traced', otherwise, the referral Sender must not include it in the request
  • Where the booking was not successful, the Receiver must send an appropriate response. See failure scenarios for more detail.
  • Where the booking was not successful, the Sender must present an appropriate message to the end user. See failure scenarios for more detail.
  • If included in the synchronous HTTP response, the booking Sender must make available the human readable identifier for the booking to the end user
  • Update to amend a booking request is not supported. If a booking Sender wishes to change information in a request they must follow the re-book workflow

Cancel booking

  • The booking Sender must be capable of cancelling any booking made by them, within the current consultation or after the consultation event
  • The booking Sender must retrieve the booking to be cancelled from the booking Receiver prior to cancellation to ensure they are working with the most up to date version and it has not already been completed
  • The booking Sender must provide visible confirmation to the end user of the status returned by the booking Receiver, indicating whether the original booking was successfully cancelled or not
  • If the cancellation fails the booking Receiver must respond with the most appropriately aligned error
  • The booking Receiver must store all previous versions of the booking, including cancellations
  • The booking Receiver must not be required to inform the patient of the cancellation of the booking.  Business/clinical responsibility for informing the patient must remain with the booking Sender

Rebook

  • The booking Sender must be capable of rebooking within the current consultation or after the consultation event
  • Prior to any rebook workflow being attempted, following a previously successful booking, the patient should be reassessed
  • The booking Sender must cancel the original booking prior to making the new booking, whether within the current consultation or after the consultation event
  • The booking Sender must provide visible confirmation to the end user of the status returned by the Receiver, indicating whether the original booking was successfully cancelled and the new booking made
  • The booking Receiver must not be required to inform the patient of the cancellation, incurred as part of the rebooking process. Business/clinical responsibility for informing the patient must remain with the booking Sender

Contacts

  • A minimum of one contact (patient or third party) with a contact method (phone, email, etc.) of phone must be provided in booking requests
  • All contacts must have a rank associated with them
  • There must be only one contact with a rank of 1
  • All contacts must have at least one contact method (phone, email, etc.)
  • All contact methods must have a rank
  • There must be only one contact method with a rank of 1
  • The contact ranked 1 and the contact method ranked 1 must be the primary callback for the request


Audit

  • Sufficient information around any activity through the API and subsequent BaRS workflow must be persisted to aid support incidents and audit requirements

Error Handling

Non Functional




How does it work?

This section describes how the primary operations used in this Application work. This diagram illustrates the workflow and interactions of a booking process:


To support the workflows for this Application of the standard the operations that need to be supported are:

Standard patterns for appointment operations:

Search for slots

During a referral workflow where booking is required, there are two separate processes that need to be undertaken sequentially. The first is to search for slots and once a slot has been selected, a booking can be made.

The first part of this process involves the sender making a request to the receiver for slots that match the search criteria. This is a "searching" request that requires the response body to include a "searchset" bundle resource.

The search parameters are defined on the BaRS API specification documentation.

Interaction Method Payload Focus Status Required (MessageHeader, ServiceRequest, Encounter)
Get Slots GET /GetSlots n/a n/a

Additionally the HTTP request header for the GET Slots would be:

NHSD-Target-Identifier = {Receiver Service Identifier}
X-Request-Id = <GUID_00001>
X-Correlation-Id = <GUID_00002>
NHSD-End-User-Organisation = {FHIR Organisation (Base64 Encoded)}
NHSD-Requesting-Practitioner = {FHIR Practitioner (Base64 Encoded)} 
NHSD-Requesting-Software =  {FHIR Device (Base64 Encoded)}

The HTTP response header for the GET Slots would be:

X-Request-Id = <GUID_00001>
X-Correlation-Id = <GUID_00002>

Make a booking

Making a booking for this Application follows the standard pattern for BaRS operations.

The message definition that defines this payload for this Application is: BARS Message Definition - Booking Request

In addition to that the specific workflow parameters that are required are as follows:

Interaction Method Payload Focus Status Required (MessageHeader, ServiceRequest, Encounter)
Booking Request (New) POST /$process-message{booking-request} Appointment (booked) MessageHeader (EventCoding) = booking-request
MessageHeader (ReasonCode) = new
Appointment (Status) = booked
All resources to include 'lastUpdated' value, under meta section

Additionally the HTTP request header would be:

NHSD-Target-Identifier = {Receiver Service Identifier}
X-Request-Id = <GUID_00003>
X-Correlation-Id = <GUID_00002>
NHSD-End-User-Organisation = {FHIR Organisation (Base64 Encoded)}
NHSD-Requesting-Practitioner = {FHIR Practitioner (Base64 Encoded)} 
NHSD-Requesting-Software =  {FHIR Device (Base64 Encoded)}

The HTTP response header would be:

X-Request-Id = <GUID_00003>
X-Correlation-Id = <GUID_00002>

Cancel a Booking

This diagram illustrates the workflow and interactions of a booking cancellation process:


To cancel a booking this Application follows the standard pattern for BaRS operations with an additional step. Before beginning the standard pattern as descbribed on the linked section, it is first necessary to retrieve the latest version of the booking from the receiver as it may have changed locally. This is done by performing a "GET Appointment by ID" call to the receiving system's corresponding API endpoint (via the BaRS proxy).

The response to this request will be the requested Appointment resource which should be checked for its current status to ensure it does not already have a status of "cancelled". If not, this version of the Appointment should be used when re-submitting the modified resource in the POST bundle as described in the standard pattern.

The message definition that defines this payload for this Application is: BARS Message Definition - Cancel Booking Request

As a general principle, when performing an update type of operation (of which cancellation is a special case), only the focus resource is altered. Any resources that are mandated due to contextual, linking or referential integrity reasons play a supporting role, although any resources that include elements that are being changed are included too. This is always defined within the relevant message definition.

In addition the specific workflow parameters that are required are as follows:

Interaction Method Payload Focus Status Required (MessageHeader, ServiceRequest, Encounter)
Get Booking GET /Appointment{id} n/a n/a
Booking Request (Cancel) POST /$process-message{booking-request} Appointment (cancelled) MessageHeader (EventCoding) = booking-request
MessageHeader (ReasonCode) = update
Appointment (Status) = cancelled
All resources to include 'lastUpdated' value, under the meta section, which must be a later timestamp, on updates, if the content of a particular resource contains updated info. Otherwise, maintain the timestamp originally sent.

Additionally the HTTP request header for the GET Appointment would be:

NHSD-Target-Identifier = {Receiver Service Identifier}
X-Request-Id = <GUID_00004>
X-Correlation-Id = <GUID_00002>
NHSD-End-User-Organisation = {FHIR Organisation (Base64 Encoded)}
NHSD-Requesting-Practitioner = {FHIR Practitioner (Base64 Encoded)} 
NHSD-Requesting-Software =  {FHIR Device (Base64 Encoded)}

The HTTP response header for the GET Appointment would be:

X-Request-Id = <GUID_00004>
X-Correlation-Id = <GUID_00002>

the HTTP request header for the POST $process-message would be:

NHSD-Target-Identifier = {Receiver Service Identifier}
X-Request-Id = <GUID_00006>
X-Correlation-Id = <GUID_00002>
NHSD-End-User-Organisation = {FHIR Organisation (Base64 Encoded)}
NHSD-Requesting-Practitioner = {FHIR Practitioner (Base64 Encoded)} 
NHSD-Requesting-Software =  {FHIR Device (Base64 Encoded)}

The HTTP response header for the POST $process-message would be:

X-Request-Id = <GUID_00006>
X-Correlation-Id = <GUID_00002>

Bundle Processing - detailed

Below is a pseudo code example of how a bundle could be processed based on the above workflow variables:

> Logical - Based on a logical step through in a code format
Receive_Request
{
	initialise_variable "messageType" 
	initialise_variable "MessageReason" 
	initialise_variable "RequestType"
	
	//HTTP_Headers
	{
		if (HttpHeaders is null || HttpHeaders not Guid )
			OperationOutcome.issue.code = "invalid"
			throw exception with "REC_BAD_REQUEST"
			then return with HTTP.ResponseCode 400
		else if (HttpHeaders.RequestId == RequestId.AlreadyReceived)
			OperationOutcome.issue.code = "duplicate"
			throw exception with "REC_CONFLICT"
			then return with HTTP.ResponseCode 409
	}
	//Bundle
	{
		if(Bundle.meta.versionID is null)
			OperationOutcome.issue.code = "invariant"
			throw exception with "REC_BAD_REQUEST"
			then return with HTTP.ResponseCode 400
		else if!(Bundle.meta.versionID in versionID.supported)
			OperationOutcome.issue.code = "not-supported"
			throw exception with "REC_UNPROCESSABLE_ENTITY"
			then return with HTTP.ResponseCode 422
	}
	//Contents;
	{
		switch(MessageHeader.eventCoding)
		{
			case "servicerequest-request":
				if (MessageHeader.reason.code == "new" && ServiceRequest.status == "active")
					{
						switch(ServiceRequest.Category)
						{
							case "Referral":
								if (Careplan.status != "completed")
								{
									RequestType = "unknown"
									OperationOutcome.issue.code = "invariant"//A content validation rule failed
									throw exception with "REC_BAD_REQUEST"
									then return  HTTP.ResponseCode 400
								}
								else if(Encounter.Status.In("triaged","finished"))
									RequestType = "Im Receiving a new Referral"
								else
									RequestType = "unknown"
									OperationOutcome.issue.code = "invariant"//A content validation rule failed
									throw exception with "REC_BAD_REQUEST"
									then return  HTTP.ResponseCode 400
								break;
							default:
								RequestType = "unknown"
								OperationOutcome.issue.code = "invariant"//A content validation rule failed
								throw exception with "REC_BAD_REQUEST"
								then return  HTTP.ResponseCode 400;
						}
					}
				else if (MessageHeader.reason.code == "update")
					{
						switch(ServiceRequest.category)
						{
							case "Referral":
								if(ServiceRequest.status.In("entered-in-error","revoked"))
								{RequestType = "im receiving a cancelled referral"}
								else
								{
									RequestType = "unknown"
									OperationOutcome.issue.code = "invariant"//A content validation rule failed
									throw exception with "REC_BAD_REQUEST"
									then return  HTTP.ResponseCode 400								
								}
								break;
							default:
								RequestType = "unknown"
								OperationOutcome.issue.code = "invariant"//A content validation rule failed
								throw exception with "REC_BAD_REQUEST"
								then return  HTTP.ResponseCode 400;
						}
					}
				else
				{
					RequestType = "unknown"
					OperationOutcome.issue.code = "invariant"//A content validation rule failed
					throw exception with "REC_BAD_REQUEST"
					then return  HTTP.ResponseCode 400}
				break;
			case "servicerequest-response":
				if (MessageHeader.Response is null )
				{
						RequestType = "Invalid servicerequest-response"
						OperationOutcome.issue.code = "invariant"//A content validation rule failed
						throw exception with "REC_BAD_REQUEST"
						then return  HTTP.ResponseCode 400;
				}
				else if ( !Message.Response.identifier.existsLocally())
				{
						RequestType = "none or invalid response ID"
						OperationOutcome.issue.code = "not-found"//A content validation rule failed
						throw exception with "REC_NOT_FOUND"
						then return  HTTP.ResponseCode 404;
				}
				switch (ServiceRequest.Category)
					{
						case "Referral":
							if (ServiceRequest.status == "revoked" && MessageHeader.reason.code == "new")
							{ RequestType = "im receiving a Safeguarding DNA response (noshow)" } 
							else
							{
								RequestType = "unknown"
								OperationOutcome.issue.code = "invariant"//A content validation rule failed
								throw exception with "REC_BAD_REQUEST"
								then return  HTTP.ResponseCode 400;
							}
							break;
						default:
							RequestType = "unknown"
							OperationOutcome.issue.code = "invariant"//A content validation rule failed
							throw exception with "REC_BAD_REQUEST"
							then return  HTTP.ResponseCode 400;
					}
			case "booking-request":
				if (MessageHeader.Reason.code== "new" && Appointment.Status == "booked")
					if(slot.IsFree())
					{RequestType = "Im Receiving a new booking.";}
					else
					{
						OperationOutcome.issue.code = "conflict"
						throw exception with "REC_CONFLICT"
						then return with HTTP.ResponseCode 409
					}
				else if (MessageHeader.Reason.code == "update")
					MessageHeaderIsUpdate = true;
					switch (Appointment.Status)
					{
						case "cancelled":
							RequestType = "Im Receiving a booking cancellation."
							break						
						case "entered-in-error":
							RequestType = "Im Receiving a booking cancellation."
							break
						default:
							OperationOutcome.issue.code = "invariant"//A content validation rule failed
							throw exception with "REC_BAD_REQUEST"
							then return with HTTP.ResponseCode 400;
							break;
					}
				else
				{
					OperationOutcome.issue.code = "invariant"//A content validation rule failed
					throw exception with "REC_BAD_REQUEST"
					then return with HTTP.ResponseCode 400;
				}
				break;
			case "booking-response":
						OperationOutcome.issue.code = "invariant"//A content validation rule failed
						throw exception with 'REC_BAD_REQUEST'
						then return with HTTP.ResponseCode 400
						break;
			default:
				OperationOutcome.issue.code = "invariant"//A content validation rule failed
				throw exception with 'REC_BAD_REQUEST'
				then return with HTTP.ResponseCode 400
				break;
		}
		
	}
    //Submit
	{
		
		if (Message == "update")
		{
			if (currentLocalData.LastUpdated > originaRequest.ReceivedDate)
			{
				OperationOutcome.issue.code = "conflict"
				throw exception with 'REC_CONFLICT'
				then return with HTTP.ResponseCode 409
				break;
			}		
			foreach (Entry in Bundle)
			{
				if (currentLocalData.Item.exists)
				{
					if (currentLocalData.LastUpdated > originaRequest.Received)
					{
						OperationOutcome.issue.code = "conflict"
						throw exception with 'REC_CONFLICT'
						then return with HTTP.ResponseCode 409
						break;
					}
					if(Entry.LastUpdated > currentLocalData.Item.meta.LastUpdated && Entry.fullUrl = currentLocalData.Item.fullUrl)
						currentLocalData.Item = Entry.Item
						Entry.SubmitWith(currentLocalData.Item.meta.LastUpdated == Entry.LastUpdated )
					else
						ignore
				}
				else
					Entry.SubmitWith(currentLocalData.Item.meta.LastUpdated == Entry.LastUpdated )					
			}
			Submit(currentLocalData.Bundle.meta.LastUpdated = Bundle.Meta.LastUpdated)
			return HTTP.ResponseCode 200 'OK'
		}
		else
			{
				foreach(Entry in Bundle)
				{
					Entry.SubmitWith(currentLocalData.Item.meta.LastUpdated == Entry.LastUpdated )
					Submit(currentLocalData.Bundle.meta.LastUpdated = Bundle.Meta.LastUpdated)
					return HTTP.ResponseCode 200 'OK'
				}
			}
	}	
}	





Payloads

The specific guidance around the use of key FHIR resources is described below.

MessageHeader Resource

Standard Patterns for BaRS Operations explains in detail how the MessageHeader resource must be used.

The MessageHeader resource for the Booking Request should have the following resource elements set as follows:

  • MessageHeader.eventCoding - must be populated with 'booking-request'
  • MessageHeader.reasonCode - must be 'new' or 'update'
  • MessageHeader.focus - must reference the Appointment FHIR resource
  • MessageHeader.definition - must adhere to Booking Request Message definition

Appointment

The primary resource in a booking is the Appointment resource. When the request 'message bundle' is created by the Sender and processed by the Receiver, this is the starting point from which the booking is understood. It provides either the detail or references to all key FHIR resources. When a Sender builds the booking FHIR 'message bundle' they must ensure the MessageHeader.focus references the Appointment resource.

An important function of the Appointment resource is to link the booking and referral when they are related in a workflow. If the referral is successfully made before the booking, the Sender will have the ServiceRequest.Id value (from the synchronous HTTP response) and this must be included as a relative reference, under Appointment.basedOn, in the booking request.


Payload for making a booking, using a Booking Request

This payload is used to support a booking workflow and contains all the required information for a General Practice to create an appointment for a patient referred into their service.


> Bundle

The Bundle resource is the container for the event message 

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
typeΣ1..1codeBindingFixed Value
timestampΣ1..1instant
totalΣ I0..1unsignedInt
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
relationΣ1..1string
urlΣ1..1uri
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
fullUrlΣ0..1uri
resourceΣ0..1Resource
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
modeΣ0..1codeBinding
scoreΣ0..1decimal
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
methodΣ1..1codeBinding
urlΣ1..1uri
ifNoneMatchΣ0..1string
ifModifiedSinceΣ0..1instant
ifMatchΣ0..1string
ifNoneExistΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
statusΣ1..1string
locationΣ0..1uri
etagΣ0..1string
lastModifiedΣ0..1instant
outcomeΣ0..1Resource
id0..1string
extensionI0..*Extension
typeΣ1..*CodingBinding
whenΣ1..1instant
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
targetFormat0..1codeBinding
sigFormat0..1codeBinding
data0..1base64Binary

Data Item Implementation Guidance Necessity Cadinality UKCore Example Value(s)
Bundle https://simplifier.net/nhsbookingandreferrals/barsbundlemessage 1..1
Bundle.id This id is generated by the originating sender of the message, retained in subsequent messages.. MUST 79120f41-a431-4f08-bcc5-1e67006fcae0
Bundle.meta https://www.hl7.org/fhir/resource.html#Meta MUST 0..1
Bundle.meta.profile This MUST be populated with the structure definition for BaRSBundleMessage : 'https://fhir.nhs.uk/StructureDefinition/BARSBundleMessage' - FIXED VALUE MUST 0..1 https://fhir.nhs.uk/StructureDefinition/BARSBundleMessage
Bundle.meta.lastUpdated All resources MUST include 'lastUpdated' value, under the meta section which MUST be the same timestamp for each resource when created from new, but MUST be a later timestamp on updates to resources, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent. MUST 0..1 2023-03-08T12:01:08.4677672+00:00
Bundle.type This MUST be populated with 'message' - FIXED VALUE MUST 1..1 message
Bundle.timestamp This MUST be populated with the date that the content of the message was assembled. This date is not changed by middleware engines unless they add additional data that changes the meaning of the time of the message MUST 0..1 2023-03-08T12:01:08.4677672+00:00
Bundle.entry(s) Follow BaRS profile guidance for populating this element MUST
Bundle.entry.fullUrl This MUST be populated with the unique identifier for the resource entry. Transient id relative to the bundle MUST 0..1 urn:uuid:1cbdfb97-5859-48a4-8301-d54eab818d68
Bundle.entry.resourceType This MUST be populated with the Resources detailed in the message definition. MUST 0..1 MessageHeader,Patient, Appointment

> Message Header

A resource that describes the BaRS message being exchanged between two systems. It defines the way that the Appointment bundle should be processed when it is being consumed by a receiver

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
messageHeaderInstructionI0..*Extension(Coding)
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
systemFixed Value
code1..Fixed Value
eventCodingCoding
eventUriuri
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
nameΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
endpointΣ1..1url
id0..1string
extensionI0..*Extension
referenceΣ I1..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I1..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
id0..1string
extensionI0..*Extension
referenceΣ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
myExtensionI0..*Extension(Complex)
modifierExtensionΣ ?! I0..*Extension
nameΣ0..1string
softwareΣ0..1string
versionΣ0..1string
contactΣ I0..1ContactPoint
endpointΣ1..1url
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
identifierΣ1..1id
codeΣ1..1codeBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I1..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
definitionΣ0..1canonical(MessageDefinition)

Data Item Implementation Guidance Necessity Cadinality UKCore Example Value(s)
MessageHeader https://simplifier.net/nhsbookingandreferrals/barsmessageheaderbookingrequest-duplicate-2 1..1
MessageHeader.meta https://www.hl7.org/fhir/resource.html#Meta MUST 0..1
MessageHeader.meta.profile This MUST be populated with the structure definition forBARSMessageHeader-booking-request MUST 0..1 https://fhir.nhs.uk/StructureDefinition/BARSMessageHeader-booking-request
MessageHeader.meta.lastUpdated All resources MUST include 'lastUpdated' value, under the meta section which MUST be the same timestamp for each resource when created from new, but MUST be a later timestamp on updates to resources, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent. MUST 0..1 2023-03-08T12:01:08.4677672+00:00
MessageHeader.extension This MUST be populated with details of the Clinical Decision Support System used SHOULD 0..1
MessageHeader.extension.url This MUST be populated with 'https://fhir.nhs.uk/StructureDefinition/CDSSExtension' - FIXED VALUE MUST 0..1 https://fhir.nhs.uk/StructureDefinition/CDSSExtension
MessageHeader.extension.extension MUST 0..1
MessageHeader.extension.extension.url This MUST be populated with the pre-defined Clinical Decision Support System software url - FIXED VALUE MUST 0..1 requesterCDSSSoftware
MessageHeader.extension.extension.valueString This MUST be populated with the Clinical Decision Support System software name e.g. Pathways MUST 0..1 Pathways
MessageHeader.extension.extension MUST 0..1
MessageHeader.extension.extension.url This MUST be populated with the pre-defined Clinical Decision Support System software Version url - FIXED VALUE MUST 0..1 requesterCDSSVersion
MessageHeader.extension.extension.valueString This MUST be populated with the Clinical Decision Support System software Version name e.g. 30.2.0 MUST 0..1 30.2.0
MessageHeader.eventcoding MUST 1..1
MessageHeader.eventcoding.system This MUST be populated with CodeSystem 'https://fhir.nhs.uk/CodeSystem/message-events-bars' - FIXED VALUE MUST 0..1 https://fhir.nhs.uk/CodeSystem/message-events-bars
MessageHeader.eventcoding.code The status MUST be populated with 'booking-request'. See CodeSystem: 'https://fhir.nhs.uk/CodeSystem/message-events-bars' - FIXED VALUE MUST 0..1 booking-request
MessageHeader.destination MUST 0..1
MessageHeader.destination.receiver MUST 0..1
MessageHeader.destination.receiver.reference This MUST be populated with the full url to the Receiving Organisation resource. MUST 0..1 urn:uuid:10397afd-479c-42ea-9d5d-e4024481e0f8
MessageHeader.destination.endpoint This MUST be populated with the system and Service ID separated by a pipe. for example https://fhir.nhs.uk/id/dos-service-id\|11111111, this is to ensure the receiver knows the intended destination. MUST 1..1 https://fhir.nhs.uk/id/dos-service-id\|1122334455
MessageHeader.sender MUST 0..1
MessageHeader.sender.reference This MUST be populated. Follow BaRS profile guidance for populating this element MUST 0..1 urn:uuid:07939a0c-2854-46ff-9282-ad906bc93679
MessageHeader.source MUST 1..1
MessageHeader.source.name This MUST be populated with the sending system supplier name MUST 0..1 Patient Access System
MessageHeader.source.software This SHOULD be populated with the sending software application name SHOULD 0..1 Supplier Software
MessageHeader.source.version This SHOULD be populated with the sending software version SHOULD 0..1 V1.0.0
MessageHeader.source.contact SHOULD 0..1
MessageHeader.source.contact.system This SHOULD be populated with the Contact Type - phone | fax | email | pager | url | sms | other SHOULD 0..1 phone
MessageHeader.source.contact.value This SHOULD be populated with the Contact Type value SHOULD 0..1 +44 (0123) 123 4567
MessageHeader.source.endpoint This MUST be populated with the system and Service ID separated by a pipe. for example https://fhir.nhs.uk/id/dos-service-id\|11111111, this is to ensure the receiver knows where any response messages SHOULD be addressed. MUST 1..1 https://fhir.nhs.uk/id/dos-service-id\\|5566778899
MessageHeader.reason MUST 0..1
MessageHeader.reason.coding MUST 0..1
MessageHeader.reason.coding.system This MUST be populated with 'https://fhir.nhs.uk/CodeSystem/message-reason-bars' - FIXED VALUE MUST 0..1 https://fhir.nhs.uk/CodeSystem/message-reason-bars
MessageHeader.reason.coding.code This MUST be populated with 'new' in a new message and 'update' for an update. See CodeSystem: 'https://fhir.nhs.uk/CodeSystem/message-events-bars' MUST 0..1 new
MessageHeader.reason.coding.display This SHOULD be populated with 'new' in a new message and 'update' for an update. SHOULD 0..1 New
MessageHeader.focus MUST 0..*
MessageHeader.focus.reference This MUST be populated with a reference to the Appointment MUST 0..1 urn:uuid:236bb75d-90ef-461f-b71e-fde7f899802c
MessageHeader.definition This MUST be populated with the MessageDefinition the bundle is based on. This will be used for validation. Value - https://fhir.nhs.uk/MessageDefinition/bars-message-booking-request MUST 0..1 https://fhir.nhs.uk/MessageDefinition/bars-message-booking-request

> Appointment

This resource will be used to communicate information about an Appointment and is the focus of the Booking interation.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
bookingOrganizationI0..1Extension(Reference())
deliveryChannelI0..1Extension(code)
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
statusΣ ?!1..1codeBinding
cancelationReasonΣ0..1CodeableConcept
serviceCategoryΣ0..*CodeableConcept
serviceTypeΣ0..*CodeableConcept
specialtyΣ0..*CodeableConceptBinding
appointmentTypeΣ0..1CodeableConceptBinding
reasonCodeΣ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
priority0..1unsignedInt
description0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
startΣ0..1instant
endΣ0..1instant
minutesDuration0..1positiveInt
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
created0..1dateTime
comment0..1string
patientInstruction0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
typeΣ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
requiredΣ0..1codeBinding
statusΣ1..1codeBinding
periodI0..1Period
requestedPeriodI0..*Period

Data Item Implementation Guidance Necessity Cadinality UKCore Example Value(s)
Appointment https://simplifier.net/hl7fhirukcorer4/ukcoreappointment 1..1
Appointment.id This MUST only be populated with an id generated by the Receiver in the synchronous HTTP response. MUST 3713c8fc-dbcf-4f90-bacf-89d99e434e9b
Appointment.meta https://www.hl7.org/fhir/resource.html#Meta MUST 1..1
Appointment.meta.profile This MUST be populated. Follow UK Core guidance for populating this element MUST 1..1 https://fhir.hl7.org.uk/StructureDefinition/UKCore-Appointment
Appointment.meta.lastupdated This MUST be populated. All resources MUST include 'lastUpdated' value, under meta section which MUST be the same timestamp for each resource when created from new, but MUST be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent. MUST 1..1 2023-03-08T12:01:08.4677672+00:00
Appointment.status This MUST be populated with 'booked' or 'cancelled' MUST 1..1 booked
Appointment.cancellationReason If the booking is being cancelled (status). This SHOULD be populated SHOULD 0..1
Appointment.cancellationReason.text If the booking is being cancelled (status). This SHOULD be populated with a freetext reason for the cancellation SHOULD 0..1 The patient has now been referred to secondary care.
Appointment.serviceCategory This MUST be populated with 'service' the booking can be made for e.g. Aged Care at the Receiver MUST 0..*
Appointment.serviceCategory.coding This MUST be populated to describe the 'service' the booking is intended to support at the Receiver MUST 0..1
Appointment.serviceCategory.system This MUST be populated with the system of the 'service' MUST 0..1 http://terminology.hl7.org/CodeSystem/service-category
Appointment.serviceCategory.code This MUST be populated with the code of the 'service' MUST 0..1 17
Appointment.serviceCategory.display This MUST be populated with the display of the 'service' MUST 0..1 General Practice
Appointment.description This SHOULD be populated. It is the human readable description of the booking SHOULD 0..1 Reason for calling
Appointment.start This MUST be populated with the Start time of the booking MUST 0..1 2021-10-12T12:30:00+00:00
Appointment.end This MUST be populated with the End time of the booking MUST 0..1 2021-10-12T12:30:00+00:00
Appointment.slot MUST 0..*
Appointment.slot.reference This MUST be populated with the local logical bundle reference to the Slot resource MUST 0..1 urn:uuid:c3f6145e-1a26-4345-b3f2-dccbcba62049
Appointment.created This MUST only be populated with the date/time the booking was generated by the Receiver in the synchronous HTTP response. MUST 0..1 2021-10-11T15:01:30+00:00"
Appointment.basedOn This MAY be populated. When the Service Request is made before the booking in the workflow this MUST be populated. MAY 0..*
Appointment.basedOn.reference This MAY be populated. This is MUST be the relative reference to the Service Request when referral is made before booking in the workflow MAY 0..1 ServiceRequest/236bb75d-90ef-461f-b71e-fde7f899802c
Appointment.participant MUST 1..1
Appointment.participant.actor This MUST be populated with reference to the patient MUST 0..1
Appointment.participant.actor.reference This MUST be populated with the local logical bundle reference to the Patient resource MUST 0..1 urn:uuid:3a62607b-df65-4932-940c-14262787f62d
Appointment.participant.actor.status This MUST be populated with 'accepted' - FIXED VALUE MUST 1..1 accepted

> Slot

This resource will be used to communicate information about the slot. The Slot resource retrieved via the GET /Slot request and MUST be returned how it was received

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
deliveryChannelI0..1Extension(code)
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
serviceCategoryΣ0..*CodeableConcept
serviceTypeΣ0..*CodeableConcept
specialtyΣ0..*CodeableConceptBinding
appointmentTypeΣ0..1CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
statusΣ1..1codeBinding
startΣ1..1instant
endΣ1..1instant
overbooked0..1boolean
comment0..1string

Data Item Implementation Guidance Necessity Cadinality UKCore Example Value(s)
Slot This resource will be used to communicate information about the slot. The Slot resource retrieved via the GET /Slot request and MUST be returned how it was received

https://simplifier.net/hl7fhirukcorer4/ukcoreslot
1..1
Slot.id Id returned as part of the GET /Slot response Must 1..1 e267afc4-4310-4549-b66a-5bc4db08f09b
Slot.meta UKCore Must 1..1
Slot.meta.profile UKCore Must 1..1 http://hl7.org/fhir/StructureDefinition/Slot
Slot.meta.lastUpdated All resources MUST include 'lastUpdated' value, under meta section which must be the same timestamp for each resource when created from new, but must be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent. Must 1..1 2023-03-08T12:01:08.4677672+00:00
Slot.serviceCategory This MUST be populated with 'service' the booking can be made for e.g. Aged Care at the Receiver MUST 0..1
Slot.serviceCategory.coding This MUST be populated to describe the 'service' the booking is intended to support at the Receiver MUST 0..1
Slot.serviceCategory.coding.system This MUST be populated with the system of the 'service' MUST 0..1 http://terminology.hl7.org/CodeSystem/service-category
Slot.serviceCategory.coding.code This MUST be populated with the code of the 'service' MUST 0..1 17
Slot.serviceCategory.coding.display This MUST be populated with the display of the 'service' MUST 0..1 General Practice
Slot.appointmentType UKCore Should 0..1
Slot.appointmentType.coding UKCore Should 0..1
Slot.appointmentType.coding.code UKCore Should 0..1 EMERGENCY
Slot.appointmentType.coding.display UKCore Should 0..1 Emergency Appointment
Slot.schedule UKCore Must 1..1
Slot.schedule.referrence UKCore Must 1..1 urn:uuid:3a62607b-df65-4932-940c-14262787f62d
Slot.status UKCore Must 1..1 busy
Slot.start UKCore Must 1..1 2021-10-06T10:00:00.000+00:00
Slot.end UKCore Must 1..1 2021-10-06T11:00:00.000+00:00

> Schedule

This resource will be used to communicate information about the schedule. The Schedule resource retrieved via the GET /Slot request and MUST be returned how it was received

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
activeΣ ?!0..1boolean
serviceCategoryΣ0..*CodeableConcept
serviceTypeΣ0..*CodeableConcept
specialtyΣ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
planningHorizonΣ I0..1Period
comment0..1string

Data Item Implementation Guidance Necessity Cadinality UKCore Example Value(s)
Schedule This resource will be used to communicate information about the schedule. The Schedule resource retrieved via the GET /Slot request and MUST be returned how it was received

https://simplifier.net/hl7fhirukcorer4/ukcoreschedule
1..1
Schedule.id Id returned as part of the GET /Slot response Must 1..1 e267afc4-4310-4549-b66a-5bc4db08f09b
Schedule.meta UKCore Must 1..1
Schedule.meta.profile UKCore Must 1..1 http://hl7.org/fhir/StructureDefinition/Schedule
Schedule.meta.lastUpdated All resources MUST include 'lastUpdated' value, under meta section which must be the same timestamp for each resource when created from new, but must be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent. Must 1..1 2023-03-08T12:01:08.4677672+00:00
Schdeule.identifier UKCore Must 0..*
Schedule.system UKCore Must 0..1 https://system.supplier.co.uk/Diary/id
Schedule.value UKCore Must 0..1 8622dfdb-dc6a-47b6-b3a7-2eb2829db28
Schedule.serviceCategory This MUST be populated with 'service' the booking can be made for e.g. Aged Care at the Receiver MUST 0..1
Schedule.serviceCategory.coding This MUST be populated to describe the 'service' the booking is intended to support at the Receiver MUST 0..1
Schedule.serviceCategory.coding.system This MUST be populated with the system of the 'service' MUST 0..1 http://terminology.hl7.org/CodeSystem/service-category
Schedule.serviceCategory.coding.code This MUST be populated with the code of the 'service' MUST 0..1 17
Schedule.serviceCategory.coding.display This MUST be populated with the display of the 'service' MUST 0..1 General Practice
Schedule.actor UKCore Must 1..*
Schedule.actor.referrence This MUST be populated with the Healthcare Service, PractitionerRole, Practitioner in seperate actors. Must 0..1 6daaadd8-56e0-4d74-8350-1632331c5452

> Patient

This resource is used to communicate details about the patient who is the subject of the booking.
It also includes contact information for third parties when required.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueAddressAddress
birthSexI0..1Extension(code)
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueBooleanboolean
contactPreferenceI0..1Extension(Complex)
deathNotificationStatusI0..1Extension(Complex)
ethnicCategoryI0..1Extension(CodeableConcept)
residentialStatusI0..1Extension(CodeableConcept)
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueCodeableConceptCodeableConcept
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueBooleanboolean
modifierExtension?! I0..*Extension
id0..1string
nhsNumberVerificationStatusI0..1Extension(CodeableConcept)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
activeΣ ?!0..1boolean
nameΣ0..*HumanName
id0..1string
extensionI0..*Extension
id0..1string
otherContactSystemI0..1Extension(Coding)
value0..1System.String
valueΣ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
genderΣ0..1codeBinding
id0..1string
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueDateTimedateTime
value0..1System.Date
deceasedBooleanboolean
deceasedDateTimedateTime
id0..1string
addressKeyI0..*Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1codeBinding
textΣ0..1string
lineΣ0..*string
cityΣ0..1string
districtΣ0..1string
stateΣ0..1string
postalCodeΣ0..1string
countryΣ0..1string
periodΣ I0..1Period
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
id0..1string
contactRankI0..1Extension(positiveInt)
copyCorrespondenceIndicatorI0..1Extension(boolean)
modifierExtensionΣ ?! I0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
id0..1string
extensionI0..*Extension
id0..1string
otherContactSystemI0..1Extension(Coding)
value0..1System.String
valueΣ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
address0..1Address
gender0..1codeBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
periodI0..1Period
id0..1string
id0..1string
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueCodingCoding
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueCodingCoding
url1..1uriFixed Value
modifierExtensionΣ ?! I0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
typeΣ1..1codeBinding

Data Item Implementation Guidance Necessity Cadinality UKCore Example Value(s)
Patient https://simplifier.net/hl7fhirukcorer4/ukcore-patient 1..1
Patient.id This MUST only be populated with an id generated by the Receiver in the synchronous HTTP response. MUST 9589fb37-87a2-48d8-968f-b371429208a8
Patient.meta https://www.hl7.org/fhir/resource.html#Meta MUST 1..1
Patient.meta.profile This MUST be populated. Follow UK Core guidance for populating this element MUST 1..1 https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient
Patient.meta.LastUpdate This MUST be populated. All resources MUST include 'lastUpdated' value, under meta section which MUST be the same timestamp for each resource when created from new, but MUST be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent. MUST 1..1 2023-03-08T12:01:08.4677672+00:00
Patient.identifier SHOULD 0..*
Patient.identifier.system This SHOULD be populated with namespace for the Identifier SHOULD 0..* https://fhir.nhs.uk/Id/nhs-number
Patient.identifier.value This SHOULD be populated with a human readable patient identifier. When used this MUST be populated with the NHS number when available.If no NHS number is available this SHOULD be populated with the Local patient identifier. SHOULD 1..1 3478526985
Patient.identifier.extension This extension is used to record the NHS number Verification status SHOULD
Patient.identifier.extension.url This SHOULD be populated. Where used this MUST be populated with Structure Definition 'https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus' - FIXED VALUE SHOULD 0..1 https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus
Patient.identifier.extension.valueCodeableConcept SHOULD 0..1
Patient.identifier.extension.valueCodeableConcept.coding SHOULD 0..1
Patient.identifier.extension.valueCodeableConcept.coding.system This SHOULD be populated. Where used this MUST be populated with CodeSystem - 'https://fhir.hl7.org.uk/CodeSystem/UKCore-NHSNumberVerificationStatus' - FIXED VALUE SHOULD 0..1 https://fhir.hl7.org.uk/CodeSystem/UKCore-NHSNumberVerificationStatus
Patient.identifier.extension.valueCodeableConcept.coding.code This SHOULD be populated. Where used this MUST either be number-present-and-verified, Number present but not traced or else no NHS number MUST be sent, no other statuses are valid SHOULD 1..1 number-present-and-verified
Patient.identifier.extension.valueCodeableConcept.coding.display This SHOULD be populated. Where used this MUST either be populated with 'Number present and-verified' or 'Number present but not traced' no other statuses are valid MAY 1..1 Number present and verified
Patient.name SHOULD 0..*
Patient.name.use Follow UK Core guidance for populating this element SHOULD 0..1 official
Patient.name.text Follow UK Core guidance for populating this element SHOULD 0..1 Mrs Julie Jones
Patient.name.family Follow UK Core guidance for populating this element SHOULD 0..1 Jones
Patient.name.given Follow UK Core guidance for populating this element SHOULD 0..1 Julie
Patient.name.prefix Follow UK Core guidance for populating this element SHOULD 0..1 Mrs
Patient.gender Follow UK Core guidance for populating this element SHOULD 0..1 female
Patient.birthDate Follow UK Core guidance for populating this element SHOULD 0..1 1959-05-04
Patient.address SHOULD 0..*
Patient.address.use This SHOULD be populated. Where used 'home' MUST only be used for the patient's official residing address. 'temp' is used for alternative current locations with an address format, otherwise, a Location resource can be used to pinpoint a location without a building address SHOULD 0..1 home
Patient.address.type Follow UK Core guidance for populating this element SHOULD 0..1 both
Patient.address.text Follow UK Core guidance for populating this element SHOULD 0..1 22 Brightside Crescent, Overtown, West Yorkshire, LS10 4YU
Patient.address.line Follow UK Core guidance for populating this element SHOULD 0..* 22 Brightside Crescent
Patient.address.city Follow UK Core guidance for populating this element SHOULD 0..1 Overtown
Patient.address.district Follow UK Core guidance for populating this element SHOULD 0..1 West Yorkshire
Patient.address.postalCode Follow UK Core guidance for populating this element SHOULD 0..1 LS10 4YU
Patient.contact This MUST be used to record telecom information for the patient and/or the patient's representative for the encounter MUST 0..*
Patient.contact.extension MUST 0..*
Patient.contact.extension.url This MUST be populated with Structure Definition 'https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactRank' - FIXED VALUE MUST 0..1 https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactRank
Patient.contact.extension.urlvaluePositiveInt This MUST be populated with the rank of the whole contact and MUST be populated with the value '1' for the primary person to contact for referral. There MUST be at least one contact for the referral. MUST 0..1 1
Patient.contact.relationship MUST 0..1
Patient.contact.relationship.coding MUST 0..1
Patient.contact.relationship.coding.system This MUST be populated with the CodeSystem from the ValueSet 'https://fhir.hl7.org.uk/ValueSet/UKCore-PersonRelationshipType'.
Where the contact details relate to the patient this relationship MUST be populated with the value 'self'.
Where the contact details relate to a patient's representative this SHOULD be populated with their relationship to the patient.
If the relationship is not known this SHOULD be populated with the value 'Unknown'
MUST 0..1 https://simplifier.net/hl7fhirukcorer4/ukcore-personrelationshiptype-110
Patient.contact.relationship.coding.code This MUST be populated with Code of CodeSystem value. See ValueSet 'https://fhir.hl7.org.uk/ValueSet/UKCore-PersonRelationshipType'. MUST 0..1 EP
Patient.contact.relationship.coding.display This MUST be populated with Display of CodeSystem value. See ValueSet 'https://fhir.hl7.org.uk/ValueSet/UKCore-PersonRelationshipType'. MUST 0..1 EP
Patient.contact.name SHOULD 0..1
Patient.contact.name.family This SHOULD be populated. Follow UK Core guidance for populating this element SHOULD 0..1 Grayson
Patient.contact.name.given This SHOULD be populated. Follow UK Core guidance for populating this element SHOULD 0..1 Jack
Patient.contact.telecom SHOULD 0..*
Patient.contact.telecom.system This MUST be populated for the rank 1 contact. There MUST be at least one contact phone number for the referral MUST phone
Patient.contact.telecom.value This MUST be populated. Follow UK Core guidance for populating this element MUST 0..1 0789 1234567
Patient.contact.gender This SHOULD be populated. Follow UK Core guidance for populating this element SHOULD 0..1 male
Patient.Communication SHOULD 0..1
Patient.Communication.Language SHOULD 0..1
Patient.Communication.Language.coding SHOULD 0..1
Patient.Communication.Language.coding.code This SHOULD be populated. Follow UK Core guidance for populating this element SHOULD 0..* en
Patient.Communication.Language.coding.system This SHOULD be populated. Follow UK Core guidance for populating this element SHOULD 0..1 https://fhir.hl7.org.uk/CodeSystem/UKCore-HumanLanguage
Patient.Communication.Language.coding.display This SHOULD be populated. Follow UK Core guidance for populating this element SHOULD 0..1 English
Patient.Communication.Language.preferred This SHOULD be populated. Follow UK Core guidance for populating this element SHOULD 0..1 TRUE
Patient.extension SHOULD 0..*
Patient.extension.url This SHOULD be populated. Follow UK Core guidance for populating this element SHOULD 1..1 https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-EthnicCategory
Patient.extension.valueCodeableConcept SHOULD 0..1
Patient.extension.valueCodeableConcept.coding SHOULD 0..*
Patient.extension.valueCodeableConcept.coding.system This SHOULD be populated. Follow UK Core guidance for populating this element SHOULD 0..1 https://fhir.hl7.org.uk/CodeSystem/UKCore-EthnicCategory
Patient.extension.valueCodeableConcept.coding.code This SHOULD be populated. Follow UK Core guidance for populating this element SHOULD 0..1 A
Patient.extension.valueCodeableConcept.coding.display This SHOULD be populated. Follow UK Core guidance for populating this element SHOULD 0..1 British, Mixed British
Patient.generalPractitioner This SHOULD be populated with a reference to the GP Surgery ONLY rather than a specific practitioner SHOULD 0..1
Patient.generalPractitioner.reference This SHOULD be populated. Where populated this MUST reference to an Organisation resource SHOULD 0..1 urn:uuid:b83d13e2-8c2e-422c-88ac-63b8e86a4411

> Organization

This resource is used to communicate details about the sender and receiver organisations.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
mainLocationI0..*Extension(Reference())
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valuePeriodPeriod
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
activeΣ ?!0..1boolean
typeΣ0..*CodeableConcept
nameΣ I0..1string
alias0..*string
telecomI0..*ContactPoint
addressI0..*Address
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
purpose0..1CodeableConceptBinding
name0..1HumanName
telecomI0..*ContactPoint
address0..1Address
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string

Data Item Implementation Guidance Necessity Cadinality UKCore Example Value(s)
Organization https://simplifier.net/hl7fhirukcorer4/ukcoreorganization 2..*
Organization.id This MUST only be populated with an id generated by the Receiver in the synchronous HTTP response. MUST 5d897313-c62d-4e7e-92b7-b2199804fed3
Organization.meta https://www.hl7.org/fhir/resource.html#Meta MUST 1..1
Organization.meta.profile This MUST be populated. Follow UK Core guidance for populating this element MUST 1..1 https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization
Organization.meta.lastUpdated This MUST be populated. All resources MUST include 'lastUpdated' value, under meta section which MUST be the same timestamp for each resource when created from new, but MUST be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent. MUST 1..1 2023-03-08T12:01:08.4677672+00:00
Organization.identifier This MUST be populated with an organisation identifier e.g. ODS code MUST 0..*
Organization.identifier.system This MUST be populated. Follow UK Core guidance for populating this element MUST 0..1 https://fhir.nhs.uk/id/ods-organization-code
Organization.identifier.value This MUST be populated. Follow UK Core guidance for populating this element MUST 0..1 ABD01
Organization.name This MUST be populated. Follow UK Core guidance for populating this element MUST 0..1 Organisation name

> Practitioner

This is used to carry details of the healthcare professional making the Booking

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
activeΣ0..1boolean
nameΣ0..*HumanName
telecomΣ I0..*ContactPoint
addressΣ0..*Address
genderΣ0..1codeBinding
birthDateΣ0..1date
photoI0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
code1..1CodeableConcept
periodI0..1Period
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
communication0..*CodeableConceptBinding

Data Item Implementation Guidance Necessity Cadinality UKCore Example Value(s)
Practitioner https://simplifier.net/hl7fhirukcorer4/ukcorepractitioner 0..*
Practitioner.id This MUST only be populated with an id generated by the Receiver in the synchronous HTTP response. MUST 1..1 51182cb1-b199-4222-85f5-16d5428f6358
Practitioner.meta https://www.hl7.org/fhir/resource.html#Meta MUST 1..1
Practitioner.meta.profile This MUST be populated. Follow UK Core guidance for populating this element MUST 1..1 https://fhir.hl7.org.uk/StructureDefinition/UKCore-Practitioner
Practitioner.meta.lastUpdated This MUST be populated. All resources MUST include 'lastUpdated' value, under meta section which MUST be the same timestamp for each resource when created from new, but MUST be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent. MUST 1..1 2023-03-08T12:01:08.4677672+00:00
Practitioner.identifier This MUST be populated. Follow UK Core guidance for populating this element MUST 0..*
Practitioner.identifier.system This MUST be populated. Follow UK Core guidance for populating this element MUST 0..1 https://fhir.nhs.uk/Id/sds-role-profile-id
Practitioner.identifier.value This MUST be populated. Follow UK Core guidance for populating this element MUST 0..1 PT2489
Practitioner.name SHOULD 0..*
Practitioner.name.family Follow UK Core guidance for populating this element SHOULD 0..1 BLAKE
Practitioner.name.given Follow UK Core guidance for populating this element SHOULD 0..1 Marcy
Practitioner.telecom SHOULD 0..*
Practitioner.telecom.system Follow UK Core guidance for populating this element SHOULD 0..1 phone
Practitioner.telecom.value Follow UK Core guidance for populating this element SHOULD 0..1 0205568263
Practitioner.telecom.use Follow UK Core guidance for populating this element SHOULD 0..1 work

> Practitioner Role

This is used to carry the role of the practitioner making the referral. Note this may be the call handler

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
activeΣ0..1boolean
periodΣ I0..1Period
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
codeΣ0..*CodeableConceptBinding
specialtyΣ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
telecomΣ I0..*ContactPoint
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
daysOfWeek0..*codeBinding
allDay0..1boolean
availableStartTime0..1time
availableEndTime0..1time
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
description1..1string
duringI0..1Period
availabilityExceptions0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string

Data Item Implementation Guidance Necessity Cadinality UKCore Example Value(s)
PractitionerRole https://simplifier.net/hl7fhirukcorer4/ukcorepractitionerrole 0..*
PractitionerRole.id This MUST only be populated with an id generated by the Receiver in the synchronous HTTP response. MUST 1..1 1801e180-e6a1-4753-8a55-ab2d1cff6549
PractitionerRole.meta https://www.hl7.org/fhir/resource.html#Meta MUST 1..1
PractitionerRole.meta.profile This MUST be populated. Follow UK Core guidance for populating this element MUST 1..1 https://fhir.hl7.org.uk/StructureDefinition/UKCore-PractitionerRole
PractitionerRole.meta.lastUpdated This MUST be populated. All resources MUST include 'lastUpdated' value, under meta section which MUST be the same timestamp for each resource when created from new, but MUST be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent. MUST 1..1 2023-03-08T12:01:08.4677672+00:00
PractitionerRole.practitioner MUST 0..1
PractitionerRole.practitioner.reference This MUST be populated. Follow UK Core guidance for populating this element MUST 0..1 urn:uuid:7d948662-bade-450e-b6c5-9bb6ee39cb56
PractitionerRole.Organisation MUST 0..1
PractitionerRole.Organisation.reference This MUST be populated. Follow UK Core guidance for populating this element MUST 0..1 urn:uuid:7d948662-bade-450e-b6c5-9bb6ee39cb51
PractitionerRole.code SHOULD 0..*
PractitionerRole.code.coding This SHOULD be populated when indicating the roles a practitioner can perform SHOULD 1..1
PractitionerRole.code.coding.system This MUST be populated with the CodeSystem from the ValueSet 'https://fhir.hl7.org.uk/ValueSet/UKCore-PractitionerRoleCode' - FIXED VALUE SHOULD 0..1 https://fhir.hl7.org.uk/ValueSet/UKCore-PractitionerRoleCode
PractitionerRole.code.coding.code This MUST be populated with Code of CodeSystem value. See ValueSet 'https://fhir.hl7.org.uk/ValueSet/UKCore-PractitionerRoleCode'. SHOULD 0..1 224508005
PractitionerRole.code.coding.display This MUST be populated with Display of CodeSystem value. See ValueSet 'https://fhir.hl7.org.uk/ValueSet/UKCore-PractitionerRoleCode'. SHOULD 0..1 Administrative healthcare staff

> Healthcare Service

The HealthcareService the request is being made of - Receiver. The HealthcareService resource is retrieved via the GET /Slot request and SHOULD be returned how it was received but MAY be added to. The Id value MUST remain the same.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
activeΣ ?!0..1boolean
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
categoryΣ0..*CodeableConcept
typeΣ0..*CodeableConcept
specialtyΣ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
nameΣ0..1string
commentΣ0..1string
extraDetails0..1markdown
photoΣ I0..1Attachment
telecomI0..*ContactPoint
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
serviceProvisionCode0..*CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
code0..1CodeableConcept
comment0..1markdown
program0..*CodeableConcept
characteristic0..*CodeableConcept
communication0..*CodeableConceptBinding
referralMethod0..*CodeableConcept
appointmentRequired0..1boolean
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
daysOfWeek0..*codeBinding
allDay0..1boolean
availableStartTime0..1time
availableEndTime0..1time
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
description1..1string
duringI0..1Period
availabilityExceptions0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
Data Item Implementation Guidance Necessity Cadinality UKCore Example Value(s)
HealthcareService https://simplifier.net/hl7fhirukcorer4/ukcorehealthcareservice 1..1
HealthcareService.id This MUST be populated with the value retrieved for the resource via the GET /Sot request. MUST 1..1 1801e180-e6a1-4753-8a55-ab2d1cff6549
HealthcareService.meta https://www.hl7.org/fhir/resource.html#Meta MUST 1..1
HealthcareService.meta.profile This MUST be populated. Follow UK Core guidance for populating this element MUST 1..1 https://fhir.hl7.org.uk/StructureDefinition/UKCore-HealthcareService
HealthcareService.meta.lastUpdated This MUST be populated. All resources MUST include 'lastUpdated' value, under meta section which MUST be the same timestamp for each resource when created from new, but MUST be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent. MUST 1..1 2023-03-08T12:01:08.4677672+00:00
HealthcareService.identifier MUST 0..*
HealthcareService.identifier.system This MUST be populated. Follow UK Core guidance for populating this element MUST 0..1 https://system.supplier.co.uk/My/Healthcare/Services
HealthcareService.identifier.value This MUST be populated with the receiving HealthcareService identifier e.g ODS code MUST 0..1 100
HealthcareService.active This MUST be populated. Follow UK Core guidance for populating this element MUST
HealthcareService.providedBy This MUST be populated. Follow UK Core guidance for populating this element MUST
HealthcareService.providedBy.reference link to the Organisation the request is being made of MUST
HealthcareService.location MAY 0..*
HealthcareService.location.reference Follow UK Core guidance for populating this element MAY 0..1 urn:uuid:860e4c37-4e36-45fb-8fca-41132cd937a5
HealthcareService.name This MUST be populated. Follow UK Core guidance for populating this element MUST 0..1 Healthcare Service Name


Entity Relationship Diagrams


Entity maps detail the relationship of the resources and key elements within resources in the payloads.

The below diagram details the Booking Request





The below diagram details the Booking Cancellation Request

back to top