Shared Care Planning (SCP) Implementation Guide
0.3.0 - ci-build
Shared Care Planning (SCP) Implementation Guide - Local Development build (v0.3.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
The FHIR Subscription Framework facilitates real-time event notifications from a FHIR server to other systems. It uses three core resources: SubscriptionTopic (defining events and triggers), Subscription (describing client requests for notifications), and notification Bundles (containing an event-notification, handshake-notification or heartbeat-notification). Clients request notifications based on specific topics, and servers send them using different communication channels. There are two subscription management styles: In-Band (client-managed) and Out-of-Band (server-managed). These interactions may involve technologies like REST hooks or websockets, allowing clients to receive notifications based on predefined conditions. In essence, the Out-of-Band (server-managed) style transfers much of the management burden from the client to the server, with the server being responsible for event processing, notification delivery, and system resilience.
Within Shared Care Planning, the Out-of-Band (server-managed) subscription style and REST hook channel shall be used. The default endpoint for notification bundles is the FHIR base url (a local API gateway or proxy should be able to handle/forward notification bundles). SCP uses a SubscriptionTopic, which is triggered if your organization is a participant in a SCP-Task or SCP-CarePlan.
If Organization-1 creates a Task for PractitionerRole-2 in the local SCP-node, the folowing steps are taken:
A Shared Care Planning endpoint shall implement the following capabilities:
Subscription
resource
read
interactionsearch
interaction
status
,criteria
, channel.endpoint
, channel.type
and channel.payload
$status
and $event
rest-hook
id-only
.A Shared Care Planning endpoint may support additional capabilities like other payloads or channel types. It's up to subscription manager to decide which e.g. channel/payload type to use given the joint capabilities of both subscription manager and client.
A Shared Care Planning node shall implement the role of a subscription manager for out-of-band style subscriptions, i.e.:
requested
(which may involve retries) and update the subscription.status accordinglyA Shared Care Planning node shall implement the role of a subscription client for out-of-band style subscriptions, i.e.:
The subscription client, being responsible for resolving failures, should also track the subscription's state to highlight and fix any erroneous communication.
In order to implement this subscription framework in FHIR version R4, the Subscriptions R5 Backport for R4 is used. Check out the example instances for a subscription or notification-bundle.