PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.uv.extensions.r3@5.3.0
    http://hl7.org/fhir/StructureDefinition/obligation
description: 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.\n\n  The obligations relate to application behaviour, not the content of the element itself in the resource instances that contain this element. See the [Obligation](obligations.html) page in the core specification for further detail.\n\n  The usage sub-extension allows for specific context dependent rules that link clinical, workflow or implementation context to obligations e.g. this is support for female patients.\n\n  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)\n\n  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.\n\n   Obligations might apply to only a subset of the remaining elements based on any specified obligation 'filter'.\n\n   Of those, there may only be an obligation for a limited number of matching occurrences. Which occurrences are chosen is selected by the system adhering to the obligation.\n\n   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.
package_name: hl7.fhir.uv.extensions.r3
derivation: constraint
name: Obligation
type: Extension
elements:
  extension:
    short: Short label for collection of obligations
    index: 0
    slicing:
      slices:
        elementId:
          match: {}
          schema:
            type: Extension
            short: When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
            array: true
            index: 12
            extensions: {}
            elements:
              extension: {index: 13}
              url:
                pattern: {type: Uri, value: elementId}
                index: 14
              value:
                choices: [valueString]
                index: 16
              valueString: {type: string, choiceOf: value, index: 17}
            required: [valueString, value]
        name:
          match: {}
          schema:
            short: Short label for collection of obligations
            index: 0
            extensions: {}
            elements:
              extension: {index: 1}
              url:
                pattern: {type: Uri, value: name}
                index: 2
              value:
                choices: [valueString]
                index: 4
              valueString: {type: string, choiceOf: value, index: 5}
            required: [valueString, value]
        process:
          match: {}
          schema:
            short: The obligation only applies when performing the indicated process
            array: true
            index: 78
            extensions: {}
            elements:
              extension: {index: 79}
              url:
                pattern: {type: Uri, value: process}
                index: 80
              value:
                choices: [valueUri, valueUri]
                index: 82
              valueUri: {type: uri, choiceOf: value, index: 83}
            required: [valueUri, value]
        documentation:
          match: {}
          schema:
            short: Documentation of the purpose or application of the obligation
            index: 24
            extensions: {}
            elements:
              extension: {index: 25}
              url:
                type: uri
                pattern: {type: Uri, value: documentation}
                index: 26
              value:
                choices: [valueMarkdown]
                index: 28
              valueMarkdown: {type: markdown, choiceOf: value, index: 29}
            required: [valueMarkdown, value]
        usage:
          match: {}
          schema:
            short: Qualifies the usage - jurisdiction, gender, workflow status etc
            array: true
            index: 30
            extensions:
              _datatype:
                url: h
                type: Extension
                short: DataType name 'UsageContext' from R5
                index: 32
                elements:
                  value:
                    pattern: {type: String, value: UsageContext}
                    choices: [valueString]
                    index: 34
                  valueString:
                    type: string
                    pattern: {type: String, value: UsageContext}
                    choiceOf: value
                    index: 35
                required: [valueString, value]
              code:
                url: code
                short: Type of context being specified
                _required: true
                index: 36
                extensions: {}
                elements:
                  extension: {index: 37}
                  url:
                    pattern: {type: Uri, value: code}
                    index: 38
                  value:
                    choices: [valueCoding]
                    index: 40
                  valueCoding: {type: Coding, choiceOf: value, index: 41}
                required: [valueCoding, value]
              value[x]:
                url: value[x]
                short: Value that defines the context
                _required: true
                index: 42
                extensions: {}
                elements:
                  extension: {index: 43}
                  url:
                    pattern: {type: Uri, value: 'value[x]'}
                    index: 44
                  value:
                    choices: [valueCodeableConcept, valueQuantity, valueRange, valueReference, valueReference, valueReference, valueReference, valueReference, valueReference, valueReference]
                    index: 46
                  valueCodeableConcept: {type: CodeableConcept, choiceOf: value, index: 47}
                  valueQuantity: {type: Quantity, choiceOf: value, index: 48}
                  valueRange: {type: Range, choiceOf: value, index: 49}
                  valueReference:
                    type: Reference
                    choiceOf: value
                    refers: ['http://hl7.org/fhir/StructureDefinition/PlanDefinition|5.0.0']
                    index: 50
                required: [valueReference, valueRange, value, valueCodeableConcept, valueQuantity]
            elements:
              extension:
                array: true
                index: 31
                slicing:
                  rules: open
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: null
                  slices:
                    _datatype:
                      match: {url: null}
                      schema:
                        type: Extension
                        short: DataType name 'UsageContext' from R5
                        url: h
                        index: 32
                        elements:
                          value:
                            pattern: {type: String, value: UsageContext}
                            choices: [valueString]
                            index: 34
                          valueString:
                            type: string
                            pattern: {type: String, value: UsageContext}
                            choiceOf: value
                            index: 35
                        required: [valueString, value]
                    code:
                      match: {url: code}
                      schema:
                        short: Type of context being specified
                        _required: true
                        index: 36
                        extensions: {}
                        elements:
                          extension: {index: 37}
                          url:
                            pattern: {type: Uri, value: code}
                            index: 38
                          value:
                            choices: [valueCoding]
                            index: 40
                          valueCoding: {type: Coding, choiceOf: value, index: 41}
                        required: [valueCoding, value]
                    value[x]:
                      match: {url: 'value[x]'}
                      schema:
                        short: Value that defines the context
                        _required: true
                        index: 42
                        extensions: {}
                        elements:
                          extension: {index: 43}
                          url:
                            pattern: {type: Uri, value: 'value[x]'}
                            index: 44
                          value:
                            choices: [valueCodeableConcept, valueQuantity, valueRange, valueReference, valueReference, valueReference, valueReference, valueReference, valueReference, valueReference]
                            index: 46
                          valueCodeableConcept: {type: CodeableConcept, choiceOf: value, index: 47}
                          valueQuantity: {type: Quantity, choiceOf: value, index: 48}
                          valueRange: {type: Range, choiceOf: value, index: 49}
                          valueReference:
                            type: Reference
                            choiceOf: value
                            refers: ['http://hl7.org/fhir/StructureDefinition/PlanDefinition|5.0.0']
                            index: 50
                        required: [valueReference, valueRange, value, valueCodeableConcept, valueQuantity]
              url:
                pattern: {type: Uri, value: usage}
                index: 57
              value:
                choices: []
                index: 59
        filter:
          match: {}
          schema:
            short: Limits obligation to some repeats by FHIRPath
            index: 60
            extensions: {}
            elements:
              extension: {index: 61}
              url:
                pattern: {type: Uri, value: filter}
                index: 62
              value:
                choices: [valueString]
                index: 64
              valueString: {type: string, choiceOf: value, index: 65}
            required: [valueString, value]
        applicable-number:
          match: {}
          schema:
            short: '# of repetitions obligation applies to'
            meaningWhenMissing: If not specified, the implication is that the obligation applies to all repetitions
            index: 72
            extensions: {}
            elements:
              extension: {index: 73}
              url:
                pattern: {type: Uri, value: applicable-number}
                index: 74
              value:
                choices: [valuePositiveInt]
                index: 76
              valuePositiveInt: {type: positiveInt, choiceOf: value, index: 77}
            required: [valuePositiveInt, value]
        code:
          match: {}
          schema:
            short: Composite code describing the nature of the obligation
            array: true
            min: 1
            _required: true
            index: 6
            extensions: {}
            elements:
              extension: {index: 7}
              url:
                pattern: {type: Uri, value: code}
                index: 8
              value:
                choices: [valueCode]
                index: 10
              valueCode: {type: code, choiceOf: value, index: 11}
            required: [valueCode, value]
        filterDocumentation:
          match: {}
          schema:
            short: Describes the intent of the filter (short)
            index: 66
            extensions: {}
            elements:
              extension: {index: 67}
              url:
                pattern: {type: Uri, value: filterDocumentation}
                index: 68
              value:
                choices: [valueString]
                index: 70
              valueString: {type: string, choiceOf: value, index: 71}
            required: [valueString, value]
        actor:
          match: {}
          schema:
            short: Actor(s) this obligation applies to (all actors if none)
            array: true
            index: 18
            extensions: {}
            elements:
              extension: {index: 19}
              url:
                pattern: {type: Uri, value: actor}
                index: 20
              value:
                choices: [valueUri]
                index: 22
              valueUri: {type: uri, choiceOf: value, index: 23}
            required: [valueUri, value]
  url:
    pattern: {type: Uri, value: 'http://hl7.org/fhir/StructureDefinition/obligation'}
    index: 85
  value:
    choices: []
    index: 87
package_version: 5.3.0
extensions:
  elementId:
    url: null
    type: Extension
    short: When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
    array: true
    index: 12
    extensions: {}
    elements:
      extension: {index: 13}
      url:
        pattern: {type: Uri, value: elementId}
        index: 14
      value:
        choices: [valueString]
        index: 16
      valueString: {type: string, choiceOf: value, index: 17}
    required: [valueString, value]
  name:
    url: null
    short: Short label for collection of obligations
    index: 0
    extensions: {}
    elements:
      extension: {index: 1}
      url:
        pattern: {type: Uri, value: name}
        index: 2
      value:
        choices: [valueString]
        index: 4
      valueString: {type: string, choiceOf: value, index: 5}
    required: [valueString, value]
  process:
    url: null
    short: The obligation only applies when performing the indicated process
    array: true
    index: 78
    extensions: {}
    elements:
      extension: {index: 79}
      url:
        pattern: {type: Uri, value: process}
        index: 80
      value:
        choices: [valueUri, valueUri]
        index: 82
      valueUri: {type: uri, choiceOf: value, index: 83}
    required: [valueUri, value]
  documentation:
    url: null
    short: Documentation of the purpose or application of the obligation
    index: 24
    extensions: {}
    elements:
      extension: {index: 25}
      url:
        type: uri
        pattern: {type: Uri, value: documentation}
        index: 26
      value:
        choices: [valueMarkdown]
        index: 28
      valueMarkdown: {type: markdown, choiceOf: value, index: 29}
    required: [valueMarkdown, value]
  usage:
    url: null
    short: Qualifies the usage - jurisdiction, gender, workflow status etc
    array: true
    index: 30
    extensions:
      _datatype:
        url: h
        type: Extension
        short: DataType name 'UsageContext' from R5
        index: 32
        elements:
          value:
            pattern: {type: String, value: UsageContext}
            choices: [valueString]
            index: 34
          valueString:
            type: string
            pattern: {type: String, value: UsageContext}
            choiceOf: value
            index: 35
        required: [valueString, value]
      code:
        url: code
        short: Type of context being specified
        _required: true
        index: 36
        extensions: {}
        elements:
          extension: {index: 37}
          url:
            pattern: {type: Uri, value: code}
            index: 38
          value:
            choices: [valueCoding]
            index: 40
          valueCoding: {type: Coding, choiceOf: value, index: 41}
        required: [valueCoding, value]
      value[x]:
        url: value[x]
        short: Value that defines the context
        _required: true
        index: 42
        extensions: {}
        elements:
          extension: {index: 43}
          url:
            pattern: {type: Uri, value: 'value[x]'}
            index: 44
          value:
            choices: [valueCodeableConcept, valueQuantity, valueRange, valueReference, valueReference, valueReference, valueReference, valueReference, valueReference, valueReference]
            index: 46
          valueCodeableConcept: {type: CodeableConcept, choiceOf: value, index: 47}
          valueQuantity: {type: Quantity, choiceOf: value, index: 48}
          valueRange: {type: Range, choiceOf: value, index: 49}
          valueReference:
            type: Reference
            choiceOf: value
            refers: ['http://hl7.org/fhir/StructureDefinition/PlanDefinition|5.0.0']
            index: 50
        required: [valueReference, valueRange, value, valueCodeableConcept, valueQuantity]
    elements:
      extension:
        array: true
        index: 31
        slicing:
          rules: open
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: null
          slices:
            _datatype:
              match: {url: null}
              schema:
                type: Extension
                short: DataType name 'UsageContext' from R5
                url: h
                index: 32
                elements:
                  value:
                    pattern: {type: String, value: UsageContext}
                    choices: [valueString]
                    index: 34
                  valueString:
                    type: string
                    pattern: {type: String, value: UsageContext}
                    choiceOf: value
                    index: 35
                required: [valueString, value]
            code:
              match: {url: code}
              schema:
                short: Type of context being specified
                _required: true
                index: 36
                extensions: {}
                elements:
                  extension: {index: 37}
                  url:
                    pattern: {type: Uri, value: code}
                    index: 38
                  value:
                    choices: [valueCoding]
                    index: 40
                  valueCoding: {type: Coding, choiceOf: value, index: 41}
                required: [valueCoding, value]
            value[x]:
              match: {url: 'value[x]'}
              schema:
                short: Value that defines the context
                _required: true
                index: 42
                extensions: {}
                elements:
                  extension: {index: 43}
                  url:
                    pattern: {type: Uri, value: 'value[x]'}
                    index: 44
                  value:
                    choices: [valueCodeableConcept, valueQuantity, valueRange, valueReference, valueReference, valueReference, valueReference, valueReference, valueReference, valueReference]
                    index: 46
                  valueCodeableConcept: {type: CodeableConcept, choiceOf: value, index: 47}
                  valueQuantity: {type: Quantity, choiceOf: value, index: 48}
                  valueRange: {type: Range, choiceOf: value, index: 49}
                  valueReference:
                    type: Reference
                    choiceOf: value
                    refers: ['http://hl7.org/fhir/StructureDefinition/PlanDefinition|5.0.0']
                    index: 50
                required: [valueReference, valueRange, value, valueCodeableConcept, valueQuantity]
      url:
        pattern: {type: Uri, value: usage}
        index: 57
      value:
        choices: []
        index: 59
  filter:
    url: null
    short: Limits obligation to some repeats by FHIRPath
    index: 60
    extensions: {}
    elements:
      extension: {index: 61}
      url:
        pattern: {type: Uri, value: filter}
        index: 62
      value:
        choices: [valueString]
        index: 64
      valueString: {type: string, choiceOf: value, index: 65}
    required: [valueString, value]
  applicable-number:
    url: null
    short: '# of repetitions obligation applies to'
    meaningWhenMissing: If not specified, the implication is that the obligation applies to all repetitions
    index: 72
    extensions: {}
    elements:
      extension: {index: 73}
      url:
        pattern: {type: Uri, value: applicable-number}
        index: 74
      value:
        choices: [valuePositiveInt]
        index: 76
      valuePositiveInt: {type: positiveInt, choiceOf: value, index: 77}
    required: [valuePositiveInt, value]
  code:
    min: 1
    short: Composite code describing the nature of the obligation
    index: 6
    array: true
    elements:
      extension: {index: 7}
      url:
        pattern: {type: Uri, value: code}
        index: 8
      value:
        choices: [valueCode]
        index: 10
      valueCode: {type: code, choiceOf: value, index: 11}
    _required: true
    extensions: {}
    url: null
    required: [valueCode, value]
  filterDocumentation:
    url: null
    short: Describes the intent of the filter (short)
    index: 66
    extensions: {}
    elements:
      extension: {index: 67}
      url:
        pattern: {type: Uri, value: filterDocumentation}
        index: 68
      value:
        choices: [valueString]
        index: 70
      valueString: {type: string, choiceOf: value, index: 71}
    required: [valueString, value]
  actor:
    url: null
    short: Actor(s) this obligation applies to (all actors if none)
    array: true
    index: 18
    extensions: {}
    elements:
      extension: {index: 19}
      url:
        pattern: {type: Uri, value: actor}
        index: 20
      value:
        choices: [valueUri]
        index: 22
      valueUri: {type: uri, choiceOf: value, index: 23}
    required: [valueUri, value]
class: extension
kind: complex-type
url: http://hl7.org/fhir/StructureDefinition/obligation
base: http://hl7.org/fhir/StructureDefinition/Extension
version: 5.3.0