PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.uv.extensions.r3@5.3.0-ballot-tc
    http://hl7.org/fhir/StructureDefinition/targetConstraint
description: Specifies a constraint that is enforced on instantiated (or target) resources. This extension can be applied to definitional resources (such as ActivityDefinition or Measure) and indicates that the constraint should be enforced on resources that are instantiated from the definition. For example, this extension can be used to define a constraint such as `numerator count must be less than or equal to denominator count`.
package_name: hl7.fhir.uv.extensions.r3
derivation: constraint
name: TargetConstraint
type: Extension
elements:
  extension:
    short: Unique identifier
    type: Extension
    index: 0
    slicing:
      slices:
        key:
          match: {}
          schema:
            short: Unique identifier
            type: Extension
            _required: true
            index: 0
            extensions: {}
            elements:
              extension: {index: 1}
              url:
                type: uri
                pattern: {type: uri, value: key}
                index: 2
              value:
                choices: [valueId]
                index: 4
              valueId: {type: id, choiceOf: value, index: 5}
            required: [value, valueId]
        requirements:
          match: {}
          schema:
            type: Extension
            short: Why the constraint is defined
            index: 6
            extensions: {}
            elements:
              extension: {index: 7}
              url:
                type: uri
                pattern: {type: uri, value: requirements}
                index: 8
              value:
                choices: [valueMarkdown]
                index: 10
              valueMarkdown: {type: markdown, choiceOf: value, index: 11}
            required: [value, valueMarkdown]
        severity:
          match: {}
          schema:
            type: Extension
            short: error | warning
            _required: true
            index: 12
            extensions: {}
            elements:
              extension: {index: 13}
              url:
                type: uri
                pattern: {type: uri, value: severity}
                index: 14
              value:
                choices: [valueCode]
                index: 16
              valueCode: {type: code, choiceOf: value, index: 17}
            required: [value, valueCode]
        expression:
          match: {}
          schema:
            short: The invariant expression
            type: Extension
            _required: true
            index: 18
            extensions:
              _datatype:
                url: h
                type: Extension
                short: DataType name 'Expression' from R5
                index: 20
                elements:
                  value:
                    pattern: {type: string, value: Expression}
                    choices: [valueString]
                    type: string
                    index: 22
                  valueString:
                    type: string
                    pattern: {type: string, value: Expression}
                    choiceOf: value
                    index: 23
                required: [value, valueString]
              description:
                url: description
                short: Natural language description of the condition
                index: 24
                extensions: {}
                elements:
                  extension: {index: 25}
                  url:
                    pattern: {type: uri, value: description}
                    type: uri
                    index: 26
                  value:
                    choices: [valueString]
                    index: 28
                  valueString: {type: string, choiceOf: value, index: 29}
                required: [value, valueString]
              name:
                url: name
                short: Short name assigned to expression for reuse
                index: 30
                extensions: {}
                elements:
                  extension: {index: 31}
                  url:
                    pattern: {type: uri, value: name}
                    type: uri
                    index: 32
                  value:
                    choices: [valueCode]
                    index: 34
                  valueCode: {type: code, choiceOf: value, index: 35}
                required: [value, valueCode]
              language:
                url: language
                short: text/cql | text/fhirpath | application/x-fhir-query | etc.
                index: 36
                extensions: {}
                elements:
                  extension: {index: 37}
                  url:
                    pattern: {type: uri, value: language}
                    type: uri
                    index: 38
                  value:
                    choices: [valueCode]
                    index: 40
                  valueCode: {type: code, choiceOf: value, index: 41}
                required: [value, valueCode]
              expression:
                url: expression
                short: Expression in specified language
                index: 42
                extensions: {}
                elements:
                  extension: {index: 43}
                  url:
                    pattern: {type: uri, value: expression}
                    type: uri
                    index: 44
                  value:
                    choices: [valueString]
                    index: 46
                  valueString: {type: string, choiceOf: value, index: 47}
                required: [value, valueString]
              reference:
                url: reference
                short: Where the expression is found
                index: 48
                extensions: {}
                elements:
                  extension: {index: 49}
                  url:
                    pattern: {type: uri, value: reference}
                    type: uri
                    index: 50
                  value:
                    choices: [valueUri]
                    index: 52
                  valueUri: {type: uri, choiceOf: value, index: 53}
                required: [value, valueUri]
            elements:
              extension:
                array: true
                index: 19
                slicing:
                  rules: open
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: null
                  slices:
                    _datatype:
                      match: {url: null}
                      schema:
                        type: Extension
                        short: DataType name 'Expression' from R5
                        url: h
                        index: 20
                        elements:
                          value:
                            pattern: {type: string, value: Expression}
                            choices: [valueString]
                            type: string
                            index: 22
                          valueString:
                            type: string
                            pattern: {type: string, value: Expression}
                            choiceOf: value
                            index: 23
                        required: [value, valueString]
                    description:
                      match: {url: description}
                      schema:
                        short: Natural language description of the condition
                        index: 24
                        extensions: {}
                        elements:
                          extension: {index: 25}
                          url:
                            pattern: {type: uri, value: description}
                            type: uri
                            index: 26
                          value:
                            choices: [valueString]
                            index: 28
                          valueString: {type: string, choiceOf: value, index: 29}
                        required: [value, valueString]
                    name:
                      match: {url: name}
                      schema:
                        short: Short name assigned to expression for reuse
                        index: 30
                        extensions: {}
                        elements:
                          extension: {index: 31}
                          url:
                            pattern: {type: uri, value: name}
                            type: uri
                            index: 32
                          value:
                            choices: [valueCode]
                            index: 34
                          valueCode: {type: code, choiceOf: value, index: 35}
                        required: [value, valueCode]
                    language:
                      match: {url: language}
                      schema:
                        short: text/cql | text/fhirpath | application/x-fhir-query | etc.
                        index: 36
                        extensions: {}
                        elements:
                          extension: {index: 37}
                          url:
                            pattern: {type: uri, value: language}
                            type: uri
                            index: 38
                          value:
                            choices: [valueCode]
                            index: 40
                          valueCode: {type: code, choiceOf: value, index: 41}
                        required: [value, valueCode]
                    expression:
                      match: {url: expression}
                      schema:
                        short: Expression in specified language
                        index: 42
                        extensions: {}
                        elements:
                          extension: {index: 43}
                          url:
                            pattern: {type: uri, value: expression}
                            type: uri
                            index: 44
                          value:
                            choices: [valueString]
                            index: 46
                          valueString: {type: string, choiceOf: value, index: 47}
                        required: [value, valueString]
                    reference:
                      match: {url: reference}
                      schema:
                        short: Where the expression is found
                        index: 48
                        extensions: {}
                        elements:
                          extension: {index: 49}
                          url:
                            pattern: {type: uri, value: reference}
                            type: uri
                            index: 50
                          value:
                            choices: [valueUri]
                            index: 52
                          valueUri: {type: uri, choiceOf: value, index: 53}
                        required: [value, valueUri]
              url:
                type: uri
                pattern: {type: uri, value: expression}
                index: 54
              value:
                choices: []
                index: 56
        human:
          match: {}
          schema:
            type: Extension
            short: Human-readable rule
            _required: true
            index: 57
            extensions: {}
            elements:
              extension: {index: 58}
              url:
                type: uri
                pattern: {type: uri, value: human}
                index: 59
              value:
                choices: [valueString]
                index: 61
              valueString: {type: string, choiceOf: value, index: 62}
            required: [value, valueString]
        location:
          match: {}
          schema:
            type: Extension
            short: Relative path to elements
            array: true
            index: 63
            extensions: {}
            elements:
              extension: {index: 64}
              url:
                type: uri
                pattern: {type: uri, value: location}
                index: 65
              value:
                choices: [valueString]
                index: 67
              valueString: {type: string, choiceOf: value, index: 68}
            required: [value, valueString]
  url:
    pattern: {type: uri, value: 'http://hl7.org/fhir/StructureDefinition/targetConstraint'}
    type: uri
    index: 69
  value:
    choices: []
    index: 71
package_version: 5.3.0-ballot-tc
extensions:
  key:
    url: null
    short: Unique identifier
    type: Extension
    _required: true
    index: 0
    extensions: {}
    elements:
      extension: {index: 1}
      url:
        type: uri
        pattern: {type: uri, value: key}
        index: 2
      value:
        choices: [valueId]
        index: 4
      valueId: {type: id, choiceOf: value, index: 5}
    required: [value, valueId]
  requirements:
    url: null
    type: Extension
    short: Why the constraint is defined
    index: 6
    extensions: {}
    elements:
      extension: {index: 7}
      url:
        type: uri
        pattern: {type: uri, value: requirements}
        index: 8
      value:
        choices: [valueMarkdown]
        index: 10
      valueMarkdown: {type: markdown, choiceOf: value, index: 11}
    required: [value, valueMarkdown]
  severity:
    url: null
    type: Extension
    short: error | warning
    _required: true
    index: 12
    extensions: {}
    elements:
      extension: {index: 13}
      url:
        type: uri
        pattern: {type: uri, value: severity}
        index: 14
      value:
        choices: [valueCode]
        index: 16
      valueCode: {type: code, choiceOf: value, index: 17}
    required: [value, valueCode]
  expression:
    url: null
    short: The invariant expression
    type: Extension
    _required: true
    index: 18
    extensions:
      _datatype:
        url: h
        type: Extension
        short: DataType name 'Expression' from R5
        index: 20
        elements:
          value:
            pattern: {type: string, value: Expression}
            choices: [valueString]
            type: string
            index: 22
          valueString:
            type: string
            pattern: {type: string, value: Expression}
            choiceOf: value
            index: 23
        required: [value, valueString]
      description:
        url: description
        short: Natural language description of the condition
        index: 24
        extensions: {}
        elements:
          extension: {index: 25}
          url:
            pattern: {type: uri, value: description}
            type: uri
            index: 26
          value:
            choices: [valueString]
            index: 28
          valueString: {type: string, choiceOf: value, index: 29}
        required: [value, valueString]
      name:
        url: name
        short: Short name assigned to expression for reuse
        index: 30
        extensions: {}
        elements:
          extension: {index: 31}
          url:
            pattern: {type: uri, value: name}
            type: uri
            index: 32
          value:
            choices: [valueCode]
            index: 34
          valueCode: {type: code, choiceOf: value, index: 35}
        required: [value, valueCode]
      language:
        url: language
        short: text/cql | text/fhirpath | application/x-fhir-query | etc.
        index: 36
        extensions: {}
        elements:
          extension: {index: 37}
          url:
            pattern: {type: uri, value: language}
            type: uri
            index: 38
          value:
            choices: [valueCode]
            index: 40
          valueCode: {type: code, choiceOf: value, index: 41}
        required: [value, valueCode]
      expression:
        url: expression
        short: Expression in specified language
        index: 42
        extensions: {}
        elements:
          extension: {index: 43}
          url:
            pattern: {type: uri, value: expression}
            type: uri
            index: 44
          value:
            choices: [valueString]
            index: 46
          valueString: {type: string, choiceOf: value, index: 47}
        required: [value, valueString]
      reference:
        url: reference
        short: Where the expression is found
        index: 48
        extensions: {}
        elements:
          extension: {index: 49}
          url:
            pattern: {type: uri, value: reference}
            type: uri
            index: 50
          value:
            choices: [valueUri]
            index: 52
          valueUri: {type: uri, choiceOf: value, index: 53}
        required: [value, valueUri]
    elements:
      extension:
        array: true
        index: 19
        slicing:
          rules: open
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: null
          slices:
            _datatype:
              match: {url: null}
              schema:
                type: Extension
                short: DataType name 'Expression' from R5
                url: h
                index: 20
                elements:
                  value:
                    pattern: {type: string, value: Expression}
                    choices: [valueString]
                    type: string
                    index: 22
                  valueString:
                    type: string
                    pattern: {type: string, value: Expression}
                    choiceOf: value
                    index: 23
                required: [value, valueString]
            description:
              match: {url: description}
              schema:
                short: Natural language description of the condition
                index: 24
                extensions: {}
                elements:
                  extension: {index: 25}
                  url:
                    pattern: {type: uri, value: description}
                    type: uri
                    index: 26
                  value:
                    choices: [valueString]
                    index: 28
                  valueString: {type: string, choiceOf: value, index: 29}
                required: [value, valueString]
            name:
              match: {url: name}
              schema:
                short: Short name assigned to expression for reuse
                index: 30
                extensions: {}
                elements:
                  extension: {index: 31}
                  url:
                    pattern: {type: uri, value: name}
                    type: uri
                    index: 32
                  value:
                    choices: [valueCode]
                    index: 34
                  valueCode: {type: code, choiceOf: value, index: 35}
                required: [value, valueCode]
            language:
              match: {url: language}
              schema:
                short: text/cql | text/fhirpath | application/x-fhir-query | etc.
                index: 36
                extensions: {}
                elements:
                  extension: {index: 37}
                  url:
                    pattern: {type: uri, value: language}
                    type: uri
                    index: 38
                  value:
                    choices: [valueCode]
                    index: 40
                  valueCode: {type: code, choiceOf: value, index: 41}
                required: [value, valueCode]
            expression:
              match: {url: expression}
              schema:
                short: Expression in specified language
                index: 42
                extensions: {}
                elements:
                  extension: {index: 43}
                  url:
                    pattern: {type: uri, value: expression}
                    type: uri
                    index: 44
                  value:
                    choices: [valueString]
                    index: 46
                  valueString: {type: string, choiceOf: value, index: 47}
                required: [value, valueString]
            reference:
              match: {url: reference}
              schema:
                short: Where the expression is found
                index: 48
                extensions: {}
                elements:
                  extension: {index: 49}
                  url:
                    pattern: {type: uri, value: reference}
                    type: uri
                    index: 50
                  value:
                    choices: [valueUri]
                    index: 52
                  valueUri: {type: uri, choiceOf: value, index: 53}
                required: [value, valueUri]
      url:
        type: uri
        pattern: {type: uri, value: expression}
        index: 54
      value:
        choices: []
        index: 56
  human:
    url: null
    type: Extension
    short: Human-readable rule
    _required: true
    index: 57
    extensions: {}
    elements:
      extension: {index: 58}
      url:
        type: uri
        pattern: {type: uri, value: human}
        index: 59
      value:
        choices: [valueString]
        index: 61
      valueString: {type: string, choiceOf: value, index: 62}
    required: [value, valueString]
  location:
    url: null
    type: Extension
    short: Relative path to elements
    array: true
    index: 63
    extensions: {}
    elements:
      extension: {index: 64}
      url:
        type: uri
        pattern: {type: uri, value: location}
        index: 65
      value:
        choices: [valueString]
        index: 67
      valueString: {type: string, choiceOf: value, index: 68}
    required: [value, valueString]
class: extension
kind: complex-type
url: http://hl7.org/fhir/StructureDefinition/targetConstraint
base: http://hl7.org/fhir/StructureDefinition/Extension
version: 5.3.0-ballot-tc
required: [extension]