Carequality Subscription Implementation Guide for Push Notifications
1.0.0 - CI Build

This page is part of the Carequality Subscription Implementation Guide for Push Notifications (v1.0.0: Release) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: Carequality Subscription Profile ( Experimental )

Official URL: https://carequality.org/IG/push-notifications/StructureDefinition/CEQsubscription Version: 1.0.0
Draft as of 2024-12-18 Computable Name: CEQsubscription

Extended Elements and Constraints Specific to the Carequality Use Case Carequality has defined a custom flow for a Subscription that removes the criteria use in favor of specific events defined as URIs. This adds requirements that the PatientID and an identifier be added to the resource. The identifier element is the endpoint id [Base]/fhir/Subscription/[identifier] A termination (Subscription.end) date is required and may not be more than 2 years from original date of subscription. A renewal may be submitted prior to expiry for a period of up to two additional years.

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 C 0..* Subscription Server push subscription criteria
CEQ-Param-Name: searchParamName shall be Patient or PatientID
... Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
.... ceqPushExtension 1..1 (Complex) Carequality Subscription Required Elements
URL: https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension
..... Slices for extension Content/Rules for all slices
...... extension:searchParamName 1..1 Extension Extension
....... value[x] 1..1 string Value of extension
...... extension:searchModifier 1..1 Extension Extension
....... value[x] 0..1 code Value of extension
Required Pattern: eq
.... subscriptionTopic 1..* canonical() Backport R5 Subscription Topic Canonical
URL: https://carequality.org/IG/push-notifications/StructureDefinition/backport-topic-canonical
... end 1..1 instant When to automatically delete the subscription
... criteria 1..1 string Simplified query string for Patient using ?id= or ?identifier=
.... type 1..1 code rest-hook | websocket | email | sms | message
Fixed Value: rest-hook

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
CEQ-Param-NameerrorSubscriptionsearchParamName shall be Patient or PatientID
: extension('https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension').extension('searchParamName').value in ( 'Patient' | 'PatientID' )
NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription C 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
CEQ-Param-Name: searchParamName shall be Patient or PatientID
... 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 2..* 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
.... ceqPushExtension 1..1 (Complex) Carequality Subscription Required Elements
URL: https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
..... Slices for extension 5..* 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:subIdentifier S 1..1 Extension A Business Identifier
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
....... extension 0..0
....... url 1..1 uri "subIdentifier"
...... extension:searchParamName 1..1 Extension Extension
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
....... extension 0..0
....... url 1..1 uri "searchParamName"
....... value[x] 1..1 string Value of extension
ele-1: All FHIR elements must have a @value or children
...... extension:searchModifier 1..1 Extension Extension
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
....... extension 0..0
....... url 1..1 uri "searchModifier"
....... value[x] 0..1 code Value of extension
ele-1: All FHIR elements must have a @value or children
Required Pattern: eq
...... extension:endUser 1..1 Extension End recipient of the notification
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
....... extension 0..0
....... url 1..1 uri "endUser"
...... extension:CQOrganization 1..1 Extension Recipient CQ Directory Reference
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
....... extension 0..0
....... url 1..1 uri "CQOrganization"
..... url 1..1 uri "https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension"
.... subscriptionTopic 1..* canonical() Backport R5 Subscription Topic Canonical
URL: https://carequality.org/IG/push-notifications/StructureDefinition/backport-topic-canonical
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
... end Σ 1..1 instant When to automatically delete the subscription
ele-1: All FHIR elements must have a @value or children
... 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 Simplified query string for Patient using ?id= or ?identifier=
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 | websocket | email | sms | message
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
CEQ-Param-NameerrorSubscriptionsearchParamName shall be Patient or PatientID
: extension('https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension').extension('searchParamName').value in ( 'Patient' | 'PatientID' )
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 C 0..* Subscription Server push subscription criteria
CEQ-Param-Name: searchParamName shall be Patient or PatientID
... 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 2..* Extension Extension
Slice: Unordered, Open by value:url
.... ceqPushExtension 1..1 (Complex) Carequality Subscription Required Elements
URL: https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension
..... id 0..1 string Unique id for inter-element referencing
..... Slices for extension 5..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:subIdentifier S 1..1 Extension A Business Identifier
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0
....... url 1..1 uri "subIdentifier"
....... value[x] 0..1 string Value of extension
...... extension:searchParamName 1..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0
....... url 1..1 uri "searchParamName"
....... value[x] 1..1 string Value of extension
...... extension:searchModifier 1..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0
....... url 1..1 uri "searchModifier"
....... value[x] 0..1 code Value of extension
Required Pattern: eq
...... extension:endUser 1..1 Extension End recipient of the notification
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0
....... url 1..1 uri "endUser"
....... value[x] 0..1 string Value of extension
...... extension:CQOrganization 1..1 Extension Recipient CQ Directory Reference
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0
....... url 1..1 uri "CQOrganization"
....... value[x] 0..1 string Value of extension
..... url 1..1 uri "https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension"
.... subscriptionTopic 1..* canonical() Backport R5 Subscription Topic Canonical
URL: https://carequality.org/IG/push-notifications/StructureDefinition/backport-topic-canonical
... 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 Σ 1..1 instant When to automatically delete the subscription
... reason Σ 1..1 string Description of why this subscription was created
... criteria Σ 1..1 string Simplified query string for Patient using ?id= or ?identifier=
... 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 | websocket | email | sms | message
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
.... payload Σ 0..1 code MIME type to send, or omit for no payload
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.

.... 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
Subscription.channel.payloadrequiredMime Types (a valid code from urn:ietf:bcp:13)
http://hl7.org/fhir/ValueSet/mimetypes|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
CEQ-Param-NameerrorSubscriptionsearchParamName shall be Patient or PatientID
: extension('https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension').extension('searchParamName').value in ( 'Patient' | 'PatientID' )
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

Differential View

This structure is derived from Subscription

NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription C 0..* Subscription Server push subscription criteria
CEQ-Param-Name: searchParamName shall be Patient or PatientID
... Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
.... ceqPushExtension 1..1 (Complex) Carequality Subscription Required Elements
URL: https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension
..... Slices for extension Content/Rules for all slices
...... extension:searchParamName 1..1 Extension Extension
....... value[x] 1..1 string Value of extension
...... extension:searchModifier 1..1 Extension Extension
....... value[x] 0..1 code Value of extension
Required Pattern: eq
.... subscriptionTopic 1..* canonical() Backport R5 Subscription Topic Canonical
URL: https://carequality.org/IG/push-notifications/StructureDefinition/backport-topic-canonical
... end 1..1 instant When to automatically delete the subscription
... criteria 1..1 string Simplified query string for Patient using ?id= or ?identifier=
.... type 1..1 code rest-hook | websocket | email | sms | message
Fixed Value: rest-hook

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
CEQ-Param-NameerrorSubscriptionsearchParamName shall be Patient or PatientID
: extension('https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension').extension('searchParamName').value in ( 'Patient' | 'PatientID' )

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription C 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
CEQ-Param-Name: searchParamName shall be Patient or PatientID
... 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 2..* 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
.... ceqPushExtension 1..1 (Complex) Carequality Subscription Required Elements
URL: https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
..... Slices for extension 5..* 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:subIdentifier S 1..1 Extension A Business Identifier
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
....... extension 0..0
....... url 1..1 uri "subIdentifier"
...... extension:searchParamName 1..1 Extension Extension
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
....... extension 0..0
....... url 1..1 uri "searchParamName"
....... value[x] 1..1 string Value of extension
ele-1: All FHIR elements must have a @value or children
...... extension:searchModifier 1..1 Extension Extension
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
....... extension 0..0
....... url 1..1 uri "searchModifier"
....... value[x] 0..1 code Value of extension
ele-1: All FHIR elements must have a @value or children
Required Pattern: eq
...... extension:endUser 1..1 Extension End recipient of the notification
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
....... extension 0..0
....... url 1..1 uri "endUser"
...... extension:CQOrganization 1..1 Extension Recipient CQ Directory Reference
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
....... extension 0..0
....... url 1..1 uri "CQOrganization"
..... url 1..1 uri "https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension"
.... subscriptionTopic 1..* canonical() Backport R5 Subscription Topic Canonical
URL: https://carequality.org/IG/push-notifications/StructureDefinition/backport-topic-canonical
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
... end Σ 1..1 instant When to automatically delete the subscription
ele-1: All FHIR elements must have a @value or children
... 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 Simplified query string for Patient using ?id= or ?identifier=
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 | websocket | email | sms | message
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
CEQ-Param-NameerrorSubscriptionsearchParamName shall be Patient or PatientID
: extension('https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension').extension('searchParamName').value in ( 'Patient' | 'PatientID' )
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()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription C 0..* Subscription Server push subscription criteria
CEQ-Param-Name: searchParamName shall be Patient or PatientID
... 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 2..* Extension Extension
Slice: Unordered, Open by value:url
.... ceqPushExtension 1..1 (Complex) Carequality Subscription Required Elements
URL: https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension
..... id 0..1 string Unique id for inter-element referencing
..... Slices for extension 5..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:subIdentifier S 1..1 Extension A Business Identifier
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0
....... url 1..1 uri "subIdentifier"
....... value[x] 0..1 string Value of extension
...... extension:searchParamName 1..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0
....... url 1..1 uri "searchParamName"
....... value[x] 1..1 string Value of extension
...... extension:searchModifier 1..1 Extension Extension
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0
....... url 1..1 uri "searchModifier"
....... value[x] 0..1 code Value of extension
Required Pattern: eq
...... extension:endUser 1..1 Extension End recipient of the notification
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0
....... url 1..1 uri "endUser"
....... value[x] 0..1 string Value of extension
...... extension:CQOrganization 1..1 Extension Recipient CQ Directory Reference
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..0
....... url 1..1 uri "CQOrganization"
....... value[x] 0..1 string Value of extension
..... url 1..1 uri "https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension"
.... subscriptionTopic 1..* canonical() Backport R5 Subscription Topic Canonical
URL: https://carequality.org/IG/push-notifications/StructureDefinition/backport-topic-canonical
... 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 Σ 1..1 instant When to automatically delete the subscription
... reason Σ 1..1 string Description of why this subscription was created
... criteria Σ 1..1 string Simplified query string for Patient using ?id= or ?identifier=
... 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 | websocket | email | sms | message
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
.... payload Σ 0..1 code MIME type to send, or omit for no payload
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.

.... 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
Subscription.channel.payloadrequiredMime Types (a valid code from urn:ietf:bcp:13)
http://hl7.org/fhir/ValueSet/mimetypes|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
CEQ-Param-NameerrorSubscriptionsearchParamName shall be Patient or PatientID
: extension('https://carequality.org/IG/push-notifications/StructureDefinition/CEQextension').extension('searchParamName').value in ( 'Patient' | 'PatientID' )
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

 

Other representations of profile: CSV, Excel, Schematron