Twiin Workflow
0.3.0-draft - Draft – normative only when referenced by the Twiin afsprakenstelsel

This page is part of the Twiin Workflow (v0.3.0-draft: Release 1 Draft) based on FHIR (HL7® FHIR® Standard) R4. No current official version has been published yet. For a full list of available versions, see the Directory of published versions

Resource Profile: Twiin Workflow Subscription

Official URL: https://fhir.twiin.nl/ig/workflow/StructureDefinition/twiin-workflow-subscription Version: 0.3.0-draft
Draft as of 2026-10-16 Computable Name: TwiinWorkflowSubscription

Copyright/Legal: Copyright 2026 Twiin. Licensed under CC BY-SA 4.0.

Subscription under TA Workflow, on top of the Twiin Subscription of TA Notifications (TA sections Summary of the profiles → Subscription; Subscription). The payload mode is id-only, the filter is owner:identifier=[system]|[value], and a heartbeat period is required.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots, and their representations.

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Subscription C 0..* TwiinSubscription Server push subscription criteria
Constraints: twiin-sub-1
Subscription.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Subscription.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Subscription.status This element is a modifier element. This element is included in summaries. 1..1 code requested | active | error | off
Binding: SubscriptionStatus (required): The status of a subscription.
Subscription.reason This element is included in summaries. 1..1 string Description of why this subscription was created
Subscription.criteria This element must be supported. This element is included in summaries. 1..1 string Canonical URL for the topic used to generate events
Subscription.criteria.Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Subscription.criteria.Slices for extension.extension:filterCriteria This element must be supported. This element is included in summaries. C 1..1 string Backported R5 FilterBy Criteria
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-filter-criteria
Constraints: twiin-wsub-1
Subscription.channel This element is included in summaries. 1..1 BackboneElement The channel on which to report matches to the criteria
Subscription.channel.Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Subscription.channel.Slices for extension.extension:heartbeatPeriod 1..1 unsignedInt Backport R5 Subscription Heartbeat Period
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period
Subscription.channel.Slices for extension.extension:timeout 0..1 unsignedInt Timeout in seconds to attempt notification delivery
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout
Subscription.channel.Slices for extension.extension:maxCount 0..1 positiveInt Maximum number of triggering resources included in notification bundles
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count
Subscription.channel.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Subscription.channel.type This element is included in summaries. 1..1 code rest-hook | websocket | email | sms | message
Binding: SubscriptionChannelType (required): The type of method used to execute a subscription.
Required Pattern: rest-hook
Subscription.channel.type.Slices for extension Content/Rules for all slices
Subscription.channel.type.Slices for extension.extension:customChannelType This element must be supported. This element is included in summaries. 0..1 Coding Extended channel type for notifications
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type
Subscription.channel.endpoint This element is included in summaries. 1..1 url Where the channel points to
Subscription.channel.payload This element is included in summaries. 1..1 code MIME type to send, or omit for no payload
Binding: Twiin Notification Formats (required)
Subscription.channel.payload.Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
Subscription.channel.payload.Slices for extension.extension:content This element must be supported. This element is included in summaries. 1..1 (Complex) Backport R5 Subscription Payload Content Information
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content
Subscription.channel.payload.Slices for extension.extension:content.extension 0..0 Extension
Slice: Unordered, Open by value:url
Subscription.channel.payload.Slices for extension.extension:content.url 1..1 uri "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content"
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x] 0..1 code Notification content level
Slice: Unordered, Closed by type:$this
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x] Content/Rules for all slices
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x].value[x]:valueCode 0..1 code Value of extension
Binding: Backported R5 Subscription Content Value Set (required)
Required Pattern: id-only

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Subscription.status Base required SubscriptionStatus 📍4.0.1 → 4.0.0 FHIR Std.
Subscription.channel.​type Base required SubscriptionChannelType 📍4.0.1 → 4.0.0 FHIR Std.
Subscription.channel.​payload Base required Twiin Notification Formats 📦0.2.0-draft Twiin Notifications v0.2
Subscription.channel.​payload.extension:content.​value[x]:valueCode Base required Backported R5 Subscription Content Value Set 📦1.1.0 Subscriptions R5 Backport v1.1

Constraints

Id Grade Path(s) Description Expression
dom-2 error Subscription If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Subscription 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.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Subscription 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-5 error Subscription If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Subscription A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
twiin-sub-1 warning Subscription criteria is the canonical URL of a SubscriptionTopic: an http(s) URL without a query. This is a heuristic to catch an R4 search expression in criteria. criteria.matches('^https?://[^?]+$')
twiin-wsub-1 error Subscription.criteria.extension:filterCriteria The filter is of the form owner:identifier=[system]|[value] (TA section Subscription). value.ofType(string).matches('^owner:identifier=[^|\\s]+[|][^|\\s]+$')

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Subscription 0..* TwiinSubscription Server push subscription criteria
Subscription.criteria
Subscription.criteria.extension 1..* Extension Extension
Subscription.criteria.Slices for extension Content/Rules for all slices
Subscription.criteria.Slices for extension.extension:filterCriteria C 1..1 BackportFilterCriteria Backported R5 FilterBy Criteria
Constraints: twiin-wsub-1
Subscription.channel
Subscription.channel.extension 1..* Extension Extension
Subscription.channel.Slices for extension Content/Rules for all slices
Subscription.channel.Slices for extension.extension:heartbeatPeriod 1..1 BackportHeartbeatPeriod Backport R5 Subscription Heartbeat Period
Subscription.channel.payload
Subscription.channel.payload.Slices for extension Content/Rules for all slices
Subscription.channel.payload.Slices for extension.extension:content 1..1 BackportPayloadContent Backport R5 Subscription Payload Content Information
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x] Content/Rules for all slices
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x].value[x]:valueCode 0..1 code Value of extension
Required Pattern: id-only

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
twiin-wsub-1 error Subscription.criteria.extension:filterCriteria The filter is of the form owner:identifier=[system]|[value] (TA section Subscription). value.ofType(string).matches('^owner:identifier=[^|\\s]+[|][^|\\s]+$')
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Subscription C 0..* TwiinSubscription Server push subscription criteria
Constraints: twiin-sub-1
Subscription.id This element is included in summaries. 0..1 id Logical id of this artifact
Subscription.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Subscription.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Subscription.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): IETF language tag
Additional BindingsPurpose
AllLanguages Max Binding
Subscription.text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
Subscription.contained 0..* Resource Contained, inline Resources
Constraints: dom-r4b
Subscription.extension 0..* Extension Additional content defined by implementations
Subscription.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Subscription.status This element is a modifier element. This element is included in summaries. 1..1 code requested | active | error | off
Binding: SubscriptionStatus (required): The status of a subscription.
Subscription.contact This element is included in summaries. 0..* ContactPoint Contact details for source (e.g. troubleshooting)
Subscription.end This element is included in summaries. 0..1 instant When to automatically delete the subscription
Subscription.reason This element is included in summaries. 1..1 string Description of why this subscription was created
Subscription.criteria This element must be supported. This element is included in summaries. 1..1 string Canonical URL for the topic used to generate events
Subscription.criteria.id 0..1 string xml:id (or equivalent in JSON)
Subscription.criteria.Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Subscription.criteria.Slices for extension.extension:filterCriteria This element must be supported. This element is included in summaries. C 1..1 string Backported R5 FilterBy Criteria
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-filter-criteria
Constraints: twiin-wsub-1
Subscription.criteria.value 0..1 string Primitive value for string
Max Length:1048576
Subscription.error This element is included in summaries. 0..1 string Latest error note
Subscription.channel This element is included in summaries. 1..1 BackboneElement The channel on which to report matches to the criteria
Subscription.channel.id 0..1 string Unique id for inter-element referencing
Subscription.channel.Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Subscription.channel.Slices for extension.extension:heartbeatPeriod 1..1 unsignedInt Backport R5 Subscription Heartbeat Period
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period
Subscription.channel.Slices for extension.extension:timeout 0..1 unsignedInt Timeout in seconds to attempt notification delivery
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout
Subscription.channel.Slices for extension.extension:maxCount 0..1 positiveInt Maximum number of triggering resources included in notification bundles
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count
Subscription.channel.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Subscription.channel.type This element is included in summaries. 1..1 code rest-hook | websocket | email | sms | message
Binding: SubscriptionChannelType (required): The type of method used to execute a subscription.
Required Pattern: rest-hook
Subscription.channel.type.id 0..1 string xml:id (or equivalent in JSON)
Subscription.channel.type.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Subscription.channel.type.Slices for extension.extension:customChannelType This element must be supported. This element is included in summaries. 0..1 Coding Extended channel type for notifications
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type
Subscription.channel.type.value 0..1 code Primitive value for code
Subscription.channel.endpoint This element is included in summaries. 1..1 url Where the channel points to
Subscription.channel.payload This element is included in summaries. 1..1 code MIME type to send, or omit for no payload
Binding: Twiin Notification Formats (required)
Subscription.channel.payload.id 0..1 string xml:id (or equivalent in JSON)
Subscription.channel.payload.Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
Subscription.channel.payload.Slices for extension.extension:content This element must be supported. This element is included in summaries. 1..1 (Complex) Backport R5 Subscription Payload Content Information
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content
Subscription.channel.payload.Slices for extension.extension:content.id 0..1 id Unique id for inter-element referencing
Subscription.channel.payload.Slices for extension.extension:content.extension 0..0 Extension
Slice: Unordered, Open by value:url
Subscription.channel.payload.Slices for extension.extension:content.url 1..1 uri "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content"
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x] 0..1 code Notification content level
Slice: Unordered, Closed by type:$this
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x] Content/Rules for all slices
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x].value[x]:valueCode 0..1 code Value of extension
Binding: Backported R5 Subscription Content Value Set (required)
Required Pattern: id-only
Subscription.channel.payload.value 0..1 code Primitive value for code
Subscription.channel.header This element is included in summaries. 0..* string Usage depends on the channel type

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Subscription.language Base preferred Common Languages 📦4.0.1 FHIR Std.
Subscription.status Base required SubscriptionStatus 📍4.0.1 → 4.0.0 FHIR Std.
Subscription.channel.​type Base required SubscriptionChannelType 📍4.0.1 → 4.0.0 FHIR Std.
Subscription.channel.​payload Base required Twiin Notification Formats 📦0.2.0-draft Twiin Notifications v0.2
Subscription.channel.​payload.extension:content.​value[x]:valueCode Base required Backported R5 Subscription Content Value Set 📦1.1.0 Subscriptions R5 Backport v1.1

Constraints

Id Grade Path(s) Description Expression
dom-2 error Subscription If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Subscription 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.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Subscription 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-5 error Subscription If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Subscription A resource should have narrative for robust management text.`div`.exists()
dom-r4b warning Subscription.contained Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems ($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
twiin-sub-1 warning Subscription criteria is the canonical URL of a SubscriptionTopic: an http(s) URL without a query. This is a heuristic to catch an R4 search expression in criteria. criteria.matches('^https?://[^?]+$')
twiin-wsub-1 error Subscription.criteria.extension:filterCriteria The filter is of the form owner:identifier=[system]|[value] (TA section Subscription). value.ofType(string).matches('^owner:identifier=[^|\\s]+[|][^|\\s]+$')

Summary

Mandatory: 4 elements

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Subscription C 0..* TwiinSubscription Server push subscription criteria
Constraints: twiin-sub-1
Subscription.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Subscription.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Subscription.status This element is a modifier element. This element is included in summaries. 1..1 code requested | active | error | off
Binding: SubscriptionStatus (required): The status of a subscription.
Subscription.reason This element is included in summaries. 1..1 string Description of why this subscription was created
Subscription.criteria This element must be supported. This element is included in summaries. 1..1 string Canonical URL for the topic used to generate events
Subscription.criteria.Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Subscription.criteria.Slices for extension.extension:filterCriteria This element must be supported. This element is included in summaries. C 1..1 string Backported R5 FilterBy Criteria
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-filter-criteria
Constraints: twiin-wsub-1
Subscription.channel This element is included in summaries. 1..1 BackboneElement The channel on which to report matches to the criteria
Subscription.channel.Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Subscription.channel.Slices for extension.extension:heartbeatPeriod 1..1 unsignedInt Backport R5 Subscription Heartbeat Period
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period
Subscription.channel.Slices for extension.extension:timeout 0..1 unsignedInt Timeout in seconds to attempt notification delivery
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout
Subscription.channel.Slices for extension.extension:maxCount 0..1 positiveInt Maximum number of triggering resources included in notification bundles
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count
Subscription.channel.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Subscription.channel.type This element is included in summaries. 1..1 code rest-hook | websocket | email | sms | message
Binding: SubscriptionChannelType (required): The type of method used to execute a subscription.
Required Pattern: rest-hook
Subscription.channel.type.Slices for extension Content/Rules for all slices
Subscription.channel.type.Slices for extension.extension:customChannelType This element must be supported. This element is included in summaries. 0..1 Coding Extended channel type for notifications
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type
Subscription.channel.endpoint This element is included in summaries. 1..1 url Where the channel points to
Subscription.channel.payload This element is included in summaries. 1..1 code MIME type to send, or omit for no payload
Binding: Twiin Notification Formats (required)
Subscription.channel.payload.Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
Subscription.channel.payload.Slices for extension.extension:content This element must be supported. This element is included in summaries. 1..1 (Complex) Backport R5 Subscription Payload Content Information
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content
Subscription.channel.payload.Slices for extension.extension:content.extension 0..0 Extension
Slice: Unordered, Open by value:url
Subscription.channel.payload.Slices for extension.extension:content.url 1..1 uri "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content"
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x] 0..1 code Notification content level
Slice: Unordered, Closed by type:$this
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x] Content/Rules for all slices
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x].value[x]:valueCode 0..1 code Value of extension
Binding: Backported R5 Subscription Content Value Set (required)
Required Pattern: id-only

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Subscription.status Base required SubscriptionStatus 📍4.0.1 → 4.0.0 FHIR Std.
Subscription.channel.​type Base required SubscriptionChannelType 📍4.0.1 → 4.0.0 FHIR Std.
Subscription.channel.​payload Base required Twiin Notification Formats 📦0.2.0-draft Twiin Notifications v0.2
Subscription.channel.​payload.extension:content.​value[x]:valueCode Base required Backported R5 Subscription Content Value Set 📦1.1.0 Subscriptions R5 Backport v1.1

Constraints

Id Grade Path(s) Description Expression
dom-2 error Subscription If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Subscription 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.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Subscription 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-5 error Subscription If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Subscription A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
twiin-sub-1 warning Subscription criteria is the canonical URL of a SubscriptionTopic: an http(s) URL without a query. This is a heuristic to catch an R4 search expression in criteria. criteria.matches('^https?://[^?]+$')
twiin-wsub-1 error Subscription.criteria.extension:filterCriteria The filter is of the form owner:identifier=[system]|[value] (TA section Subscription). value.ofType(string).matches('^owner:identifier=[^|\\s]+[|][^|\\s]+$')

Differential View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Subscription 0..* TwiinSubscription Server push subscription criteria
Subscription.criteria
Subscription.criteria.extension 1..* Extension Extension
Subscription.criteria.Slices for extension Content/Rules for all slices
Subscription.criteria.Slices for extension.extension:filterCriteria C 1..1 BackportFilterCriteria Backported R5 FilterBy Criteria
Constraints: twiin-wsub-1
Subscription.channel
Subscription.channel.extension 1..* Extension Extension
Subscription.channel.Slices for extension Content/Rules for all slices
Subscription.channel.Slices for extension.extension:heartbeatPeriod 1..1 BackportHeartbeatPeriod Backport R5 Subscription Heartbeat Period
Subscription.channel.payload
Subscription.channel.payload.Slices for extension Content/Rules for all slices
Subscription.channel.payload.Slices for extension.extension:content 1..1 BackportPayloadContent Backport R5 Subscription Payload Content Information
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x] Content/Rules for all slices
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x].value[x]:valueCode 0..1 code Value of extension
Required Pattern: id-only

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
twiin-wsub-1 error Subscription.criteria.extension:filterCriteria The filter is of the form owner:identifier=[system]|[value] (TA section Subscription). value.ofType(string).matches('^owner:identifier=[^|\\s]+[|][^|\\s]+$')

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Subscription C 0..* TwiinSubscription Server push subscription criteria
Constraints: twiin-sub-1
Subscription.id This element is included in summaries. 0..1 id Logical id of this artifact
Subscription.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Subscription.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Subscription.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): IETF language tag
Additional BindingsPurpose
AllLanguages Max Binding
Subscription.text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
Subscription.contained 0..* Resource Contained, inline Resources
Constraints: dom-r4b
Subscription.extension 0..* Extension Additional content defined by implementations
Subscription.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Subscription.status This element is a modifier element. This element is included in summaries. 1..1 code requested | active | error | off
Binding: SubscriptionStatus (required): The status of a subscription.
Subscription.contact This element is included in summaries. 0..* ContactPoint Contact details for source (e.g. troubleshooting)
Subscription.end This element is included in summaries. 0..1 instant When to automatically delete the subscription
Subscription.reason This element is included in summaries. 1..1 string Description of why this subscription was created
Subscription.criteria This element must be supported. This element is included in summaries. 1..1 string Canonical URL for the topic used to generate events
Subscription.criteria.id 0..1 string xml:id (or equivalent in JSON)
Subscription.criteria.Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Subscription.criteria.Slices for extension.extension:filterCriteria This element must be supported. This element is included in summaries. C 1..1 string Backported R5 FilterBy Criteria
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-filter-criteria
Constraints: twiin-wsub-1
Subscription.criteria.value 0..1 string Primitive value for string
Max Length:1048576
Subscription.error This element is included in summaries. 0..1 string Latest error note
Subscription.channel This element is included in summaries. 1..1 BackboneElement The channel on which to report matches to the criteria
Subscription.channel.id 0..1 string Unique id for inter-element referencing
Subscription.channel.Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Subscription.channel.Slices for extension.extension:heartbeatPeriod 1..1 unsignedInt Backport R5 Subscription Heartbeat Period
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period
Subscription.channel.Slices for extension.extension:timeout 0..1 unsignedInt Timeout in seconds to attempt notification delivery
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout
Subscription.channel.Slices for extension.extension:maxCount 0..1 positiveInt Maximum number of triggering resources included in notification bundles
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count
Subscription.channel.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Subscription.channel.type This element is included in summaries. 1..1 code rest-hook | websocket | email | sms | message
Binding: SubscriptionChannelType (required): The type of method used to execute a subscription.
Required Pattern: rest-hook
Subscription.channel.type.id 0..1 string xml:id (or equivalent in JSON)
Subscription.channel.type.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Subscription.channel.type.Slices for extension.extension:customChannelType This element must be supported. This element is included in summaries. 0..1 Coding Extended channel type for notifications
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type
Subscription.channel.type.value 0..1 code Primitive value for code
Subscription.channel.endpoint This element is included in summaries. 1..1 url Where the channel points to
Subscription.channel.payload This element is included in summaries. 1..1 code MIME type to send, or omit for no payload
Binding: Twiin Notification Formats (required)
Subscription.channel.payload.id 0..1 string xml:id (or equivalent in JSON)
Subscription.channel.payload.Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
Subscription.channel.payload.Slices for extension.extension:content This element must be supported. This element is included in summaries. 1..1 (Complex) Backport R5 Subscription Payload Content Information
URL: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content
Subscription.channel.payload.Slices for extension.extension:content.id 0..1 id Unique id for inter-element referencing
Subscription.channel.payload.Slices for extension.extension:content.extension 0..0 Extension
Slice: Unordered, Open by value:url
Subscription.channel.payload.Slices for extension.extension:content.url 1..1 uri "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content"
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x] 0..1 code Notification content level
Slice: Unordered, Closed by type:$this
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x] Content/Rules for all slices
Subscription.channel.payload.Slices for extension.extension:content.Slices for value[x].value[x]:valueCode 0..1 code Value of extension
Binding: Backported R5 Subscription Content Value Set (required)
Required Pattern: id-only
Subscription.channel.payload.value 0..1 code Primitive value for code
Subscription.channel.header This element is included in summaries. 0..* string Usage depends on the channel type

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Subscription.language Base preferred Common Languages 📦4.0.1 FHIR Std.
Subscription.status Base required SubscriptionStatus 📍4.0.1 → 4.0.0 FHIR Std.
Subscription.channel.​type Base required SubscriptionChannelType 📍4.0.1 → 4.0.0 FHIR Std.
Subscription.channel.​payload Base required Twiin Notification Formats 📦0.2.0-draft Twiin Notifications v0.2
Subscription.channel.​payload.extension:content.​value[x]:valueCode Base required Backported R5 Subscription Content Value Set 📦1.1.0 Subscriptions R5 Backport v1.1

Constraints

Id Grade Path(s) Description Expression
dom-2 error Subscription If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Subscription 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.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Subscription 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-5 error Subscription If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Subscription A resource should have narrative for robust management text.`div`.exists()
dom-r4b warning Subscription.contained Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems ($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
twiin-sub-1 warning Subscription criteria is the canonical URL of a SubscriptionTopic: an http(s) URL without a query. This is a heuristic to catch an R4 search expression in criteria. criteria.matches('^https?://[^?]+$')
twiin-wsub-1 error Subscription.criteria.extension:filterCriteria The filter is of the form owner:identifier=[system]|[value] (TA section Subscription). value.ofType(string).matches('^owner:identifier=[^|\\s]+[|][^|\\s]+$')

Summary

Mandatory: 4 elements

 

Other representations of profile: CSV, Excel, Schematron