FHIR Extensions Pack
5.4.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.4.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: Target Constraint

Official URL: http://hl7.org/fhir/StructureDefinition/targetConstraint Version: 5.4.0
Standards status: Trial-use Maturity Level: 2 Responsible: HL7 International / Clinical Decision Support Computable Name: TargetConstraint
Other Identifiers: OID:2.16.840.1.113883.4.642.40.97.42.27

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. Instantiation typically happens as part of an operation, for example, the instantiation of a Measure is the MeasureReport that results from evaluating the Measure using the $evaluate operation; the instantiation of a Library.parameter is the actual argument passed to the $evaluate operation; and the instantiation of an ActivityDefinition is the Request resource that results from applying the definition to a specific context using the $apply operation. As an example use case, this extension can be used to define a constraint such as numerator count must be less than or equal to denominator count.

Context of Use

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

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:

  • No changes
  • 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: 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. Instantiation typically happens as part of an operation, for example, the instantiation of a Measure is the MeasureReport that results from evaluating the Measure using the $evaluate operation; the instantiation of a Library.parameter is the actual argument passed to the $evaluate operation; and the instantiation of an ActivityDefinition is the Request resource that results from applying the definition to a specific context using the $apply operation. As an example use case, this extension can be used to define a constraint such as numerator count must be less than or equal to denominator count.

    • key: id: A unique identifier for the invariant (unique in the context of the resource).
    • requirements: markdown: A brief description of why the constraint is necessary or appropriate.
    • severity: code: Whether the constraint indicates an error condition or a warning.
    • expression: Expression: An expression providing a formal representation of the invariant condition.
    • human: string: A free text expression of the rule to display to the user if the rule is violated.
    • location: string: Relative paths to the elements this rule is enforced against.

    Maturity: 2

    This structure is derived from Extension

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    Extension 0..* Extension A constraint on the target resource
    Extension.Slices for extension Content/Rules for all slices
    Extension.Slices for extension.extension:key 1..1 Extension Unique identifier
    Extension.Slices for extension.extension:key.extension 0..0 Extension
    Extension.Slices for extension.extension:key.url 1..1 uri "key"
    Extension.Slices for extension.extension:key.value[x] 1..1 id Value of extension
    Extension.Slices for extension.extension:requirements 0..1 Extension Why the constraint is defined
    Extension.Slices for extension.extension:requirements.extension 0..0 Extension
    Extension.Slices for extension.extension:requirements.url 1..1 uri "requirements"
    Extension.Slices for extension.extension:requirements.value[x] 1..1 markdown Value of extension
    Extension.Slices for extension.extension:severity 1..1 Extension error | warning
    Extension.Slices for extension.extension:severity.extension 0..0 Extension
    Extension.Slices for extension.extension:severity.url 1..1 uri "severity"
    Extension.Slices for extension.extension:severity.value[x] 1..1 code Value of extension
    Binding: ConstraintSeverity (required)
    Extension.Slices for extension.extension:expression 1..1 Extension The invariant expression
    Extension.Slices for extension.extension:expression.extension 0..0 Extension
    Extension.Slices for extension.extension:expression.url 1..1 uri "expression"
    Extension.Slices for extension.extension:expression.value[x] 1..1 Expression Value of extension
    Extension.Slices for extension.extension:expression.value[x].language 0..1 code text/cql | text/fhirpath | application/x-fhir-query | etc.
    Fixed Value: text/fhirpath
    Extension.Slices for extension.extension:human 1..1 Extension Human-readable rule
    Extension.Slices for extension.extension:human.extension 0..0 Extension
    Extension.Slices for extension.extension:human.url 1..1 uri "human"
    Extension.Slices for extension.extension:human.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:location 0..* Extension Relative path to elements
    Extension.Slices for extension.extension:location.extension 0..0 Extension
    Extension.Slices for extension.extension:location.url 1..1 uri "location"
    Extension.Slices for extension.extension:location.value[x] 1..1 string Value of extension
    Extension.url 1..1 uri "http://hl7.org/fhir/StructureDefinition/targetConstraint"
    Extension.value[x] 0..0 Value of extension

    doco Documentation for this format
    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    Extension 0..* Extension A constraint on the target resource
    Extension.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension 4..* Extension Additional content defined by implementations
    Slice: Unordered, Open by value:url
    Extension.Slices for extension.extension:key 1..1 Extension Unique identifier
    Extension.Slices for extension.extension:key.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:key.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:key.url 1..1 uri "key"
    Extension.Slices for extension.extension:key.value[x] 1..1 id Value of extension
    Extension.Slices for extension.extension:requirements 0..1 Extension Why the constraint is defined
    Extension.Slices for extension.extension:requirements.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:requirements.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:requirements.url 1..1 uri "requirements"
    Extension.Slices for extension.extension:requirements.value[x] 1..1 markdown Value of extension
    Extension.Slices for extension.extension:severity 1..1 Extension error | warning
    Extension.Slices for extension.extension:severity.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:severity.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:severity.url 1..1 uri "severity"
    Extension.Slices for extension.extension:severity.value[x] 1..1 code Value of extension
    Binding: ConstraintSeverity (required)
    Extension.Slices for extension.extension:expression 1..1 Extension The invariant expression
    Extension.Slices for extension.extension:expression.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:expression.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:expression.url 1..1 uri "expression"
    Extension.Slices for extension.extension:expression.value[x] 1..1 Expression Value of extension
    Extension.Slices for extension.extension:expression.value[x].id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:expression.value[x].extension 0..* Extension Additional content defined by implementations
    Slice: Unordered, Open by value:url
    Extension.Slices for extension.extension:expression.value[x].description This element is included in summaries. 0..1 string Natural language description of the condition
    Extension.Slices for extension.extension:expression.value[x].name This element is included in summaries. C 0..1 code Short name assigned to expression for reuse
    Extension.Slices for extension.extension:expression.value[x].language This element is included in summaries. 0..1 code text/cql | text/fhirpath | application/x-fhir-query | etc.
    Binding: ExpressionLanguage (extensible): The media type of the expression language.
    Additional BindingsPurpose
    MimeTypes Max Binding

    Fixed Value: text/fhirpath
    Extension.Slices for extension.extension:expression.value[x].expression This element is included in summaries. C 0..1 string Expression in specified language
    Extension.Slices for extension.extension:expression.value[x].reference This element is included in summaries. C 0..1 uri Where the expression is found
    Extension.Slices for extension.extension:human 1..1 Extension Human-readable rule
    Extension.Slices for extension.extension:human.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:human.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:human.url 1..1 uri "human"
    Extension.Slices for extension.extension:human.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:location 0..* Extension Relative path to elements
    Extension.Slices for extension.extension:location.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:location.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:location.url 1..1 uri "location"
    Extension.Slices for extension.extension:location.value[x] 1..1 string Value of extension
    Extension.url 1..1 uri "http://hl7.org/fhir/StructureDefinition/targetConstraint"

    doco Documentation for this format

    This structure is derived from Extension

    Summary

    Complex Extension: 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. Instantiation typically happens as part of an operation, for example, the instantiation of a Measure is the MeasureReport that results from evaluating the Measure using the $evaluate operation; the instantiation of a Library.parameter is the actual argument passed to the $evaluate operation; and the instantiation of an ActivityDefinition is the Request resource that results from applying the definition to a specific context using the $apply operation. As an example use case, this extension can be used to define a constraint such as numerator count must be less than or equal to denominator count.

    • key: id: A unique identifier for the invariant (unique in the context of the resource).
    • requirements: markdown: A brief description of why the constraint is necessary or appropriate.
    • severity: code: Whether the constraint indicates an error condition or a warning.
    • expression: Expression: An expression providing a formal representation of the invariant condition.
    • human: string: A free text expression of the rule to display to the user if the rule is violated.
    • location: string: Relative paths to the elements this rule is enforced against.

    Maturity: 2

    Differential View

    This structure is derived from Extension

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    Extension 0..* Extension A constraint on the target resource
    Extension.Slices for extension Content/Rules for all slices
    Extension.Slices for extension.extension:key 1..1 Extension Unique identifier
    Extension.Slices for extension.extension:key.extension 0..0 Extension
    Extension.Slices for extension.extension:key.url 1..1 uri "key"
    Extension.Slices for extension.extension:key.value[x] 1..1 id Value of extension
    Extension.Slices for extension.extension:requirements 0..1 Extension Why the constraint is defined
    Extension.Slices for extension.extension:requirements.extension 0..0 Extension
    Extension.Slices for extension.extension:requirements.url 1..1 uri "requirements"
    Extension.Slices for extension.extension:requirements.value[x] 1..1 markdown Value of extension
    Extension.Slices for extension.extension:severity 1..1 Extension error | warning
    Extension.Slices for extension.extension:severity.extension 0..0 Extension
    Extension.Slices for extension.extension:severity.url 1..1 uri "severity"
    Extension.Slices for extension.extension:severity.value[x] 1..1 code Value of extension
    Binding: ConstraintSeverity (required)
    Extension.Slices for extension.extension:expression 1..1 Extension The invariant expression
    Extension.Slices for extension.extension:expression.extension 0..0 Extension
    Extension.Slices for extension.extension:expression.url 1..1 uri "expression"
    Extension.Slices for extension.extension:expression.value[x] 1..1 Expression Value of extension
    Extension.Slices for extension.extension:expression.value[x].language 0..1 code text/cql | text/fhirpath | application/x-fhir-query | etc.
    Fixed Value: text/fhirpath
    Extension.Slices for extension.extension:human 1..1 Extension Human-readable rule
    Extension.Slices for extension.extension:human.extension 0..0 Extension
    Extension.Slices for extension.extension:human.url 1..1 uri "human"
    Extension.Slices for extension.extension:human.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:location 0..* Extension Relative path to elements
    Extension.Slices for extension.extension:location.extension 0..0 Extension
    Extension.Slices for extension.extension:location.url 1..1 uri "location"
    Extension.Slices for extension.extension:location.value[x] 1..1 string Value of extension
    Extension.url 1..1 uri "http://hl7.org/fhir/StructureDefinition/targetConstraint"
    Extension.value[x] 0..0 Value of extension

    doco Documentation for this format

    Snapshot View

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    Extension 0..* Extension A constraint on the target resource
    Extension.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension 4..* Extension Additional content defined by implementations
    Slice: Unordered, Open by value:url
    Extension.Slices for extension.extension:key 1..1 Extension Unique identifier
    Extension.Slices for extension.extension:key.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:key.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:key.url 1..1 uri "key"
    Extension.Slices for extension.extension:key.value[x] 1..1 id Value of extension
    Extension.Slices for extension.extension:requirements 0..1 Extension Why the constraint is defined
    Extension.Slices for extension.extension:requirements.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:requirements.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:requirements.url 1..1 uri "requirements"
    Extension.Slices for extension.extension:requirements.value[x] 1..1 markdown Value of extension
    Extension.Slices for extension.extension:severity 1..1 Extension error | warning
    Extension.Slices for extension.extension:severity.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:severity.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:severity.url 1..1 uri "severity"
    Extension.Slices for extension.extension:severity.value[x] 1..1 code Value of extension
    Binding: ConstraintSeverity (required)
    Extension.Slices for extension.extension:expression 1..1 Extension The invariant expression
    Extension.Slices for extension.extension:expression.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:expression.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:expression.url 1..1 uri "expression"
    Extension.Slices for extension.extension:expression.value[x] 1..1 Expression Value of extension
    Extension.Slices for extension.extension:expression.value[x].id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:expression.value[x].extension 0..* Extension Additional content defined by implementations
    Slice: Unordered, Open by value:url
    Extension.Slices for extension.extension:expression.value[x].description This element is included in summaries. 0..1 string Natural language description of the condition
    Extension.Slices for extension.extension:expression.value[x].name This element is included in summaries. C 0..1 code Short name assigned to expression for reuse
    Extension.Slices for extension.extension:expression.value[x].language This element is included in summaries. 0..1 code text/cql | text/fhirpath | application/x-fhir-query | etc.
    Binding: ExpressionLanguage (extensible): The media type of the expression language.
    Additional BindingsPurpose
    MimeTypes Max Binding

    Fixed Value: text/fhirpath
    Extension.Slices for extension.extension:expression.value[x].expression This element is included in summaries. C 0..1 string Expression in specified language
    Extension.Slices for extension.extension:expression.value[x].reference This element is included in summaries. C 0..1 uri Where the expression is found
    Extension.Slices for extension.extension:human 1..1 Extension Human-readable rule
    Extension.Slices for extension.extension:human.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:human.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:human.url 1..1 uri "human"
    Extension.Slices for extension.extension:human.value[x] 1..1 string Value of extension
    Extension.Slices for extension.extension:location 0..* Extension Relative path to elements
    Extension.Slices for extension.extension:location.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:location.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:location.url 1..1 uri "location"
    Extension.Slices for extension.extension:location.value[x] 1..1 string Value of extension
    Extension.url 1..1 uri "http://hl7.org/fhir/StructureDefinition/targetConstraint"

    doco Documentation for this format

     

    Other representations of profile: CSV, Excel, Schematron

    Terminology Bindings

    Path Status Usage ValueSet Version Source
    Extension.extension:severity.​value[x] Base required ConstraintSeverity 📦5.0.0 FHIR Std.
    Extension.extension:expression.​value[x].language Base extensible Expression Language 📍5.0.0 FHIR Std.

    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 extension context PlanDefinition.actor (not for this version)
    • 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 A constraint on the target resource
    Extension. Slices for extension Content/Rules for all slices
    Extension.Slices for extension. extension:key 1..1 Extension Unique identifier
    Extension.Slices for extension.extension:key. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:key. url 1 .. 1 uri "key"
    Extension.Slices for extension.extension:key. value[x] 1.. 1 id Value of extension
    Extension.Slices for extension. extension:requirements 0..1 Extension Why the constraint is defined
    Extension.Slices for extension.extension:requirements. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:requirements. url 1 .. 1 uri "requirements"
    Extension.Slices for extension.extension:requirements. value[x] 1.. 1 markdown Value of extension
    Extension.Slices for extension. extension:severity 1..1 Extension error | warning
    Extension.Slices for extension.extension:severity. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:severity. url 1 .. 1 uri "severity"
    Extension.Slices for extension.extension:severity. value[x] 1.. 1 code Value of extension
    Binding: ConstraintSeverity ( required )
    Extension.Slices for extension. extension:expression 1..1 Extension The invariant expression
    Extension.Slices for extension.extension:expression. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:expression. url 1 .. 1 uri "expression"
    Extension.Slices for extension.extension:expression. value[x] 1.. 1 Expression Value of extension
    Extension.Slices for extension. extension:human 1..1 Extension Human-readable rule
    Extension.Slices for extension.extension:human. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:human. url 1 .. 1 uri "human"
    Extension.Slices for extension.extension:human. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:location 0..* Extension Relative path to elements
    Extension.Slices for extension.extension:location. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:location. url 1 .. 1 uri "location"
    Extension.Slices for extension.extension:location. value[x] 1.. 1 string Value of extension
    Extension. url 1 .. 1 uri "http://hl7.org/fhir/StructureDefinition/targetConstraint"
    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 extension context PlanDefinition.actor (not for this version)
    • 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 A constraint on the target resource
    Extension. Slices for extension Content/Rules for all slices
    Extension.Slices for extension. extension:key 1..1 Extension Unique identifier
    Extension.Slices for extension.extension:key. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:key. url 1 .. 1 uri "key"
    Extension.Slices for extension.extension:key. value[x] 1.. 1 id Value of extension
    Extension.Slices for extension. extension:requirements 0..1 Extension Why the constraint is defined
    Extension.Slices for extension.extension:requirements. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:requirements. url 1 .. 1 uri "requirements"
    Extension.Slices for extension.extension:requirements. value[x] 1.. 1 markdown Value of extension
    Extension.Slices for extension. extension:severity 1..1 Extension error | warning
    Extension.Slices for extension.extension:severity. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:severity. url 1 .. 1 uri "severity"
    Extension.Slices for extension.extension:severity. value[x] 1.. 1 code Value of extension
    Binding: ConstraintSeverity ( required )
    Extension.Slices for extension. extension:expression 1..1 Extension The invariant expression
    Extension.Slices for extension.extension:expression. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:expression. url 1 .. 1 uri "expression"
    Extension.Slices for extension.extension:expression. value[x] 1.. 1 Expression Value of extension
    Extension.Slices for extension. extension:human 1..1 Extension Human-readable rule
    Extension.Slices for extension.extension:human. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:human. url 1 .. 1 uri "human"
    Extension.Slices for extension.extension:human. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:location 0..* Extension Relative path to elements
    Extension.Slices for extension.extension:location. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:location. url 1 .. 1 uri "location"
    Extension.Slices for extension.extension:location. value[x] 1.. 1 string Value of extension
    Extension. url 1 .. 1 uri "http://hl7.org/fhir/StructureDefinition/targetConstraint"
    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 extension context PlanDefinition.actor (not for this version)
    • Replace the type Expression 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 A constraint on the target resource
    Extension. Slices for extension Content/Rules for all slices
    Extension.Slices for extension. extension:key 1..1 Extension Unique identifier
    Extension.Slices for extension.extension:key. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:key. url 1 .. 1 uri "key"
    Extension.Slices for extension.extension:key. value[x] 1.. 1 id Value of extension
    Extension.Slices for extension. extension:requirements 0..1 Extension Why the constraint is defined
    Extension.Slices for extension.extension:requirements. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:requirements. url 1 .. 1 uri "requirements"
    Extension.Slices for extension.extension:requirements. value[x] 1.. 1 markdown Value of extension
    Extension.Slices for extension. extension:severity 1..1 Extension error | warning
    Extension.Slices for extension.extension:severity. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:severity. url 1 .. 1 uri "severity"
    Extension.Slices for extension.extension:severity. value[x] 1.. 1 code Value of extension
    Binding: ConstraintSeverity ( required )
    Extension.Slices for extension. extension:expression 1..1 Extension The invariant expression
    Extension.Slices for extension.extension:expression. Slices for extension 0 ..* Extension Extension
    Slice: Unordered, Open by value:url
    Extension.Slices for extension.extension:expression. Slices for extension Content/Rules for all slices
    Extension.Slices for extension.extension:expression.Slices for extension. extension:_datatype 1..1 (Complex) DataType name 'Expression' from R5
    URL: http://hl7.org/fhir/StructureDefinition/_datatype
    Extension.Slices for extension.extension:expression.Slices for extension.extension:_datatype. value[x] 1.. 1 string Value of extension
    Fixed Value: Expression
    Extension.Slices for extension.extension:expression.Slices for extension. extension:description 0..1 Extension Natural language description of the condition
    Extension.Slices for extension.extension:expression.Slices for extension.extension:description. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:expression.Slices for extension.extension:description. url 1 .. 1 uri "description"
    Extension.Slices for extension.extension:expression.Slices for extension.extension:description. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension.extension:expression.Slices for extension. extension:name 0..1 Extension Short name assigned to expression for reuse
    Extension.Slices for extension.extension:expression.Slices for extension.extension:name. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:expression.Slices for extension.extension:name. url 1 .. 1 uri "name"
    Extension.Slices for extension.extension:expression.Slices for extension.extension:name. value[x] 1.. 1 code Value of extension
    Extension.Slices for extension.extension:expression.Slices for extension. extension:language 0..1 Extension text/cql | text/fhirpath | application/x-fhir-query | etc.
    Extension.Slices for extension.extension:expression.Slices for extension.extension:language. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:expression.Slices for extension.extension:language. url 1 .. 1 uri "language"
    Extension.Slices for extension.extension:expression.Slices for extension.extension:language. value[x] 1.. 1 code Value of extension
    Binding: ExpressionLanguage ( extensible ) : The media type of the expression language.
    Additional Bindings Purpose
    MimeTypes Max Binding
    Extension.Slices for extension.extension:expression.Slices for extension. extension:expression 0..1 Extension Expression in specified language
    Extension.Slices for extension.extension:expression.Slices for extension.extension:expression. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:expression.Slices for extension.extension:expression. url 1 .. 1 uri "expression"
    Extension.Slices for extension.extension:expression.Slices for extension.extension:expression. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension.extension:expression.Slices for extension. extension:reference 0..1 Extension Where the expression is found
    Extension.Slices for extension.extension:expression.Slices for extension.extension:reference. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:expression.Slices for extension.extension:reference. url 1 .. 1 uri "reference"
    Extension.Slices for extension.extension:expression.Slices for extension.extension:reference. value[x] 1.. 1 uri Value of extension
    Extension.Slices for extension.extension:expression. url 1 .. 1 uri "expression"
    Extension.Slices for extension.extension:expression. value[x] 0 .. 0 Value of extension
    Extension.Slices for extension. extension:human 1..1 Extension Human-readable rule
    Extension.Slices for extension.extension:human. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:human. url 1 .. 1 uri "human"
    Extension.Slices for extension.extension:human. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension. extension:location 0..* Extension Relative path to elements
    Extension.Slices for extension.extension:location. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:location. url 1 .. 1 uri "location"
    Extension.Slices for extension.extension:location. value[x] 1.. 1 string Value of extension
    Extension. url 1 .. 1 uri "http://hl7.org/fhir/StructureDefinition/targetConstraint"
    Extension. value[x] 0 .. 0 Value of extension

    doco Documentation for this format

    Notes:

    When reporting the results of this custom validation rule via an OperationOutcome (issue), the following property mappings should be considered:

    Issue property Constraint property Comments
    severity severity  
    code 'Invariant' Fixed code value from issue-type CodeSystem
    details.coding.system Questionnaire.url Canonical URL of Questionnaire that contains this constraint
    details.coding.code key  
    details.coding.display human This is the human readable error message
    details.text human This value can also be displayed to a user (instead of the coding.display above) and is often useful to also prefix the {}human{} value with the display text from the item(s)
    diagnostics expression The validation fhirpath expression (helps diagnose issues with validation rules)
    expression evaluate location The location expression should be evaluated on the QuestionnaireResponse (or item) to provide the location(s) of the error to permit a User Interface to show the error associated with the specific field(s) that caused the error/warning

    The location component is a FHIRPath expression that should be executed on the target resource (or item that the constraint is associated with) to locate the path of the property(s) that should be flagged to the user when the constraint is violated.

    When the location property is missing, it is assumed that the path of the answer being validated should be reported in the issue, and the path to the item in the target resource being validated should be used in the issue.expression field

    e.g. A Questionnaire that has a group (g1) with 2 items (acc-date and review-date).

    A validation rule will be added on the g1 item:

    "url":"http://example.org/Questionnaire/abc",
    ...
    "linkId":"q1",
    "text": "Question 1",
    { 
        "key": "seq-dt", 
        "severity": "error", 
        "expression" : "item.where(linkId='acc-date').answer.first().trace('acc-date') < %resource.authored.trace('authored')", 
        "human": "The accident date must be before the completion date of the form", 
        "location": "item.where(linkId='acc-date').answer.first()" 
    }
    

    Example issue created from the above invariant example

    {
      "severity": "error",
      "code": "Invariant",
      "details": {
        "coding": [{
          "system": "http://example.org/Questionnaire/abc", 
          "code" : "seq-dt", 
          "display": "The accident date must be before the review date"
        }],
        "text":"Question 1: The accident date must be before the completion date"
      },
      "diagnostics": "item.where(linkId='acc-date').answer.first().trace('acc-date') <  %resource.authored.trace('authored') acc-date: 2024-03-17; authored: 2024-02-01",
      "expression": ["QuestionnaireResponse.item[0].item[1].answer[0].value[0]"]
    }
    

    Search Parameters for this Extension

    (none found)