Subscription API

Create Subscription - POST /fhir/Subscription

Creates a new subscription. Takes params depending on the current version of FHIR used in Aidbox.

The R4B Subscriptions resource uses FHIR extension fields that should be written according to the specification. You should also add the subscription backport profile URL to your resource's meta.profile field.

Params:

ParameterTypeRequiredDescription

meta

object

meta.profile

string[]

id

string

Identifier of the resource. Will be auto-generated if not provided.

reason

string

Human readable reason for subscription.

criteria

string

Canonical URL for the topic used to generate events.

Example: http://aidbox.app/SubscriptionTopic/patient-test-1

criteria.extension:

filterCriteria

string[]

The filters applied to events in the following format:

[resourceType.]filterParameter=[modifier]value

filterParameter above should be one of the filter names defined by the relevant SubscriptionTopic

(canFilterBy.filterParameter field).

resourceType and modifiers should be the ones allowed in the corresponding canFilterBy.filterParameter of the relevant SubscriptionTopic as well.

resourceType is only necessary for disambiguation.

When multiple filters are applied, it evaluates to true if all the conditions applicable to that resource are met; otherwise, it returns false (i.e., logical AND).

Example: patient-birth=gt2005-01-01T01:00:00Z

channel.extension:

heartbeatPeriod

integer

Interval in seconds to send 'heartbeat' notification.

Default value: 120

channel.extension:

timeout

integer

Timeout in seconds to attempt notification delivery.

Default value: 30

channel.extension:

maxCount

integer

Maximum number of triggering resources included in notification bundles.

Default value: 10

channel.type

string

The type of channel to send notifications on. Supported values: rest-hook

channel.header

string[]

Additional headers/information to send as part of the notification. For the rest-hook channel type, this will be HTTP request headers.

Example: ["random-header: secret123"]

channel.endpoint

string

The URL that describes the actual end-point to send messages to.

Example: https://my.app/endpoint

channel.payload

string

MIME-type to send, or omit for no payload. Supported values: application/fhir+json

channel.payload.extension:

content

string

Notification content level.

Supported values: empty, id-only, full-resource.

Default value: empty

status

string

Status of the subscription.

On the creation of this resource, the status is always requested and other values will be ignored.

end

string

When to automatically delete the subscription.

Result:

ParameterTypeDescription

resource

object

Created Subscription resource.

POST /fhir/Subscription
content-type: text/yaml
accept: text/yaml

meta:
  profile:
  - http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription
criteria: http://aidbox.app/SubscriptionTopic/patient-test-1
channel:
  extension:
  - url: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period
    valueUnsignedInt: 60
  - url: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout
    valueUnsignedInt: 1
  - url: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count
    valuePositiveInt: 2
  type: rest-hook
  endpoint: http://localhost:27193/patient-test-1
  payload: application/fhir+json
  _payload:
    extension:
    - url: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content
      valueCode: id-only
resourceType: Subscription
reason: R4/B Test Topic-Based Subscription for Patient resources
status: active
id: subscription-patient-test-1
end: '2020-12-31T12:00:00Z'

Subscription Status - GET /fhir/Subscription/[id]/$status

This operation is used to get the current status information about a topic-based Subscription.

Returns FHIR bundle where the SubscriptionStatus resource is the only entry element.

Params:

No params are required.

GET /fhir/Subscription/subscription-patient-test-1/$status
content-type: text/yaml
accept: text/yaml

Subscription Events - GET /fhir/Subscription/[id]/$events

This operation is used to search for and get notifications that have been previously triggered by a topic-based Subscription.

Returns FHIR bundle where the SubscriptionStatus resource is the first entry element, and triggered events are the rest.

Params:

ParameterTyperequiredDescription

eventsSinceNumber

integer

The starting event number, inclusive of this event (lower bound).

eventsUntilNumber

integer

The ending event number, inclusive of this event (upper bound).

If the params above are not provided, returns the latest 20 events.

GET /fhir/Subscription/subscription-patient-test-1/$events
content-type: text/yaml
accept: text/yaml

Delete Subscription - DELETE /fhir/Subscription/[id]

Delete Subscription resource.

Result:

ParameterTypeDescription

resource

object

Deleted Subscription resource.

DELETE /fhir/Subscription/subscription-patient-test-1

Last updated