Confirm the FHIR server supports the R5 Subscriptions backport IG (hl7.fhir.uv.subscriptions-backport) by checking the CapabilityStatement for the relevant capability statements or extension support.
Identify or discover the SubscriptionTopic that represents the event you want to monitor (e.g., new Encounter, new lab Observation); in the R4 backport pattern, topics are identified by canonical URL rather than a SubscriptionTopic resource on the server.
Create a Subscription resource with the backport extensions: include the backport-topic-canonical extension pointing to the SubscriptionTopic canonical URL, backport-payload extension specifying the notification payload type (id-only, full-resource, or empty), and a channel of type rest-hook with the notification endpoint URL.
POST the Subscription to [base]/Subscription and handle the handshake notification sent by the server to your rest-hook endpoint to verify the subscription is active.
Receive notification bundles at your endpoint; parse the SubscriptionStatus entry (in the backport pattern, conveyed via a Parameters resource or Bundle) to identify which resources triggered the notification.
Fetch the triggered resources from the FHIR server if the payload type is id-only, using the resource references provided in the notification.
Known gotchas
The R5 backport Subscription uses custom extensions on the R4 Subscription resource — a server that supports only base R4 Subscriptions without the backport IG will not process these extensions correctly.
The rest-hook endpoint must be publicly reachable by the FHIR server and must respond with 200 to the handshake event; a non-200 response will prevent the subscription from activating.
Notification delivery is not guaranteed exactly-once — implement idempotency at the receiving endpoint to handle duplicate or out-of-order notification bundles.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp