WHO-UMC IDMP Management and Publish API
0.1.0 - CI Build International flag

WHO-UMC IDMP Management and Publish API, published by Uppsala Monitoring Centre. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/Uppsala-Monitoring-Centre/WHO-UMC-IDMP-Service/ and changes regularly. See the Directory of published versions

Resource Profile: Subscription for event notifications

Official URL: http://who-umc.org/idmp/StructureDefinition/Subscription-IdmpEvent Version: 0.1.0
Active as of 2024-11-11 Computable Name: SubscriptionIdmpEvent

Subscription for event notifications

Usage:

Formal Views of Profile Content

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

This structure is derived from Subscription

NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription 0..* Subscription Notification about a SubscriptionTopic
... channelType
.... system 0..1 uri Identity of the terminology system
Required Pattern: http://terminology.hl7.org/CodeSystem/subscription-channel-type
.... code 0..1 code Symbol in syntax defined by the system
Binding: Channel Type Value Set (required)
... endpoint 1..1 url Where the channel points to
... content 1..1 code id-only

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Subscription.channelType.coderequiredchannelType
http://who-umc.org/idmp/ValueSet/channelType
from this IG
NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription 0..* Subscription Notification about a SubscriptionTopic
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... topic Σ 1..1 canonical(SubscriptionTopic) Reference to the subscription topic being subscribed to
... channelType Σ 1..1 Coding Channel type for notifications
Binding: SubscriptionChannelType (extensible): The type of method used to execute a subscription.

.... system Σ 0..1 uri Identity of the terminology system
Required Pattern: http://terminology.hl7.org/CodeSystem/subscription-channel-type
.... code ΣC 0..1 code Symbol in syntax defined by the system
Binding: Channel Type Value Set (required)
... endpoint Σ 1..1 url Where the channel points to
... content Σ 1..1 code id-only
Binding: SubscriptionPayloadContent (required): Codes to represent how much resource content to send in the notification payload.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Subscription.statusrequiredSubscriptionStatusCodes
http://hl7.org/fhir/ValueSet/subscription-status|5.0.0
from the FHIR Standard
Subscription.channelTypeextensibleSubscriptionChannelType
http://hl7.org/fhir/ValueSet/subscription-channel-type
from the FHIR Standard
Subscription.channelType.coderequiredchannelType
http://who-umc.org/idmp/ValueSet/channelType
from this IG
Subscription.contentrequiredSubscriptionPayloadContent
http://hl7.org/fhir/ValueSet/subscription-payload-content|5.0.0
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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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 Notification about a SubscriptionTopic
... 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
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Additional identifiers (business identifier)
... name Σ 0..1 string Human readable name for this subscription
... status ?!Σ 1..1 code requested | active | error | off | entered-in-error
Binding: SubscriptionStatusCodes (required): The status of a subscription.

... topic Σ 1..1 canonical(SubscriptionTopic) Reference to the subscription topic being subscribed to
... contact Σ 0..* ContactPoint Contact details for source (e.g. troubleshooting)
... end Σ 0..1 instant When to automatically delete the subscription
... managingEntity Σ 0..1 Reference(CareTeam | HealthcareService | Organization | RelatedPerson | Patient | Practitioner | PractitionerRole) Entity responsible for Subscription changes
... reason Σ 0..1 string Description of why this subscription was created
... filterBy ΣC 0..* BackboneElement Criteria for narrowing the subscription topic stream
scr-1: Subscription filters may only contain a modifier or a comparator
.... 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
.... resourceType Σ 0..1 uri Allowed Resource (reference to definition) for this Subscription filter
Binding: SubscriptionTypes (extensible): A type of resource, or a Reference (from all versions)

Additional BindingsPurpose
AllResourceTypes UI Binding
.... filterParameter Σ 1..1 string Filter label defined in SubscriptionTopic
.... comparator C 0..1 code eq | ne | gt | lt | ge | le | sa | eb | ap
Binding: SearchComparator (required): Search Comparator Codes applied to this filter.

.... modifier C 0..1 code missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate
Binding: SearchModifierCode (required): Search Modifier Code applied to this filter.

.... value Σ 1..1 string Literal value or resource path
... channelType Σ 1..1 Coding Channel type for notifications
Binding: SubscriptionChannelType (extensible): The type of method used to execute a subscription.

.... id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... system Σ 0..1 uri Identity of the terminology system
Required Pattern: http://terminology.hl7.org/CodeSystem/subscription-channel-type
.... version Σ 0..1 string Version of the system - if relevant
.... code ΣC 0..1 code Symbol in syntax defined by the system
Binding: Channel Type Value Set (required)
.... display ΣC 0..1 string Representation defined by the system
.... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
... endpoint Σ 1..1 url Where the channel points to
... parameter 0..* BackboneElement Channel type
.... 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
.... name 1..1 string Name (key) of the parameter
.... value 1..1 string Value of the parameter to use or pass through
... heartbeatPeriod Σ 0..1 unsignedInt Interval in seconds to send 'heartbeat' notification
... timeout Σ 0..1 unsignedInt Timeout in seconds to attempt notification delivery
... contentType Σ 0..1 code MIME type to send, or omit for no payload
Binding: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049)

... content Σ 1..1 code id-only
Binding: SubscriptionPayloadContent (required): Codes to represent how much resource content to send in the notification payload.

... maxCount Σ 0..1 positiveInt Maximum number of events that can be combined in a single notification

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Subscription.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
Subscription.statusrequiredSubscriptionStatusCodes
http://hl7.org/fhir/ValueSet/subscription-status|5.0.0
from the FHIR Standard
Subscription.filterBy.resourceTypeextensibleSubscriptionTypes
http://hl7.org/fhir/ValueSet/subscription-types
from the FHIR Standard
Subscription.filterBy.comparatorrequiredSearchComparator
http://hl7.org/fhir/ValueSet/search-comparator|5.0.0
from the FHIR Standard
Subscription.filterBy.modifierrequiredSearchModifierCode
http://hl7.org/fhir/ValueSet/search-modifier-code|5.0.0
from the FHIR Standard
Subscription.channelTypeextensibleSubscriptionChannelType
http://hl7.org/fhir/ValueSet/subscription-channel-type
from the FHIR Standard
Subscription.channelType.coderequiredchannelType
http://who-umc.org/idmp/ValueSet/channelType
from this IG
Subscription.contentTyperequiredMimeTypes (a valid code from urn:ietf:bcp:13)
http://hl7.org/fhir/ValueSet/mimetypes|5.0.0
from the FHIR Standard
Subscription.contentrequiredSubscriptionPayloadContent
http://hl7.org/fhir/ValueSet/subscription-payload-content|5.0.0
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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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()
scr-1errorSubscription.filterBySubscription filters may only contain a modifier or a comparator
: (comparator.exists() and modifier.exists()).not()

This structure is derived from Subscription

Summary

Mandatory: 2 elements

Differential View

This structure is derived from Subscription

NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription 0..* Subscription Notification about a SubscriptionTopic
... channelType
.... system 0..1 uri Identity of the terminology system
Required Pattern: http://terminology.hl7.org/CodeSystem/subscription-channel-type
.... code 0..1 code Symbol in syntax defined by the system
Binding: Channel Type Value Set (required)
... endpoint 1..1 url Where the channel points to
... content 1..1 code id-only

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Subscription.channelType.coderequiredchannelType
http://who-umc.org/idmp/ValueSet/channelType
from this IG

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription 0..* Subscription Notification about a SubscriptionTopic
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... topic Σ 1..1 canonical(SubscriptionTopic) Reference to the subscription topic being subscribed to
... channelType Σ 1..1 Coding Channel type for notifications
Binding: SubscriptionChannelType (extensible): The type of method used to execute a subscription.

.... system Σ 0..1 uri Identity of the terminology system
Required Pattern: http://terminology.hl7.org/CodeSystem/subscription-channel-type
.... code ΣC 0..1 code Symbol in syntax defined by the system
Binding: Channel Type Value Set (required)
... endpoint Σ 1..1 url Where the channel points to
... content Σ 1..1 code id-only
Binding: SubscriptionPayloadContent (required): Codes to represent how much resource content to send in the notification payload.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Subscription.statusrequiredSubscriptionStatusCodes
http://hl7.org/fhir/ValueSet/subscription-status|5.0.0
from the FHIR Standard
Subscription.channelTypeextensibleSubscriptionChannelType
http://hl7.org/fhir/ValueSet/subscription-channel-type
from the FHIR Standard
Subscription.channelType.coderequiredchannelType
http://who-umc.org/idmp/ValueSet/channelType
from this IG
Subscription.contentrequiredSubscriptionPayloadContent
http://hl7.org/fhir/ValueSet/subscription-payload-content|5.0.0
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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription 0..* Subscription Notification about a SubscriptionTopic
... 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
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Additional identifiers (business identifier)
... name Σ 0..1 string Human readable name for this subscription
... status ?!Σ 1..1 code requested | active | error | off | entered-in-error
Binding: SubscriptionStatusCodes (required): The status of a subscription.

... topic Σ 1..1 canonical(SubscriptionTopic) Reference to the subscription topic being subscribed to
... contact Σ 0..* ContactPoint Contact details for source (e.g. troubleshooting)
... end Σ 0..1 instant When to automatically delete the subscription
... managingEntity Σ 0..1 Reference(CareTeam | HealthcareService | Organization | RelatedPerson | Patient | Practitioner | PractitionerRole) Entity responsible for Subscription changes
... reason Σ 0..1 string Description of why this subscription was created
... filterBy ΣC 0..* BackboneElement Criteria for narrowing the subscription topic stream
scr-1: Subscription filters may only contain a modifier or a comparator
.... 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
.... resourceType Σ 0..1 uri Allowed Resource (reference to definition) for this Subscription filter
Binding: SubscriptionTypes (extensible): A type of resource, or a Reference (from all versions)

Additional BindingsPurpose
AllResourceTypes UI Binding
.... filterParameter Σ 1..1 string Filter label defined in SubscriptionTopic
.... comparator C 0..1 code eq | ne | gt | lt | ge | le | sa | eb | ap
Binding: SearchComparator (required): Search Comparator Codes applied to this filter.

.... modifier C 0..1 code missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate
Binding: SearchModifierCode (required): Search Modifier Code applied to this filter.

.... value Σ 1..1 string Literal value or resource path
... channelType Σ 1..1 Coding Channel type for notifications
Binding: SubscriptionChannelType (extensible): The type of method used to execute a subscription.

.... id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... system Σ 0..1 uri Identity of the terminology system
Required Pattern: http://terminology.hl7.org/CodeSystem/subscription-channel-type
.... version Σ 0..1 string Version of the system - if relevant
.... code ΣC 0..1 code Symbol in syntax defined by the system
Binding: Channel Type Value Set (required)
.... display ΣC 0..1 string Representation defined by the system
.... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
... endpoint Σ 1..1 url Where the channel points to
... parameter 0..* BackboneElement Channel type
.... 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
.... name 1..1 string Name (key) of the parameter
.... value 1..1 string Value of the parameter to use or pass through
... heartbeatPeriod Σ 0..1 unsignedInt Interval in seconds to send 'heartbeat' notification
... timeout Σ 0..1 unsignedInt Timeout in seconds to attempt notification delivery
... contentType Σ 0..1 code MIME type to send, or omit for no payload
Binding: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049)

... content Σ 1..1 code id-only
Binding: SubscriptionPayloadContent (required): Codes to represent how much resource content to send in the notification payload.

... maxCount Σ 0..1 positiveInt Maximum number of events that can be combined in a single notification

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Subscription.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
Subscription.statusrequiredSubscriptionStatusCodes
http://hl7.org/fhir/ValueSet/subscription-status|5.0.0
from the FHIR Standard
Subscription.filterBy.resourceTypeextensibleSubscriptionTypes
http://hl7.org/fhir/ValueSet/subscription-types
from the FHIR Standard
Subscription.filterBy.comparatorrequiredSearchComparator
http://hl7.org/fhir/ValueSet/search-comparator|5.0.0
from the FHIR Standard
Subscription.filterBy.modifierrequiredSearchModifierCode
http://hl7.org/fhir/ValueSet/search-modifier-code|5.0.0
from the FHIR Standard
Subscription.channelTypeextensibleSubscriptionChannelType
http://hl7.org/fhir/ValueSet/subscription-channel-type
from the FHIR Standard
Subscription.channelType.coderequiredchannelType
http://who-umc.org/idmp/ValueSet/channelType
from this IG
Subscription.contentTyperequiredMimeTypes (a valid code from urn:ietf:bcp:13)
http://hl7.org/fhir/ValueSet/mimetypes|5.0.0
from the FHIR Standard
Subscription.contentrequiredSubscriptionPayloadContent
http://hl7.org/fhir/ValueSet/subscription-payload-content|5.0.0
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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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()
scr-1errorSubscription.filterBySubscription filters may only contain a modifier or a comparator
: (comparator.exists() and modifier.exists()).not()

This structure is derived from Subscription

Summary

Mandatory: 2 elements

 

Other representations of profile: CSV, Excel, Schematron