| FHIR Infrastructure Work Group | Maturity Level: 1 | Informative | Use Context: Any | 
URL for this extension:
http://hl7.org/fhir/StructureDefinition/questionnaire-constraint
Status: draft. Extension maintained by: HL7
An invariant that must be satisfied before responses to the questionnaire can be considered "complete".
Comment:
This maps to the ElementDefinition.constraint element.
Context of Use: Use on Element ID Questionnaire, Element ID Questionnaire.item or Element ID Questionnaire.item.item
Summary
| Name | Flags | Card. | Type | Description & Constraints![]()  | 
|---|---|---|---|---|
![]()  | 0..* | Extension | URL = http://hl7.org/fhir/StructureDefinition/questionnaire-constraint constraint: 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 Questionnaire.item.item  | |
![]() ![]()  | 1..1 | id | Unique id for the constraint within the questionnaire. | |
![]() ![]()  | 0..1 | string | An explanation of why this extension is required (for documentation purposes). | |
![]() ![]()  | 1..1 | code | Indicates how serious violating the invariant is. | |
![]() ![]()  | 1..1 | string | The FHIRPath expression of the rule for computable interpretation. | |
![]() ![]()  | 1..1 | string | A free text expression of the rule to display to the user if the rule is violated. | |
![]() ![]()  | 0..* | string | Relative paths to the questions this rule is enforced against. | |
  Documentation for this format | ||||
Full Structure
| Name | Flags | Card. | Type | Description & Constraints![]()  | 
|---|---|---|---|---|
![]()  | 0..* | Extension | URL = http://hl7.org/fhir/StructureDefinition/questionnaire-constraint constraint: 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 Questionnaire.item.item  | |
![]() ![]()  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url  | |
![]() ![]()  | 1..1 | Extension | Unique identifier | |
![]() ![]() ![]()  | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | 1..1 | uri | "key" | |
![]() ![]() ![]()  | 1..1 | id | Value of extension | |
![]() ![]()  | 0..1 | Extension | Why needed | |
![]() ![]() ![]()  | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | 1..1 | uri | "requirements" | |
![]() ![]() ![]()  | 1..1 | string | Value of extension | |
![]() ![]()  | 1..1 | Extension | error|warning | |
![]() ![]() ![]()  | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | 1..1 | uri | "severity" | |
![]() ![]() ![]()  | 1..1 | code | Value of extension Binding: ConstraintSeverity (required): How important the invariant is.  | |
![]() ![]()  | 1..1 | Extension | Formal rule | |
![]() ![]() ![]()  | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | 1..1 | uri | "expression" | |
![]() ![]() ![]()  | 1..1 | string | Value of extension | |
![]() ![]()  | 1..1 | Extension | Human-readable rule | |
![]() ![]() ![]()  | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | 1..1 | uri | "human" | |
![]() ![]() ![]()  | 1..1 | string | Value of extension | |
![]() ![]()  | 0..* | Extension | Relative path to elements | |
![]() ![]() ![]()  | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | 1..1 | uri | "location" | |
![]() ![]() ![]()  | 1..1 | string | Value of extension | |
![]() ![]()  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/questionnaire-constraint" | |
![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | base64Binary | |||
![]() ![]() ![]()  | boolean | |||
![]() ![]() ![]()  | canonical(Any) | |||
![]() ![]() ![]()  | code | |||
![]() ![]() ![]()  | date | |||
![]() ![]() ![]()  | dateTime | |||
![]() ![]() ![]()  | decimal | |||
![]() ![]() ![]()  | id | |||
![]() ![]() ![]()  | instant | |||
![]() ![]() ![]()  | integer | |||
![]() ![]() ![]()  | markdown | |||
![]() ![]() ![]()  | oid | |||
![]() ![]() ![]()  | positiveInt | |||
![]() ![]() ![]()  | string | |||
![]() ![]() ![]()  | time | |||
![]() ![]() ![]()  | unsignedInt | |||
![]() ![]() ![]()  | uri | |||
![]() ![]() ![]()  | url | |||
![]() ![]() ![]()  | uuid | |||
![]() ![]() ![]()  | Address | |||
![]() ![]() ![]()  | Age | |||
![]() ![]() ![]()  | Annotation | |||
![]() ![]() ![]()  | Attachment | |||
![]() ![]() ![]()  | CodeableConcept | |||
![]() ![]() ![]()  | CodeableReference | |||
![]() ![]() ![]()  | Coding | |||
![]() ![]() ![]()  | ContactPoint | |||
![]() ![]() ![]()  | Count | |||
![]() ![]() ![]()  | Distance | |||
![]() ![]() ![]()  | Duration | |||
![]() ![]() ![]()  | HumanName | |||
![]() ![]() ![]()  | Identifier | |||
![]() ![]() ![]()  | Money | |||
![]() ![]() ![]()  | Period | |||
![]() ![]() ![]()  | Quantity | |||
![]() ![]() ![]()  | Range | |||
![]() ![]() ![]()  | Ratio | |||
![]() ![]() ![]()  | RatioRange | |||
![]() ![]() ![]()  | Reference(Any) | |||
![]() ![]() ![]()  | SampledData | |||
![]() ![]() ![]()  | Signature | |||
![]() ![]() ![]()  | Timing | |||
![]() ![]() ![]()  | ContactDetail | |||
![]() ![]() ![]()  | Contributor | |||
![]() ![]() ![]()  | DataRequirement | |||
![]() ![]() ![]()  | Expression | |||
![]() ![]() ![]()  | ParameterDefinition | |||
![]() ![]() ![]()  | RelatedArtifact | |||
![]() ![]() ![]()  | TriggerDefinition | |||
![]() ![]() ![]()  | UsageContext | |||
![]() ![]() ![]()  | Dosage | |||
  Documentation for this format | ||||
XML Template
<!-- constraint --><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">
1..1 Extension <!--
1..1 Unique identifier --> <valueId value="[id]"/><!--
1..1 Value of extension --> </extension> <extension url="requirements">
0..1 Extension <!--
0..1 Why needed --> <valueString value="[string]"/><!--
1..1 Value of extension --> </extension> <extension url="severity">
1..1 Extension <!--
1..1 error|warning --> <valueCode value="[code]"/><!--
1..1 Value of extension --> </extension> <extension url="expression">
1..1 Extension <!--
1..1 Formal rule --> <valueString value="[string]"/><!--
1..1 Value of extension --> </extension> <extension url="human">
1..1 Extension <!--
1..1 Human-readable rule --> <valueString value="[string]"/><!--
1..1 Value of extension --> </extension> <extension url="location">
0..* Extension <!--
0..* Relative path to elements --> <valueString value="[string]"/><!--
1..1 Value of extension --> </extension> </extension>
JSON Template
{ // constraint
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Unique identifier // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "key", // R! 
        "valueId" : "<id>" // C? R! Value of extension
      },
      { // Why needed // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "requirements", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // error|warning // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "severity", // R! 
        "valueCode" : "<code>" // C? R! Value of extension
      },
      { // Formal rule // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "expression", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // Human-readable rule // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "human", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // Relative path to elements // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "location", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      }
    ],
    "url" : "http://hl7.org/fhir/StructureDefinition/questionnaire-constraint", // R! 
// value[x]: Value of extension. One of these 51:
  }
 Summary
| Name | Flags | Card. | Type | Description & Constraints![]()  | 
|---|---|---|---|---|
![]()  | 0..* | Extension | URL = http://hl7.org/fhir/StructureDefinition/questionnaire-constraint constraint: 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 Questionnaire.item.item  | |
![]() ![]()  | 1..1 | id | Unique id for the constraint within the questionnaire. | |
![]() ![]()  | 0..1 | string | An explanation of why this extension is required (for documentation purposes). | |
![]() ![]()  | 1..1 | code | Indicates how serious violating the invariant is. | |
![]() ![]()  | 1..1 | string | The FHIRPath expression of the rule for computable interpretation. | |
![]() ![]()  | 1..1 | string | A free text expression of the rule to display to the user if the rule is violated. | |
![]() ![]()  | 0..* | string | Relative paths to the questions this rule is enforced against. | |
  Documentation for this format | ||||
Full Structure
| Name | Flags | Card. | Type | Description & Constraints![]()  | 
|---|---|---|---|---|
![]()  | 0..* | Extension | URL = http://hl7.org/fhir/StructureDefinition/questionnaire-constraint constraint: 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 Questionnaire.item.item  | |
![]() ![]()  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url  | |
![]() ![]()  | 1..1 | Extension | Unique identifier | |
![]() ![]() ![]()  | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | 1..1 | uri | "key" | |
![]() ![]() ![]()  | 1..1 | id | Value of extension | |
![]() ![]()  | 0..1 | Extension | Why needed | |
![]() ![]() ![]()  | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | 1..1 | uri | "requirements" | |
![]() ![]() ![]()  | 1..1 | string | Value of extension | |
![]() ![]()  | 1..1 | Extension | error|warning | |
![]() ![]() ![]()  | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | 1..1 | uri | "severity" | |
![]() ![]() ![]()  | 1..1 | code | Value of extension Binding: ConstraintSeverity (required): How important the invariant is.  | |
![]() ![]()  | 1..1 | Extension | Formal rule | |
![]() ![]() ![]()  | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | 1..1 | uri | "expression" | |
![]() ![]() ![]()  | 1..1 | string | Value of extension | |
![]() ![]()  | 1..1 | Extension | Human-readable rule | |
![]() ![]() ![]()  | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | 1..1 | uri | "human" | |
![]() ![]() ![]()  | 1..1 | string | Value of extension | |
![]() ![]()  | 0..* | Extension | Relative path to elements | |
![]() ![]() ![]()  | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | 1..1 | uri | "location" | |
![]() ![]() ![]()  | 1..1 | string | Value of extension | |
![]() ![]()  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/questionnaire-constraint" | |
![]() ![]()  | 0..0 | |||
![]() ![]() ![]()  | base64Binary | |||
![]() ![]() ![]()  | boolean | |||
![]() ![]() ![]()  | canonical(Any) | |||
![]() ![]() ![]()  | code | |||
![]() ![]() ![]()  | date | |||
![]() ![]() ![]()  | dateTime | |||
![]() ![]() ![]()  | decimal | |||
![]() ![]() ![]()  | id | |||
![]() ![]() ![]()  | instant | |||
![]() ![]() ![]()  | integer | |||
![]() ![]() ![]()  | markdown | |||
![]() ![]() ![]()  | oid | |||
![]() ![]() ![]()  | positiveInt | |||
![]() ![]() ![]()  | string | |||
![]() ![]() ![]()  | time | |||
![]() ![]() ![]()  | unsignedInt | |||
![]() ![]() ![]()  | uri | |||
![]() ![]() ![]()  | url | |||
![]() ![]() ![]()  | uuid | |||
![]() ![]() ![]()  | Address | |||
![]() ![]() ![]()  | Age | |||
![]() ![]() ![]()  | Annotation | |||
![]() ![]() ![]()  | Attachment | |||
![]() ![]() ![]()  | CodeableConcept | |||
![]() ![]() ![]()  | CodeableReference | |||
![]() ![]() ![]()  | Coding | |||
![]() ![]() ![]()  | ContactPoint | |||
![]() ![]() ![]()  | Count | |||
![]() ![]() ![]()  | Distance | |||
![]() ![]() ![]()  | Duration | |||
![]() ![]() ![]()  | HumanName | |||
![]() ![]() ![]()  | Identifier | |||
![]() ![]() ![]()  | Money | |||
![]() ![]() ![]()  | Period | |||
![]() ![]() ![]()  | Quantity | |||
![]() ![]() ![]()  | Range | |||
![]() ![]() ![]()  | Ratio | |||
![]() ![]() ![]()  | RatioRange | |||
![]() ![]() ![]()  | Reference(Any) | |||
![]() ![]() ![]()  | SampledData | |||
![]() ![]() ![]()  | Signature | |||
![]() ![]() ![]()  | Timing | |||
![]() ![]() ![]()  | ContactDetail | |||
![]() ![]() ![]()  | Contributor | |||
![]() ![]() ![]()  | DataRequirement | |||
![]() ![]() ![]()  | Expression | |||
![]() ![]() ![]()  | ParameterDefinition | |||
![]() ![]() ![]()  | RelatedArtifact | |||
![]() ![]() ![]()  | TriggerDefinition | |||
![]() ![]() ![]()  | UsageContext | |||
![]() ![]() ![]()  | Dosage | |||
  Documentation for this format | ||||
XML Template
<!-- constraint --><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">
1..1 Extension <!--
1..1 Unique identifier --> <valueId value="[id]"/><!--
1..1 Value of extension --> </extension> <extension url="requirements">
0..1 Extension <!--
0..1 Why needed --> <valueString value="[string]"/><!--
1..1 Value of extension --> </extension> <extension url="severity">
1..1 Extension <!--
1..1 error|warning --> <valueCode value="[code]"/><!--
1..1 Value of extension --> </extension> <extension url="expression">
1..1 Extension <!--
1..1 Formal rule --> <valueString value="[string]"/><!--
1..1 Value of extension --> </extension> <extension url="human">
1..1 Extension <!--
1..1 Human-readable rule --> <valueString value="[string]"/><!--
1..1 Value of extension --> </extension> <extension url="location">
0..* Extension <!--
0..* Relative path to elements --> <valueString value="[string]"/><!--
1..1 Value of extension --> </extension> </extension>
JSON Template
{ // constraint
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Unique identifier // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "key", // R! 
        "valueId" : "<id>" // C? R! Value of extension
      },
      { // Why needed // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "requirements", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // error|warning // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "severity", // R! 
        "valueCode" : "<code>" // C? R! Value of extension
      },
      { // Formal rule // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "expression", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // Human-readable rule // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "human", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // Relative path to elements // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "location", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      }
    ],
    "url" : "http://hl7.org/fhir/StructureDefinition/questionnaire-constraint", // R! 
// value[x]: Value of extension. One of these 51:
  }
 
Constraints