This page is part of the FHIR Specification (v4.6.0: R5 Draft Ballot - see ballot notes). 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 Group | Maturity Level: 2 | Trial Use | Security Category: Business | Compartments: Not linked to any defined compartments |
Detailed Descriptions for the elements in the Subscription resource.
Subscription | |
Element Id | Subscription |
Definition | The subscription resource describes a particular client's request to be notified about a SubscriptionTopic. |
Cardinality | 0..* |
Type | DomainResource |
Alternate Names | WebHook; Hook; Routing Rule |
Summary | false |
Subscription.identifier | |
Element Id | Subscription.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. |
Note | This is a business identifier, not a resource identifier (see discussion) |
Cardinality | 0..* |
Type | Identifier |
Summary | true |
Subscription.name | |
Element Id | Subscription.name |
Definition | A natural language name identifying the subscription. |
Cardinality | 0..1 |
Type | string |
Summary | true |
Subscription.status | |
Element Id | Subscription.status |
Definition | The status of the subscription, which marks the server state for managing the subscription. |
Cardinality | 1..1 |
Terminology Binding | Subscription State (Required) |
Type | code |
Is Modifier | true (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) |
Summary | true |
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 Id | Subscription.topic |
Definition | The reference to the subscription topic to be notified about. |
Cardinality | 1..1 |
Type | canonical(SubscriptionTopic) |
Summary | true |
Subscription.contact | |
Element Id | Subscription.contact |
Definition | Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting. |
Cardinality | 0..* |
Type | ContactPoint |
Summary | true |
Subscription.end | |
Element Id | Subscription.end |
Definition | The time for the server to turn the subscription off. |
Cardinality | 0..1 |
Type | instant |
Summary | true |
Comments | The server is permitted to deviate from this time but should observe it. |
Subscription.reason | |
Element Id | Subscription.reason |
Definition | A description of why this subscription is defined. |
Cardinality | 0..1 |
Type | string |
Summary | true |
Subscription.filterBy | |
Element Id | Subscription.filterBy |
Definition | The filter properties to be applied to narrow the subscription topic stream. When multiple filters are applied, evaluates to true if all the conditions are met; otherwise it returns false. (i.e., logical AND). |
Cardinality | 0..* |
Summary | true |
Subscription.filterBy.resourceType | |
Element Id | Subscription.filterBy.resourceType |
Definition | If the element is a reference to another resource, this element contains "Reference", and the targetProfile element defines what resources can be referenced. The targetProfile may be a reference to the general definition of a resource (e.g. http://hl7.org/fhir/StructureDefinition/Patient). |
Cardinality | 0..1 |
Terminology Binding | FHIRDefinedType (Extensible) |
Type | uri |
Summary | true |
Subscription.filterBy.searchParamName | |
Element Id | Subscription.filterBy.searchParamName |
Definition | The filter label (=key) as defined in the |
Cardinality | 1..1 |
Type | string |
Summary | true |
Subscription.filterBy.searchModifier | |
Element Id | Subscription.filterBy.searchModifier |
Definition | The operator to apply to the filter value when determining matches (Search modifiers). |
Cardinality | 0..1 |
Terminology Binding | Subscription Search Modifier (Required) |
Type | code |
Summary | true |
Subscription.filterBy.value | |
Element Id | Subscription.filterBy.value |
Definition | The literal value or resource path as is legal in search - for example, "Patient/123" or "le1950". |
Cardinality | 1..1 |
Type | string |
Summary | true |
Subscription.channelType | |
Element Id | Subscription.channelType |
Definition | The type of channel to send notifications on. |
Cardinality | 1..1 |
Terminology Binding | Subscription Channel Type (Extensible) |
Type | Coding |
Summary | true |
Subscription.endpoint | |
Element Id | Subscription.endpoint |
Definition | The url that describes the actual end-point to send messages to. |
Cardinality | 0..1 |
Type | url |
Summary | true |
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.header | |
Element Id | Subscription.header |
Definition | Additional headers / information to send as part of the notification. |
Cardinality | 0..* |
Type | string |
Summary | true |
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.heartbeatPeriod | |
Element Id | Subscription.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. |
Cardinality | 0..1 |
Type | unsignedInt |
Summary | true |
Subscription.timeout | |
Element Id | Subscription.timeout |
Definition | If present, the maximum amount of time a server will allow before failing a notification attempt. |
Cardinality | 0..1 |
Type | unsignedInt |
Summary | true |
Subscription.contentType | |
Element Id | Subscription.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. |
Cardinality | 0..1 |
Terminology Binding | MimeType (Required) |
Type | code |
Summary | true |
Subscription.content | |
Element Id | Subscription.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. |
Cardinality | 0..1 |
Terminology Binding | SubscriptionPayloadContent (Required) |
Type | code |
Summary | true |
Comments | Sending the payload has obvious security implications. The server is responsible for ensuring that the content is appropriately secured. |
Subscription.notificationUrlLocation | |
Element Id | Subscription.notificationUrlLocation |
Definition | If present, where to place URLs of resources in notifications. |
Cardinality | 0..1 |
Terminology Binding | SubscriptionUrlLocation (Required) |
Type | code |
Summary | true |
Subscription.maxCount | |
Element Id | Subscription.maxCount |
Definition | If present, the maximum number of triggering resources that will be included in a notification bundle (e.g., a server will not include more than this number of trigger resources in a single notification). Note that this is not a strict limit on the number of entries in a bundle, as dependent resources can be included. |
Cardinality | 0..1 |
Type | positiveInt |
Summary | true |