This page is part of the FHIR Specification (v5.0.0-ballot: R5 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. |
Short Display | Notification 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. |
Short Display | Additional identifiers (business identifier) |
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. |
Short Display | Human readable name for this 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. |
Short Display | requested | active | error | off | entered-in-error |
Cardinality | 1..1 |
Terminology Binding | Subscription Status (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. |
Short Display | Reference to the subscription topic being subscribed to |
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. |
Short Display | Contact details for source (e.g. troubleshooting) |
Cardinality | 0..* |
Type | ContactPoint |
Summary | true |
Subscription.end | |
Element Id | Subscription.end |
Definition | The time for the server to turn the subscription off. |
Short Display | When to automatically delete the subscription |
Cardinality | 0..1 |
Type | instant |
Summary | true |
Comments | The server is permitted to deviate from this time but should observe it. |
Subscription.managingEntity | |
Element Id | Subscription.managingEntity |
Definition | Entity with authorization to make subsequent revisions to the Subscription and also determines what data the subscription is authorized to disclose. |
Short Display | Entity responsible for Subscription changes |
Cardinality | 0..1 |
Type | Reference(CareTeam | HealthcareService | Organization | RelatedPerson | Patient | Practitioner | PractitionerRole) |
Summary | true |
Subscription.reason | |
Element Id | Subscription.reason |
Definition | A description of why this subscription is defined. |
Short Display | Description of why this subscription was created |
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). |
Short Display | Criteria for narrowing the subscription topic stream |
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). |
Short Display | Allowed Data type or Resource (reference to definition) for this Subscription |
Cardinality | 0..1 |
Terminology Binding | All FHIR Types (Extensible) |
Type | uri |
Summary | true |
Subscription.filterBy.filterParameter | |
Element Id | Subscription.filterBy.filterParameter |
Definition | The filter as defined in the |
Short Display | Filter label defined in SubscriptionTopic |
Cardinality | 1..1 |
Type | string |
Summary | true |
Subscription.filterBy.modifier | |
Element Id | Subscription.filterBy.modifier |
Definition | Operator to apply when determining matches (Search Modifiers), from the list of allowed modifiers for this filter in the relevant SubscriptionTopic. |
Short Display | = | eq | ne | gt | lt | ge | le | sa | eb | ap | above | below | in | not-in | of-type |
Cardinality | 0..1 |
Terminology Binding | Subscription Search Modifier (Required) |
Type | code |
Summary | true |
Comments | If filterDefinition refers to a SearchParameter, then the modifiers indicated must be allowed by the SearchParameter. |
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". |
Short Display | Literal value or resource path |
Cardinality | 1..1 |
Type | string |
Summary | true |
Subscription.channelType | |
Element Id | Subscription.channelType |
Definition | The type of channel to send notifications on. |
Short Display | Channel type for notifications |
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. |
Short Display | Where the channel points 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. |
Short Display | Usage depends on the channel type |
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. |
Short Display | Interval in seconds to send 'heartbeat' notification |
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. |
Short Display | Timeout in seconds to attempt notification delivery |
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. |
Short Display | MIME type to send, or omit for no payload |
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. |
Short Display | empty | id-only | full-resource |
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.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. |
Short Display | Maximum number of triggering resources included in notification bundles |
Cardinality | 0..1 |
Type | positiveInt |
Summary | true |