Fetching notification events

The subscriber can check notification events by issuing a request such as

curl -sS "https://${server}/fhir/r5/api/Subscription/42/\$events?eventsSinceNumber=10&eventsUntilNumber=12" \
  -H "client_id: ${client_id}" \
  -H "client_secret: ${client_secret}" \
  -H "org_id: ${org_id}" \
  -H "certificate: ${certificate}" | jq

Example result:

{
  "resourceType": "Bundle",
  "type": "subscription-notification",
  "entry": [
    {
      "resource": {
        "resourceType": "SubscriptionStatus",
        "status": "error",
        "type": "query-event",
        "eventsSinceSubscriptionStart": 132,
        "notificationEvent": [
          {"eventNumber": 10, "focus": {"reference": "Observation/f8c0f4bd"}},
          {"eventNumber": 11, "focus": {"reference": "Observation/ba910bb3"}},
          {"eventNumber": 12, "focus": {"reference": "Observation/78d13ebe"}}
        ],
        "subscription": {
          "reference": "Subscription/42"
        }
      }
    }
  ]
}

The range of events is determined by the eventsSinceNumber and eventsUntilNumber parameters but the results are limited to 100 events per request.

⚠️ Note: The behavior of the $events operation without the eventsSinceNumber and eventsUntilNumber parameters is undefined and subject to change. For a well-defined behavior, clients need to explicitly define the requested range of events.

Please note that under the normal operation of a subscription, it should not be necessary for a subscriber to fetch events, as they are automatically delivered to the notification endpoint. The $events endpoint is only needed for error recovery.