Release 4 4B

This page is part of the FHIR Specification (v4.0.1: R4 (v4.3.0: R4B - Mixed Normative and STU ) in it's permanent home (it will always be available at this URL). ). 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 R4B R4

Extension: constraint

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

Extension Content

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". "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.

. . . 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

I I I I I I valueMeta Meta
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". "complete".


Use on Element ID Questionnaire, Element ID Questionnaire.item or Element ID Questionnaire.item.item
. . . Slices for extension I 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
. . . extension:key I 1..1 Extension Unique identifier
. . . extension . id I 0..0 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 I 0..0
. . . . url 1..1 uri "requirements"
. . . . value[x] I 1..1 string Value of extension
. . . extension . id I 0..0 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 I 0..0
. . . . url 1..1 uri "expression"
. . . . value[x] I 1..1 string Value of extension
. . . extension:human I 1..1 Extension Human-readable rule
. . . extension . id I 0..0 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 I 0..0
. . . . url 1..1 uri "location"
. . . . value[x] I 1..1 string Value of extension
. . . url 1..1 uri "http://hl7.org/fhir/StructureDefinition/questionnaire-constraint"
. . . value[x] I 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
. . . . valueCoding valueCodeableReference Coding CodeableReference
. . . . valueContactPoint valueCoding ContactPoint Coding
. . . . valueCount valueContactPoint Count ContactPoint
. . . . valueDistance valueCount Distance Count
. . . . valueDuration valueDistance Duration Distance
. . . . valueHumanName valueDuration HumanName Duration
. . . . valueIdentifier valueHumanName Identifier HumanName
. . . . valueMoney valueIdentifier Money Identifier
. . . . valuePeriod valueMoney Period Money
. . . . valueQuantity valuePeriod Quantity Period
. . . . valueRange valueQuantity Range Quantity
. . . . valueRatio 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 &quot;complete&quot;. "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.

. . . 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

I I I I I I valueMeta Meta
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 &quot;complete&quot;. "complete".


Use on Element ID Questionnaire, Element ID Questionnaire.item or Element ID Questionnaire.item.item
. . . Slices for extension I 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
. . . extension:key I 1..1 Extension Unique identifier
. . . extension . id I 0..0 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 I 0..0
. . . . url 1..1 uri "requirements"
. . . . value[x] I 1..1 string Value of extension
. . . extension . id I 0..0 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 I 0..0
. . . . url 1..1 uri "expression"
. . . . value[x] I 1..1 string Value of extension
. . . extension:human I 1..1 Extension Human-readable rule
. . . extension . id I 0..0 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 I 0..0
. . . . url 1..1 uri "location"
. . . . value[x] I 1..1 string Value of extension
. . . url 1..1 uri "http://hl7.org/fhir/StructureDefinition/questionnaire-constraint"
. . . value[x] I 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
. . . . valueCoding valueCodeableReference Coding CodeableReference
. . . . valueContactPoint valueCoding ContactPoint Coding
. . . . valueCount valueContactPoint Count ContactPoint
. . . . valueDistance valueCount Distance Count
. . . . valueDuration valueDistance Duration Distance
. . . . valueHumanName valueDuration HumanName Duration
. . . . valueIdentifier valueHumanName Identifier HumanName
. . . . valueMoney valueIdentifier Money Identifier
. . . . valuePeriod valueMoney Period Money
. . . . valueQuantity valuePeriod Quantity Period
. . . . valueRange valueQuantity Range Quantity
. . . . valueRatio 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

  • ele-1 : All FHIR elements must have a @value or children unless an empty Parameters resource (xpath: @value|f:*|h:div @value|f:*|h:div|self::f:Parameters )
  • 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.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 )