PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.uv.extensions.r3@5.4.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.
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: 'Minimum # of repetitions the obligation applies to'
            meaningWhenMissing: If not specified, the obligation applies to all repetitions allowed by the profile (or, if the element has no upper cardinality, as many as the system can technically manage)
            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.4.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: 'Minimum # of repetitions the obligation applies to'
    meaningWhenMissing: If not specified, the obligation applies to all repetitions allowed by the profile (or, if the element has no upper cardinality, as many as the system can technically manage)
    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.4.0