Extensions for Using Data Elements from FHIR R5 in FHIR R4
0.1.0 - STU International flag

Extensions for Using Data Elements from FHIR R5 in FHIR R4 - Downloaded Version null See the Directory of published versions

Resource Profile: Profile_R5_Subscription_R4 - Detailed Descriptions

Page standards status: Trial-use Maturity Level: 0

Definitions for the profile-Subscription resource profile.

Guidance on how to interpret the contents of this table can be foundhere

0. Subscription
Definition

The subscription resource is used to define a push-based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system can take an appropriate action.

ShortServer push subscription criteria
Control0..*
Is Modifierfalse
Summaryfalse
Alternate NamesWebHook, Hook, Routing Rule
Invariantsdom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty())
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 (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-4: 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: If a resource is contained in another resource, it SHALL NOT have a security label (contained.meta.security.empty())
dom-6: A resource should have narrative for robust management (text.`div`.exists())
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty())
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 (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-4: 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: If a resource is contained in another resource, it SHALL NOT have a security label (contained.meta.security.empty())
dom-6: A resource should have narrative for robust management (text.`div`.exists())
2. Subscription.implicitRules
Definition

A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

ShortA set of rules under which this content was created
Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

Control0..1
Typeuri
Is Modifiertrue because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
4. Subscription.extension
Definition

An Extension


May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

ShortExtensionAdditional content defined by implementations
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control10..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Subscription.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 6. Subscription.extension:identifier
    Slice Nameidentifier
    Definition

    R5: Subscription.identifier (new:Identifier)

    ShortR5: Additional identifiers (business identifier) (new)
    Comments

    Element Subscription.identifier has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.identifier has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

    Control0..*
    This element is affected by the following invariants: ele-1
    TypeExtension(R5: Additional identifiers (business identifier) (new)) (Extension Type: Identifier)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    8. Subscription.extension:name
    Slice Namename
    Definition

    R5: Subscription.name (new:string)

    ShortR5: Human readable name for this subscription (new)
    Comments

    Element Subscription.name has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.name has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

    Control0..1
    This element is affected by the following invariants: ele-1
    TypeExtension(R5: Human readable name for this subscription (new)) (Extension Type: string)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    10. Subscription.extension:topic
    Slice Nametopic
    Definition

    R5: Subscription.topic (new:canonical(SubscriptionTopic))

    ShortR5: Reference to the subscription topic being subscribed to (new)
    Comments

    Element Subscription.topic has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.topic has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

    Control1..1
    This element is affected by the following invariants: ele-1
    TypeExtension(R5: Reference to the subscription topic being subscribed to (new)) (Extension Type: canonical(Cross-version Profile for R5.SubscriptionTopic for use in FHIR R4, Basic))
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    12. Subscription.extension:managingEntity
    Slice NamemanagingEntity
    Definition

    R5: Subscription.managingEntity (new:Reference(CareTeam,HealthcareService,Organization,RelatedPerson,Patient,Practitioner,PractitionerRole))

    ShortR5: Entity responsible for Subscription changes (new)
    Comments

    Element Subscription.managingEntity has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.managingEntity has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

    Control0..1
    This element is affected by the following invariants: ele-1
    TypeExtension(R5: Entity responsible for Subscription changes (new)) (Extension Type: Reference(Cross-version Profile for R5.CareTeam for use in FHIR R4, CareTeam, Cross-version Profile for R5.HealthcareService for use in FHIR R4, HealthcareService, Cross-version Profile for R5.Organization for use in FHIR R4, Organization, Cross-version Profile for R5.RelatedPerson for use in FHIR R4, RelatedPerson, Cross-version Profile for R5.Patient for use in FHIR R4, Patient, Cross-version Profile for R5.Practitioner for use in FHIR R4, Practitioner, Cross-version Profile for R5.PractitionerRole for use in FHIR R4, PractitionerRole))
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    14. Subscription.extension:filterBy
    Slice NamefilterBy
    Definition

    R5: Subscription.filterBy (new:BackboneElement)

    ShortR5: Criteria for narrowing the subscription topic stream (new)
    Comments

    Element Subscription.filterBy has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.filterBy has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

    Control0..*
    This element is affected by the following invariants: ele-1
    TypeExtension(R5: Criteria for narrowing the subscription topic stream (new)) (Complex Extension)
    Is Modifierfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    16. Subscription.extension:parameter
    Slice Nameparameter
    Definition

    R5: Subscription.parameter (new:BackboneElement)

    ShortR5: Channel type (new)
    Comments

    Element Subscription.parameter has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.parameter has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). Exactly what these mean depend on the channel type. They can convey additional information to the server or recipient and/or meet security requirements; for example, support of multiple headers in the outgoing notifications for rest-hook type subscriptions. Note that names are not required to be unique, but channel definitions can impose restrictions.

    Control0..*
    This element is affected by the following invariants: ele-1
    TypeExtension(R5: Channel type (new)) (Complex Extension)
    Is Modifierfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    18. Subscription.extension:heartbeatPeriod
    Slice NameheartbeatPeriod
    Definition

    R5: Subscription.heartbeatPeriod (new:unsignedInt)

    ShortR5: Interval in seconds to send 'heartbeat' notification (new)
    Comments

    Element Subscription.heartbeatPeriod has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.heartbeatPeriod has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.heartbeatPeriod: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period.

    Control0..1
    TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    20. Subscription.extension:timeout
    Slice Nametimeout
    Definition

    R5: Subscription.timeout (new:unsignedInt)

    ShortR5: Timeout in seconds to attempt notification delivery (new)
    Comments

    Element Subscription.timeout has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.timeout has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.timeout: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout.

    Control0..1
    TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    22. Subscription.extension:content
    Slice Namecontent
    Definition

    R5: Subscription.content (new:code)

    ShortR5: empty | id-only | full-resource (new)
    Comments

    Element Subscription.content has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.content has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.content: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content. Sending the payload has obvious security implications. The server is responsible for ensuring that the content is appropriately secured.

    Control0..1
    TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    24. Subscription.extension:maxCount
    Slice NamemaxCount
    Definition

    R5: Subscription.maxCount (new:positiveInt)

    ShortR5: Maximum number of events that can be combined in a single notification (new)
    Comments

    Element Subscription.maxCount has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.maxCount has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.maxCount: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count.

    Control0..1
    TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    26. Subscription.modifierExtension
    Definition

    May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

    ShortExtensions that cannot be ignored
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
    Summaryfalse
    Requirements

    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

    Alternate Namesextensions, user content
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    28. Subscription.status
    Definition

    The status of the subscription, which marks the server state for managing the subscription.

    Shortrequested | active | error | off
    Comments

    A client can only submit subscription resources in the requested or off state. Only the server can move a subscription from requested to active, and then to error. Either the server or the client can turn a subscription off.

    This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

    Control1..1
    BindingThe codes SHALL be taken from SubscriptionStatus .http://hl7.org/fhir/ValueSet/subscription-status|4.0.1
    (required to http://hl7.org/fhir/ValueSet/subscription-status|4.0.1)

    The status of a subscription.

    Typecode
    Is Modifiertrue because This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    30. Subscription.status.extension
    Definition

    An Extension


    May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

    ShortExtensionAdditional content defined by implementations
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifierfalse
    Summaryfalse
    Alternate Namesextensions, user content
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    SlicingThis element introduces a set of slices on Subscription.status.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
    • value @ url
    • 32. Subscription.status.extension:status
      Slice Namestatus
      Definition

      R5: Subscription.status

      ShortR5: requested | active | error | off | entered-in-error
      Comments

      Element Subscription.status is mapped to FHIR R4 element Subscription.status as SourceIsBroaderThanTarget. The target context Subscription.status is a modifier element, so this extension does not need to be defined as a modifier. A client can only submit subscription resources in the requested or off state. Only the server can move a subscription from requested to active, and then to error. Either the server or the client can turn a subscription off.

      This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

      Control0..1
      This element is affected by the following invariants: ele-1
      TypeExtension(R5: requested | active | error | off | entered-in-error) (Extension Type: code)
      Is Modifierfalse
      Summaryfalse
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      34. Subscription.reason
      Definition

      A description of why this subscription is defined.

      ShortDescription of why this subscription was created
      Control1..1
      Typestring
      Is Modifierfalse
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      36. Subscription.criteria
      Definition

      The rules that the server should use to determine when to generate notifications for this subscription.

      ShortRule for server push
      Comments

      The rules are search criteria (without the [base] part). Like Bundle.entry.request.url, it has no leading "/".

      Control1..1
      Typestring
      Is Modifierfalse
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      38. Subscription.channel
      Definition

      Details where to send notifications when resources are received that meet the criteria.

      ShortThe channel on which to report matches to the criteria
      Control1..1
      TypeBackboneElement
      Is Modifierfalse
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      40. Subscription.channel.modifierExtension
      Definition

      May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

      Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

      ShortExtensions that cannot be ignored even if unrecognized
      Comments

      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

      Control0..*
      TypeExtension
      Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
      Summarytrue
      Requirements

      Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

      Alternate Namesextensions, user content, modifiers
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      42. Subscription.channel.type
      Definition

      The type of channel to send notifications on.

      Shortrest-hook | websocket | email | sms | message
      Control1..1
      BindingThe codes SHALL be taken from SubscriptionChannelTypehttp://hl7.org/fhir/ValueSet/subscription-channel-type|4.0.1
      (required to http://hl7.org/fhir/ValueSet/subscription-channel-type|4.0.1)

      The type of method used to execute a subscription.

      Typecode
      Is Modifierfalse
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      44. Subscription.channel.type.extension
      Definition

      An Extension


      May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

      ShortExtensionAdditional content defined by implementations
      Comments

      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

      Control0..*
      TypeExtension
      Is Modifierfalse
      Summaryfalse
      Alternate Namesextensions, user content
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      SlicingThis element introduces a set of slices on Subscription.channel.type.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
      • value @ url
      • 46. Subscription.channel.type.extension:channelType
        Slice NamechannelType
        Definition

        R5: Subscription.channelType additional types (Coding) additional types from child elements (userSelected)

        ShortR5: Channel type for notifications additional types
        Comments

        Element Subscription.channelType is mapped to FHIR R4 element Subscription.channel.type as RelatedTo. The mappings for Subscription.channelType do not cover the following types: Coding. The mappings for Subscription.channelType do not cover the following types based on type expansion: userSelected. An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.channelType: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type.

        Control0..1
        TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type)
        Is Modifierfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())

        Guidance on how to interpret the contents of this table can be foundhere

        0. Subscription
        2. Subscription.extension
        Control1..*
        SlicingThis element introduces a set of slices on Subscription.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
        • value @ url
        • 4. Subscription.extension:identifier
          Slice Nameidentifier
          Definition

          R5: Subscription.identifier (new:Identifier)

          ShortR5: Additional identifiers (business identifier) (new)
          Comments

          Element Subscription.identifier has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.identifier has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

          Control0..*
          TypeExtension(R5: Additional identifiers (business identifier) (new)) (Extension Type: Identifier)
          6. Subscription.extension:name
          Slice Namename
          Definition

          R5: Subscription.name (new:string)

          ShortR5: Human readable name for this subscription (new)
          Comments

          Element Subscription.name has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.name has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

          Control0..1
          TypeExtension(R5: Human readable name for this subscription (new)) (Extension Type: string)
          8. Subscription.extension:topic
          Slice Nametopic
          Definition

          R5: Subscription.topic (new:canonical(SubscriptionTopic))

          ShortR5: Reference to the subscription topic being subscribed to (new)
          Comments

          Element Subscription.topic has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.topic has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

          Control1..1
          TypeExtension(R5: Reference to the subscription topic being subscribed to (new)) (Extension Type: canonical(Cross-version Profile for R5.SubscriptionTopic for use in FHIR R4, Basic))
          10. Subscription.extension:managingEntity
          Slice NamemanagingEntity
          Definition

          R5: Subscription.managingEntity (new:Reference(CareTeam,HealthcareService,Organization,RelatedPerson,Patient,Practitioner,PractitionerRole))

          ShortR5: Entity responsible for Subscription changes (new)
          Comments

          Element Subscription.managingEntity has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.managingEntity has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

          Control0..1
          TypeExtension(R5: Entity responsible for Subscription changes (new)) (Extension Type: Reference(Cross-version Profile for R5.CareTeam for use in FHIR R4, CareTeam, Cross-version Profile for R5.HealthcareService for use in FHIR R4, HealthcareService, Cross-version Profile for R5.Organization for use in FHIR R4, Organization, Cross-version Profile for R5.RelatedPerson for use in FHIR R4, RelatedPerson, Cross-version Profile for R5.Patient for use in FHIR R4, Patient, Cross-version Profile for R5.Practitioner for use in FHIR R4, Practitioner, Cross-version Profile for R5.PractitionerRole for use in FHIR R4, PractitionerRole))
          12. Subscription.extension:filterBy
          Slice NamefilterBy
          Definition

          R5: Subscription.filterBy (new:BackboneElement)

          ShortR5: Criteria for narrowing the subscription topic stream (new)
          Comments

          Element Subscription.filterBy has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.filterBy has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

          Control0..*
          TypeExtension(R5: Criteria for narrowing the subscription topic stream (new)) (Complex Extension)
          14. Subscription.extension:parameter
          Slice Nameparameter
          Definition

          R5: Subscription.parameter (new:BackboneElement)

          ShortR5: Channel type (new)
          Comments

          Element Subscription.parameter has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.parameter has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). Exactly what these mean depend on the channel type. They can convey additional information to the server or recipient and/or meet security requirements; for example, support of multiple headers in the outgoing notifications for rest-hook type subscriptions. Note that names are not required to be unique, but channel definitions can impose restrictions.

          Control0..*
          TypeExtension(R5: Channel type (new)) (Complex Extension)
          16. Subscription.extension:heartbeatPeriod
          Slice NameheartbeatPeriod
          Definition

          R5: Subscription.heartbeatPeriod (new:unsignedInt)

          ShortR5: Interval in seconds to send 'heartbeat' notification (new)
          Comments

          Element Subscription.heartbeatPeriod has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.heartbeatPeriod has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.heartbeatPeriod: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period.

          Control0..1
          TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period)
          18. Subscription.extension:timeout
          Slice Nametimeout
          Definition

          R5: Subscription.timeout (new:unsignedInt)

          ShortR5: Timeout in seconds to attempt notification delivery (new)
          Comments

          Element Subscription.timeout has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.timeout has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.timeout: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout.

          Control0..1
          TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout)
          20. Subscription.extension:content
          Slice Namecontent
          Definition

          R5: Subscription.content (new:code)

          ShortR5: empty | id-only | full-resource (new)
          Comments

          Element Subscription.content has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.content has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.content: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content. Sending the payload has obvious security implications. The server is responsible for ensuring that the content is appropriately secured.

          Control0..1
          TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content)
          22. Subscription.extension:maxCount
          Slice NamemaxCount
          Definition

          R5: Subscription.maxCount (new:positiveInt)

          ShortR5: Maximum number of events that can be combined in a single notification (new)
          Comments

          Element Subscription.maxCount has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.maxCount has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.maxCount: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count.

          Control0..1
          TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count)
          24. Subscription.status
          26. Subscription.status.extension
          Control0..*
          SlicingThis element introduces a set of slices on Subscription.status.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
          • value @ url
          • 28. Subscription.status.extension:status
            Slice Namestatus
            Definition

            R5: Subscription.status

            ShortR5: requested | active | error | off | entered-in-error
            Comments

            Element Subscription.status is mapped to FHIR R4 element Subscription.status as SourceIsBroaderThanTarget. The target context Subscription.status is a modifier element, so this extension does not need to be defined as a modifier. A client can only submit subscription resources in the requested or off state. Only the server can move a subscription from requested to active, and then to error. Either the server or the client can turn a subscription off.

            This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

            Control0..1
            TypeExtension(R5: requested | active | error | off | entered-in-error) (Extension Type: code)
            30. Subscription.channel
            32. Subscription.channel.type
            34. Subscription.channel.type.extension
            Control0..*
            SlicingThis element introduces a set of slices on Subscription.channel.type.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
            • value @ url
            • 36. Subscription.channel.type.extension:channelType
              Slice NamechannelType
              Definition

              R5: Subscription.channelType additional types (Coding) additional types from child elements (userSelected)

              ShortR5: Channel type for notifications additional types
              Comments

              Element Subscription.channelType is mapped to FHIR R4 element Subscription.channel.type as RelatedTo. The mappings for Subscription.channelType do not cover the following types: Coding. The mappings for Subscription.channelType do not cover the following types based on type expansion: userSelected. An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.channelType: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type.

              Control0..1
              TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type)

              Guidance on how to interpret the contents of this table can be foundhere

              0. Subscription
              Definition

              The subscription resource is used to define a push-based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system can take an appropriate action.

              ShortServer push subscription criteria
              Control0..*
              Is Modifierfalse
              Summaryfalse
              Alternate NamesWebHook, Hook, Routing Rule
              Invariantsdom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty())
              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 (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-4: 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: If a resource is contained in another resource, it SHALL NOT have a security label (contained.meta.security.empty())
              dom-6: A resource should have narrative for robust management (text.`div`.exists())
              2. Subscription.id
              Definition

              The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.

              ShortLogical id of this artifact
              Comments

              The only time that a resource does not have an id is when it is being submitted to the server using a create operation.

              Control0..1
              Typeid
              Is Modifierfalse
              Summarytrue
              4. Subscription.meta
              Definition

              The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

              ShortMetadata about the resource
              Control0..1
              TypeMeta
              Is Modifierfalse
              Summarytrue
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              6. Subscription.implicitRules
              Definition

              A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

              ShortA set of rules under which this content was created
              Comments

              Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

              Control0..1
              Typeuri
              Is Modifiertrue because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              Summarytrue
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              8. Subscription.language
              Definition

              The base language in which the resource is written.

              ShortLanguage of the resource content
              Comments

              Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

              Control0..1
              BindingThe codes SHOULD be taken from CommonLanguages .
              (preferred to http://hl7.org/fhir/ValueSet/languages|4.0.1)

              A human language.

              Additional BindingsPurpose
              AllLanguagesMax Binding
              Typecode
              Is Modifierfalse
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              Summaryfalse
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              10. Subscription.text
              Definition

              A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.

              ShortText summary of the resource, for human interpretation
              Comments

              Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

              Control0..1
              TypeNarrative
              Is Modifierfalse
              Summaryfalse
              Alternate Namesnarrative, html, xhtml, display
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              12. Subscription.contained
              Definition

              These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.

              ShortContained, inline Resources
              Comments

              This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.

              Control0..*
              TypeResource
              Is Modifierfalse
              Summaryfalse
              Alternate Namesinline resources, anonymous resources, contained resources
              14. Subscription.extension
              Definition

              An Extension

              ShortExtension
              Control1..*
              TypeExtension
              Is Modifierfalse
              Summaryfalse
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
              SlicingThis element introduces a set of slices on Subscription.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
              • value @ url
              • 16. Subscription.extension:identifier
                Slice Nameidentifier
                Definition

                R5: Subscription.identifier (new:Identifier)

                ShortR5: Additional identifiers (business identifier) (new)
                Comments

                Element Subscription.identifier has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.identifier has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

                Control0..*
                This element is affected by the following invariants: ele-1
                TypeExtension(R5: Additional identifiers (business identifier) (new)) (Extension Type: Identifier)
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                18. Subscription.extension:name
                Slice Namename
                Definition

                R5: Subscription.name (new:string)

                ShortR5: Human readable name for this subscription (new)
                Comments

                Element Subscription.name has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.name has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

                Control0..1
                This element is affected by the following invariants: ele-1
                TypeExtension(R5: Human readable name for this subscription (new)) (Extension Type: string)
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                20. Subscription.extension:topic
                Slice Nametopic
                Definition

                R5: Subscription.topic (new:canonical(SubscriptionTopic))

                ShortR5: Reference to the subscription topic being subscribed to (new)
                Comments

                Element Subscription.topic has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.topic has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

                Control1..1
                This element is affected by the following invariants: ele-1
                TypeExtension(R5: Reference to the subscription topic being subscribed to (new)) (Extension Type: canonical(Cross-version Profile for R5.SubscriptionTopic for use in FHIR R4, Basic))
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                22. Subscription.extension:managingEntity
                Slice NamemanagingEntity
                Definition

                R5: Subscription.managingEntity (new:Reference(CareTeam,HealthcareService,Organization,RelatedPerson,Patient,Practitioner,PractitionerRole))

                ShortR5: Entity responsible for Subscription changes (new)
                Comments

                Element Subscription.managingEntity has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.managingEntity has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

                Control0..1
                This element is affected by the following invariants: ele-1
                TypeExtension(R5: Entity responsible for Subscription changes (new)) (Extension Type: Reference(Cross-version Profile for R5.CareTeam for use in FHIR R4, CareTeam, Cross-version Profile for R5.HealthcareService for use in FHIR R4, HealthcareService, Cross-version Profile for R5.Organization for use in FHIR R4, Organization, Cross-version Profile for R5.RelatedPerson for use in FHIR R4, RelatedPerson, Cross-version Profile for R5.Patient for use in FHIR R4, Patient, Cross-version Profile for R5.Practitioner for use in FHIR R4, Practitioner, Cross-version Profile for R5.PractitionerRole for use in FHIR R4, PractitionerRole))
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                24. Subscription.extension:filterBy
                Slice NamefilterBy
                Definition

                R5: Subscription.filterBy (new:BackboneElement)

                ShortR5: Criteria for narrowing the subscription topic stream (new)
                Comments

                Element Subscription.filterBy has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.filterBy has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element).

                Control0..*
                This element is affected by the following invariants: ele-1
                TypeExtension(R5: Criteria for narrowing the subscription topic stream (new)) (Complex Extension)
                Is Modifierfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                26. Subscription.extension:parameter
                Slice Nameparameter
                Definition

                R5: Subscription.parameter (new:BackboneElement)

                ShortR5: Channel type (new)
                Comments

                Element Subscription.parameter has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.parameter has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). Exactly what these mean depend on the channel type. They can convey additional information to the server or recipient and/or meet security requirements; for example, support of multiple headers in the outgoing notifications for rest-hook type subscriptions. Note that names are not required to be unique, but channel definitions can impose restrictions.

                Control0..*
                This element is affected by the following invariants: ele-1
                TypeExtension(R5: Channel type (new)) (Complex Extension)
                Is Modifierfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                28. Subscription.extension:heartbeatPeriod
                Slice NameheartbeatPeriod
                Definition

                R5: Subscription.heartbeatPeriod (new:unsignedInt)

                ShortR5: Interval in seconds to send 'heartbeat' notification (new)
                Comments

                Element Subscription.heartbeatPeriod has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.heartbeatPeriod has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.heartbeatPeriod: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period.

                Control0..1
                TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period)
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                30. Subscription.extension:timeout
                Slice Nametimeout
                Definition

                R5: Subscription.timeout (new:unsignedInt)

                ShortR5: Timeout in seconds to attempt notification delivery (new)
                Comments

                Element Subscription.timeout has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.timeout has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.timeout: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout.

                Control0..1
                TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout)
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                32. Subscription.extension:content
                Slice Namecontent
                Definition

                R5: Subscription.content (new:code)

                ShortR5: empty | id-only | full-resource (new)
                Comments

                Element Subscription.content has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.content has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.content: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content. Sending the payload has obvious security implications. The server is responsible for ensuring that the content is appropriately secured.

                Control0..1
                TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content)
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                34. Subscription.extension:maxCount
                Slice NamemaxCount
                Definition

                R5: Subscription.maxCount (new:positiveInt)

                ShortR5: Maximum number of events that can be combined in a single notification (new)
                Comments

                Element Subscription.maxCount has a context of Subscription based on following the parent source element upwards and mapping to Subscription. Element Subscription.maxCount has no mapping targets in FHIR R4. Typically, this is because the element has been added (is a new element). An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.maxCount: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count.

                Control0..1
                TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count)
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                36. Subscription.modifierExtension
                Definition

                May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                ShortExtensions that cannot be ignored
                Comments

                There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                Control0..*
                TypeExtension
                Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
                Summaryfalse
                Requirements

                Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                Alternate Namesextensions, user content
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                38. Subscription.status
                Definition

                The status of the subscription, which marks the server state for managing the subscription.

                Shortrequested | active | error | off
                Comments

                A client can only submit subscription resources in the requested or off state. Only the server can move a subscription from requested to active, and then to error. Either the server or the client can turn a subscription off.

                This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

                Control1..1
                BindingThe codes SHALL be taken from SubscriptionStatus .
                (required to http://hl7.org/fhir/ValueSet/subscription-status|4.0.1)

                The status of a subscription.

                Typecode
                Is Modifiertrue because This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summarytrue
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                40. Subscription.status.id
                Definition

                unique id for the element within a resource (for internal references)

                Shortxml:id (or equivalent in JSON)
                Control0..1
                Typestring
                Is Modifierfalse
                XML FormatIn the XML format, this property is represented as an attribute.
                Summaryfalse
                42. Subscription.status.extension
                Definition

                An Extension

                ShortExtension
                Control0..*
                TypeExtension
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                SlicingThis element introduces a set of slices on Subscription.status.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                • value @ url
                • 44. Subscription.status.extension:status
                  Slice Namestatus
                  Definition

                  R5: Subscription.status

                  ShortR5: requested | active | error | off | entered-in-error
                  Comments

                  Element Subscription.status is mapped to FHIR R4 element Subscription.status as SourceIsBroaderThanTarget. The target context Subscription.status is a modifier element, so this extension does not need to be defined as a modifier. A client can only submit subscription resources in the requested or off state. Only the server can move a subscription from requested to active, and then to error. Either the server or the client can turn a subscription off.

                  This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

                  Control0..1
                  This element is affected by the following invariants: ele-1
                  TypeExtension(R5: requested | active | error | off | entered-in-error) (Extension Type: code)
                  Is Modifierfalse
                  Summaryfalse
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                  46. Subscription.status.value
                  Definition

                  Primitive value for code

                  ShortPrimitive value for code
                  Control0..1
                  Typestring
                  Is Modifierfalse
                  XML FormatIn the XML format, this property is represented as an attribute.
                  Summaryfalse
                  48. Subscription.contact
                  Definition

                  Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting.

                  ShortContact details for source (e.g. troubleshooting)
                  Control0..*
                  TypeContactPoint
                  Is Modifierfalse
                  Summarytrue
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  50. Subscription.end
                  Definition

                  The time for the server to turn the subscription off.

                  ShortWhen to automatically delete the subscription
                  Comments

                  The server is permitted to deviate from this time but should observe it.

                  Control0..1
                  Typeinstant
                  Is Modifierfalse
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                  Summarytrue
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  52. Subscription.reason
                  Definition

                  A description of why this subscription is defined.

                  ShortDescription of why this subscription was created
                  Control1..1
                  Typestring
                  Is Modifierfalse
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                  Summarytrue
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  54. Subscription.criteria
                  Definition

                  The rules that the server should use to determine when to generate notifications for this subscription.

                  ShortRule for server push
                  Comments

                  The rules are search criteria (without the [base] part). Like Bundle.entry.request.url, it has no leading "/".

                  Control1..1
                  Typestring
                  Is Modifierfalse
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                  Summarytrue
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  56. Subscription.error
                  Definition

                  A record of the last error that occurred when the server processed a notification.

                  ShortLatest error note
                  Control0..1
                  Typestring
                  Is Modifierfalse
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                  Summarytrue
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  58. Subscription.channel
                  Definition

                  Details where to send notifications when resources are received that meet the criteria.

                  ShortThe channel on which to report matches to the criteria
                  Control1..1
                  TypeBackboneElement
                  Is Modifierfalse
                  Summarytrue
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  60. Subscription.channel.id
                  Definition

                  Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                  ShortUnique id for inter-element referencing
                  Control0..1
                  Typestring
                  Is Modifierfalse
                  XML FormatIn the XML format, this property is represented as an attribute.
                  Summaryfalse
                  62. Subscription.channel.extension
                  Definition

                  May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                  ShortAdditional content defined by implementations
                  Comments

                  There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                  Control0..*
                  TypeExtension
                  Is Modifierfalse
                  Summaryfalse
                  Alternate Namesextensions, user content
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                  64. Subscription.channel.modifierExtension
                  Definition

                  May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                  Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                  ShortExtensions that cannot be ignored even if unrecognized
                  Comments

                  There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                  Control0..*
                  TypeExtension
                  Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                  Summarytrue
                  Requirements

                  Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                  Alternate Namesextensions, user content, modifiers
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                  66. Subscription.channel.type
                  Definition

                  The type of channel to send notifications on.

                  Shortrest-hook | websocket | email | sms | message
                  Control1..1
                  BindingThe codes SHALL be taken from SubscriptionChannelType
                  (required to http://hl7.org/fhir/ValueSet/subscription-channel-type|4.0.1)

                  The type of method used to execute a subscription.

                  Typecode
                  Is Modifierfalse
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                  Summarytrue
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  68. Subscription.channel.type.id
                  Definition

                  unique id for the element within a resource (for internal references)

                  Shortxml:id (or equivalent in JSON)
                  Control0..1
                  Typestring
                  Is Modifierfalse
                  XML FormatIn the XML format, this property is represented as an attribute.
                  Summaryfalse
                  70. Subscription.channel.type.extension
                  Definition

                  An Extension

                  ShortExtension
                  Control0..*
                  TypeExtension
                  Is Modifierfalse
                  Summaryfalse
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                  SlicingThis element introduces a set of slices on Subscription.channel.type.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                  • value @ url
                  • 72. Subscription.channel.type.extension:channelType
                    Slice NamechannelType
                    Definition

                    R5: Subscription.channelType additional types (Coding) additional types from child elements (userSelected)

                    ShortR5: Channel type for notifications additional types
                    Comments

                    Element Subscription.channelType is mapped to FHIR R4 element Subscription.channel.type as RelatedTo. The mappings for Subscription.channelType do not cover the following types: Coding. The mappings for Subscription.channelType do not cover the following types based on type expansion: userSelected. An externally-defined extension that has been mapped as the representation of FHIR R5 element Subscription.channelType: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type.

                    Control0..1
                    TypeExtension(http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-channel-type)
                    Is Modifierfalse
                    Summaryfalse
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                    74. Subscription.channel.type.value
                    Definition

                    Primitive value for code

                    ShortPrimitive value for code
                    Control0..1
                    Typestring
                    Is Modifierfalse
                    XML FormatIn the XML format, this property is represented as an attribute.
                    Summaryfalse
                    76. Subscription.channel.endpoint
                    Definition

                    The url that describes the actual end-point to send messages to.

                    ShortWhere the channel points to
                    Comments

                    For rest-hook, and websocket, the end-point must be an http: or https: URL; for email, a mailto: url, for sms, a tel: url, and for message the endpoint can be in any form of url the server understands (usually, http: or mllp:). The URI is allowed to be relative; in which case, it is relative to the server end-point (since there may be more than one, clients should avoid using relative URIs).

                    Control0..1
                    Typeurl
                    Is Modifierfalse
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    Summarytrue
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    78. Subscription.channel.payload
                    Definition

                    The mime type to send the payload in - either application/fhir+xml, or application/fhir+json. If the payload is not present, then there is no payload in the notification, just a notification. The mime type "text/plain" may also be used for Email and SMS subscriptions.

                    ShortMIME type to send, or omit for no payload
                    Comments

                    Sending the payload has obvious security implications. The server is responsible for ensuring that the content is appropriately secured.

                    Control0..1
                    BindingThe codes SHALL be taken from Mime Types
                    (required to http://hl7.org/fhir/ValueSet/mimetypes|4.0.1)

                    The mime type of an attachment. Any valid mime type is allowed.

                    Typecode
                    Is Modifierfalse
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    Summarytrue
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    80. Subscription.channel.header
                    Definition

                    Additional headers / information to send as part of the notification.

                    ShortUsage depends on the channel type
                    Comments

                    Exactly what these mean depend on the channel type. They can convey additional information to the recipient and/or meet security requirements; for example, support of multiple headers in the outgoing notifications for rest-hook type subscriptions.

                    Control0..*
                    Typestring
                    Is Modifierfalse
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    Summarytrue
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))