Release 5 Ballot

This page is part of the FHIR Specification (v5.0.0-ballot: R5 Ballot - see ballot notes). 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: QuestionnaireOptionRestriction

FHIR Infrastructure Work Group Maturity Level: 1InformativeUse Context: Any

Summary

Defining URL:http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction
Version:5.0.0-ballot
Name:QuestionnaireOptionRestriction
Title:Questionnaire option restriction
Modifier:This extension is not a modifier extension
Status:draft
Definition:Allows disabling certain questionnaire options for the containing item based on evaluating expressions.
Committee:FHIR Infrastructure Work Group

Status: draft. Extension maintained by: HL7

Allows disabling certain questionnaire options for the containing item based on evaluating expressions.

Context of Use: Use on Element ID Questionnaire.item or Element ID ElementDefinition, with Context Invariant = answerValueset or answerOption

Extension Content

Summary

NameFlagsCard.TypeDescription & Constraintsdoco
.. QuestionnaireOptionRestriction0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction
QuestionnaireOptionRestriction: Allows disabling certain questionnaire options for the containing item based on evaluating expressions.


Use on Element ID Questionnaire.item or Element ID ElementDefinition, with <a href="structuredefinition-definitions.html#StructureDefinition.contextInvariant">Context Invariant</a> = <code>answerValueset or answerOption</code>
... option1..*integer, date, time, string, Coding, Reference()Option to exclude

... requirements1..1ExpressionExpression to trigger exclusion


doco Documentation for this format

Full Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. extension0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction
QuestionnaireOptionRestriction: Allows disabling certain questionnaire options for the containing item based on evaluating expressions.


Use on Element ID Questionnaire.item or Element ID ElementDefinition, with <a href="structuredefinition-definitions.html#StructureDefinition.contextInvariant">Context Invariant</a> = <code>answerValueset or answerOption</code>
... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... extension:option 1..*ExtensionOption to exclude
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"option"
.... value[x] 1..1Value of extension
..... valueIntegerinteger
..... valueDatedate
..... valueTimetime
..... valueStringstring
..... valueCodingCoding
..... valueReferenceReference(Any)
... extension:expression 1..1ExtensionExpression to trigger exclusion
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"requirements"
.... value[x] 1..1ExpressionValue of extension
... value[x] 0..1Value of extension
.... 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

<!-- QuestionnaireOptionRestriction -->doco

<extension xmlns="http://hl7.org/fhir"
     url="http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction" >
 <-- extension sliced by value:url  in the specified orderOpen-->
 <extension url="option"> I 1..* Extension  <!-- I 1..* Option to exclude -->
  <value[x]><!-- I 1..1 integer|date|time|string|Coding|
    Reference Value of extension --></value[x]>
 </extension>
 <extension url="requirements"> I 1..1 Extension  <!-- I 1..1 Expression to trigger exclusion -->
  <valueExpression><!-- I 1..1 Expression 
      Value of extension --></valueExpression>
 </extension>
 <value[x]><!-- I 0..1 base64Binary|boolean|canonical|code|date|dateTime|
   decimal|id|instant|integer|integer64|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|SampledData|
   Signature|Timing|ContactDetail|DataRequirement|Expression|ParameterDefinition|
   RelatedArtifact|TriggerDefinition|UsageContext|Availability|
   ExtendedContactDetail|Dosage|Meta Value of extension --></value[x]>
</extension>

JSON Template

{ // QuestionnaireOptionRestriction
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Option to exclude // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "option", // R! 
// value[x]: Value of extension. One of these 6:
        "valueInteger" : <integer>, // I R! Value of extension
        "valueDate" : "<date>", // I R! Value of extension
        "valueTime" : "<time>", // I R! Value of extension
        "valueString" : "<string>", // I R! Value of extension
        "valueCoding" : { Coding }, // I R! Value of extension
        "valueReference" : { Reference }, // I R! Value of extension
      }
      { // Expression to trigger exclusion // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "requirements", // R! 
        "valueExpression" : { Expression } // I R! Value of extension
      },
    ],
    "extension" : [{ Extension }], // IAdditional content defined by implementations
    "extension" : [{ Extension }], // I R! Option to exclude
    "extension" : { Extension }, // I R! Expression to trigger exclusion
    "url" : "http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction", // R! 
  // value[x]: Value of extension. One of these 54:
    "valueBase64Binary" : "<base64Binary>", // IValue of extension
    "valueBoolean" : <boolean>, // IValue of extension
    "valueCanonical" : "<canonical>", // IValue of extension
    "valueCode" : "<code>", // IValue of extension
    "valueDate" : "<date>", // IValue of extension
    "valueDateTime" : "<dateTime>", // IValue of extension
    "valueDecimal" : <decimal>, // IValue of extension
    "valueId" : "<id>", // IValue of extension
    "valueInstant" : "<instant>", // IValue of extension
    "valueInteger" : <integer>, // IValue of extension
    "valueInteger64" : "<integer64>", // IValue of extension
    "valueMarkdown" : "<markdown>", // IValue of extension
    "valueOid" : "<oid>", // IValue of extension
    "valuePositiveInt" : "<positiveInt>", // IValue of extension
    "valueString" : "<string>", // IValue of extension
    "valueTime" : "<time>", // IValue of extension
    "valueUnsignedInt" : "<unsignedInt>", // IValue of extension
    "valueUri" : "<uri>", // IValue of extension
    "valueUrl" : "<url>", // IValue of extension
    "valueUuid" : "<uuid>", // IValue of extension
    "valueAddress" : { Address }, // IValue of extension
    "valueAge" : { Age }, // IValue of extension
    "valueAnnotation" : { Annotation }, // IValue of extension
    "valueAttachment" : { Attachment }, // IValue of extension
    "valueCodeableConcept" : { CodeableConcept }, // IValue of extension
    "valueCodeableReference" : { CodeableReference }, // IValue of extension
    "valueCoding" : { Coding }, // IValue of extension
    "valueContactPoint" : { ContactPoint }, // IValue of extension
    "valueCount" : { Count }, // IValue of extension
    "valueDistance" : { Distance }, // IValue of extension
    "valueDuration" : { Duration }, // IValue of extension
    "valueHumanName" : { HumanName }, // IValue of extension
    "valueIdentifier" : { Identifier }, // IValue of extension
    "valueMoney" : { Money }, // IValue of extension
    "valuePeriod" : { Period }, // IValue of extension
    "valueQuantity" : { Quantity }, // IValue of extension
    "valueRange" : { Range }, // IValue of extension
    "valueRatio" : { Ratio }, // IValue of extension
    "valueRatioRange" : { RatioRange }, // IValue of extension
    "valueReference" : { Reference }, // IValue of extension
    "valueSampledData" : { SampledData }, // IValue of extension
    "valueSignature" : { Signature }, // IValue of extension
    "valueTiming" : { Timing }, // IValue of extension
    "valueContactDetail" : { ContactDetail }, // IValue of extension
    "valueDataRequirement" : { DataRequirement }, // IValue of extension
    "valueExpression" : { Expression }, // IValue of extension
    "valueParameterDefinition" : { ParameterDefinition }, // IValue of extension
    "valueRelatedArtifact" : { RelatedArtifact }, // IValue of extension
    "valueTriggerDefinition" : { TriggerDefinition }, // IValue of extension
    "valueUsageContext" : { UsageContext }, // IValue of extension
    "valueAvailability" : { Availability }, // IValue of extension
    "valueExtendedContactDetail" : { ExtendedContactDetail }, // IValue of extension
    "valueDosage" : { Dosage }, // IValue of extension
    "valueMeta" : { Meta } // IValue of extension
  }

Summary

NameFlagsCard.TypeDescription & Constraintsdoco
.. QuestionnaireOptionRestriction0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction
QuestionnaireOptionRestriction: Allows disabling certain questionnaire options for the containing item based on evaluating expressions.


Use on Element ID Questionnaire.item or Element ID ElementDefinition, with <a href="structuredefinition-definitions.html#StructureDefinition.contextInvariant">Context Invariant</a> = <code>answerValueset or answerOption</code>
... option1..*integer, date, time, string, Coding, Reference()Option to exclude

... requirements1..1ExpressionExpression to trigger exclusion


doco Documentation for this format

Full Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. extension0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction
QuestionnaireOptionRestriction: Allows disabling certain questionnaire options for the containing item based on evaluating expressions.


Use on Element ID Questionnaire.item or Element ID ElementDefinition, with <a href="structuredefinition-definitions.html#StructureDefinition.contextInvariant">Context Invariant</a> = <code>answerValueset or answerOption</code>
... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... extension:option 1..*ExtensionOption to exclude
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"option"
.... value[x] 1..1Value of extension
..... valueIntegerinteger
..... valueDatedate
..... valueTimetime
..... valueStringstring
..... valueCodingCoding
..... valueReferenceReference(Any)
... extension:expression 1..1ExtensionExpression to trigger exclusion
.... id 0..1idUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"requirements"
.... value[x] 1..1ExpressionValue of extension
... value[x] 0..1Value of extension
.... 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

<!-- QuestionnaireOptionRestriction -->doco

<extension xmlns="http://hl7.org/fhir"
     url="http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction" >
 <-- extension sliced by value:url  in the specified orderOpen-->
 <extension url="option"> I 1..* Extension  <!-- I 1..* Option to exclude -->
  <value[x]><!-- I 1..1 integer|date|time|string|Coding|
    Reference Value of extension --></value[x]>
 </extension>
 <extension url="requirements"> I 1..1 Extension  <!-- I 1..1 Expression to trigger exclusion -->
  <valueExpression><!-- I 1..1 Expression 
      Value of extension --></valueExpression>
 </extension>
 <value[x]><!-- I 0..1 base64Binary|boolean|canonical|code|date|dateTime|
   decimal|id|instant|integer|integer64|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|SampledData|
   Signature|Timing|ContactDetail|DataRequirement|Expression|ParameterDefinition|
   RelatedArtifact|TriggerDefinition|UsageContext|Availability|
   ExtendedContactDetail|Dosage|Meta Value of extension --></value[x]>
</extension>

JSON Template

{ // QuestionnaireOptionRestriction
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Option to exclude // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "option", // R! 
// value[x]: Value of extension. One of these 6:
        "valueInteger" : <integer>, // I R! Value of extension
        "valueDate" : "<date>", // I R! Value of extension
        "valueTime" : "<time>", // I R! Value of extension
        "valueString" : "<string>", // I R! Value of extension
        "valueCoding" : { Coding }, // I R! Value of extension
        "valueReference" : { Reference }, // I R! Value of extension
      }
      { // Expression to trigger exclusion // I R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "requirements", // R! 
        "valueExpression" : { Expression } // I R! Value of extension
      },
    ],
    "extension" : [{ Extension }], // IAdditional content defined by implementations
    "extension" : [{ Extension }], // I R! Option to exclude
    "extension" : { Extension }, // I R! Expression to trigger exclusion
    "url" : "http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction", // R! 
  // value[x]: Value of extension. One of these 54:
    "valueBase64Binary" : "<base64Binary>", // IValue of extension
    "valueBoolean" : <boolean>, // IValue of extension
    "valueCanonical" : "<canonical>", // IValue of extension
    "valueCode" : "<code>", // IValue of extension
    "valueDate" : "<date>", // IValue of extension
    "valueDateTime" : "<dateTime>", // IValue of extension
    "valueDecimal" : <decimal>, // IValue of extension
    "valueId" : "<id>", // IValue of extension
    "valueInstant" : "<instant>", // IValue of extension
    "valueInteger" : <integer>, // IValue of extension
    "valueInteger64" : "<integer64>", // IValue of extension
    "valueMarkdown" : "<markdown>", // IValue of extension
    "valueOid" : "<oid>", // IValue of extension
    "valuePositiveInt" : "<positiveInt>", // IValue of extension
    "valueString" : "<string>", // IValue of extension
    "valueTime" : "<time>", // IValue of extension
    "valueUnsignedInt" : "<unsignedInt>", // IValue of extension
    "valueUri" : "<uri>", // IValue of extension
    "valueUrl" : "<url>", // IValue of extension
    "valueUuid" : "<uuid>", // IValue of extension
    "valueAddress" : { Address }, // IValue of extension
    "valueAge" : { Age }, // IValue of extension
    "valueAnnotation" : { Annotation }, // IValue of extension
    "valueAttachment" : { Attachment }, // IValue of extension
    "valueCodeableConcept" : { CodeableConcept }, // IValue of extension
    "valueCodeableReference" : { CodeableReference }, // IValue of extension
    "valueCoding" : { Coding }, // IValue of extension
    "valueContactPoint" : { ContactPoint }, // IValue of extension
    "valueCount" : { Count }, // IValue of extension
    "valueDistance" : { Distance }, // IValue of extension
    "valueDuration" : { Duration }, // IValue of extension
    "valueHumanName" : { HumanName }, // IValue of extension
    "valueIdentifier" : { Identifier }, // IValue of extension
    "valueMoney" : { Money }, // IValue of extension
    "valuePeriod" : { Period }, // IValue of extension
    "valueQuantity" : { Quantity }, // IValue of extension
    "valueRange" : { Range }, // IValue of extension
    "valueRatio" : { Ratio }, // IValue of extension
    "valueRatioRange" : { RatioRange }, // IValue of extension
    "valueReference" : { Reference }, // IValue of extension
    "valueSampledData" : { SampledData }, // IValue of extension
    "valueSignature" : { Signature }, // IValue of extension
    "valueTiming" : { Timing }, // IValue of extension
    "valueContactDetail" : { ContactDetail }, // IValue of extension
    "valueDataRequirement" : { DataRequirement }, // IValue of extension
    "valueExpression" : { Expression }, // IValue of extension
    "valueParameterDefinition" : { ParameterDefinition }, // IValue of extension
    "valueRelatedArtifact" : { RelatedArtifact }, // IValue of extension
    "valueTriggerDefinition" : { TriggerDefinition }, // IValue of extension
    "valueUsageContext" : { UsageContext }, // IValue of extension
    "valueAvailability" : { Availability }, // IValue of extension
    "valueExtendedContactDetail" : { ExtendedContactDetail }, // IValue of extension
    "valueDosage" : { Dosage }, // IValue of extension
    "valueMeta" : { Meta } // IValue of extension
  }

 

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