Snapshot 3: Connectathon 32 Base

This is Snapshot #3 for FHIR R5, released to support Connectathon 32. For a full list of available versions, see the Directory of published versions.

Extension: targetInvariant

FHIR Infrastructure Work Group Maturity Level: 1Trial UseUse Context: Any
Official URL: http://hl7.org/fhir/StructureDefinition/cqf-targetInvariant Version: 5.0.0-snapshot3
draft as of 2015-05-30 Computable Name: targetInvariant
Flags: Non-Modifier OID: TBD

Context of Use: Use on Element ID Element

Definition

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.

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: hasValue() or (children().count() > id.count()))
  • ext-1: Must have either extensions or value[x], not both (xpath: extension.exists() != value.exists())
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: hasValue() or (children().count() > id.count()))
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: extension.exists() != value.exists())
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: hasValue() or (children().count() > id.count()))
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: extension.exists() != value.exists())
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: hasValue() or (children().count() > id.count()))
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: extension.exists() != value.exists())
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: hasValue() or (children().count() > id.count()))
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: hasValue() or (children().count() > id.count()))
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: extension.exists() != value.exists())
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: hasValue() or (children().count() > id.count()))
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: extension.exists() != value.exists())
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: hasValue() or (children().count() > id.count()))
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: hasValue() or (children().count() > id.count()))
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: extension.exists() != value.exists())
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: hasValue() or (children().count() > id.count()))
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: extension.exists() != value.exists())
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: hasValue() or (children().count() > id.count()))
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: hasValue() or (children().count() > id.count()))
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: extension.exists() != value.exists())
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: hasValue() or (children().count() > id.count()))
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: extension.exists() != value.exists())
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: hasValue() or (children().count() > id.count()))
  • ele-1: On Extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.value[x]: hasValue() or (children().count() > id.count()))

Search

No Search Extensions defined for this resource

Examples of this extension

No examples found.