FHIR Extensions Pack
5.3.0 - May 2026 International flag

FHIR Extensions Pack, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 5.3.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-extensions/ and changes regularly. See the Directory of published versions

Extension: Obligation Extension

Official URL: http://hl7.org/fhir/StructureDefinition/obligation Version: 5.3.0
Standards status: Trial-use Maturity Level: 1 Computable Name: Obligation
Other Identifiers: OID:2.16.840.1.113883.4.642.5.1531

When appearing on an element, documents obligations that apply to applications implementing that element. When appearing at the root of a StructureDefinition, indicates obligations that apply to all listed elements within the extension. When appearing on a type, indicates obligations that apply to the use of that specific type.

Context of Use

This extension may be used on the following element(s)

Understanding Obligations

Obligations relate to application behaviour, not the content of the element itself in the resource instances that contain this element.

Obligations on Repeating Elements

If obligations appear on an element that is allowed to repeat, the default expectation is that the obligation applies to all repetitions allowed by the profile. I.e. if maxOccurs is "20" and there are obligations around display, storage, and data sharing, then the system would be expected to handle 20 for all of those purposes.

This default expectation can be overridden to establish a different "must support at least this many" on a per obligation basis using the applicable-number property.

If there is no upper cardinality specified (i.e. maxOccurs = "*"), the expectation is that the obligation applies to "as many as the system can technically manage", but there's an understanding that all systems will have a practical limit. E.g. not all systems will be able to allow data entry, persistence, display, etc. of "5000 patient given names". However, based on database design, some systems might have a practical limit of "3 patient given names". In the absence of an explicit cardinality or applicable-number value, there can be no confident assumption on the number that will be supported.

The technical limitations of a system will often vary based on the type of obligation. A system may be able to transmit more elements than they necessarily allow for capture, but in some cases (e.g. transmission via UPC code), the reverse might be true.

When constraining a profile element, applicable-number SHALL be less than or equal to maxOccurs, and SHALL be greater than or equal to the minimum of the current maxOccurs and the applicable-number of the element in the parent profile, if one is present.

Which Repetitions an Obligation Applies To

When an obligation applies to a repeating element, the repetitions it applies to are determined as follows:

  • Obligations apply to only data that 'fits' the semantics of the element and the overall instance. For example, a Composition, List, or other grouper may inherently filter what instances are 'in scope' and, in some cases, might even indicate the included instances themselves should be subsetted (i.e. filtering out elements or certain element repetitions)
  • Once the data that is semantically appropriate to share has been identified, it's subsequently filtered by 'what's allowed to be shared' based on regulation, consent, etc.
  • Obligations might apply to only a subset of the remaining elements based on any specified obligation filter
  • Of those, the applicable-number (if present) sets the minimum number of matching occurrences that the system must support. If more occurrences exist than the system supports, which occurrences are chosen is selected by the system adhering to the obligation

Note that the result of this on elements with repetitions is that a variable number of results will be included based on all of the above rules, which may be zero or more in any given instance.

Context Dependent Obligations

Whether an obligation applies, or how it applies, often depends on the context: clinical context, relevance to the purpose of the exchange, workflow, jurisdiction, and other business rules. For example, a system might only provide the most recent reaction on an allergy, or the general practitioner that is local to where the patient currently is.

There are several ways that this is handled:

  • Context specific rules within an obligation are specified using the usage property of the extension, which links clinical, workflow, or implementation context to the obligation - e.g. that the obligation applies to female patients, or in a particular jurisdiction (see UsageContext)
  • Similar rules can be described at a higher level through the slicing mechanism (e.g. requiring a slice with given properties), or at the profile level itself (e.g. restrictions on the context for when a profile is appropriate)
  • Implementation context also applies (e.g. the jurisdictional rules where a system is implemented, or the specific instance of a request being made). This affects the results, but is not expected to be codified in the obligations

Note that an implementation guide cannot change the meaning of the obligation codes themselves to take context into account (e.g. by redefining populate-if-known as "populate if known and relevant"); context rules are expressed using the mechanisms above.

Usage info

Usages:

  • This Extension is not used by any profiles in this Specification

You can also check for usages in the FHIR IG Statistics

Changes since version 5.3.0:

  • One or more text definitions, invariants or bindings have changed (description, Extension, Extension.extension:usage, Extension.extension:applicable-number)
  • Formal Views of Extension Content

    Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.

    This structure is derived from Extension

    Summary

    Complex Extension: When appearing on an element, documents obligations that apply to applications implementing that element. When appearing at the root of a StructureDefinition, indicates obligations that apply to all listed elements within the extension. When appearing on a type, indicates obligations that apply to the use of that specific type.

    • name: string: A short label for the set of obligations that is unique within the element defining the obligation set that can be used to point to that set.
    • code: code: A code that describes the obligation(s) that apply to implementing applications.
    • elementId: string: An Extension
    • actor: canonical: Actor(s) to which the obligation applies.
    • documentation: markdown: Human readable documentation of the purpose or application of the obligation.
    • usage: UsageContext: Qualifies the usage of the obligation. Typically obligations are qualified by jurisdiction, but they may also be qualified by gender, workflow status, clinical domain etc. The information to decide whether a usage context applies is usually outside the resource, determined by context, and this might present challenges for validation tooling. An expected use: limiting obligations to particular jurisdictions (e.g. in IPS).
    • filter: string: A FHIRPath expression that restricts to the obligation to only those occurrences of the element that fall into the collection defined by the expression.
    • filterDocumentation: string: Documents the FHIRPath expression for the benefit of users who are not familiar with FHIRPath.
    • applicable-number: positiveInt: If present, overrides the default interpretation of 'what is the minimum number of repetitions systems must support' with respect to this obligation. If more repetitions exist than the specified number and the system opts not to support them all, it's up to the systems which repetitions it chooses to support. Note that the applicable-number applies after any reduction in elements from applying the Obligation.filter
    • process: canonical, uri: A process that the obligation applies to. This might a canonical URL for an OperationDefinition, or a uri that refers to some externally defined process such as a section within an IG.

    Maturity: 1

    This structure is derived from Extension

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    Extension 0..* Extension Obligations for applications using element/in model
    Extension.Slices for extension Content/Rules for all slices
    Extension.Slices for extension.extension:name 0..1 Extension Short label for collection of obligations
    Extension.Slices for extension.extension:name.extension 0..0 Extension
    Extension.Slices for extension.extension:name.url 1..1 uri "name"
    Extension.Slices for extension.extension:name.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:code 1..* Extension Composite code describing the nature of the obligation
    Extension.Slices for extension.extension:code.extension 0..0 Extension
    Extension.Slices for extension.extension:code.url 1..1 uri "code"
    Extension.Slices for extension.extension:code.value[x] 1..1 code Value of extension
    Binding: ObligationCodesVS (required): Codes that describe an obligation that applies to implementing applications
    Extension.Slices for extension.extension:elementId 0..* Extension When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
    Extension.Slices for extension.extension:elementId.extension 0..0 Extension
    Extension.Slices for extension.extension:elementId.url 1..1 uri "elementId"
    Extension.Slices for extension.extension:elementId.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:actor 0..* Extension Actor(s) this obligation applies to (all actors if none)
    Extension.Slices for extension.extension:actor.extension 0..0 Extension
    Extension.Slices for extension.extension:actor.url 1..1 uri "actor"
    Extension.Slices for extension.extension:actor.value[x] 1..1 canonical(ActorDefinition) Value of extension
    Extension.Slices for extension.extension:documentation 0..1 Extension Documentation of the purpose or application of the obligation
    Extension.Slices for extension.extension:documentation.extension 0..0 Extension
    Extension.Slices for extension.extension:documentation.url 1..1 uri "documentation"
    Extension.Slices for extension.extension:documentation.value[x] 1..1 markdown Value of extension
    Extension.Slices for extension.extension:usage 0..* Extension Qualifies the usage - jurisdiction, gender, workflow status etc
    Extension.Slices for extension.extension:usage.extension 0..0 Extension
    Extension.Slices for extension.extension:usage.url 1..1 uri "usage"
    Extension.Slices for extension.extension:usage.value[x] 1..1 UsageContext Value of extension
    Extension.Slices for extension.extension:filter 0..1 Extension Limits obligation to some repeats by FHIRPath
    Extension.Slices for extension.extension:filter.extension 0..0 Extension
    Extension.Slices for extension.extension:filter.url 1..1 uri "filter"
    Extension.Slices for extension.extension:filter.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:filterDocumentation 0..1 Extension Describes the intent of the filter (short)
    Extension.Slices for extension.extension:filterDocumentation.extension 0..0 Extension
    Extension.Slices for extension.extension:filterDocumentation.url 1..1 uri "filterDocumentation"
    Extension.Slices for extension.extension:filterDocumentation.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:applicable-number 0..1 Extension Minimum # of repetitions the obligation applies to
    Extension.Slices for extension.extension:applicable-number.extension 0..0 Extension
    Extension.Slices for extension.extension:applicable-number.url 1..1 uri "applicable-number"
    Extension.Slices for extension.extension:applicable-number.value[x] 1..1 positiveInt Value of extension
    Extension.Slices for extension.extension:process 0..* Extension The obligation only applies when performing the indicated process
    Extension.Slices for extension.extension:process.extension 0..0 Extension
    Extension.Slices for extension.extension:process.url 1..1 uri "process"
    Extension.Slices for extension.extension:process.value[x] 1..1 Value of extension
    Extension.Slices for extension.extension:process.value[x].valueCanonical canonical(OperationDefinition)
    Extension.Slices for extension.extension:process.value[x].valueUri uri
    Extension.url 1..1 uri "http://hl7.org/fhir/StructureDefinition/obligation"
    Extension.value[x] 0..0 Value of extension

    doco Documentation for this format
    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    Extension 0..* Extension Obligations for applications using element/in model
    Extension.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension 1..* Extension Additional content defined by implementations
    Slice: Unordered, Open by value:url
    Extension.Slices for extension.extension:name 0..1 Extension Short label for collection of obligations
    Extension.Slices for extension.extension:name.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:name.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:name.url 1..1 uri "name"
    Extension.Slices for extension.extension:name.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:code 1..* Extension Composite code describing the nature of the obligation
    Extension.Slices for extension.extension:code.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:code.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:code.url 1..1 uri "code"
    Extension.Slices for extension.extension:code.value[x] 1..1 code Value of extension
    Binding: ObligationCodesVS (required): Codes that describe an obligation that applies to implementing applications
    Extension.Slices for extension.extension:elementId 0..* Extension When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
    Extension.Slices for extension.extension:elementId.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:elementId.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:elementId.url 1..1 uri "elementId"
    Extension.Slices for extension.extension:elementId.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:actor 0..* Extension Actor(s) this obligation applies to (all actors if none)
    Extension.Slices for extension.extension:actor.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:actor.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:actor.url 1..1 uri "actor"
    Extension.Slices for extension.extension:actor.value[x] 1..1 canonical(ActorDefinition) Value of extension
    Extension.Slices for extension.extension:documentation 0..1 Extension Documentation of the purpose or application of the obligation
    Extension.Slices for extension.extension:documentation.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:documentation.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:documentation.url 1..1 uri "documentation"
    Extension.Slices for extension.extension:documentation.value[x] 1..1 markdown Value of extension
    Extension.Slices for extension.extension:usage 0..* Extension Qualifies the usage - jurisdiction, gender, workflow status etc
    Extension.Slices for extension.extension:usage.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:usage.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:usage.url 1..1 uri "usage"
    Extension.Slices for extension.extension:usage.value[x] 1..1 UsageContext Value of extension
    Extension.Slices for extension.extension:filter 0..1 Extension Limits obligation to some repeats by FHIRPath
    Extension.Slices for extension.extension:filter.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:filter.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:filter.url 1..1 uri "filter"
    Extension.Slices for extension.extension:filter.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:filterDocumentation 0..1 Extension Describes the intent of the filter (short)
    Extension.Slices for extension.extension:filterDocumentation.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:filterDocumentation.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:filterDocumentation.url 1..1 uri "filterDocumentation"
    Extension.Slices for extension.extension:filterDocumentation.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:applicable-number 0..1 Extension Minimum # of repetitions the obligation applies to
    Extension.Slices for extension.extension:applicable-number.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:applicable-number.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:applicable-number.url 1..1 uri "applicable-number"
    Extension.Slices for extension.extension:applicable-number.value[x] 1..1 positiveInt Value of extension
    Extension.Slices for extension.extension:process 0..* Extension The obligation only applies when performing the indicated process
    Extension.Slices for extension.extension:process.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:process.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:process.url 1..1 uri "process"
    Extension.Slices for extension.extension:process.value[x] 1..1 Value of extension
    Extension.Slices for extension.extension:process.value[x].valueCanonical canonical(OperationDefinition)
    Extension.Slices for extension.extension:process.value[x].valueUri uri
    Extension.url 1..1 uri "http://hl7.org/fhir/StructureDefinition/obligation"

    doco Documentation for this format

    This structure is derived from Extension

    Summary

    Complex Extension: When appearing on an element, documents obligations that apply to applications implementing that element. When appearing at the root of a StructureDefinition, indicates obligations that apply to all listed elements within the extension. When appearing on a type, indicates obligations that apply to the use of that specific type.

    • name: string: A short label for the set of obligations that is unique within the element defining the obligation set that can be used to point to that set.
    • code: code: A code that describes the obligation(s) that apply to implementing applications.
    • elementId: string: An Extension
    • actor: canonical: Actor(s) to which the obligation applies.
    • documentation: markdown: Human readable documentation of the purpose or application of the obligation.
    • usage: UsageContext: Qualifies the usage of the obligation. Typically obligations are qualified by jurisdiction, but they may also be qualified by gender, workflow status, clinical domain etc. The information to decide whether a usage context applies is usually outside the resource, determined by context, and this might present challenges for validation tooling. An expected use: limiting obligations to particular jurisdictions (e.g. in IPS).
    • filter: string: A FHIRPath expression that restricts to the obligation to only those occurrences of the element that fall into the collection defined by the expression.
    • filterDocumentation: string: Documents the FHIRPath expression for the benefit of users who are not familiar with FHIRPath.
    • applicable-number: positiveInt: If present, overrides the default interpretation of 'what is the minimum number of repetitions systems must support' with respect to this obligation. If more repetitions exist than the specified number and the system opts not to support them all, it's up to the systems which repetitions it chooses to support. Note that the applicable-number applies after any reduction in elements from applying the Obligation.filter
    • process: canonical, uri: A process that the obligation applies to. This might a canonical URL for an OperationDefinition, or a uri that refers to some externally defined process such as a section within an IG.

    Maturity: 1

    Differential View

    This structure is derived from Extension

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    Extension 0..* Extension Obligations for applications using element/in model
    Extension.Slices for extension Content/Rules for all slices
    Extension.Slices for extension.extension:name 0..1 Extension Short label for collection of obligations
    Extension.Slices for extension.extension:name.extension 0..0 Extension
    Extension.Slices for extension.extension:name.url 1..1 uri "name"
    Extension.Slices for extension.extension:name.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:code 1..* Extension Composite code describing the nature of the obligation
    Extension.Slices for extension.extension:code.extension 0..0 Extension
    Extension.Slices for extension.extension:code.url 1..1 uri "code"
    Extension.Slices for extension.extension:code.value[x] 1..1 code Value of extension
    Binding: ObligationCodesVS (required): Codes that describe an obligation that applies to implementing applications
    Extension.Slices for extension.extension:elementId 0..* Extension When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
    Extension.Slices for extension.extension:elementId.extension 0..0 Extension
    Extension.Slices for extension.extension:elementId.url 1..1 uri "elementId"
    Extension.Slices for extension.extension:elementId.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:actor 0..* Extension Actor(s) this obligation applies to (all actors if none)
    Extension.Slices for extension.extension:actor.extension 0..0 Extension
    Extension.Slices for extension.extension:actor.url 1..1 uri "actor"
    Extension.Slices for extension.extension:actor.value[x] 1..1 canonical(ActorDefinition) Value of extension
    Extension.Slices for extension.extension:documentation 0..1 Extension Documentation of the purpose or application of the obligation
    Extension.Slices for extension.extension:documentation.extension 0..0 Extension
    Extension.Slices for extension.extension:documentation.url 1..1 uri "documentation"
    Extension.Slices for extension.extension:documentation.value[x] 1..1 markdown Value of extension
    Extension.Slices for extension.extension:usage 0..* Extension Qualifies the usage - jurisdiction, gender, workflow status etc
    Extension.Slices for extension.extension:usage.extension 0..0 Extension
    Extension.Slices for extension.extension:usage.url 1..1 uri "usage"
    Extension.Slices for extension.extension:usage.value[x] 1..1 UsageContext Value of extension
    Extension.Slices for extension.extension:filter 0..1 Extension Limits obligation to some repeats by FHIRPath
    Extension.Slices for extension.extension:filter.extension 0..0 Extension
    Extension.Slices for extension.extension:filter.url 1..1 uri "filter"
    Extension.Slices for extension.extension:filter.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:filterDocumentation 0..1 Extension Describes the intent of the filter (short)
    Extension.Slices for extension.extension:filterDocumentation.extension 0..0 Extension
    Extension.Slices for extension.extension:filterDocumentation.url 1..1 uri "filterDocumentation"
    Extension.Slices for extension.extension:filterDocumentation.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:applicable-number 0..1 Extension Minimum # of repetitions the obligation applies to
    Extension.Slices for extension.extension:applicable-number.extension 0..0 Extension
    Extension.Slices for extension.extension:applicable-number.url 1..1 uri "applicable-number"
    Extension.Slices for extension.extension:applicable-number.value[x] 1..1 positiveInt Value of extension
    Extension.Slices for extension.extension:process 0..* Extension The obligation only applies when performing the indicated process
    Extension.Slices for extension.extension:process.extension 0..0 Extension
    Extension.Slices for extension.extension:process.url 1..1 uri "process"
    Extension.Slices for extension.extension:process.value[x] 1..1 Value of extension
    Extension.Slices for extension.extension:process.value[x].valueCanonical canonical(OperationDefinition)
    Extension.Slices for extension.extension:process.value[x].valueUri uri
    Extension.url 1..1 uri "http://hl7.org/fhir/StructureDefinition/obligation"
    Extension.value[x] 0..0 Value of extension

    doco Documentation for this format

    Snapshot View

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    Extension 0..* Extension Obligations for applications using element/in model
    Extension.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension 1..* Extension Additional content defined by implementations
    Slice: Unordered, Open by value:url
    Extension.Slices for extension.extension:name 0..1 Extension Short label for collection of obligations
    Extension.Slices for extension.extension:name.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:name.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:name.url 1..1 uri "name"
    Extension.Slices for extension.extension:name.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:code 1..* Extension Composite code describing the nature of the obligation
    Extension.Slices for extension.extension:code.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:code.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:code.url 1..1 uri "code"
    Extension.Slices for extension.extension:code.value[x] 1..1 code Value of extension
    Binding: ObligationCodesVS (required): Codes that describe an obligation that applies to implementing applications
    Extension.Slices for extension.extension:elementId 0..* Extension When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
    Extension.Slices for extension.extension:elementId.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:elementId.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:elementId.url 1..1 uri "elementId"
    Extension.Slices for extension.extension:elementId.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:actor 0..* Extension Actor(s) this obligation applies to (all actors if none)
    Extension.Slices for extension.extension:actor.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:actor.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:actor.url 1..1 uri "actor"
    Extension.Slices for extension.extension:actor.value[x] 1..1 canonical(ActorDefinition) Value of extension
    Extension.Slices for extension.extension:documentation 0..1 Extension Documentation of the purpose or application of the obligation
    Extension.Slices for extension.extension:documentation.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:documentation.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:documentation.url 1..1 uri "documentation"
    Extension.Slices for extension.extension:documentation.value[x] 1..1 markdown Value of extension
    Extension.Slices for extension.extension:usage 0..* Extension Qualifies the usage - jurisdiction, gender, workflow status etc
    Extension.Slices for extension.extension:usage.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:usage.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:usage.url 1..1 uri "usage"
    Extension.Slices for extension.extension:usage.value[x] 1..1 UsageContext Value of extension
    Extension.Slices for extension.extension:filter 0..1 Extension Limits obligation to some repeats by FHIRPath
    Extension.Slices for extension.extension:filter.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:filter.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:filter.url 1..1 uri "filter"
    Extension.Slices for extension.extension:filter.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:filterDocumentation 0..1 Extension Describes the intent of the filter (short)
    Extension.Slices for extension.extension:filterDocumentation.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:filterDocumentation.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:filterDocumentation.url 1..1 uri "filterDocumentation"
    Extension.Slices for extension.extension:filterDocumentation.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:applicable-number 0..1 Extension Minimum # of repetitions the obligation applies to
    Extension.Slices for extension.extension:applicable-number.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:applicable-number.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:applicable-number.url 1..1 uri "applicable-number"
    Extension.Slices for extension.extension:applicable-number.value[x] 1..1 positiveInt Value of extension
    Extension.Slices for extension.extension:process 0..* Extension The obligation only applies when performing the indicated process
    Extension.Slices for extension.extension:process.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:process.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:process.url 1..1 uri "process"
    Extension.Slices for extension.extension:process.value[x] 1..1 Value of extension
    Extension.Slices for extension.extension:process.value[x].valueCanonical canonical(OperationDefinition)
    Extension.Slices for extension.extension:process.value[x].valueUri uri
    Extension.url 1..1 uri "http://hl7.org/fhir/StructureDefinition/obligation"

    doco Documentation for this format

     

    Other representations of profile: CSV, Excel, Schematron

    Terminology Bindings

    Path Status Usage ValueSet Version Source
    Extension.extension:code.​value[x] Base required Obligation Codes ValueSet 📦5.3.0 This IG

    Constraints

    Id Grade Path(s) Description Expression
    ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
    ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

    R4B

    The extension is represented a little differently in R4B:

    • Remove the target profile http://hl7.org/fhir/StructureDefinition/ActorDefinition from the element Extension.extension:actor.value[x]
    • Note: Extensions that have been modified for R4B are still draft while real-world experience is collected
    Name Flags Card. Type Description & Constraints      Filter: doco
    Extension 0..* Extension Obligations for applications using element/in model
    Extension. Slices for extension Content/Rules for all slices
    Extension.Slices for extension. extension:name 0..1 Extension Short label for collection of obligations
    Extension.Slices for extension.extension:name. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:name. url 1 .. 1 uri "name"
    Extension.Slices for extension.extension:name. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:code 1..* Extension Composite code describing the nature of the obligation
    Extension.Slices for extension.extension:code. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:code. url 1 .. 1 uri "code"
    Extension.Slices for extension.extension:code. value[x] 1.. 1 code Value of extension
    Binding: ObligationCodesVS ( required ) : Codes that describe an obligation that applies to implementing applications
    Extension.Slices for extension. extension:elementId 0..* Extension When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
    Extension.Slices for extension.extension:elementId. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:elementId. url 1 .. 1 uri "elementId"
    Extension.Slices for extension.extension:elementId. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:actor 0..* Extension Actor(s) this obligation applies to (all actors if none)
    Extension.Slices for extension.extension:actor. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:actor. url 1 .. 1 uri "actor"
    Extension.Slices for extension.extension:actor. value[x] 1..1 canonical () Value of extension
    Extension.Slices for extension. extension:documentation 0..1 Extension Documentation of the purpose or application of the obligation
    Extension.Slices for extension.extension:documentation. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:documentation. url 1 .. 1 uri "documentation"
    Extension.Slices for extension.extension:documentation. value[x] 1.. 1 markdown Value of extension
    Extension.Slices for extension. extension:usage 0..* Extension Qualifies the usage - jurisdiction, gender, workflow status etc
    Extension.Slices for extension.extension:usage. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:usage. url 1 .. 1 uri "usage"
    Extension.Slices for extension.extension:usage. value[x] 1.. 1 UsageContext Value of extension
    Extension.Slices for extension. extension:filter 0..1 Extension Limits obligation to some repeats by FHIRPath
    Extension.Slices for extension.extension:filter. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:filter. url 1 .. 1 uri "filter"
    Extension.Slices for extension.extension:filter. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:filterDocumentation 0..1 Extension Describes the intent of the filter (short)
    Extension.Slices for extension.extension:filterDocumentation. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:filterDocumentation. url 1 .. 1 uri "filterDocumentation"
    Extension.Slices for extension.extension:filterDocumentation. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:applicable-number 0..1 Extension Minimum # of repetitions the obligation applies to
    Extension.Slices for extension.extension:applicable-number. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:applicable-number. url 1 .. 1 uri "applicable-number"
    Extension.Slices for extension.extension:applicable-number. value[x] 1.. 1 positiveInt Value of extension
    Extension.Slices for extension. extension:process 0..* Extension The obligation only applies when performing the indicated process
    Extension.Slices for extension.extension:process. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:process. url 1 .. 1 uri "process"
    Extension.Slices for extension.extension:process. value[x] 1.. 1 Value of extension
    Extension.Slices for extension.extension:process.value[x]. valueCanonical canonical ( OperationDefinition )
    Extension.Slices for extension.extension:process.value[x]. valueUri uri
    Extension. url 1 .. 1 uri "http://hl7.org/fhir/StructureDefinition/obligation"
    Extension. value[x] 0 .. 0 Value of extension

    doco Documentation for this format

    R4

    The extension is represented a little differently in R4:

    • Remove the target profile http://hl7.org/fhir/StructureDefinition/ActorDefinition from the element Extension.extension:actor.value[x]
    • Note: Extensions that have been modified for R4 are still draft while real-world experience is collected
    Name Flags Card. Type Description & Constraints      Filter: doco
    Extension 0..* Extension Obligations for applications using element/in model
    Extension. Slices for extension Content/Rules for all slices
    Extension.Slices for extension. extension:name 0..1 Extension Short label for collection of obligations
    Extension.Slices for extension.extension:name. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:name. url 1 .. 1 uri "name"
    Extension.Slices for extension.extension:name. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:code 1..* Extension Composite code describing the nature of the obligation
    Extension.Slices for extension.extension:code. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:code. url 1 .. 1 uri "code"
    Extension.Slices for extension.extension:code. value[x] 1.. 1 code Value of extension
    Binding: ObligationCodesVS ( required ) : Codes that describe an obligation that applies to implementing applications
    Extension.Slices for extension. extension:elementId 0..* Extension When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
    Extension.Slices for extension.extension:elementId. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:elementId. url 1 .. 1 uri "elementId"
    Extension.Slices for extension.extension:elementId. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:actor 0..* Extension Actor(s) this obligation applies to (all actors if none)
    Extension.Slices for extension.extension:actor. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:actor. url 1 .. 1 uri "actor"
    Extension.Slices for extension.extension:actor. value[x] 1..1 canonical () Value of extension
    Extension.Slices for extension. extension:documentation 0..1 Extension Documentation of the purpose or application of the obligation
    Extension.Slices for extension.extension:documentation. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:documentation. url 1 .. 1 uri "documentation"
    Extension.Slices for extension.extension:documentation. value[x] 1.. 1 markdown Value of extension
    Extension.Slices for extension. extension:usage 0..* Extension Qualifies the usage - jurisdiction, gender, workflow status etc
    Extension.Slices for extension.extension:usage. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:usage. url 1 .. 1 uri "usage"
    Extension.Slices for extension.extension:usage. value[x] 1.. 1 UsageContext Value of extension
    Extension.Slices for extension. extension:filter 0..1 Extension Limits obligation to some repeats by FHIRPath
    Extension.Slices for extension.extension:filter. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:filter. url 1 .. 1 uri "filter"
    Extension.Slices for extension.extension:filter. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:filterDocumentation 0..1 Extension Describes the intent of the filter (short)
    Extension.Slices for extension.extension:filterDocumentation. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:filterDocumentation. url 1 .. 1 uri "filterDocumentation"
    Extension.Slices for extension.extension:filterDocumentation. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:applicable-number 0..1 Extension Minimum # of repetitions the obligation applies to
    Extension.Slices for extension.extension:applicable-number. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:applicable-number. url 1 .. 1 uri "applicable-number"
    Extension.Slices for extension.extension:applicable-number. value[x] 1.. 1 positiveInt Value of extension
    Extension.Slices for extension. extension:process 0..* Extension The obligation only applies when performing the indicated process
    Extension.Slices for extension.extension:process. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:process. url 1 .. 1 uri "process"
    Extension.Slices for extension.extension:process. value[x] 1.. 1 Value of extension
    Extension.Slices for extension.extension:process.value[x]. valueCanonical canonical ( OperationDefinition )
    Extension.Slices for extension.extension:process.value[x]. valueUri uri
    Extension. url 1 .. 1 uri "http://hl7.org/fhir/StructureDefinition/obligation"
    Extension. value[x] 0 .. 0 Value of extension

    doco Documentation for this format

    R3

    The extension is represented a little differently in R3:

    • Remove the target profile http://hl7.org/fhir/StructureDefinition/ActorDefinition from the element Extension.extension:actor.value[x]
    • Map the type canonical to uri on the element Extension.extension:actor.value[x]
    • Map the type canonical to uri on the element Extension.extension:process.value[x]
    • Replace the type UsageContext with a set of extensions for the content of the type along with the _datatype extension
    • Note: Extensions that have been modified for R3 are still draft while real-world experience is collected
    Name Flags Card. Type Description & Constraints      Filter: doco
    Extension 0..* Extension Obligations for applications using element/in model
    Extension. Slices for extension Content/Rules for all slices
    Extension.Slices for extension. extension:name 0..1 Extension Short label for collection of obligations
    Extension.Slices for extension.extension:name. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:name. url 1 .. 1 uri "name"
    Extension.Slices for extension.extension:name. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:code 1..* Extension Composite code describing the nature of the obligation
    Extension.Slices for extension.extension:code. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:code. url 1 .. 1 uri "code"
    Extension.Slices for extension.extension:code. value[x] 1.. 1 code Value of extension
    Binding: ObligationCodesVS ( required ) : Codes that describe an obligation that applies to implementing applications
    Extension.Slices for extension. extension:elementId 0..* Extension When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
    Extension.Slices for extension.extension:elementId. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:elementId. url 1 .. 1 uri "elementId"
    Extension.Slices for extension.extension:elementId. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:actor 0..* Extension Actor(s) this obligation applies to (all actors if none)
    Extension.Slices for extension.extension:actor. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:actor. url 1 .. 1 uri "actor"
    Extension.Slices for extension.extension:actor. value[x] 1..1 uri Value of extension
    Extension.Slices for extension. extension:documentation 0..1 Extension Documentation of the purpose or application of the obligation
    Extension.Slices for extension.extension:documentation. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:documentation. url 1 .. 1 uri "documentation"
    Extension.Slices for extension.extension:documentation. value[x] 1.. 1 markdown Value of extension
    Extension.Slices for extension. extension:usage 0..* Extension Qualifies the usage - jurisdiction, gender, workflow status etc
    Extension.Slices for extension.extension:usage. Slices for extension 0 ..* Extension Extension
    Slice: Unordered, Open by value:url
    Extension.Slices for extension.extension:usage. Slices for extension Content/Rules for all slices
    Extension.Slices for extension.extension:usage.Slices for extension. extension:_datatype 1..1 (Complex) DataType name 'UsageContext' from R5
    URL: http://hl7.org/fhir/StructureDefinition/_datatype
    Extension.Slices for extension.extension:usage.Slices for extension.extension:_datatype. value[x] 1.. 1 string Value of extension
    Fixed Value: UsageContext
    Extension.Slices for extension.extension:usage.Slices for extension. extension:code 1..1 Extension Type of context being specified
    Extension.Slices for extension.extension:usage.Slices for extension.extension:code. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:usage.Slices for extension.extension:code. url 1 .. 1 uri "code"
    Extension.Slices for extension.extension:usage.Slices for extension.extension:code. value[x] 1.. 1 Coding Value of extension
    Binding: UsageContextType ( extensible ) : A code that specifies a type of context being specified by a usage context.
    Extension.Slices for extension.extension:usage.Slices for extension. extension:value[x] 1..1 Extension Value that defines the context
    Extension.Slices for extension.extension:usage.Slices for extension.extension:value[x]. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:usage.Slices for extension.extension:value[x]. url 1 .. 1 uri "value[x]"
    Extension.Slices for extension.extension:usage.Slices for extension.extension:value[x]. value[x] 1.. 1 Value of extension
    Binding: ContextOfUseValueSet ( example ) : A code that defines the specific value for the context being specified.
    Extension.Slices for extension.extension:usage.Slices for extension.extension:value[x].value[x]. valueCodeableConcept CodeableConcept
    Extension.Slices for extension.extension:usage.Slices for extension.extension:value[x].value[x]. valueQuantity Quantity
    Extension.Slices for extension.extension:usage.Slices for extension.extension:value[x].value[x]. valueRange Range
    Extension.Slices for extension.extension:usage.Slices for extension.extension:value[x].value[x]. valueReference Reference ( PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization )
    Extension.Slices for extension.extension:usage. url 1 .. 1 uri "usage"
    Extension.Slices for extension.extension:usage. value[x] 0 .. 0 Value of extension
    Extension.Slices for extension. extension:filter 0..1 Extension Limits obligation to some repeats by FHIRPath
    Extension.Slices for extension.extension:filter. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:filter. url 1 .. 1 uri "filter"
    Extension.Slices for extension.extension:filter. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:filterDocumentation 0..1 Extension Describes the intent of the filter (short)
    Extension.Slices for extension.extension:filterDocumentation. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:filterDocumentation. url 1 .. 1 uri "filterDocumentation"
    Extension.Slices for extension.extension:filterDocumentation. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:applicable-number 0..1 Extension Minimum # of repetitions the obligation applies to
    Extension.Slices for extension.extension:applicable-number. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:applicable-number. url 1 .. 1 uri "applicable-number"
    Extension.Slices for extension.extension:applicable-number. value[x] 1.. 1 positiveInt Value of extension
    Extension.Slices for extension. extension:process 0..* Extension The obligation only applies when performing the indicated process
    Extension.Slices for extension.extension:process. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:process. url 1 .. 1 uri "process"
    Extension.Slices for extension.extension:process. value[x] 1.. 1 Value of extension
    Extension.Slices for extension.extension:process.value[x]. valueUri uri
    Extension.Slices for extension.extension:process.value[x]. valueUri uri
    Extension. url 1 .. 1 uri "http://hl7.org/fhir/StructureDefinition/obligation"
    Extension. value[x] 0 .. 0 Value of extension

    doco Documentation for this format

    Notes:

    Search Parameters for this Extension

    (none found)