Real Time Location Services Implementation Guide
1.0.0-ballot - CI Build International flag

Real Time Location Services Implementation Guide, published by HL7 International - Patient Administration Work Group. This is not an authorized publication; it is the continuous build for version 1.0.0-ballot). This version is based on the current content of https://github.com/HL7/rtls-ig/ and changes regularly. See the Directory of published versions

Resource Profile: RTLS Subscription ( Experimental )

Official URL: http://hl7.org/fhir/uv/rtls/StructureDefinition/rtlsSubscription Version: 1.0.0-ballot
Standards status: Informative Computable Name: RTLSSubscription

Subscription resource used in RTLS workflows.

This profile defines minimum expectations for a subscription requested from a RTLS.

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..*SubscriptionNotification about a SubscriptionTopic
... identifier S1..*IdentifierAdditional identifiers (business identifier)
... status S1..1coderequested | active | error | off | entered-in-error
... topic S1..1canonical(RTLS Subscription Topic Profile)Reference to the RTLS subscription topic being subscribed to (e.g. location updates)
... endpoint S0..1urlWhere the channel points to

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription 0..*SubscriptionNotification about a SubscriptionTopic
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... contained 0..*ResourceContained, inline Resources
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... status ?!SΣ1..1coderequested | active | error | off | entered-in-error
Binding: SubscriptionStatusCodes (required): The status of a subscription.

... topic SΣ1..1canonical(RTLS Subscription Topic Profile)Reference to the RTLS subscription topic being subscribed to (e.g. location updates)
... channelType SΣ1..1CodingSet to "message"
Binding: SubscriptionChannelType (extensible): The type of method used to execute a subscription.

... endpoint SΣ0..1urlWhere the channel points to

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Subscription.statusrequiredSubscriptionStatusCodes
Subscription.channelTypeextensibleSubscriptionChannelType

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..*SubscriptionNotification about a SubscriptionTopic
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... identifier SΣ1..*IdentifierAdditional identifiers (business identifier)
... name Σ0..1stringHuman readable name for this subscription
... status ?!SΣ1..1coderequested | active | error | off | entered-in-error
Binding: SubscriptionStatusCodes (required): The status of a subscription.

... topic SΣ1..1canonical(RTLS Subscription Topic Profile)Reference to the RTLS subscription topic being subscribed to (e.g. location updates)
... contact Σ0..*ContactPointContact details for source (e.g. troubleshooting)
... end Σ0..1instantWhen to automatically delete the subscription
... managingEntity Σ0..1Reference(CareTeam | HealthcareService | Organization | RelatedPerson | Patient | Practitioner | PractitionerRole)Entity responsible for Subscription changes
... reason Σ0..1stringDescription of why this subscription was created
... filterBy ΣC0..*BackboneElementCriteria for narrowing the subscription topic stream
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... resourceType Σ0..1uriAllowed Resource (reference to definition) for this Subscription filter
Binding: SubscriptionTypes (extensible): A type of resource, or a Reference (from all versions)

.... filterParameter Σ1..1stringFilter label defined in SubscriptionTopic
.... comparator C0..1codeeq | ne | gt | lt | ge | le | sa | eb | ap
Binding: SearchComparator (required): Search Comparator Codes applied to this filter.

.... modifier C0..1codemissing | 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..1stringLiteral value or resource path
... channelType SΣ1..1CodingSet to "message"
Binding: SubscriptionChannelType (extensible): The type of method used to execute a subscription.

... endpoint SΣ0..1urlWhere the channel points to
... parameter 0..*BackboneElementChannel type
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... name 1..1stringName (key) of the parameter
.... value 1..1stringValue of the parameter to use or pass through
... heartbeatPeriod Σ0..1unsignedIntInterval in seconds to send 'heartbeat' notification
... timeout Σ0..1unsignedIntTimeout in seconds to attempt notification delivery
... contentType Σ0..1codeMIME type to send, or omit for no payload
Binding: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049)

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

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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Subscription.languagerequiredAllLanguages
Subscription.statusrequiredSubscriptionStatusCodes
Subscription.filterBy.resourceTypeextensibleSubscriptionTypes
Subscription.filterBy.comparatorrequiredSearchComparator
Subscription.filterBy.modifierrequiredSearchModifierCode
Subscription.channelTypeextensibleSubscriptionChannelType
Subscription.contentTyperequiredMimeTypes (a valid code from urn:ietf:bcp:13)
Subscription.contentrequiredSubscriptionPayloadContent

Constraints

IdGradePath(s)DetailsRequirements
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: 1 element
Must-Support: 5 elements

Structures

This structure refers to these other structures:

Differential View

This structure is derived from Subscription

NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription 0..*SubscriptionNotification about a SubscriptionTopic
... identifier S1..*IdentifierAdditional identifiers (business identifier)
... status S1..1coderequested | active | error | off | entered-in-error
... topic S1..1canonical(RTLS Subscription Topic Profile)Reference to the RTLS subscription topic being subscribed to (e.g. location updates)
... endpoint S0..1urlWhere the channel points to

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Subscription 0..*SubscriptionNotification about a SubscriptionTopic
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... contained 0..*ResourceContained, inline Resources
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... status ?!SΣ1..1coderequested | active | error | off | entered-in-error
Binding: SubscriptionStatusCodes (required): The status of a subscription.

... topic SΣ1..1canonical(RTLS Subscription Topic Profile)Reference to the RTLS subscription topic being subscribed to (e.g. location updates)
... channelType SΣ1..1CodingSet to "message"
Binding: SubscriptionChannelType (extensible): The type of method used to execute a subscription.

... endpoint SΣ0..1urlWhere the channel points to

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Subscription.statusrequiredSubscriptionStatusCodes
Subscription.channelTypeextensibleSubscriptionChannelType

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..*SubscriptionNotification about a SubscriptionTopic
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... identifier SΣ1..*IdentifierAdditional identifiers (business identifier)
... name Σ0..1stringHuman readable name for this subscription
... status ?!SΣ1..1coderequested | active | error | off | entered-in-error
Binding: SubscriptionStatusCodes (required): The status of a subscription.

... topic SΣ1..1canonical(RTLS Subscription Topic Profile)Reference to the RTLS subscription topic being subscribed to (e.g. location updates)
... contact Σ0..*ContactPointContact details for source (e.g. troubleshooting)
... end Σ0..1instantWhen to automatically delete the subscription
... managingEntity Σ0..1Reference(CareTeam | HealthcareService | Organization | RelatedPerson | Patient | Practitioner | PractitionerRole)Entity responsible for Subscription changes
... reason Σ0..1stringDescription of why this subscription was created
... filterBy ΣC0..*BackboneElementCriteria for narrowing the subscription topic stream
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... resourceType Σ0..1uriAllowed Resource (reference to definition) for this Subscription filter
Binding: SubscriptionTypes (extensible): A type of resource, or a Reference (from all versions)

.... filterParameter Σ1..1stringFilter label defined in SubscriptionTopic
.... comparator C0..1codeeq | ne | gt | lt | ge | le | sa | eb | ap
Binding: SearchComparator (required): Search Comparator Codes applied to this filter.

.... modifier C0..1codemissing | 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..1stringLiteral value or resource path
... channelType SΣ1..1CodingSet to "message"
Binding: SubscriptionChannelType (extensible): The type of method used to execute a subscription.

... endpoint SΣ0..1urlWhere the channel points to
... parameter 0..*BackboneElementChannel type
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... name 1..1stringName (key) of the parameter
.... value 1..1stringValue of the parameter to use or pass through
... heartbeatPeriod Σ0..1unsignedIntInterval in seconds to send 'heartbeat' notification
... timeout Σ0..1unsignedIntTimeout in seconds to attempt notification delivery
... contentType Σ0..1codeMIME type to send, or omit for no payload
Binding: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049)

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

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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Subscription.languagerequiredAllLanguages
Subscription.statusrequiredSubscriptionStatusCodes
Subscription.filterBy.resourceTypeextensibleSubscriptionTypes
Subscription.filterBy.comparatorrequiredSearchComparator
Subscription.filterBy.modifierrequiredSearchModifierCode
Subscription.channelTypeextensibleSubscriptionChannelType
Subscription.contentTyperequiredMimeTypes (a valid code from urn:ietf:bcp:13)
Subscription.contentrequiredSubscriptionPayloadContent

Constraints

IdGradePath(s)DetailsRequirements
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: 1 element
Must-Support: 5 elements

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron