This page is part of the FHIR Specification (v4.3.0: R4B - STU). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R4B R4
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 doco |
|---|---|---|---|---|
| .. constraint | 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 | |
| ... key | 1..1 | id | Unique id for the constraint within the questionnaire. | |
| ... requirements | 0..1 | string | An explanation of why this extension is required (for documentation purposes). | |
| ... severity | 1..1 | code | Indicates how serious violating the invariant is. | |
| ... expression | 1..1 | string | The FHIRPath expression of the rule for computable interpretation. | |
| ... human | 1..1 | string | A free text expression of the rule to display to the user if the rule is violated. | |
| ... location | 0..* | string | Relative paths to the questions this rule is enforced against. | |
doco Documentation for this format | ||||
Full Structure
| Name | Flags | Card. | Type | Description & Constraints doco |
|---|---|---|---|---|
| .. extension | 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 | |
| ... Slices for extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
| ... extension:key | 1..1 | Extension | Unique identifier | |
| .... id | 0..1 | id | Unique id for inter-element referencing | |
| .... extension | 0..0 | |||
| .... url | 1..1 | uri | "key" | |
| .... value[x] | 1..1 | id | Value of extension | |
| ... extension:requirements | 0..1 | Extension | Why needed | |
| .... id | 0..1 | id | Unique id for inter-element referencing | |
| .... extension | 0..0 | |||
| .... url | 1..1 | uri | "requirements" | |
| .... value[x] | 1..1 | string | Value of extension | |
| ... extension:severity | 1..1 | Extension | error|warning | |
| .... id | 0..1 | id | Unique id for inter-element referencing | |
| .... extension | 0..0 | |||
| .... url | 1..1 | uri | "severity" | |
| .... value[x] | 1..1 | code | Value of extension Binding: ConstraintSeverity (required): How important the invariant is. | |
| ... extension:expression | 1..1 | Extension | Formal rule | |
| .... id | 0..1 | id | Unique id for inter-element referencing | |
| .... extension | 0..0 | |||
| .... url | 1..1 | uri | "expression" | |
| .... value[x] | 1..1 | string | Value of extension | |
| ... extension:human | 1..1 | Extension | Human-readable rule | |
| .... id | 0..1 | id | Unique id for inter-element referencing | |
| .... extension | 0..0 | |||
| .... url | 1..1 | uri | "human" | |
| .... value[x] | 1..1 | string | Value of extension | |
| ... extension:location | 0..* | Extension | Relative path to elements | |
| .... id | 0..1 | id | Unique id for inter-element referencing | |
| .... extension | 0..0 | |||
| .... url | 1..1 | uri | "location" | |
| .... value[x] | 1..1 | string | Value of extension | |
| ... url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/questionnaire-constraint" | |
| ... value[x] | 0..0 | |||
| .... valueBase64Binary | base64Binary | |||
| .... valueBoolean | boolean | |||
| .... valueCanonical | canonical(Any) | |||
| .... valueCode | code | |||
| .... valueDate | date | |||
| .... valueDateTime | dateTime | |||
| .... valueDecimal | decimal | |||
| .... valueId | id | |||
| .... valueInstant | instant | |||
| .... valueInteger | integer | |||
| .... valueMarkdown | markdown | |||
| .... valueOid | oid | |||
| .... valuePositiveInt | positiveInt | |||
| .... valueString | string | |||
| .... valueTime | time | |||
| .... valueUnsignedInt | unsignedInt | |||
| .... valueUri | uri | |||
| .... valueUrl | url | |||
| .... valueUuid | uuid | |||
| .... valueAddress | Address | |||
| .... valueAge | Age | |||
| .... valueAnnotation | Annotation | |||
| .... valueAttachment | Attachment | |||
| .... valueCodeableConcept | CodeableConcept | |||
| .... valueCodeableReference | CodeableReference | |||
| .... valueCoding | Coding | |||
| .... valueContactPoint | ContactPoint | |||
| .... valueCount | Count | |||
| .... valueDistance | Distance | |||
| .... valueDuration | Duration | |||
| .... valueHumanName | HumanName | |||
| .... valueIdentifier | Identifier | |||
| .... valueMoney | Money | |||
| .... valuePeriod | Period | |||
| .... valueQuantity | Quantity | |||
| .... valueRange | Range | |||
| .... valueRatio | Ratio | |||
| .... valueRatioRange | RatioRange | |||
| .... valueReference | Reference(Any) | |||
| .... valueSampledData | SampledData | |||
| .... valueSignature | Signature | |||
| .... valueTiming | Timing | |||
| .... valueContactDetail | ContactDetail | |||
| .... valueContributor | Contributor | |||
| .... valueDataRequirement | DataRequirement | |||
| .... valueExpression | Expression | |||
| .... valueParameterDefinition | ParameterDefinition | |||
| .... valueRelatedArtifact | RelatedArtifact | |||
| .... valueTriggerDefinition | TriggerDefinition | |||
| .... valueUsageContext | UsageContext | |||
| .... valueDosage | Dosage | |||
doco Documentation for this format | ||||
XML Template
<!-- constraint -->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"> ?? 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 doco |
|---|---|---|---|---|
| .. constraint | 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 | |
| ... key | 1..1 | id | Unique id for the constraint within the questionnaire. | |
| ... requirements | 0..1 | string | An explanation of why this extension is required (for documentation purposes). | |
| ... severity | 1..1 | code | Indicates how serious violating the invariant is. | |
| ... expression | 1..1 | string | The FHIRPath expression of the rule for computable interpretation. | |
| ... human | 1..1 | string | A free text expression of the rule to display to the user if the rule is violated. | |
| ... location | 0..* | string | Relative paths to the questions this rule is enforced against. | |
doco Documentation for this format | ||||
Full Structure
| Name | Flags | Card. | Type | Description & Constraints doco |
|---|---|---|---|---|
| .. extension | 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 | |
| ... Slices for extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
| ... extension:key | 1..1 | Extension | Unique identifier | |
| .... id | 0..1 | id | Unique id for inter-element referencing | |
| .... extension | 0..0 | |||
| .... url | 1..1 | uri | "key" | |
| .... value[x] | 1..1 | id | Value of extension | |
| ... extension:requirements | 0..1 | Extension | Why needed | |
| .... id | 0..1 | id | Unique id for inter-element referencing | |
| .... extension | 0..0 | |||
| .... url | 1..1 | uri | "requirements" | |
| .... value[x] | 1..1 | string | Value of extension | |
| ... extension:severity | 1..1 | Extension | error|warning | |
| .... id | 0..1 | id | Unique id for inter-element referencing | |
| .... extension | 0..0 | |||
| .... url | 1..1 | uri | "severity" | |
| .... value[x] | 1..1 | code | Value of extension Binding: ConstraintSeverity (required): How important the invariant is. | |
| ... extension:expression | 1..1 | Extension | Formal rule | |
| .... id | 0..1 | id | Unique id for inter-element referencing | |
| .... extension | 0..0 | |||
| .... url | 1..1 | uri | "expression" | |
| .... value[x] | 1..1 | string | Value of extension | |
| ... extension:human | 1..1 | Extension | Human-readable rule | |
| .... id | 0..1 | id | Unique id for inter-element referencing | |
| .... extension | 0..0 | |||
| .... url | 1..1 | uri | "human" | |
| .... value[x] | 1..1 | string | Value of extension | |
| ... extension:location | 0..* | Extension | Relative path to elements | |
| .... id | 0..1 | id | Unique id for inter-element referencing | |
| .... extension | 0..0 | |||
| .... url | 1..1 | uri | "location" | |
| .... value[x] | 1..1 | string | Value of extension | |
| ... url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/questionnaire-constraint" | |
| ... value[x] | 0..0 | |||
| .... valueBase64Binary | base64Binary | |||
| .... valueBoolean | boolean | |||
| .... valueCanonical | canonical(Any) | |||
| .... valueCode | code | |||
| .... valueDate | date | |||
| .... valueDateTime | dateTime | |||
| .... valueDecimal | decimal | |||
| .... valueId | id | |||
| .... valueInstant | instant | |||
| .... valueInteger | integer | |||
| .... valueMarkdown | markdown | |||
| .... valueOid | oid | |||
| .... valuePositiveInt | positiveInt | |||
| .... valueString | string | |||
| .... valueTime | time | |||
| .... valueUnsignedInt | unsignedInt | |||
| .... valueUri | uri | |||
| .... valueUrl | url | |||
| .... valueUuid | uuid | |||
| .... valueAddress | Address | |||
| .... valueAge | Age | |||
| .... valueAnnotation | Annotation | |||
| .... valueAttachment | Attachment | |||
| .... valueCodeableConcept | CodeableConcept | |||
| .... valueCodeableReference | CodeableReference | |||
| .... valueCoding | Coding | |||
| .... valueContactPoint | ContactPoint | |||
| .... valueCount | Count | |||
| .... valueDistance | Distance | |||
| .... valueDuration | Duration | |||
| .... valueHumanName | HumanName | |||
| .... valueIdentifier | Identifier | |||
| .... valueMoney | Money | |||
| .... valuePeriod | Period | |||
| .... valueQuantity | Quantity | |||
| .... valueRange | Range | |||
| .... valueRatio | Ratio | |||
| .... valueRatioRange | RatioRange | |||
| .... valueReference | Reference(Any) | |||
| .... valueSampledData | SampledData | |||
| .... valueSignature | Signature | |||
| .... valueTiming | Timing | |||
| .... valueContactDetail | ContactDetail | |||
| .... valueContributor | Contributor | |||
| .... valueDataRequirement | DataRequirement | |||
| .... valueExpression | Expression | |||
| .... valueParameterDefinition | ParameterDefinition | |||
| .... valueRelatedArtifact | RelatedArtifact | |||
| .... valueTriggerDefinition | TriggerDefinition | |||
| .... valueUsageContext | UsageContext | |||
| .... valueDosage | Dosage | |||
doco Documentation for this format | ||||
XML Template
<!-- constraint -->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"> ?? 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