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: Questionnaire Constraint

FHIR Infrastructure Work Group Maturity Level: 1Trial UseUse Context: Any
Official URL: http://hl7.org/fhir/StructureDefinition/questionnaire-constraint Version: 5.0.0-snapshot3
draft as of 2013-07-04 Computable Name: QConstraint
Flags: Non-Modifier OID: 2.16.840.1.113883.4.642.5.1247

Context of Use: Use on Element ID Questionnaire, Element ID Questionnaire.item or Element ID ElementDefinition

Definition

An invariant that must be satisfied before responses to the questionnaire can be considered "complete".

Comment:

This maps to the ElementDefinition.constraint element. See additional guidance and examples in the SDC implementation guide.

Extension Content

Summary

NameFlagsCard.TypeDescription & Constraintsdoco
.. QConstraint0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/questionnaire-constraint
QConstraint: An invariant that must be satisfied before responses to the questionnaire can be considered "complete".


Use on Element ID Questionnaire, Element ID Questionnaire.item or Element ID ElementDefinition
... key1..1idUnique identifier

... requirements0..1stringWhy needed

... severity1..1codeerror|warning

Binding: ConstraintSeverity (required): How important the invariant is.


... human1..1stringHuman-readable rule

... location0..*stringRelative path to elements


doco Documentation for this format

Full Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. extension0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/questionnaire-constraint
QConstraint: An invariant that must be satisfied before responses to the questionnaire can be considered "complete".


Use on Element ID Questionnaire, Element ID Questionnaire.item or Element ID ElementDefinition
... 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 needed
.... 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): How important the invariant is.

... extension:expression 1..1ExtensionFormal rule
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"expression"
.... value[x] 1..1stringValue of extension
... extension:human 1..1ExtensionHuman-readable rule
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"human"
.... value[x] 1..1stringValue of extension
... extension:location 0..*ExtensionRelative path to elements
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"location"
.... value[x] 1..1stringValue of extension
... url 1..1uri"http://hl7.org/fhir/StructureDefinition/questionnaire-constraint"
... value[x] 0..0

doco Documentation for this format

XML Template

<!-- QConstraint -->doco

<extension xmlns="http://hl7.org/fhir"
     url="http://hl7.org/fhir/StructureDefinition/questionnaire-constraint" >
 <-- 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 needed -->
  <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 Formal rule -->
  <valueString value="[string]"/><!-- I 1..1 Value of extension -->
 </extension>
 <extension url="human"> I 1..1 Extension  <!-- I 1..1 Human-readable rule -->
  <valueString value="[string]"/><!-- I 1..1 Value of extension -->
 </extension>
 <extension url="location"> I 0..* Extension  <!-- I 0..* Relative path to elements -->
  <valueString value="[string]"/><!-- I 1..1 Value of extension -->
 </extension>
</extension>

JSON Template

{ // QConstraint
    "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 needed // 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
      },
      { // Formal rule // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "expression", // R! 
        "valueString" : "<string>" // I R! Value of extension
      },
      { // Human-readable rule // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "human", // R! 
        "valueString" : "<string>" // I R! Value of extension
      },
      { // Relative path to elements // I
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "location", // R! 
        "valueString" : "<string>" // I R! Value of extension
      }
    ],
    "extension" : [{ Extension }], // IAdditional content defined by implementations
    "extension" : { Extension }, // I R! Unique identifier
    "extension" : { Extension }, // IWhy needed
    "extension" : { Extension }, // I R! error|warning
    "extension" : { Extension }, // I R! Formal rule
    "extension" : { Extension }, // I R! Human-readable rule
    "extension" : [{ Extension }], // IRelative path to elements
    "url" : "http://hl7.org/fhir/StructureDefinition/questionnaire-constraint" // R! 
  // value[x]: Value of extension: Prohibited
  }

Summary

NameFlagsCard.TypeDescription & Constraintsdoco
.. QConstraint0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/questionnaire-constraint
QConstraint: An invariant that must be satisfied before responses to the questionnaire can be considered "complete".


Use on Element ID Questionnaire, Element ID Questionnaire.item or Element ID ElementDefinition
... key1..1idUnique identifier

... requirements0..1stringWhy needed

... severity1..1codeerror|warning

Binding: ConstraintSeverity (required): How important the invariant is.


... human1..1stringHuman-readable rule

... location0..*stringRelative path to elements


doco Documentation for this format

Full Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. extension0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/questionnaire-constraint
QConstraint: An invariant that must be satisfied before responses to the questionnaire can be considered "complete".


Use on Element ID Questionnaire, Element ID Questionnaire.item or Element ID ElementDefinition
... 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 needed
.... 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): How important the invariant is.

... extension:expression 1..1ExtensionFormal rule
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"expression"
.... value[x] 1..1stringValue of extension
... extension:human 1..1ExtensionHuman-readable rule
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"human"
.... value[x] 1..1stringValue of extension
... extension:location 0..*ExtensionRelative path to elements
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"location"
.... value[x] 1..1stringValue of extension
... url 1..1uri"http://hl7.org/fhir/StructureDefinition/questionnaire-constraint"
... value[x] 0..0

doco Documentation for this format

XML Template

<!-- QConstraint -->doco

<extension xmlns="http://hl7.org/fhir"
     url="http://hl7.org/fhir/StructureDefinition/questionnaire-constraint" >
 <-- 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 needed -->
  <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 Formal rule -->
  <valueString value="[string]"/><!-- I 1..1 Value of extension -->
 </extension>
 <extension url="human"> I 1..1 Extension  <!-- I 1..1 Human-readable rule -->
  <valueString value="[string]"/><!-- I 1..1 Value of extension -->
 </extension>
 <extension url="location"> I 0..* Extension  <!-- I 0..* Relative path to elements -->
  <valueString value="[string]"/><!-- I 1..1 Value of extension -->
 </extension>
</extension>

JSON Template

{ // QConstraint
    "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 needed // 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
      },
      { // Formal rule // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "expression", // R! 
        "valueString" : "<string>" // I R! Value of extension
      },
      { // Human-readable rule // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "human", // R! 
        "valueString" : "<string>" // I R! Value of extension
      },
      { // Relative path to elements // I
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "location", // R! 
        "valueString" : "<string>" // I R! Value of extension
      }
    ],
    "extension" : [{ Extension }], // IAdditional content defined by implementations
    "extension" : { Extension }, // I R! Unique identifier
    "extension" : { Extension }, // IWhy needed
    "extension" : { Extension }, // I R! error|warning
    "extension" : { Extension }, // I R! Formal rule
    "extension" : { Extension }, // I R! Human-readable rule
    "extension" : [{ Extension }], // IRelative path to elements
    "url" : "http://hl7.org/fhir/StructureDefinition/questionnaire-constraint" // 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.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.