visit the hl7 website
Ontario Subscription HL7® FHIR® Implementation Guide -v1.0.0-ballot1
fhir-logo
  • Index
  • Home
    • Home
    • Introduction
    • Relationship to Other Specifications
    • Scope
    • Glossary
  • Business Context
    • Business Context
    • Business Model
    • Business Data
    • Use Cases
    • Business Rules
  • Technical Context
    • Technical Context
    • Implementer Responsibility
    • Conformance Rules
    • Connectivity Summary
  • FHIR Artifacts
    • FHIR Artifacts
    • Interactions
    • Operations
    • Profiles
    • Terminology
    • System URIs
    • Capability Statement
    • Custom Search Parameters
    • Response Handling
    • Downloads
  • Change Log
    • Change Log
    • Known Issues & Future Developments
    • Revision History
    1. Index
    2. FHIR Artifacts
    3. Profiles
    4. Subscription

For a full list of available versions, see the Directory of published versions

4.3.4. Subscription

This profile provides guidance for implementing FHIR R5 Subscription resource features & elements using extensions defined in FHIR R4.

It is used by a Subscriber to request subscription to a specific events and get notification whenever these events are created or updated by the Subscription Service.

In order to align with the use of FHIR R4 at OntarioHealth, Subscriptions are expected to conform to the Subscription profile defined by the Subscriptions R5 Backport Implementation Guide

Simplifier project page: OntarioBackportSubscription

Derived from: HL7 FHIR Subscription R5 Backport

Canonical_URLProfile_StatusFHIR_Version
http://ontariohealth.ca/fhir/pubsub/StructureDefinition/profile-Subscriptiondraft4.0.1

4.3.4.1. Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work

Differential View

OntarioBackportSubscription (Subscription)CSubscription
There are no (further) constraints on this element
Element id
Subscription
Short description

Server push subscription criteria

Alternate names

WebHook, Hook, Routing Rule

Definition

The subscription resource is used to define a push-based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system can take an appropriate action.

Data type

Subscription

Constraints
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.empty()
  • dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
    contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
  • dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
    contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
  • dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
Mappings
  • rim: Entity. Role, or Act
  • rim: N/A
idΣ0..1string
There are no (further) constraints on this element
Element id
Subscription.id
Short description

Logical id of this artifact

Definition

The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.

Comments

The only time that a resource does not have an id is when it is being submitted to the server using a create operation.

Data type

string

metaΣ0..1Meta
There are no (further) constraints on this element
Element id
Subscription.meta
Short description

Metadata about the resource

Definition

The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

Data type

Meta

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
implicitRulesΣ ?!0..1uri
There are no (further) constraints on this element
Element id
Subscription.implicitRules
Short description

A set of rules under which this content was created

Definition

A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

Data type

uri

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
language0..1codeBinding
There are no (further) constraints on this element
Element id
Subscription.language
Short description

Language of the resource content

Definition

The base language in which the resource is written.

Comments

Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

Data type

code

Binding

A human language.

CommonLanguages (preferred)

Binding extensions
maxValueSetAllLanguages
Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
text0..1Narrative
There are no (further) constraints on this element
Element id
Subscription.text
Short description

Text summary of the resource, for human interpretation

Alternate names

narrative, html, xhtml, display

Definition

A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.

Comments

Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

Data type

Narrative

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
  • rim: Act.text?
contained0..*Resource
There are no (further) constraints on this element
Element id
Subscription.contained
Short description

Contained, inline Resources

Alternate names

inline resources, anonymous resources, contained resources

Definition

These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.

Comments

This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.

Data type

Resource

Mappings
  • rim: Entity. Role, or Act
  • rim: N/A
extensionS C0..*ExtensionElement id
Subscription.extension
Short description

Extension

Alternate names

extensions, user content

Definition

An Extension

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
managingEntityS C1..1Extension(Reference(Device))Element id
Subscription.extension:managingEntity
Short description

Entity managing the subscription (Device by identifier)

Alternate names

extensions, user content

Definition

The Device (e.g., EMR system) responsible for managing the subscription, referenced by its logical identifier. Backported from R5 Subscription.managingEntity.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(Reference(Device))

Extension URL

http://ontariohealth.ca/fhir/pubsub/StructureDefinition/ext-subscriptionManagingEntity

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
modifierExtension?! C0..*Extension
There are no (further) constraints on this element
Element id
Subscription.modifierExtension
Short description

Extensions that cannot be ignored

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
statusΣ ?!1..1codeBinding
There are no (further) constraints on this element
Element id
Subscription.status
Short description

requested | active | error | off

Definition

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

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.

Data type

code

Binding

The status of a subscription.

SubscriptionStatus (required)

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.status
contactΣ C0..*ContactPoint
There are no (further) constraints on this element
Element id
Subscription.contact
Short description

Contact details for source (e.g. troubleshooting)

Definition

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

Data type

ContactPoint

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • cpt-2: A system is required if a value is provided.
    value.empty() or system.exists()
Mappings
  • rim: n/a
  • v2: XTN
  • rim: TEL
  • servd: ContactPoint
  • w5: FiveWs.subject[x]
  • w5: FiveWs.subject
endΣ0..1instant
There are no (further) constraints on this element
Element id
Subscription.end
Short description

When to automatically delete the subscription

Definition

The time for the server to turn the subscription off.

Comments

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

Data type

instant

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.done[x]
reasonΣ1..1string
There are no (further) constraints on this element
Element id
Subscription.reason
Short description

Description of why this subscription was created

Definition

A description of why this subscription is defined.

Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Data type

string

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.why[x]
criteriaS Σ1..1string
There are no (further) constraints on this element
Element id
Subscription.criteria
Short description

Rule for server push

Definition

The rules that the server should use to determine when to generate notifications for this subscription.

Comments

The rules are search criteria (without the [base] part). Like Bundle.entry.request.url, it has no leading "/".

Data type

string

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
id0..1string
There are no (further) constraints on this element
Element id
Subscription.criteria.id
Short description

Unique id for inter-element referencing

Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Data type

string

Mappings
  • rim: n/a
extensionC0..*Extension
There are no (further) constraints on this element
Element id
Subscription.criteria.extension
Short description

Additional content defined by implementations

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
filterCriteriaS C0..*Extension(string)Element id
Subscription.criteria.extension:filterCriteria
Short description

Backported R5 FilterBy Criteria

Alternate names

extensions, user content

Definition

Criteria for topic-based filtering (filter-by).

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(string)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-filter-criteria

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
value0..1System.String
There are no (further) constraints on this element
Element id
Subscription.criteria.value
Short description

Primitive value for string

Definition

Primitive value for string

Data type

System.String

Maximum string length

1048576

errorΣ0..1string
There are no (further) constraints on this element
Element id
Subscription.error
Short description

Latest error note

Definition

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

Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Data type

string

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
channelΣ1..1BackboneElement
There are no (further) constraints on this element
Element id
Subscription.channel
Short description

The channel on which to report matches to the criteria

Definition

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

Data type

BackboneElement

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
id0..1string
There are no (further) constraints on this element
Element id
Subscription.channel.id
Short description

Unique id for inter-element referencing

Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Data type

string

Mappings
  • rim: n/a
extensionC0..*Extension
There are no (further) constraints on this element
Element id
Subscription.channel.extension
Short description

Additional content defined by implementations

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
notificationRetryPeriodC0..*Extension(Complex)Element id
Subscription.channel.extension:notificationRetryPeriod
Short description

Optional Extensions Element

Alternate names

extensions, user content

Definition

Interval in hours to retry sending notification.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(Complex)

Extension URL

http://ontariohealth.ca/fhir/pubsub/StructureDefinition/ext-SubscriptionNotificationRetryPeriod

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
heartbeatPeriodC0..*Extension(unsignedInt)Element id
Subscription.channel.extension:heartbeatPeriod
Short description

Backport R5 Subscription Heartbeat Period

Alternate names

extensions, user content

Definition

Interval in seconds to send 'heartbeat' notifications.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(unsignedInt)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
timeoutC0..*Extension(unsignedInt)Element id
Subscription.channel.extension:timeout
Short description

Backport R5 Subscription Timeout

Alternate names

extensions, user content

Definition

Timeout in seconds to attempt notification delivery.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(unsignedInt)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
maxCountC0..*Extension(positiveInt)Element id
Subscription.channel.extension:maxCount
Short description

Backported R5 Subscription MaxCount

Alternate names

extensions, user content

Definition

Maximum number of triggering resources included in notification bundles.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(positiveInt)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
modifierExtensionΣ ?! C0..*Extension
There are no (further) constraints on this element
Element id
Subscription.channel.modifierExtension
Short description

Extensions that cannot be ignored even if unrecognized

Alternate names

extensions, user content, modifiers

Definition

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
typeΣ1..1codeBinding
There are no (further) constraints on this element
Element id
Subscription.channel.type
Short description

rest-hook | websocket | email | sms | message

Definition

The type of channel to send notifications on.

Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Data type

code

Binding

The type of method used to execute a subscription.

SubscriptionChannelType (required)

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
id0..1string
There are no (further) constraints on this element
Element id
Subscription.channel.type.id
Short description

Unique id for inter-element referencing

Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Data type

string

Mappings
  • rim: n/a
extensionC0..*Extension
There are no (further) constraints on this element
Element id
Subscription.channel.type.extension
Short description

Additional content defined by implementations

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
customChannelTypeS Σ C0..1Extension(Coding)Element id
Subscription.channel.type.extension:customChannelType
Short description

Extended channel type for notifications

Alternate names

extensions, user content

Definition

The type of channel to send notifications on.

Comments

This extension allows for the use of additional channel types that were not defined in the FHIR R4 subscription definition.

Data type

Extension(Coding)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
value0..1System.String
There are no (further) constraints on this element
Element id
Subscription.channel.type.value
Short description

Primitive value for code

Definition

Primitive value for code

Data type

System.String

Maximum string length

1048576

endpointΣ0..1url
There are no (further) constraints on this element
Element id
Subscription.channel.endpoint
Short description

Where the channel points to

Definition

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

Comments

For rest-hook, and websocket, the end-point must be an http: or https: URL; for email, a mailto: url, for sms, a tel: url, and for message the endpoint can be in any form of url the server understands (usually, http: 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).

Data type

url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
payloadΣ1..1codeBinding
There are no (further) constraints on this element
Element id
Subscription.channel.payload
Short description

MIME type to send, or omit for no payload

Definition

The mime type to send the payload in - either application/fhir+xml, or application/fhir+json. If the payload is not present, then there is no payload in the notification, just a notification. The mime type "text/plain" may also be used for Email and SMS subscriptions.

Comments

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

Data type

code

Binding

The mime type of an attachment. Any valid mime type is allowed.

Mime Types (required)

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
id0..1string
There are no (further) constraints on this element
Element id
Subscription.channel.payload.id
Short description

Unique id for inter-element referencing

Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Data type

string

Mappings
  • rim: n/a
extensionC1..*ExtensionElement id
Subscription.channel.payload.extension
Short description

Additional content defined by implementations

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
contentS Σ C1..1Extension(code)Element id
Subscription.channel.payload.extension:content
Short description

Notification content level

Alternate names

extensions, user 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.

Comments

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

Data type

Extension(code)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
value0..1System.String
There are no (further) constraints on this element
Element id
Subscription.channel.payload.value
Short description

Primitive value for code

Definition

Primitive value for code

Data type

System.String

Maximum string length

1048576

headerΣ0..*stringElement id
Subscription.channel.header
Short description

Usage depends on the channel type

Definition

Use to specify additional information that will be included inside the notification payload when the notification is sent. Each entry consists of a key-value pair. This should support sending client certificates and client keys with validation to determine if it is the certificate itself or just the name.

Comments

This 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.

Data type

string

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a

Hybrid View

OntarioBackportSubscription (Subscription)CSubscription
There are no (further) constraints on this element
Element id
Subscription
Short description

Server push subscription criteria

Alternate names

WebHook, Hook, Routing Rule

Definition

The subscription resource is used to define a push-based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system can take an appropriate action.

Data type

Subscription

Constraints
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.empty()
  • dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
    contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
  • dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
    contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
  • dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
Mappings
  • rim: Entity. Role, or Act
  • rim: N/A
idΣ0..1string
There are no (further) constraints on this element
Element id
Subscription.id
Short description

Logical id of this artifact

Definition

The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.

Comments

The only time that a resource does not have an id is when it is being submitted to the server using a create operation.

Data type

string

metaΣ0..1Meta
There are no (further) constraints on this element
Element id
Subscription.meta
Short description

Metadata about the resource

Definition

The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

Data type

Meta

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
implicitRulesΣ ?!0..1uri
There are no (further) constraints on this element
Element id
Subscription.implicitRules
Short description

A set of rules under which this content was created

Definition

A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

Data type

uri

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
language0..1codeBinding
There are no (further) constraints on this element
Element id
Subscription.language
Short description

Language of the resource content

Definition

The base language in which the resource is written.

Comments

Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

Data type

code

Binding

A human language.

CommonLanguages (preferred)

Binding extensions
maxValueSetAllLanguages
Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
text0..1Narrative
There are no (further) constraints on this element
Element id
Subscription.text
Short description

Text summary of the resource, for human interpretation

Alternate names

narrative, html, xhtml, display

Definition

A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.

Comments

Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

Data type

Narrative

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
  • rim: Act.text?
contained0..*Resource
There are no (further) constraints on this element
Element id
Subscription.contained
Short description

Contained, inline Resources

Alternate names

inline resources, anonymous resources, contained resources

Definition

These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.

Comments

This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.

Data type

Resource

Mappings
  • rim: Entity. Role, or Act
  • rim: N/A
extensionS C0..*ExtensionElement id
Subscription.extension
Short description

Extension

Alternate names

extensions, user content

Definition

An Extension

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
managingEntityS C1..1Extension(Reference(Device))Element id
Subscription.extension:managingEntity
Short description

Entity managing the subscription (Device by identifier)

Alternate names

extensions, user content

Definition

The Device (e.g., EMR system) responsible for managing the subscription, referenced by its logical identifier. Backported from R5 Subscription.managingEntity.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(Reference(Device))

Extension URL

http://ontariohealth.ca/fhir/pubsub/StructureDefinition/ext-subscriptionManagingEntity

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
modifierExtension?! C0..*Extension
There are no (further) constraints on this element
Element id
Subscription.modifierExtension
Short description

Extensions that cannot be ignored

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
statusΣ ?!1..1codeBinding
There are no (further) constraints on this element
Element id
Subscription.status
Short description

requested | active | error | off

Definition

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

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.

Data type

code

Binding

The status of a subscription.

SubscriptionStatus (required)

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.status
contactΣ C0..*ContactPoint
There are no (further) constraints on this element
Element id
Subscription.contact
Short description

Contact details for source (e.g. troubleshooting)

Definition

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

Data type

ContactPoint

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • cpt-2: A system is required if a value is provided.
    value.empty() or system.exists()
Mappings
  • rim: n/a
  • v2: XTN
  • rim: TEL
  • servd: ContactPoint
  • w5: FiveWs.subject[x]
  • w5: FiveWs.subject
endΣ0..1instant
There are no (further) constraints on this element
Element id
Subscription.end
Short description

When to automatically delete the subscription

Definition

The time for the server to turn the subscription off.

Comments

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

Data type

instant

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.done[x]
reasonΣ1..1string
There are no (further) constraints on this element
Element id
Subscription.reason
Short description

Description of why this subscription was created

Definition

A description of why this subscription is defined.

Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Data type

string

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.why[x]
criteriaS Σ1..1string
There are no (further) constraints on this element
Element id
Subscription.criteria
Short description

Rule for server push

Definition

The rules that the server should use to determine when to generate notifications for this subscription.

Comments

The rules are search criteria (without the [base] part). Like Bundle.entry.request.url, it has no leading "/".

Data type

string

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
id0..1string
There are no (further) constraints on this element
Element id
Subscription.criteria.id
Short description

Unique id for inter-element referencing

Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Data type

string

Mappings
  • rim: n/a
extensionC0..*Extension
There are no (further) constraints on this element
Element id
Subscription.criteria.extension
Short description

Additional content defined by implementations

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
filterCriteriaS C0..*Extension(string)Element id
Subscription.criteria.extension:filterCriteria
Short description

Backported R5 FilterBy Criteria

Alternate names

extensions, user content

Definition

Criteria for topic-based filtering (filter-by).

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(string)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-filter-criteria

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
value0..1System.String
There are no (further) constraints on this element
Element id
Subscription.criteria.value
Short description

Primitive value for string

Definition

Primitive value for string

Data type

System.String

Maximum string length

1048576

errorΣ0..1string
There are no (further) constraints on this element
Element id
Subscription.error
Short description

Latest error note

Definition

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

Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Data type

string

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
channelΣ1..1BackboneElement
There are no (further) constraints on this element
Element id
Subscription.channel
Short description

The channel on which to report matches to the criteria

Definition

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

Data type

BackboneElement

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
id0..1string
There are no (further) constraints on this element
Element id
Subscription.channel.id
Short description

Unique id for inter-element referencing

Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Data type

string

Mappings
  • rim: n/a
extensionC0..*Extension
There are no (further) constraints on this element
Element id
Subscription.channel.extension
Short description

Additional content defined by implementations

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
notificationRetryPeriodC0..*Extension(Complex)Element id
Subscription.channel.extension:notificationRetryPeriod
Short description

Optional Extensions Element

Alternate names

extensions, user content

Definition

Interval in hours to retry sending notification.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(Complex)

Extension URL

http://ontariohealth.ca/fhir/pubsub/StructureDefinition/ext-SubscriptionNotificationRetryPeriod

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
heartbeatPeriodC0..*Extension(unsignedInt)Element id
Subscription.channel.extension:heartbeatPeriod
Short description

Backport R5 Subscription Heartbeat Period

Alternate names

extensions, user content

Definition

Interval in seconds to send 'heartbeat' notifications.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(unsignedInt)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
timeoutC0..*Extension(unsignedInt)Element id
Subscription.channel.extension:timeout
Short description

Backport R5 Subscription Timeout

Alternate names

extensions, user content

Definition

Timeout in seconds to attempt notification delivery.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(unsignedInt)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
maxCountC0..*Extension(positiveInt)Element id
Subscription.channel.extension:maxCount
Short description

Backported R5 Subscription MaxCount

Alternate names

extensions, user content

Definition

Maximum number of triggering resources included in notification bundles.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(positiveInt)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
modifierExtensionΣ ?! C0..*Extension
There are no (further) constraints on this element
Element id
Subscription.channel.modifierExtension
Short description

Extensions that cannot be ignored even if unrecognized

Alternate names

extensions, user content, modifiers

Definition

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
typeΣ1..1codeBinding
There are no (further) constraints on this element
Element id
Subscription.channel.type
Short description

rest-hook | websocket | email | sms | message

Definition

The type of channel to send notifications on.

Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Data type

code

Binding

The type of method used to execute a subscription.

SubscriptionChannelType (required)

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
id0..1string
There are no (further) constraints on this element
Element id
Subscription.channel.type.id
Short description

Unique id for inter-element referencing

Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Data type

string

Mappings
  • rim: n/a
extensionC0..*Extension
There are no (further) constraints on this element
Element id
Subscription.channel.type.extension
Short description

Additional content defined by implementations

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
customChannelTypeS Σ C0..1Extension(Coding)Element id
Subscription.channel.type.extension:customChannelType
Short description

Extended channel type for notifications

Alternate names

extensions, user content

Definition

The type of channel to send notifications on.

Comments

This extension allows for the use of additional channel types that were not defined in the FHIR R4 subscription definition.

Data type

Extension(Coding)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
value0..1System.String
There are no (further) constraints on this element
Element id
Subscription.channel.type.value
Short description

Primitive value for code

Definition

Primitive value for code

Data type

System.String

Maximum string length

1048576

endpointΣ0..1url
There are no (further) constraints on this element
Element id
Subscription.channel.endpoint
Short description

Where the channel points to

Definition

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

Comments

For rest-hook, and websocket, the end-point must be an http: or https: URL; for email, a mailto: url, for sms, a tel: url, and for message the endpoint can be in any form of url the server understands (usually, http: 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).

Data type

url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
payloadΣ1..1codeBinding
There are no (further) constraints on this element
Element id
Subscription.channel.payload
Short description

MIME type to send, or omit for no payload

Definition

The mime type to send the payload in - either application/fhir+xml, or application/fhir+json. If the payload is not present, then there is no payload in the notification, just a notification. The mime type "text/plain" may also be used for Email and SMS subscriptions.

Comments

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

Data type

code

Binding

The mime type of an attachment. Any valid mime type is allowed.

Mime Types (required)

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
id0..1string
There are no (further) constraints on this element
Element id
Subscription.channel.payload.id
Short description

Unique id for inter-element referencing

Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Data type

string

Mappings
  • rim: n/a
extensionC1..*ExtensionElement id
Subscription.channel.payload.extension
Short description

Additional content defined by implementations

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
contentS Σ C1..1Extension(code)Element id
Subscription.channel.payload.extension:content
Short description

Notification content level

Alternate names

extensions, user 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.

Comments

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

Data type

Extension(code)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
value0..1System.String
There are no (further) constraints on this element
Element id
Subscription.channel.payload.value
Short description

Primitive value for code

Definition

Primitive value for code

Data type

System.String

Maximum string length

1048576

headerΣ0..*stringElement id
Subscription.channel.header
Short description

Usage depends on the channel type

Definition

Use to specify additional information that will be included inside the notification payload when the notification is sent. Each entry consists of a key-value pair. This should support sending client certificates and client keys with validation to determine if it is the certificate itself or just the name.

Comments

This 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.

Data type

string

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a

Snapshot View

OntarioBackportSubscription (Subscription)CSubscription
There are no (further) constraints on this element
Element id
Subscription
Short description

Server push subscription criteria

Alternate names

WebHook, Hook, Routing Rule

Definition

The subscription resource is used to define a push-based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system can take an appropriate action.

Data type

Subscription

Constraints
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.empty()
  • dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
    contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
  • dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
    contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
  • dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
Mappings
  • rim: Entity. Role, or Act
  • rim: N/A
idΣ0..1string
There are no (further) constraints on this element
Element id
Subscription.id
Short description

Logical id of this artifact

Definition

The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.

Comments

The only time that a resource does not have an id is when it is being submitted to the server using a create operation.

Data type

string

metaΣ0..1Meta
There are no (further) constraints on this element
Element id
Subscription.meta
Short description

Metadata about the resource

Definition

The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

Data type

Meta

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
implicitRulesΣ ?!0..1uri
There are no (further) constraints on this element
Element id
Subscription.implicitRules
Short description

A set of rules under which this content was created

Definition

A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

Data type

uri

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
language0..1codeBinding
There are no (further) constraints on this element
Element id
Subscription.language
Short description

Language of the resource content

Definition

The base language in which the resource is written.

Comments

Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

Data type

code

Binding

A human language.

CommonLanguages (preferred)

Binding extensions
maxValueSetAllLanguages
Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
text0..1Narrative
There are no (further) constraints on this element
Element id
Subscription.text
Short description

Text summary of the resource, for human interpretation

Alternate names

narrative, html, xhtml, display

Definition

A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.

Comments

Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

Data type

Narrative

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
  • rim: Act.text?
contained0..*Resource
There are no (further) constraints on this element
Element id
Subscription.contained
Short description

Contained, inline Resources

Alternate names

inline resources, anonymous resources, contained resources

Definition

These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.

Comments

This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.

Data type

Resource

Mappings
  • rim: Entity. Role, or Act
  • rim: N/A
extensionS C0..*ExtensionElement id
Subscription.extension
Short description

Extension

Alternate names

extensions, user content

Definition

An Extension

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
managingEntityS C1..1Extension(Reference(Device))Element id
Subscription.extension:managingEntity
Short description

Entity managing the subscription (Device by identifier)

Alternate names

extensions, user content

Definition

The Device (e.g., EMR system) responsible for managing the subscription, referenced by its logical identifier. Backported from R5 Subscription.managingEntity.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(Reference(Device))

Extension URL

http://ontariohealth.ca/fhir/pubsub/StructureDefinition/ext-subscriptionManagingEntity

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
modifierExtension?! C0..*Extension
There are no (further) constraints on this element
Element id
Subscription.modifierExtension
Short description

Extensions that cannot be ignored

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
statusΣ ?!1..1codeBinding
There are no (further) constraints on this element
Element id
Subscription.status
Short description

requested | active | error | off

Definition

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

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.

Data type

code

Binding

The status of a subscription.

SubscriptionStatus (required)

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.status
contactΣ C0..*ContactPoint
There are no (further) constraints on this element
Element id
Subscription.contact
Short description

Contact details for source (e.g. troubleshooting)

Definition

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

Data type

ContactPoint

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • cpt-2: A system is required if a value is provided.
    value.empty() or system.exists()
Mappings
  • rim: n/a
  • v2: XTN
  • rim: TEL
  • servd: ContactPoint
  • w5: FiveWs.subject[x]
  • w5: FiveWs.subject
endΣ0..1instant
There are no (further) constraints on this element
Element id
Subscription.end
Short description

When to automatically delete the subscription

Definition

The time for the server to turn the subscription off.

Comments

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

Data type

instant

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.done[x]
reasonΣ1..1string
There are no (further) constraints on this element
Element id
Subscription.reason
Short description

Description of why this subscription was created

Definition

A description of why this subscription is defined.

Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Data type

string

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.why[x]
criteriaS Σ1..1string
There are no (further) constraints on this element
Element id
Subscription.criteria
Short description

Rule for server push

Definition

The rules that the server should use to determine when to generate notifications for this subscription.

Comments

The rules are search criteria (without the [base] part). Like Bundle.entry.request.url, it has no leading "/".

Data type

string

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
id0..1string
There are no (further) constraints on this element
Element id
Subscription.criteria.id
Short description

Unique id for inter-element referencing

Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Data type

string

Mappings
  • rim: n/a
extensionC0..*Extension
There are no (further) constraints on this element
Element id
Subscription.criteria.extension
Short description

Additional content defined by implementations

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
filterCriteriaS C0..*Extension(string)Element id
Subscription.criteria.extension:filterCriteria
Short description

Backported R5 FilterBy Criteria

Alternate names

extensions, user content

Definition

Criteria for topic-based filtering (filter-by).

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(string)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-filter-criteria

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
value0..1System.String
There are no (further) constraints on this element
Element id
Subscription.criteria.value
Short description

Primitive value for string

Definition

Primitive value for string

Data type

System.String

Maximum string length

1048576

errorΣ0..1string
There are no (further) constraints on this element
Element id
Subscription.error
Short description

Latest error note

Definition

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

Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Data type

string

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
channelΣ1..1BackboneElement
There are no (further) constraints on this element
Element id
Subscription.channel
Short description

The channel on which to report matches to the criteria

Definition

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

Data type

BackboneElement

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
id0..1string
There are no (further) constraints on this element
Element id
Subscription.channel.id
Short description

Unique id for inter-element referencing

Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Data type

string

Mappings
  • rim: n/a
extensionC0..*Extension
There are no (further) constraints on this element
Element id
Subscription.channel.extension
Short description

Additional content defined by implementations

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
notificationRetryPeriodC0..*Extension(Complex)Element id
Subscription.channel.extension:notificationRetryPeriod
Short description

Optional Extensions Element

Alternate names

extensions, user content

Definition

Interval in hours to retry sending notification.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(Complex)

Extension URL

http://ontariohealth.ca/fhir/pubsub/StructureDefinition/ext-SubscriptionNotificationRetryPeriod

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
heartbeatPeriodC0..*Extension(unsignedInt)Element id
Subscription.channel.extension:heartbeatPeriod
Short description

Backport R5 Subscription Heartbeat Period

Alternate names

extensions, user content

Definition

Interval in seconds to send 'heartbeat' notifications.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(unsignedInt)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
timeoutC0..*Extension(unsignedInt)Element id
Subscription.channel.extension:timeout
Short description

Backport R5 Subscription Timeout

Alternate names

extensions, user content

Definition

Timeout in seconds to attempt notification delivery.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(unsignedInt)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
maxCountC0..*Extension(positiveInt)Element id
Subscription.channel.extension:maxCount
Short description

Backported R5 Subscription MaxCount

Alternate names

extensions, user content

Definition

Maximum number of triggering resources included in notification bundles.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension(positiveInt)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
modifierExtensionΣ ?! C0..*Extension
There are no (further) constraints on this element
Element id
Subscription.channel.modifierExtension
Short description

Extensions that cannot be ignored even if unrecognized

Alternate names

extensions, user content, modifiers

Definition

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
typeΣ1..1codeBinding
There are no (further) constraints on this element
Element id
Subscription.channel.type
Short description

rest-hook | websocket | email | sms | message

Definition

The type of channel to send notifications on.

Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Data type

code

Binding

The type of method used to execute a subscription.

SubscriptionChannelType (required)

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
id0..1string
There are no (further) constraints on this element
Element id
Subscription.channel.type.id
Short description

Unique id for inter-element referencing

Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Data type

string

Mappings
  • rim: n/a
extensionC0..*Extension
There are no (further) constraints on this element
Element id
Subscription.channel.type.extension
Short description

Additional content defined by implementations

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
customChannelTypeS Σ C0..1Extension(Coding)Element id
Subscription.channel.type.extension:customChannelType
Short description

Extended channel type for notifications

Alternate names

extensions, user content

Definition

The type of channel to send notifications on.

Comments

This extension allows for the use of additional channel types that were not defined in the FHIR R4 subscription definition.

Data type

Extension(Coding)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
value0..1System.String
There are no (further) constraints on this element
Element id
Subscription.channel.type.value
Short description

Primitive value for code

Definition

Primitive value for code

Data type

System.String

Maximum string length

1048576

endpointΣ0..1url
There are no (further) constraints on this element
Element id
Subscription.channel.endpoint
Short description

Where the channel points to

Definition

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

Comments

For rest-hook, and websocket, the end-point must be an http: or https: URL; for email, a mailto: url, for sms, a tel: url, and for message the endpoint can be in any form of url the server understands (usually, http: 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).

Data type

url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
payloadΣ1..1codeBinding
There are no (further) constraints on this element
Element id
Subscription.channel.payload
Short description

MIME type to send, or omit for no payload

Definition

The mime type to send the payload in - either application/fhir+xml, or application/fhir+json. If the payload is not present, then there is no payload in the notification, just a notification. The mime type "text/plain" may also be used for Email and SMS subscriptions.

Comments

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

Data type

code

Binding

The mime type of an attachment. Any valid mime type is allowed.

Mime Types (required)

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
id0..1string
There are no (further) constraints on this element
Element id
Subscription.channel.payload.id
Short description

Unique id for inter-element referencing

Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Data type

string

Mappings
  • rim: n/a
extensionC1..*ExtensionElement id
Subscription.channel.payload.extension
Short description

Additional content defined by implementations

Alternate names

extensions, user content

Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Data type

Extension

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
contentS Σ C1..1Extension(code)Element id
Subscription.channel.payload.extension:content
Short description

Notification content level

Alternate names

extensions, user 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.

Comments

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

Data type

Extension(code)

Extension URL

http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
value0..1System.String
There are no (further) constraints on this element
Element id
Subscription.channel.payload.value
Short description

Primitive value for code

Definition

Primitive value for code

Data type

System.String

Maximum string length

1048576

headerΣ0..*stringElement id
Subscription.channel.header
Short description

Usage depends on the channel type

Definition

Use to specify additional information that will be included inside the notification payload when the notification is sent. Each entry consists of a key-value pair. This should support sending client certificates and client keys with validation to determine if it is the certificate itself or just the name.

Comments

This 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.

Data type

string

Conditions

The cardinality or value of this element may be affected by these constraints: ele-1

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a

Table View

Subscription..
Subscription.extensionExtension0..*
Subscription.extension:managingEntityExtension1..1
Subscription.criteria..
Subscription.criteria.extension:filterCriteriaExtension..
Subscription.channel..
Subscription.channel.extension:notificationRetryPeriodExtension..
Subscription.channel.extension:heartbeatPeriodExtension..
Subscription.channel.extension:timeoutExtension..
Subscription.channel.extension:maxCountExtension..
Subscription.channel.type..
Subscription.channel.type.extension:customChannelTypeExtension0..1
Subscription.channel.payload1..
Subscription.channel.payload.extension1..
Subscription.channel.payload.extension:contentExtension1..1
Subscription.channel.header..

JSON View

{
"resourceType": "StructureDefinition",
"url": "http://ontariohealth.ca/fhir/pubsub/StructureDefinition/profile-Subscription",
"name": "OntarioBackportSubscription",
"status": "draft",
"fhirVersion": "4.0.1",
"kind": "resource",
"abstract": false,
"type": "Subscription",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Subscription",
"derivation": "constraint",
"differential": {
"element": [
{
"id": "Subscription.extension",
"path": "Subscription.extension",
"slicing": {
"discriminator": [
{
"type": "value",
"path": "url"
}
],
"ordered": false,
"rules": "open"
},
"short": "Extension",
"definition": "An Extension",
"min": 0,
"max": "*",
"base": {
"path": "DomainResource.extension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"constraint": [
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"mustSupport": true,
"isModifier": false,
"isSummary": false
},
{
"id": "Subscription.extension:managingEntity",
"path": "Subscription.extension",
"sliceName": "managingEntity",
"short": "Entity managing the subscription (Device by identifier)",
"definition": "The Device (e.g., EMR system) responsible for managing the subscription, referenced by its logical identifier. Backported from R5 Subscription.managingEntity.",
"min": 1,
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"http://ontariohealth.ca/fhir/pubsub/StructureDefinition/ext-subscriptionManagingEntity"
]
}
],
"mustSupport": true,
"isModifier": false
},
{
"id": "Subscription.criteria",
"path": "Subscription.criteria",
"mustSupport": true
},
{
"id": "Subscription.criteria.extension:filterCriteria",
"path": "Subscription.criteria.extension",
"sliceName": "filterCriteria",
"type": [
{
"code": "Extension",
"profile": [
"http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-filter-criteria"
]
}
],
"mustSupport": true,
"isModifier": false
},
{
"id": "Subscription.channel.extension:notificationRetryPeriod",
"path": "Subscription.channel.extension",
"sliceName": "notificationRetryPeriod",
"type": [
{
"code": "Extension",
"profile": [
"http://ontariohealth.ca/fhir/pubsub/StructureDefinition/ext-SubscriptionNotificationRetryPeriod"
]
}
],
"isModifier": false
},
{
"id": "Subscription.channel.extension:heartbeatPeriod",
"path": "Subscription.channel.extension",
"sliceName": "heartbeatPeriod",
"type": [
{
"code": "Extension",
"profile": [
"http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period"
]
}
],
"isModifier": false
},
{
"id": "Subscription.channel.extension:timeout",
"path": "Subscription.channel.extension",
"sliceName": "timeout",
"type": [
{
"code": "Extension",
"profile": [
"http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout"
]
}
],
"isModifier": false
},
{
"id": "Subscription.channel.extension:maxCount",
"path": "Subscription.channel.extension",
"sliceName": "maxCount",
"type": [
{
"code": "Extension",
"profile": [
"http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count"
]
}
],
"isModifier": false
},
{
"id": "Subscription.channel.type.extension:customChannelType",
"path": "Subscription.channel.type.extension",
"sliceName": "customChannelType",
"short": "Extended channel type for notifications",
"definition": "The type of channel to send notifications on.",
"comment": "This extension allows for the use of additional channel types that were not defined in the FHIR R4 subscription definition.",
"min": 0,
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type"
]
}
],
"mustSupport": true,
"isSummary": true
},
{
"id": "Subscription.channel.payload",
"path": "Subscription.channel.payload",
"min": 1
},
{
"id": "Subscription.channel.payload.extension",
"path": "Subscription.channel.payload.extension",
"slicing": {
"discriminator": [
{
"type": "value",
"path": "url"
}
],
"ordered": false,
"rules": "open"
},
"min": 1
},
{
"id": "Subscription.channel.payload.extension:content",
"path": "Subscription.channel.payload.extension",
"sliceName": "content",
"short": "Notification content level",
"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.",
"comment": "Sending the payload has obvious security implications. The server is responsible for ensuring that the content is appropriately secured.",
"min": 1,
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content"
]
}
],
"mustSupport": true,
"isSummary": true
},
{
"id": "Subscription.channel.header",
"path": "Subscription.channel.header",
"definition": "Use to specify additional information that will be included inside the notification payload when the notification is sent. Each entry consists of a key-value pair. This should support sending client certificates and client keys with validation to determine if it is the certificate itself or just the name.",
"comment": "This 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."
}
]
}
}


4.3.4.2. Usage Notes

4.3.4.3.

.extension:managingEntity

  • Used to capture the client system ID which will be provided by Ontario Health at onboarding. eg. EMR ID

.status

  • The status of the subscription - requesters should set this value to "requested" when creating a subscrition request

.criteria

  • Used to capture the canonical URL of the SubscriptionTopic

.criteria.extension:filterCriteria

  • Used to apply filter criteria, similar to those used in search strings

channel.extenision:notificationretryperiod

  • Specifies the time interval (duration) that the Subscription service should wait before retrying a failed notification attempt.

.channel.extension:heartbeatPeriod

  • Interval in seconds to send 'heartbeat' notification

.channel.extension:timeout

  • Timeout in seconds to attempt notification delivery

.channel.extension:maxCount

  • Maximum number of triggering resources included in notification bundles

.channel.type

  • allowed values: rest-hook | websocket
  • for rest-hook, must supply bearer certificate for Mutual TLS or authorization header
  • user MAY poll notifications as a recovery mechanism via web socket channel

.channel.endpoint

  • URL endpoint used to deliver subscription notifications, notably URL for rest-hook and websocket.

.channel.type.extension:customeChannelType

  • not used in this implementation

.channel.payload

  • MIME type to be used to transmit the payload

.channel.payload.extension:content

  • used to convey the type of payload requested: empty (no resource content is sent in notifications), id-only (only resource ids are sent in notifications), or full-resource (entire resource is sent in notification)

.channel.header

  • used to specify additional information to be included within the notifaction payload when the notification is sent. Each entry consists of a key-value pair. This SHOULD support sending client certificates and client keys with validation to determine if it is the certificate itself or just the name.

4.3.4.4. Terminology Bindings - Differential


Version: 1.0.0 FHIR Version: R4.0.1

Powered by SIMPLIFIER.NET

HL7® and FHIR® are the registered trademarks of Health Level Seven International