Release 5 Ballot

This page is part of the FHIR Specification (v5.0.0-ballot: FHIR R5 Ballot Preview). 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..1idA unique identifier for the invariant (unique in the context of the resource).

... requirements0..1stringA brief description of why the invariant is necessary or appropriate.

... severity1..1codeWhether the invariant indicates an error condition or a warning.


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
.... valueBase64Binarybase64Binary
.... valueBooleanboolean
.... valueCanonicalcanonical(Any)
.... valueCodecode
.... valueDatedate
.... valueDateTimedateTime
.... valueDecimaldecimal
.... valueIdid
.... valueInstantinstant
.... valueIntegerinteger
.... valueInteger64integer64
.... valueMarkdownmarkdown
.... valueOidoid
.... valuePositiveIntpositiveInt
.... valueStringstring
.... valueTimetime
.... valueUnsignedIntunsignedInt
.... valueUriuri
.... valueUrlurl
.... valueUuiduuid
.... valueAddressAddress
.... valueAgeAge
.... valueAnnotationAnnotation
.... valueAttachmentAttachment
.... valueCodeableConceptCodeableConcept
.... valueCodeableReferenceCodeableReference
.... valueCodingCoding
.... valueContactPointContactPoint
.... valueCountCount
.... valueDistanceDistance
.... valueDurationDuration
.... valueHumanNameHumanName
.... valueIdentifierIdentifier
.... valueMoneyMoney
.... valuePeriodPeriod
.... valueQuantityQuantity
.... valueRangeRange
.... valueRatioRatio
.... valueRatioRangeRatioRange
.... valueReferenceReference(Any)
.... valueSampledDataSampledData
.... valueSignatureSignature
.... valueTimingTiming
.... valueContactDetailContactDetail
.... valueDataRequirementDataRequirement
.... valueExpressionExpression
.... valueParameterDefinitionParameterDefinition
.... valueRelatedArtifactRelatedArtifact
.... valueTriggerDefinitionTriggerDefinition
.... valueUsageContextUsageContext
.... valueAvailabilityAvailability
.... valueExtendedContactDetailExtendedContactDetail
.... valueDosageDosage
.... valueMetaMeta

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..1idA unique identifier for the invariant (unique in the context of the resource).

... requirements0..1stringA brief description of why the invariant is necessary or appropriate.

... severity1..1codeWhether the invariant indicates an error condition or a warning.


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
.... valueBase64Binarybase64Binary
.... valueBooleanboolean
.... valueCanonicalcanonical(Any)
.... valueCodecode
.... valueDatedate
.... valueDateTimedateTime
.... valueDecimaldecimal
.... valueIdid
.... valueInstantinstant
.... valueIntegerinteger
.... valueInteger64integer64
.... valueMarkdownmarkdown
.... valueOidoid
.... valuePositiveIntpositiveInt
.... valueStringstring
.... valueTimetime
.... valueUnsignedIntunsignedInt
.... valueUriuri
.... valueUrlurl
.... valueUuiduuid
.... valueAddressAddress
.... valueAgeAge
.... valueAnnotationAnnotation
.... valueAttachmentAttachment
.... valueCodeableConceptCodeableConcept
.... valueCodeableReferenceCodeableReference
.... valueCodingCoding
.... valueContactPointContactPoint
.... valueCountCount
.... valueDistanceDistance
.... valueDurationDuration
.... valueHumanNameHumanName
.... valueIdentifierIdentifier
.... valueMoneyMoney
.... valuePeriodPeriod
.... valueQuantityQuantity
.... valueRangeRange
.... valueRatioRatio
.... valueRatioRangeRatioRange
.... valueReferenceReference(Any)
.... valueSampledDataSampledData
.... valueSignatureSignature
.... valueTimingTiming
.... valueContactDetailContactDetail
.... valueDataRequirementDataRequirement
.... valueExpressionExpression
.... valueParameterDefinitionParameterDefinition
.... valueRelatedArtifactRelatedArtifact
.... valueTriggerDefinitionTriggerDefinition
.... valueUsageContextUsageContext
.... valueAvailabilityAvailability
.... valueExtendedContactDetailExtendedContactDetail
.... valueDosageDosage
.... valueMetaMeta

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.