Release 5 Preview #1

This page is part of the FHIR Specification (v4.2.0: R5 Preview #1). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

FHIR Infrastructure Work GroupMaturity Level: 0 Trial UseSecurity Category: Business Compartments: Not linked to any defined compartments

Detailed Descriptions for the elements in the Subscription resource.

Subscription
Element IdSubscription
Definition

The subscription resource describes a particular client's request to be notified about a Topic.

Cardinality0..*
TypeDomainResource
Alternate NamesWebHook; Hook; Routing Rule
Subscription.identifier
Element IdSubscription.identifier
Definition

A formal identifier that is used to identify this code system when it is represented in other formats, or referenced in a specification, model, design or an instance.

NoteThis is a business identifier, not a resource identifier (see discussion)
Cardinality0..*
TypeIdentifier
Summarytrue
Subscription.name
Element IdSubscription.name
Definition

A natural language name identifying the subscription.

Cardinality0..1
Typestring
Summarytrue
Subscription.status
Element IdSubscription.status
Definition

The status of the subscription, which marks the server state for managing the subscription.

Cardinality1..1
Terminology BindingSubscriptionStatus (Required)
Typecode
Is Modifiertrue (Reason: This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid)
Summarytrue
Comments

A client can only submit subscription resources in the requested or off state. Only the server can move a subscription from requested to active, and then to error. Either the server or the client can turn a subscription off.

This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

Subscription.topic
Element IdSubscription.topic
Definition

The reference to the topic to be notified about.

Cardinality1..1
TypeReference(Topic)
Summarytrue
Subscription.contact
Element IdSubscription.contact
Definition

Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting.

Cardinality0..*
TypeContactPoint
Summarytrue
Subscription.end
Element IdSubscription.end
Definition

The time for the server to turn the subscription off.

Cardinality0..1
Typeinstant
Summarytrue
Comments

The server is permitted to deviate from this time but should observe it.

Subscription.reason
Element IdSubscription.reason
Definition

A description of why this subscription is defined.

Cardinality0..1
Typestring
Summarytrue
Subscription.filterBy
Element IdSubscription.filterBy
Definition

The filter properties to be applied to narrow the topic stream. When multiple filters are applied, evaluates to true if all the conditions are met; otherwise it returns false. (i.e., logical AND).

Cardinality0..*
Summarytrue
Subscription.filterBy.name
Element IdSubscription.filterBy.name
Definition

The filter label (=key) as defined in the Topic.canFilterBy.name element.

Cardinality1..1
Typestring
Summarytrue
Subscription.filterBy.matchType
Element IdSubscription.filterBy.matchType
Definition

The operator to apply to the filter value when determining matches (Search modifiers).

Cardinality0..1
Terminology BindingSubscriptionFilterByMatchType (Required)
Typecode
Summarytrue
Subscription.filterBy.value
Element IdSubscription.filterBy.value
Definition

The literal value or resource path as is legal in search - for example, "Patient/123" or "le1950".

Cardinality1..1
Typestring
Summarytrue
Subscription.error
Element IdSubscription.error
Definition

A record of the last error that occurred when the server processed a notification.

Cardinality0..*
Terminology BindingSubscription Error Codes (Example)
TypeCodeableConcept
Summarytrue
Comments

Recommended practice: If available, convey the HTTP error in an adjacent Coding or in text.

Subscription.eventCount
Element IdSubscription.eventCount
Definition

A record of the number of events for which the server has attempted delivery on this subscription (i.e., the number of events that occurred while the subscription is in an "active" or "error" state -- not "requested" or "off"). Server Initializes to 0 for a new subscription. Repeated attempts at delivery of the same event notification do not increment this counter. Valid values are unsigned integers (0+). The decmial type is used to ensure that counts can grow larger than 32-bit values.

Cardinality0..1
TypeunsignedInt
Summarytrue
Subscription.channel
Element IdSubscription.channel
Definition

Details where to send notifications when resources are received that meet the criteria.

Cardinality1..1
Summarytrue
Subscription.channel.type
Element IdSubscription.channel.type
Definition

The type of channel to send notifications on.

Cardinality1..1
Terminology BindingSubscriptionChannel Type Codes (Extensible)
TypeCodeableConcept
Summarytrue
Subscription.channel.endpoint
Element IdSubscription.channel.endpoint
Definition

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

Cardinality0..1
Typeurl
Summarytrue
Comments

For rest-hook the end-point must be an http: or https: URL; for websocket ws: or wss:; for email, a mailto: url; and for message the endpoint can be in any form of url the server understands (usually, http/s: or mllp:). The URI is allowed to be relative; in which case, it is relative to the server end-point (since there may be more than one, clients should avoid using relative URIs).

Subscription.channel.header
Element IdSubscription.channel.header
Definition

Additional headers / information to send as part of the notification.

Cardinality0..*
Typestring
Summarytrue
Comments

Exactly what these mean depend on the channel type. They can convey additional information to the recipient and/or meet security requirements; for example, support of multiple headers in the outgoing notifications for rest-hook type subscriptions.

Subscription.channel.heartbeatPeriod
Element IdSubscription.channel.heartbeatPeriod
Definition

If present, a 'hearbeat" notification (keepalive) is sent via this channel with an the interval period equal to this elements integer value in seconds. If not present, a heartbeat notification is not sent.

Cardinality0..1
TypeunsignedInt
Summarytrue
Subscription.channel.payload
Element IdSubscription.channel.payload
Definition

The payload mimetype and content. If the payload is not present, then there is no payload in the notification, just a notification.

Cardinality0..1
Summarytrue
Subscription.channel.payload.contentType
Element IdSubscription.channel.payload.contentType
Definition

The mime type to send the payload in - either application/fhir+xml, or application/fhir+json. The MIME types "text/plain" and "text/html" may also be used for Email subscriptions.

Cardinality0..1
Terminology BindingMimeType (Required)
Typecode
Summarytrue
Subscription.channel.payload.content
Element IdSubscription.channel.payload.content
Definition

How much of the resource content to deliver in the notification payload. The choices are an empty payload, only the resource id, or the full resource content.

Cardinality0..1
Terminology BindingSubscriptionPayloadContent (Required)
Typecode
Summarytrue
Comments

Sending the payload has obvious security implications. The server is responsible for ensuring that the content is appropriately secured.