diff --git a/BaRS-Images/DocumentReference/BaRS_NRL_Write_Sequence-1.1.0.svg b/BaRS-Images/DocumentReference/BaRS_NRL_Write_Sequence-1.1.0.svg index 10f70b3a..1fb9b2af 100644 --- a/BaRS-Images/DocumentReference/BaRS_NRL_Write_Sequence-1.1.0.svg +++ b/BaRS-Images/DocumentReference/BaRS_NRL_Write_Sequence-1.1.0.svg @@ -1,4 +1,4 @@ -
User
Use...
Sender
Sender
BaRS Proxy
BaRS Pr...
Endpoint
Endpoi...
NRLF
NRLF
Receiver
Receiver
User
Use...
Sender
Sender
BaRS Proxy
BaRS P...
Endpoint
Endpoi...
NRLF
NRLF
Receiver
Receiver
Book/Ammend Appointment
Book/Ammend Appointment
Find Appointment(s) for a Patient
Find Appointment(s) for a Patient
Authentication Implied.
Authentication...
Get /metadata implied.
Get /metadata implied.
POST $process-message
(Appointment / Target)
POST $process-message...
Obtain Endpoint
Obtain Endpoint
Obtain Endpoint
Obtain Endpoint
Endpoint
Endpoint
Endpoint
Endpoint
POST $process-message
(Appointment / Target)
POST $process-message...
Process Message
Process Message
200 / 201 Appointment
200 / 201 Appointment
200 / 201 Appointment
200 / 201 Appointment
Appointment
Appointment
PUT/POST/DELETE  DocumentReference
PUT/POST/DELETE  DocumentReference
200 / 201
200 / 201
 DocumentReference
 DocumentReference
200 / 201 Appointment
200 / 201 Appointment
200 / 201 Appointment
200 / 201 Appointment
Success
Success
PUT /POST/DELTE DocumentReference
PUT /POST/DELTE DocumentReference
200 / 201
200 / 201
Text is not SVG - cannot display
\ No newline at end of file +
User
Sender
BaRS Proxy
Endpoint
NRLF
Receiver
User
Sender
BaRS Proxy
Endpoint
NRLF
Receiver
Book/Amend Appointment
Find Appointment(s) for a Patient
Get /metadata implied.
PUT/POST/PATCH /Appointment
Obtain Endpoint
Obtain Endpoint
Endpoint
Endpoint
PUT/POST/PATCH /Appointment
Process Appointment
200 / 201 Appointment
200 / 201 Appointment
Appointment
PUT/POST/DELETE DocumentReference
200 / 201
200 / 201 Appointment
200 / 201 Appointment
Success
PUT/POST/DELETE DocumentReference
200 / 201
\ No newline at end of file diff --git a/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Book.drawio.svg b/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Book.drawio.svg index 63548b79..057c187c 100644 --- a/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Book.drawio.svg +++ b/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Book.drawio.svg @@ -1,4 +1,4 @@ -
User
Sender
BaRS Proxy
NRL
Receiver
Book an Appointment
Authentication Implied.
Endpoint catalogue implied
GET /metadata
GET /metadata
200 CapabilityStatement
200 CapabilityStatement
Booking Required at Service
Select  slot
GET /Slots
GET /Slots
200 Slot  searchset Bundle
200 Slot  searchset Bundle
Show available slots
POST new Appointment
POST new Appointment
201 Appointment
POST /DocumentReference
201 Created
201 Appointment
Confirm Booking







Sender
BaRS Proxy
NRL
Receiver
\ No newline at end of file +
User
Sender
BaRS Proxy
NRL
Receiver
User
Sender
BaRS Proxy
NRL
Receiver
Booking Required at Service
GET /metadata
200 Slot searchset Bundle
GET /Slots
201 Appointment created
200 CapabilityStatement
GET /metadata
200 CapabilityStatement
GET /Slots
200 Slot searchset Bundle
Show available slots
Select slot
POST /Appointment
POST /Appointment
POST /DocumentReference
201 Appointment created
Confirm booking
Book an Appointment
POST /DocumentReference
201 DocumentReference Created
201 DocumentReference Created
\ No newline at end of file diff --git a/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Cancel.drawio.svg b/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Cancel.drawio.svg index 520d9f1d..e345231c 100644 --- a/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Cancel.drawio.svg +++ b/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Cancel.drawio.svg @@ -1,4 +1,4 @@ -
User
Sender
BaRS Proxy
NRL
Receiver
Loop
Find Patients Booking
Get DocumentReference (NHS No.)
Get DocumentReference (NHS No.)
Bundle (DocumentReference)
Bundle (DocumentReference)
GET /Appointment/[id]
GET /Appointment/[id]
200 Appointment
200 Appointment
Show Booking
Cancel a specific Appountment
Authentication Implied.
Endpoint catalogue implied
GET /metadata
GET /metadata
200 CapabilityStatement
200 CapabilityStatement
Select and Cancel Booking
PUT /Appointment/[id]
PUT /Appointment/[id]
200 Success
DELETE /DocumentReference/[id]
200 Success
200 Appointment
Confirm Cancelled







Sender
BaRS Proxy
NRL
Receiver
\ No newline at end of file +
User
Sender
BaRS Proxy
NRL
Receiver
User
Sender
BaRS Proxy
NRL
Receiver
Loop through Appointment (DocumentReference) pointers
GET /Appointment/{id}
200 Appointment
Find patient's booking
GET /DocumentReference (NHS No.)
GET /DocumentReference (NHS No.)
Bundle (DocumentReferences)
Bundle (DocumentReferences)
GET /Appointment/{id}
200 Appointment
GET /metadata
200 CapabilityStatement
GET /metadata
200 CapabilityStatement
Show Appointment(s) for selection
Cancel an Appointment
200 Appointment cancelled
Select Appointment to cancel
PUT /Appointment/{id}
PUT /Appointment/{id}
DELETE /DocumentReference/{id}
200 Appointment cancelled
Confirm Appointment cancelled
200 DocumentReference removed
DELETE /DocumentReference/{id}
200 DocumentReference removed
\ No newline at end of file diff --git a/BaRS-Images/SequenceDiagrams/BaRS_Foundation_ReBook.drawio.svg b/BaRS-Images/SequenceDiagrams/BaRS_Foundation_ReBook.drawio.svg index c36a0eb9..f4fef831 100644 --- a/BaRS-Images/SequenceDiagrams/BaRS_Foundation_ReBook.drawio.svg +++ b/BaRS-Images/SequenceDiagrams/BaRS_Foundation_ReBook.drawio.svg @@ -1,4 +1,4 @@ -
User
Sender
BaRS Proxy
NRL
Receiver
Loop
Find Patients Appointments
Get DocumentReference (NHS No.)
Get DocumentReference (NHS No.)
Bundle (DocumentReference)
Bundle (DocumentReference)
GET /Appointment/[id]
GET /Appointment/[id]
200 Appointment
200 Appointment
Show Appointments
Rebook a specific Appointment
Authentication Implied.
Endpoint catalogue implied
GET /metadata
GET /metadata
200 CapabilityStatement
200 CapabilityStatement
Select Appointment to modify
select new slot
GET /Slots
GET /Slots
200 Slot  searchset Bundle
200 Slot  searchset Bundle
Show available slots
PUT /Appointment/[id]
PUT /Appointment/[id]
200 Appointment
DELETE /DocumentReference/[id]
200 Success
200 Appointment
POST new Appointment
POST new Appointment
201 Appointment
POST /DocumentReference
201 Created
201 Appointment
Confirm Booking







Sender
BaRS Proxy
NRL
Receiver
\ No newline at end of file +
User
Sender
BaRS Proxy
NRL
Receiver
User
Sender
BaRS Proxy
NRL
Receiver
Loop through Appointment (DocumentReference) pointers
GET /Appointment/{id}
200 Appointment
Find patient's booking
GET /DocumentReference (NHS No.)
GET /DocumentReference (NHS No.)
Bundle (DocumentReferences)
Bundle (DocumentReferences)
GET /Appointment/{id}
200 Appointment
GET /metadata
200 CapabilityStatement
GET /metadata
200 CapabilityStatement
Show Appointment(s) for selection
Rebook an Appointment
GET /metadata
200 Slot searchset Bundle
GET /Slots
200 Appointment updated
200 DocumentReference removed
200 CapabilityStatement
GET /metadata
200 CapabilityStatement
GET /Slots
200 Slot searchset Bundle
Show available slots
Select slot (remove existing Appointment) and book new
PUT /Appointment/{id} (existing)
PUT /Appointment/{id}
DELETE /DocumentReference/{id}
201 Appointment created
Confirm existing removed and new Appointment created
Select Appointment to change slot for
201 Appointment created
200 DocumentReference created
POST /Appointment
POST /DocumentReference
POST /Appointment (new)
DELETE /DocumentReference/{id}
200 DocumentReference removed
POST /DocumentReference
200 DocumentReference created
\ No newline at end of file diff --git a/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Reschedule.drawio.svg b/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Reschedule.drawio.svg new file mode 100644 index 00000000..73fd7ab3 --- /dev/null +++ b/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Reschedule.drawio.svg @@ -0,0 +1,4 @@ + + + +
User
Sender
BaRS Proxy
NRL
Receiver
User
Sender
BaRS Proxy
NRL
Receiver
Loop through Appointment (DocumentReference) pointers
GET /Appointment/{id}
200 Appointment
Find patient's booking
GET /DocumentReference (NHS No.)
GET /DocumentReference (NHS No.)
Bundle (DocumentReferences)
Bundle (DocumentReferences)
GET /Appointment/{id}
200 Appointment
GET /metadata
200 CapabilityStatement
GET /metadata
200 CapabilityStatement
Show Appointment(s) for selection
Reschedule an Appointment
GET /metadata
200 Slot searchset Bundle
GET /Slots
200 Appointment updated
200 CapabilityStatement
GET /metadata
200 CapabilityStatement
GET /Slots
200 Slot searchset Bundle
Show available slots
Select slot
PATCH /Appointment/{id}
PATCH /Appointment/{id}
200 Appointment updated
Confirm Appointment updated
Select Appointment to change slot for
PUT /DocumentReference/{id}
200 DocumentReference Updated
200 DocumentReference Updated
PUT /DocumentReference/{id}
\ No newline at end of file diff --git a/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Update.drawio.svg b/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Update.drawio.svg index 44ed864e..c56f5bf6 100644 --- a/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Update.drawio.svg +++ b/BaRS-Images/SequenceDiagrams/BaRS_Foundation_Update.drawio.svg @@ -1,4 +1,4 @@ -
User
Sender
BaRS Proxy
NRL
Receiver
Loop
Find Patients Booking
Get DocumentReference (NHS No.)
Get DocumentReference (NHS No.)
Bundle (DocumentReference)
Bundle (DocumentReference)
GET /Appointment/[id]
GET /Appointment/[id]
200 Appointment
200 Appointment
Show Booking
Update a specific Appointment
Authentication Implied.
Endpoint catalogue implied
GET /metadata
GET /metadata
200 CapabilityStatement
200 CapabilityStatement
Select and Changel Booking Detail
PUT /Appointment/[id]
PUT /Appointment/[id]
200 Success
PUT /DocumentReference/[id]
200 Success
200 Appointment
Confirm Cancelled







Sender
BaRS Proxy
NRL
Receiver
\ No newline at end of file +
User
Sender
BaRS Proxy
NRL
Receiver
User
Sender
BaRS Proxy
NRL
Receiver
Loop through Appointment (DocumentReference) pointers
GET /Appointment/{id}
200 Appointment
200 Appointment updated
Select and change Appointment
PUT /Appointment/{id}
PUT /Appointment/{id}
200 Appointment updated
Confirm booking update
Find patient's booking
GET /DocumentReference (NHS No.)
GET /DocumentReference (NHS No.)
Bundle (DocumentReferences)
Bundle (DocumentReferences)
GET /Appointment/{id}
200 Appointment
GET /metadata
200 CapabilityStatement
GET /metadata
200 CapabilityStatement
Show Appointment(s) for selection
Update an Appointment
\ No newline at end of file diff --git a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Appointment-StandardPattern/Introduction.page.md b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Appointment-StandardPattern/Introduction.page.md index 0b503799..01a7f501 100644 --- a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Appointment-StandardPattern/Introduction.page.md +++ b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Appointment-StandardPattern/Introduction.page.md @@ -23,6 +23,7 @@ The Appointment Management Foundation is based on {{pagelink:design-core-1.3.1, The key functions surrounding appointment bookings are listed below. This section will provide information on how to meet them using the Appointment Resource. The ability to - +* view * book * update * cancel diff --git a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Appointment-StandardPattern/Reschedule-Existing-Booking.page.md b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Appointment-StandardPattern/Reschedule-Existing-Booking.page.md index a9bc4d08..c017af5b 100644 --- a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Appointment-StandardPattern/Reschedule-Existing-Booking.page.md +++ b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Appointment-StandardPattern/Reschedule-Existing-Booking.page.md @@ -13,7 +13,16 @@ Steps to Reschedule: * Select a new slot * Update the resource with the new slot. NB: Only the .slot element of the resource must be updated * Perform a [PATCH](https://digital.nhs.uk/developer/api-catalogue/booking-and-referral-fhir/v1.3.0#patch-/Appointment/-id-) operation using the id of the appointment to /Appointment/\{id\} -* Once processed, the Receiver of the booking must [update (PUT)](https://digital.nhs.uk/developer/api-catalogue/booking-and-referral-fhir/v1.3.0#put-/DocumentReference/-id-) the pointer in the central Registry, as described in {{pagelink:core-StandardPattern-document-reference-Receiver-1.3.1, text: Document Reference Standard Pattern - Receiver}} +* Once processed, the Receiver of the booking must [update (PUT)](https://digital.nhs.uk/developer/api-catalogue/booking-and-referral-fhir/v1.3.0#put-/DocumentReference/-id-) the pointer in the central Registry, as described in {{pagelink:core-StandardPattern-document-reference-Receiver-1.3.1, text: Document Reference Standard Pattern - Receiver}}. The principle update to the pointer is to change the .context element to alter the slot time - + +```json +"context": { + "period": { + "start": "2025-02-12T12:30:30+00:00", + "end": "2025-02-12T12:40:30+00:00" + } +} +``` In this example the Appointment resource is with the existing slot, and updated with the newly selected slot. @@ -82,4 +91,4 @@ Request Body ] } ``` - + diff --git a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Appointment-StandardPattern/Update-Existing-Booking.page.md b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Appointment-StandardPattern/Update-Existing-Booking.page.md index d22e14c6..2fa3f5ef 100644 --- a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Appointment-StandardPattern/Update-Existing-Booking.page.md +++ b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Appointment-StandardPattern/Update-Existing-Booking.page.md @@ -22,6 +22,17 @@ resource returned: ] }, "status": "booked", + "reasonCode": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "165342003", + "display": "Patient declined laboratory test (situation)" + } + ] + } + ], "description": "Reason for calling", "created": "2024-10-08T15:01:30+00:00", "participant": [ @@ -53,8 +64,8 @@ Request Body "coding": [ { "system": "http://snomed.info/sct", - "code": "65363002", - "display": "Otitis media (disorder)" + "code": "165332000", + "display": "Laboratory test requested (situation)" } ] } diff --git a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/DocumentReference-StandardPattern/Introduction.page.md b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/DocumentReference-StandardPattern/Introduction.page.md index 5c9898d2..caef46e2 100644 --- a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/DocumentReference-StandardPattern/Introduction.page.md +++ b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/DocumentReference-StandardPattern/Introduction.page.md @@ -5,7 +5,7 @@ topic: core-StandardPattern-document-reference-Introduction-1.3.1 # Standard Pattern - DocumentReference ## Introduction diff --git a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/DocumentReference-StandardPattern/Receiver-DocumentReference.md b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/DocumentReference-StandardPattern/Receiver-DocumentReference.md index e6e8aae8..88fe9b8c 100644 --- a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/DocumentReference-StandardPattern/Receiver-DocumentReference.md +++ b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/DocumentReference-StandardPattern/Receiver-DocumentReference.md @@ -83,6 +83,16 @@ The third identifier (currently optional) relates to the product-id, system '*ht } ``` +**context:** MUST include a period set to the Appointment start and end times. + +```json +"context": { + "period": { + "start": "2025-02-12T12:30:30+00:00", + "end": "2025-02-12T12:40:30+00:00" + } +} +``` ### Step 3: Save and Transmit the DocumentReference (pointer) Once all the necessary fields are populated, perform a [POST](https://digital.nhs.uk/developer/api-catalogue/booking-and-referral-fhir/v1.3.0#post-/DocumentReference) of the DocumentReference to the /DocumentReference endpoint on the BaRS proxy. This will create a DocumentReference in the NRL. diff --git a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/DocumentReference-StandardPattern/Sender-DocumentReference.md b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/DocumentReference-StandardPattern/Sender-DocumentReference.md index 4b9aacb3..022c34eb 100644 --- a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/DocumentReference-StandardPattern/Sender-DocumentReference.md +++ b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/DocumentReference-StandardPattern/Sender-DocumentReference.md @@ -82,6 +82,17 @@ The third identifier (currently optional) relates to the product-id, system '*ht } ``` +**context:** includes a period set to the Appointment start and end times. + +```json +"context": { + "period": { + "start": "2025-02-12T12:30:30+00:00", + "end": "2025-02-12T12:40:30+00:00" + } +} +``` + ### Step 4: Retrieve the booking or referral The booking or referral resource can be retrieved by making a GET request for the [booking](https://digital.nhs.uk/developer/api-catalogue/booking-and-referral-fhir/v1.3.0#get-/Appointment/-id-) or [referral](https://digital.nhs.uk/developer/api-catalogue/booking-and-referral-fhir/v1.3.0#get-/ServiceRequest/-id-). @@ -89,7 +100,7 @@ The two key values required to make the request are the first two identifiers in For BaRS, a GET of the relevant resource using the Target Identifiers. In this simplified example, the identifier containing the service id is used in the NHSD-Target-Identifier header, instructing the BaRS proxy to route to the request to that target **note**: The header is not base64Encoded in this example: -```bash +``` cURL --location 'https://int.api.service.nhs.uk/booking-and-referral/FHIR/R4/Appointment/8c63d621-4d86-4f57-8699-e8e22d49935d' \ --header 'X-Request-ID: {{X-Request-ID}}' \ --header 'X-Correlation-ID: {{X-Correlation-ID}}' \ diff --git a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Index.page.md b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Index.page.md index bfcbc5e7..8e0bd663 100644 --- a/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Index.page.md +++ b/guides/Live-ImplementationGuide-BaRS/Home/Core/1.3.1/Index.page.md @@ -213,6 +213,7 @@ For more detail please visit the {{pagelink:Core-StandardPattern-1.3.1, text: St The key capabilities surrounding appointments are listed below. This section will provide information on how to meet them. +* view * book * update * cancel