Koppeltaal 2.0 Implementation Guide
0.9.0 - ci-build Netherlands flag

Koppeltaal 2.0 Implementation Guide - Local Development build (v0.9.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: KT2_Subscription

Official URL: http://koppeltaal.nl/fhir/StructureDefinition/KT2Subscription Version: 0.9.0
Draft as of 2023-01-24 Computable Name: KT2_Subscription

Copyright/Legal: VZVZ

The (FHIR) 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.

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription 0..* Subscription Server push subscription criteria
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:resource-origin 0..* Reference(KT2_Device) Extension
URL: http://koppeltaal.nl/fhir/StructureDefinition/resource-origin
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... reason Σ 1..1 string Description of why this subscription was created
ele-1: All FHIR elements must have a @value or children
... criteria Σ 1..1 string Rule for server push
ele-1: All FHIR elements must have a @value or children
... error Σ 0..1 string Latest error note
ele-1: All FHIR elements must have a @value or children
... channel Σ 1..1 BackboneElement The channel on which to report matches to the criteria
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... type Σ 1..1 code rest-hook
Binding: SubscriptionChannelType (required): The type of method used to execute a subscription.


ele-1: All FHIR elements must have a @value or children
Fixed Value: rest-hook

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Subscription.statusrequiredSubscriptionStatus
http://hl7.org/fhir/ValueSet/subscription-status|4.0.1
from the FHIR Standard
Subscription.channel.typerequiredFixed Value: rest-hook
http://hl7.org/fhir/ValueSet/subscription-channel-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSubscriptionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSubscriptionIf 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-4errorSubscriptionIf 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-5errorSubscriptionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSubscriptionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription 0..* Subscription Server push subscription criteria
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:resource-origin 0..* Reference(KT2_Device) Extension
URL: http://koppeltaal.nl/fhir/StructureDefinition/resource-origin
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code requested | active | error | off
Binding: SubscriptionStatus (required): The status of a subscription.

... contact Σ 0..* ContactPoint Contact details for source (e.g. troubleshooting)
... end Σ 0..1 instant When to automatically delete the subscription
... reason Σ 1..1 string Description of why this subscription was created
... criteria Σ 1..1 string Rule for server push
... error Σ 0..1 string Latest error note
... channel Σ 1..1 BackboneElement The channel on which to report matches to the criteria
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... type Σ 1..1 code rest-hook
Binding: SubscriptionChannelType (required): The type of method used to execute a subscription.


Fixed Value: rest-hook
.... endpoint Σ 0..1 url Where the channel points to
.... header Σ 0..* string Usage depends on the channel type

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Subscription.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Subscription.statusrequiredSubscriptionStatus
http://hl7.org/fhir/ValueSet/subscription-status|4.0.1
from the FHIR Standard
Subscription.channel.typerequiredFixed Value: rest-hook
http://hl7.org/fhir/ValueSet/subscription-channel-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSubscriptionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSubscriptionIf 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-4errorSubscriptionIf 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-5errorSubscriptionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSubscriptionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Subscription

Summary

Fixed: 1 element
Prohibited: 1 element

Extensions

This structure refers to these extensions:

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription 0..* Subscription Server push subscription criteria
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:resource-origin 0..* Reference(KT2_Device) Extension
URL: http://koppeltaal.nl/fhir/StructureDefinition/resource-origin
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... reason Σ 1..1 string Description of why this subscription was created
ele-1: All FHIR elements must have a @value or children
... criteria Σ 1..1 string Rule for server push
ele-1: All FHIR elements must have a @value or children
... error Σ 0..1 string Latest error note
ele-1: All FHIR elements must have a @value or children
... channel Σ 1..1 BackboneElement The channel on which to report matches to the criteria
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... type Σ 1..1 code rest-hook
Binding: SubscriptionChannelType (required): The type of method used to execute a subscription.


ele-1: All FHIR elements must have a @value or children
Fixed Value: rest-hook

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Subscription.statusrequiredSubscriptionStatus
http://hl7.org/fhir/ValueSet/subscription-status|4.0.1
from the FHIR Standard
Subscription.channel.typerequiredFixed Value: rest-hook
http://hl7.org/fhir/ValueSet/subscription-channel-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSubscriptionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSubscriptionIf 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-4errorSubscriptionIf 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-5errorSubscriptionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSubscriptionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Differential View

This structure is derived from Subscription

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription 0..* Subscription Server push subscription criteria
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:resource-origin 0..* Reference(KT2_Device) Extension
URL: http://koppeltaal.nl/fhir/StructureDefinition/resource-origin
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code requested | active | error | off
Binding: SubscriptionStatus (required): The status of a subscription.

... contact Σ 0..* ContactPoint Contact details for source (e.g. troubleshooting)
... end Σ 0..1 instant When to automatically delete the subscription
... reason Σ 1..1 string Description of why this subscription was created
... criteria Σ 1..1 string Rule for server push
... error Σ 0..1 string Latest error note
... channel Σ 1..1 BackboneElement The channel on which to report matches to the criteria
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... type Σ 1..1 code rest-hook
Binding: SubscriptionChannelType (required): The type of method used to execute a subscription.


Fixed Value: rest-hook
.... endpoint Σ 0..1 url Where the channel points to
.... header Σ 0..* string Usage depends on the channel type

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Subscription.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Subscription.statusrequiredSubscriptionStatus
http://hl7.org/fhir/ValueSet/subscription-status|4.0.1
from the FHIR Standard
Subscription.channel.typerequiredFixed Value: rest-hook
http://hl7.org/fhir/ValueSet/subscription-channel-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSubscriptionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSubscriptionIf 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-4errorSubscriptionIf 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-5errorSubscriptionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSubscriptionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Subscription

Summary

Fixed: 1 element
Prohibited: 1 element

Extensions

This structure refers to these extensions:

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Beware of loops

It is the responsability of the developer to prevent endless loops, caused by sending a subscription to the original owner.