HL7 FHIR Implementation Guide: ZM-Core Release 1 - Zambia
0.1.0 - Zambia flag

HL7 FHIR Implementation Guide: ZM-Core Release 1 - Zambia - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: ZM-Core Communication Subscription Profile

Official URL: http://hapi.moh.gov.zm/fhir/StructureDefinition/zm-core-subscription Version: 0.1.0
Active as of 2026-08-12 Computable Name: ZMCoreSubscription

A secure R5 Subscription that activates a communication workflow when a governed communication topic matches.

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: Filtersdoco
.. 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
... name SΣ 1..1 string Human readable name for this subscription
... status ?!SΣ 1..1 code requested | active | error | off | entered-in-error
Binding: SubscriptionStatusCodes (required): The status of a subscription.
... topic SΣ 1..1 canonical(SubscriptionTopic) Reference to the subscription topic being subscribed to
... managingEntity SΣ 1..1 Reference(ZM-Core Organization Profile) Entity responsible for Subscription changes
... reason SΣ 1..1 string Description of why this subscription was created
... filterBy SΣC 0..* BackboneElement Criteria for narrowing the subscription topic stream
Constraints: scr-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... filterParameter Σ 1..1 string Filter label defined in SubscriptionTopic
.... value Σ 1..1 string Literal value or resource path
... channelType SΣ 1..1 Coding Channel type for notifications
Binding: SubscriptionChannelType (extensible): The type of method used to execute a subscription.
... endpoint SΣ 1..1 url Where the channel points to
... heartbeatPeriod SΣ 0..1 unsignedInt Interval in seconds to send 'heartbeat' notification
... timeout SΣ 0..1 unsignedInt Timeout in seconds to attempt notification delivery
... contentType SΣ 1..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 SΣ 1..1 code empty | id-only | full-resource
Binding: SubscriptionPayloadContent (required): Codes to represent how much resource content to send in the notification payload.
Required Pattern: id-only
... maxCount SΣ 0..1 positiveInt Maximum number of events that can be combined in a single notification

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Subscription.status Base required Subscription Status 📍5.0.0 FHIR Std.
Subscription.channelType Base extensible Subscription Channel Type 📍5.0.0 FHIR Std.
Subscription.contentType Base required Mime Types 📍5.0.0 FHIR Std.
Subscription.content Base required Subscription Payload Content 📍5.0.0 FHIR Std.

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 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-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()
scr-1 error Subscription.filterBy Subscription filters may only contain a modifier or a comparator (comparator.exists() and modifier.exists()).not()

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Subscription 0..* Subscription Notification about a SubscriptionTopic
... identifier S 1..* Identifier Additional identifiers (business identifier)
... name S 1..1 string Human readable name for this subscription
... status S 1..1 code requested | active | error | off | entered-in-error
... managingEntity S 1..1 Reference(ZM-Core Organization Profile) Entity responsible for Subscription changes
... reason S 1..1 string Description of why this subscription was created
... filterBy S 0..* BackboneElement Criteria for narrowing the subscription topic stream
... channelType S 1..1 Coding Channel type for notifications
... endpoint S 1..1 url Where the channel points to
... heartbeatPeriod S 0..1 unsignedInt Interval in seconds to send 'heartbeat' notification
... timeout S 0..1 unsignedInt Timeout in seconds to attempt notification delivery
... contentType S 1..1 code MIME type to send, or omit for no payload
... content S 1..1 code empty | id-only | full-resource
Required Pattern: id-only
... maxCount S 0..1 positiveInt Maximum number of events that can be combined in a single notification

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier SΣ 1..* Identifier Additional identifiers (business identifier)
... name SΣ 1..1 string Human readable name for this subscription
... status ?!SΣ 1..1 code requested | active | error | off | entered-in-error
Binding: SubscriptionStatusCodes (required): The status of a subscription.
... topic SΣ 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 SΣ 1..1 Reference(ZM-Core Organization Profile) Entity responsible for Subscription changes
... reason SΣ 1..1 string Description of why this subscription was created
... filterBy SΣC 0..* BackboneElement Criteria for narrowing the subscription topic stream
Constraints: scr-1
.... 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 SΣ 1..1 Coding Channel type for notifications
Binding: SubscriptionChannelType (extensible): The type of method used to execute a subscription.
... endpoint SΣ 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 SΣ 0..1 unsignedInt Interval in seconds to send 'heartbeat' notification
... timeout SΣ 0..1 unsignedInt Timeout in seconds to attempt notification delivery
... contentType SΣ 1..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 SΣ 1..1 code empty | id-only | full-resource
Binding: SubscriptionPayloadContent (required): Codes to represent how much resource content to send in the notification payload.
Required Pattern: id-only
... maxCount SΣ 0..1 positiveInt Maximum number of events that can be combined in a single notification

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Subscription.language Base required All Languages 📍5.0.0 FHIR Std.
Subscription.status Base required Subscription Status 📍5.0.0 FHIR Std.
Subscription.filterBy.​resourceType Base extensible Types used with Subscriptions 📍5.0.0 FHIR Std.
Subscription.filterBy.​comparator Base required Search Comparator 📍5.0.0 FHIR Std.
Subscription.filterBy.​modifier Base required Search Modifier Code 📍5.0.0 FHIR Std.
Subscription.channelType Base extensible Subscription Channel Type 📍5.0.0 FHIR Std.
Subscription.contentType Base required Mime Types 📍5.0.0 FHIR Std.
Subscription.content Base required Subscription Payload Content 📍5.0.0 FHIR Std.

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 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-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()
scr-1 error Subscription.filterBy Subscription filters may only contain a modifier or a comparator (comparator.exists() and modifier.exists()).not()

Summary

Mandatory: 7 elements
Must-Support: 14 elements

Structures

This structure refers to these other structures:

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... name SΣ 1..1 string Human readable name for this subscription
... status ?!SΣ 1..1 code requested | active | error | off | entered-in-error
Binding: SubscriptionStatusCodes (required): The status of a subscription.
... topic SΣ 1..1 canonical(SubscriptionTopic) Reference to the subscription topic being subscribed to
... managingEntity SΣ 1..1 Reference(ZM-Core Organization Profile) Entity responsible for Subscription changes
... reason SΣ 1..1 string Description of why this subscription was created
... filterBy SΣC 0..* BackboneElement Criteria for narrowing the subscription topic stream
Constraints: scr-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... filterParameter Σ 1..1 string Filter label defined in SubscriptionTopic
.... value Σ 1..1 string Literal value or resource path
... channelType SΣ 1..1 Coding Channel type for notifications
Binding: SubscriptionChannelType (extensible): The type of method used to execute a subscription.
... endpoint SΣ 1..1 url Where the channel points to
... heartbeatPeriod SΣ 0..1 unsignedInt Interval in seconds to send 'heartbeat' notification
... timeout SΣ 0..1 unsignedInt Timeout in seconds to attempt notification delivery
... contentType SΣ 1..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 SΣ 1..1 code empty | id-only | full-resource
Binding: SubscriptionPayloadContent (required): Codes to represent how much resource content to send in the notification payload.
Required Pattern: id-only
... maxCount SΣ 0..1 positiveInt Maximum number of events that can be combined in a single notification

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Subscription.status Base required Subscription Status 📍5.0.0 FHIR Std.
Subscription.channelType Base extensible Subscription Channel Type 📍5.0.0 FHIR Std.
Subscription.contentType Base required Mime Types 📍5.0.0 FHIR Std.
Subscription.content Base required Subscription Payload Content 📍5.0.0 FHIR Std.

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 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-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()
scr-1 error Subscription.filterBy Subscription filters may only contain a modifier or a comparator (comparator.exists() and modifier.exists()).not()

Differential View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Subscription 0..* Subscription Notification about a SubscriptionTopic
... identifier S 1..* Identifier Additional identifiers (business identifier)
... name S 1..1 string Human readable name for this subscription
... status S 1..1 code requested | active | error | off | entered-in-error
... managingEntity S 1..1 Reference(ZM-Core Organization Profile) Entity responsible for Subscription changes
... reason S 1..1 string Description of why this subscription was created
... filterBy S 0..* BackboneElement Criteria for narrowing the subscription topic stream
... channelType S 1..1 Coding Channel type for notifications
... endpoint S 1..1 url Where the channel points to
... heartbeatPeriod S 0..1 unsignedInt Interval in seconds to send 'heartbeat' notification
... timeout S 0..1 unsignedInt Timeout in seconds to attempt notification delivery
... contentType S 1..1 code MIME type to send, or omit for no payload
... content S 1..1 code empty | id-only | full-resource
Required Pattern: id-only
... maxCount S 0..1 positiveInt Maximum number of events that can be combined in a single notification

doco Documentation for this format

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier SΣ 1..* Identifier Additional identifiers (business identifier)
... name SΣ 1..1 string Human readable name for this subscription
... status ?!SΣ 1..1 code requested | active | error | off | entered-in-error
Binding: SubscriptionStatusCodes (required): The status of a subscription.
... topic SΣ 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 SΣ 1..1 Reference(ZM-Core Organization Profile) Entity responsible for Subscription changes
... reason SΣ 1..1 string Description of why this subscription was created
... filterBy SΣC 0..* BackboneElement Criteria for narrowing the subscription topic stream
Constraints: scr-1
.... 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 SΣ 1..1 Coding Channel type for notifications
Binding: SubscriptionChannelType (extensible): The type of method used to execute a subscription.
... endpoint SΣ 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 SΣ 0..1 unsignedInt Interval in seconds to send 'heartbeat' notification
... timeout SΣ 0..1 unsignedInt Timeout in seconds to attempt notification delivery
... contentType SΣ 1..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 SΣ 1..1 code empty | id-only | full-resource
Binding: SubscriptionPayloadContent (required): Codes to represent how much resource content to send in the notification payload.
Required Pattern: id-only
... maxCount SΣ 0..1 positiveInt Maximum number of events that can be combined in a single notification

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Subscription.language Base required All Languages 📍5.0.0 FHIR Std.
Subscription.status Base required Subscription Status 📍5.0.0 FHIR Std.
Subscription.filterBy.​resourceType Base extensible Types used with Subscriptions 📍5.0.0 FHIR Std.
Subscription.filterBy.​comparator Base required Search Comparator 📍5.0.0 FHIR Std.
Subscription.filterBy.​modifier Base required Search Modifier Code 📍5.0.0 FHIR Std.
Subscription.channelType Base extensible Subscription Channel Type 📍5.0.0 FHIR Std.
Subscription.contentType Base required Mime Types 📍5.0.0 FHIR Std.
Subscription.content Base required Subscription Payload Content 📍5.0.0 FHIR Std.

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 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-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()
scr-1 error Subscription.filterBy Subscription filters may only contain a modifier or a comparator (comparator.exists() and modifier.exists()).not()

Summary

Mandatory: 7 elements
Must-Support: 14 elements

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron