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

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

Resource Profile: Profile_R4_Subscription_R3 - 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 is able to take an appropriate action.

ShortA server push subscription criteria
Control0..*
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-1: If the resource is contained in another resource, it SHALL NOT contain any narrative (contained.text.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-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource (contained.where(('#'+id in %resource.descendants().reference).not()).empty())
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty())
dom-1: If the resource is contained in another resource, it SHALL NOT contain any narrative (contained.text.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-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource (contained.where(('#'+id in %resource.descendants().reference).not()).empty())
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.

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.

This element is labelled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation.

Control0..1
Typeuri
Is Modifiertrue because No Modifier Reason provideed in previous versions of FHIR
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
4. 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. Usually modifier elements provide negation or qualification. In order 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.

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 No Modifier Reason provideed in previous versions of FHIR
Alternate Namesextensions, user content
6. 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 SubscriptionStatushttp://hl7.org/fhir/ValueSet/subscription-status|3.0.2
(required to http://hl7.org/fhir/ValueSet/subscription-status|3.0.2)

The status of a subscription.

Typecode
Is Modifiertrue because No Modifier Reason provideed in previous versions of FHIR
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
8. Subscription.reason
Definition

A description of why this subscription is defined.

ShortDescription of why this subscription was created
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
10. Subscription.criteria
Definition

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

ShortRule for server push criteria
Comments

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

Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
12. 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
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() | (children().count() > id.count()))
ele-1: All FHIR elements must have a @value or children (hasValue() | (children().count() > id.count()))
14. 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 that contains it. Usually modifier elements provide negation or qualification. In order 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.

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 No Modifier Reason provideed in previous versions of FHIR
Summarytrue
Alternate Namesextensions, user content, modifiers
16. 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|3.0.2
(required to http://hl7.org/fhir/ValueSet/subscription-channel-type|3.0.2)

The type of method used to execute a subscription.

Typecode
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue

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

0. Subscription
2. Subscription.channel
4. Subscription.channel.payload
6. Subscription.channel.payload.extension
Control0..*
SlicingThis element introduces a set of slices on Subscription.channel.payload.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 8. Subscription.channel.payload.extension:payload
    Slice Namepayload
    Definition

    R4: Subscription.channel.payload

    ShortR4: MIME type to send, or omit for no payload
    Comments

    Element Subscription.channel.payload is mapped to FHIR STU3 element Subscription.channel.payload as Equivalent. Sending the payload has obvious security implications. The server is responsible for ensuring that the content is appropriately secured.

    Control0..1
    TypeExtension(R4: MIME type to send, or omit for no payload) (Extension Type: code)

    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 is able to take an appropriate action.

    ShortA server push subscription criteria
    Control0..*
    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-1: If the resource is contained in another resource, it SHALL NOT contain any narrative (contained.text.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-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource (contained.where(('#'+id in %resource.descendants().reference).not()).empty())
    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
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    4. Subscription.meta
    Definition

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

    ShortMetadata about the resource
    Control0..1
    TypeMeta
    Summarytrue
    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.

    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.

    This element is labelled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation.

    Control0..1
    Typeuri
    Is Modifiertrue because No Modifier Reason provideed in previous versions of FHIR
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    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
    BindingUnless not suitable, these codes SHALL be taken from Common Languages
    (extensible to http://hl7.org/fhir/ValueSet/languages|3.0.2)

    A human language.

    Additional BindingsPurpose
    All LanguagesMax Binding
    Typecode
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    10. Subscription.text
    Definition

    A human-readable narrative that contains a summary of the resource, and may 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 in formation is added later.

    Control0..1
    This element is affected by the following invariants: dom-1
    TypeNarrative
    Alternate Namesnarrative, html, xhtml, display
    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.

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

    May be used to represent additional information that is not part of the basic definition of the resource. In order 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.

    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
    Alternate Namesextensions, user content
    16. 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. Usually modifier elements provide negation or qualification. In order 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.

    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 No Modifier Reason provideed in previous versions of FHIR
    Alternate Namesextensions, user content
    18. 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|3.0.2)

    The status of a subscription.

    Typecode
    Is Modifiertrue because No Modifier Reason provideed in previous versions of FHIR
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    20. 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
    Summarytrue
    22. 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
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    24. Subscription.reason
    Definition

    A description of why this subscription is defined.

    ShortDescription of why this subscription was created
    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    26. Subscription.criteria
    Definition

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

    ShortRule for server push criteria
    Comments

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

    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    28. Subscription.error
    Definition

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

    ShortLatest error note
    Control0..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    30. 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
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() | (children().count() > id.count()))
    32. 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.

    Shortxml:id (or equivalent in JSON)
    Control0..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    XML FormatIn the XML format, this property is represented as an attribute.
    34. Subscription.channel.extension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element. In order 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.

    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
    Alternate Namesextensions, user content
    36. 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 that contains it. Usually modifier elements provide negation or qualification. In order 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.

    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 No Modifier Reason provideed in previous versions of FHIR
    Summarytrue
    Alternate Namesextensions, user content, modifiers
    38. 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|3.0.2)

    The type of method used to execute a subscription.

    Typecode
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    40. Subscription.channel.endpoint
    Definition

    The uri 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 their may be more than one, clients should avoid using relative URIs).

    Control0..1
    Typeuri
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    42. 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.

    ShortMimetype 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
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    44. Subscription.channel.payload.id
    Definition

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

    Shortxml:id (or equivalent in JSON)
    Control0..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    XML FormatIn the XML format, this property is represented as an attribute.
    46. Subscription.channel.payload.extension
    Definition

    An Extension

    ShortExtension
    Control0..*
    TypeExtension
    SlicingThis element introduces a set of slices on Subscription.channel.payload.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
    • value @ url
    • 48. Subscription.channel.payload.extension:payload
      Slice Namepayload
      Definition

      R4: Subscription.channel.payload

      ShortR4: MIME type to send, or omit for no payload
      Comments

      Element Subscription.channel.payload is mapped to FHIR STU3 element Subscription.channel.payload as Equivalent. Sending the payload has obvious security implications. The server is responsible for ensuring that the content is appropriately secured.

      Control0..1
      This element is affected by the following invariants: ele-1
      TypeExtension(R4: MIME type to send, or omit for no payload) (Extension Type: code)
      Is Modifierfalse
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() | (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      50. Subscription.channel.payload.value
      Definition

      The actual value

      ShortPrimitive value for string
      Control0..1
      Typestring
      XML FormatIn the XML format, this property is represented as an attribute.
      Max Length:1048576
      52. 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
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summarytrue
      54. Subscription.tag
      Definition

      A tag to add to any resource that matches the criteria, after the subscription is processed.

      ShortA tag to add to matching resources
      Comments

      So that other systems can tell which resources have been the subject of a notification.

      Control0..*
      BindingFor example codes, see SubscriptionTag
      (example to http://hl7.org/fhir/ValueSet/subscription-tag|3.0.2)

      Tags to put on a resource after subscriptions have been sent.

      TypeCoding
      Summarytrue