Release 5 Ballot

This page is part of the FHIR Specification (v5.0.0-ballot: R5 Ballot - see ballot notes). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions

Extension: targetInvariant

FHIR Infrastructure Work Group Maturity Level: 1InformativeUse Context: Any

Summary

Defining URL:http://hl7.org/fhir/StructureDefinition/cqf-targetInvariant
Version:5.0.0-ballot
Name:targetInvariant
Title:null
Modifier:This extension is not a modifier extension
Status:draft
Definition:Specifies an invariant that is enforced in the context of an instantiated resource.
Committee:FHIR Infrastructure Work Group

Status: draft. Extension maintained by: Health Level Seven, Inc. - CDS WG

Specifies an invariant that is enforced in the context of an instantiated resource.

Comment:

Can be used on any definitional artifact to define an invariant that is enforced in the context of an instantiated resource. The invariant expression will have access to %target and %definition variables, where target is the instantiated resource, and definition is the definition used to instantiate.

Context of Use: Use on Element ID Element

Extension Content

Summary

NameFlagsCard.TypeDescription & Constraintsdoco
.. targetInvariant0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/cqf-targetInvariant
targetInvariant: Specifies an invariant that is enforced in the context of an instantiated resource.


Use on Element ID Element
... key1..1idUnique identifier

... requirements0..1stringWhy the invariant is defined

... severity1..1codeerror | warning

Binding: ConstraintSeverity (required)

doco Documentation for this format

Full Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. extension0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/cqf-targetInvariant
targetInvariant: Specifies an invariant that is enforced in the context of an instantiated resource.


Use on Element ID Element
... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... extension:key 1..1ExtensionUnique identifier
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"key"
.... value[x] 1..1idValue of extension
... extension:requirements 0..1ExtensionWhy the invariant is defined
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"requirements"
.... value[x] 1..1stringValue of extension
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"severity"
.... value[x] 1..1codeValue of extension
Binding: ConstraintSeverity (required)
... extension:expression 1..1ExtensionThe invariant expression
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"expression"
.... value[x] 1..1ExpressionValue of extension
... url 1..1uri"http://hl7.org/fhir/StructureDefinition/cqf-targetInvariant"
... value[x] 0..0

doco Documentation for this format

XML Template

<!-- targetInvariant -->doco

<extension xmlns="http://hl7.org/fhir"
     url="http://hl7.org/fhir/StructureDefinition/cqf-targetInvariant" >
 <-- extension sliced by value:url  in the specified orderOpen-->
 <extension url="key"> I 1..1 Extension  <!-- I 1..1 Unique identifier -->
  <valueId value="[id]"/><!-- I 1..1 Value of extension -->
 </extension>
 <extension url="requirements"> I 0..1 Extension  <!-- I 0..1 Why the invariant is defined -->
  <valueString value="[string]"/><!-- I 1..1 Value of extension -->
 </extension>
 <extension url="severity"> I 1..1 Extension  <!-- I 1..1 error | warning -->
  <valueCode value="[code]"/><!-- I 1..1 Value of extension -->
 </extension>
 <extension url="expression"> I 1..1 Extension  <!-- I 1..1 The invariant expression -->
  <valueExpression><!-- I 1..1 Expression 
      Value of extension --></valueExpression>
 </extension>
</extension>

JSON Template

{ // targetInvariant
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Unique identifier // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "key", // R! 
        "valueId" : "<id>" // I R! Value of extension
      },
      { // Why the invariant is defined // I
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "requirements", // R! 
        "valueString" : "<string>" // I R! Value of extension
      },
      { // error | warning // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "severity", // R! 
        "valueCode" : "<code>" // I R! Value of extension
      },
      { // The invariant expression // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "expression", // R! 
        "valueExpression" : { Expression } // I R! Value of extension
      }
    ],
    "extension" : [{ Extension }], // IAdditional content defined by implementations
    "extension" : { Extension }, // I R! Unique identifier
    "extension" : { Extension }, // IWhy the invariant is defined
    "extension" : { Extension }, // I R! error | warning
    "extension" : { Extension }, // I R! The invariant expression
    "url" : "http://hl7.org/fhir/StructureDefinition/cqf-targetInvariant" // R! 
  // value[x]: Value of extension: Prohibited
  }

Summary

NameFlagsCard.TypeDescription & Constraintsdoco
.. targetInvariant0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/cqf-targetInvariant
targetInvariant: Specifies an invariant that is enforced in the context of an instantiated resource.


Use on Element ID Element
... key1..1idUnique identifier

... requirements0..1stringWhy the invariant is defined

... severity1..1codeerror | warning

Binding: ConstraintSeverity (required)

doco Documentation for this format

Full Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. extension0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/cqf-targetInvariant
targetInvariant: Specifies an invariant that is enforced in the context of an instantiated resource.


Use on Element ID Element
... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... extension:key 1..1ExtensionUnique identifier
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"key"
.... value[x] 1..1idValue of extension
... extension:requirements 0..1ExtensionWhy the invariant is defined
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"requirements"
.... value[x] 1..1stringValue of extension
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"severity"
.... value[x] 1..1codeValue of extension
Binding: ConstraintSeverity (required)
... extension:expression 1..1ExtensionThe invariant expression
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"expression"
.... value[x] 1..1ExpressionValue of extension
... url 1..1uri"http://hl7.org/fhir/StructureDefinition/cqf-targetInvariant"
... value[x] 0..0

doco Documentation for this format

XML Template

<!-- targetInvariant -->doco

<extension xmlns="http://hl7.org/fhir"
     url="http://hl7.org/fhir/StructureDefinition/cqf-targetInvariant" >
 <-- extension sliced by value:url  in the specified orderOpen-->
 <extension url="key"> I 1..1 Extension  <!-- I 1..1 Unique identifier -->
  <valueId value="[id]"/><!-- I 1..1 Value of extension -->
 </extension>
 <extension url="requirements"> I 0..1 Extension  <!-- I 0..1 Why the invariant is defined -->
  <valueString value="[string]"/><!-- I 1..1 Value of extension -->
 </extension>
 <extension url="severity"> I 1..1 Extension  <!-- I 1..1 error | warning -->
  <valueCode value="[code]"/><!-- I 1..1 Value of extension -->
 </extension>
 <extension url="expression"> I 1..1 Extension  <!-- I 1..1 The invariant expression -->
  <valueExpression><!-- I 1..1 Expression 
      Value of extension --></valueExpression>
 </extension>
</extension>

JSON Template

{ // targetInvariant
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Unique identifier // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "key", // R! 
        "valueId" : "<id>" // I R! Value of extension
      },
      { // Why the invariant is defined // I
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "requirements", // R! 
        "valueString" : "<string>" // I R! Value of extension
      },
      { // error | warning // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "severity", // R! 
        "valueCode" : "<code>" // I R! Value of extension
      },
      { // The invariant expression // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "expression", // R! 
        "valueExpression" : { Expression } // I R! Value of extension
      }
    ],
    "extension" : [{ Extension }], // IAdditional content defined by implementations
    "extension" : { Extension }, // I R! Unique identifier
    "extension" : { Extension }, // IWhy the invariant is defined
    "extension" : { Extension }, // I R! error | warning
    "extension" : { Extension }, // I R! The invariant expression
    "url" : "http://hl7.org/fhir/StructureDefinition/cqf-targetInvariant" // R! 
  // value[x]: Value of extension: Prohibited
  }

 

Constraints

  • ele-1: All FHIR elements must have a @value or children (xpath: @value|f:*|h:div)
  • ext-1: Must have either extensions or value[x], not both (xpath: exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')]))
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div)
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div)
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div)
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div)
  • ele-1: On Extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.value[x]: @value|f:*|h:div)

Search

No Search Extensions defined for this resource

Examples of this extension

No examples found.