FHIR Extensions Pack
5.4.0 - May 2026 International flag

FHIR Extensions Pack, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 5.4.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-extensions/ and changes regularly. See the Directory of published versions

Extension: Questionnaire Option Restriction

Official URL: http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction Version: 5.4.0
Standards status: Trial-use Maturity Level: 2 Computable Name: QOptionRestriction
Other Identifiers: OID:2.16.840.1.113883.4.642.5.1252

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

Context of Use

This extension may be used on the following element(s)

In addition, the extension can only be used when this FHIRPath expression is true:

ofType(ElementDefinition).binding.where(strength='required').exists() or where(%resource.is(Questionnaire)).exists(answerValueSet.exists() or answerOption.exists())

Usage info

Usages:

  • This Extension is not used by any profiles in this Specification

You can also check for usages in the FHIR IG Statistics

Changes since version 5.3.0:

  • No changes
  • Formal Views of Extension Content

    Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.

    This structure is derived from Extension

    Summary

    Simple Extension with the type 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: Allows disabling certain questionnaire options for the containing item based on evaluating expressions.

    Maturity: 2

    This structure is derived from Extension

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    Extension 0..* Extension Constraint
    Extension.Slices for extension Content/Rules for all slices
    Extension.Slices for extension.extension:option 1..* Extension Option to exclude
    Extension.Slices for extension.extension:option.extension 0..0 Extension
    Extension.Slices for extension.extension:option.url 1..1 uri "option"
    Extension.Slices for extension.extension:option.value[x] 1..1 Value of extension
    Extension.Slices for extension.extension:option.value[x].valueInteger integer
    Extension.Slices for extension.extension:option.value[x].valueDate date
    Extension.Slices for extension.extension:option.value[x].valueTime time
    Extension.Slices for extension.extension:option.value[x].valueString string
    Extension.Slices for extension.extension:option.value[x].valueCoding Coding
    Extension.Slices for extension.extension:option.value[x].valueReference Reference(Any)
    Extension.Slices for extension.extension:expression 1..1 Extension Expression to trigger exclusion
    Extension.Slices for extension.extension:expression.extension 0..0 Extension
    Extension.Slices for extension.extension:expression.url 1..1 uri "requirements"
    Extension.Slices for extension.extension:expression.value[x] 1..1 Expression Value of extension
    Extension.url 1..1 uri "http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction"

    doco Documentation for this format
    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    Extension 0..* Extension Constraint
    Extension.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension 2..* Extension Additional content defined by implementations
    Slice: Unordered, Open by value:url
    Extension.Slices for extension.extension:option 1..* Extension Option to exclude
    Extension.Slices for extension.extension:option.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:option.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:option.url 1..1 uri "option"
    Extension.Slices for extension.extension:option.value[x] 1..1 Value of extension
    Extension.Slices for extension.extension:option.value[x].valueInteger integer
    Extension.Slices for extension.extension:option.value[x].valueDate date
    Extension.Slices for extension.extension:option.value[x].valueTime time
    Extension.Slices for extension.extension:option.value[x].valueString string
    Extension.Slices for extension.extension:option.value[x].valueCoding Coding
    Extension.Slices for extension.extension:option.value[x].valueReference Reference(Any)
    Extension.Slices for extension.extension:expression 1..1 Extension Expression to trigger exclusion
    Extension.Slices for extension.extension:expression.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:expression.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:expression.url 1..1 uri "requirements"
    Extension.Slices for extension.extension:expression.value[x] 1..1 Expression Value of extension
    Extension.url 1..1 uri "http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction"
    Extension.value[x] 0..1 Value of extension
    Extension.value[x].valueBase64Binary base64Binary
    Extension.value[x].valueBoolean boolean
    Extension.value[x].valueCanonical canonical(Any)
    Extension.value[x].valueCode code
    Extension.value[x].valueDate date
    Extension.value[x].valueDateTime dateTime
    Extension.value[x].valueDecimal decimal
    Extension.value[x].valueId id
    Extension.value[x].valueInstant instant
    Extension.value[x].valueInteger integer
    Extension.value[x].valueInteger64 integer64
    Extension.value[x].valueMarkdown markdown
    Extension.value[x].valueOid oid
    Extension.value[x].valuePositiveInt positiveInt
    Extension.value[x].valueString string
    Extension.value[x].valueTime time
    Extension.value[x].valueUnsignedInt unsignedInt
    Extension.value[x].valueUri uri
    Extension.value[x].valueUrl url
    Extension.value[x].valueUuid uuid
    Extension.value[x].valueAddress Address
    Extension.value[x].valueAge Age
    Extension.value[x].valueAnnotation Annotation
    Extension.value[x].valueAttachment Attachment
    Extension.value[x].valueCodeableConcept CodeableConcept
    Extension.value[x].valueCodeableReference CodeableReference
    Extension.value[x].valueCoding Coding
    Extension.value[x].valueContactPoint ContactPoint
    Extension.value[x].valueCount Count
    Extension.value[x].valueDistance Distance
    Extension.value[x].valueDuration Duration
    Extension.value[x].valueHumanName HumanName
    Extension.value[x].valueIdentifier Identifier
    Extension.value[x].valueMoney Money
    Extension.value[x].valuePeriod Period
    Extension.value[x].valueQuantity Quantity
    Extension.value[x].valueRange Range
    Extension.value[x].valueRatio Ratio
    Extension.value[x].valueRatioRange RatioRange
    Extension.value[x].valueReference Reference(Any)
    Extension.value[x].valueSampledData SampledData
    Extension.value[x].valueSignature Signature
    Extension.value[x].valueTiming Timing
    Extension.value[x].valueContactDetail ContactDetail
    Extension.value[x].valueDataRequirement DataRequirement
    Extension.value[x].valueExpression Expression
    Extension.value[x].valueParameterDefinition ParameterDefinition
    Extension.value[x].valueRelatedArtifact RelatedArtifact
    Extension.value[x].valueTriggerDefinition TriggerDefinition
    Extension.value[x].valueUsageContext UsageContext
    Extension.value[x].valueAvailability Availability
    Extension.value[x].valueExtendedContactDetail ExtendedContactDetail
    Extension.value[x].valueDosage Dosage
    Extension.value[x].valueMeta Meta

    doco Documentation for this format

    This structure is derived from Extension

    Summary

    Simple Extension with the type 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: Allows disabling certain questionnaire options for the containing item based on evaluating expressions.

    Maturity: 2

    Differential View

    This structure is derived from Extension

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    Extension 0..* Extension Constraint
    Extension.Slices for extension Content/Rules for all slices
    Extension.Slices for extension.extension:option 1..* Extension Option to exclude
    Extension.Slices for extension.extension:option.extension 0..0 Extension
    Extension.Slices for extension.extension:option.url 1..1 uri "option"
    Extension.Slices for extension.extension:option.value[x] 1..1 Value of extension
    Extension.Slices for extension.extension:option.value[x].valueInteger integer
    Extension.Slices for extension.extension:option.value[x].valueDate date
    Extension.Slices for extension.extension:option.value[x].valueTime time
    Extension.Slices for extension.extension:option.value[x].valueString string
    Extension.Slices for extension.extension:option.value[x].valueCoding Coding
    Extension.Slices for extension.extension:option.value[x].valueReference Reference(Any)
    Extension.Slices for extension.extension:expression 1..1 Extension Expression to trigger exclusion
    Extension.Slices for extension.extension:expression.extension 0..0 Extension
    Extension.Slices for extension.extension:expression.url 1..1 uri "requirements"
    Extension.Slices for extension.extension:expression.value[x] 1..1 Expression Value of extension
    Extension.url 1..1 uri "http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction"

    doco Documentation for this format

    Snapshot View

    NameFlagsCard.TypeDescription & Constraints    Filter: doco
    Extension 0..* Extension Constraint
    Extension.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension 2..* Extension Additional content defined by implementations
    Slice: Unordered, Open by value:url
    Extension.Slices for extension.extension:option 1..* Extension Option to exclude
    Extension.Slices for extension.extension:option.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:option.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:option.url 1..1 uri "option"
    Extension.Slices for extension.extension:option.value[x] 1..1 Value of extension
    Extension.Slices for extension.extension:option.value[x].valueInteger integer
    Extension.Slices for extension.extension:option.value[x].valueDate date
    Extension.Slices for extension.extension:option.value[x].valueTime time
    Extension.Slices for extension.extension:option.value[x].valueString string
    Extension.Slices for extension.extension:option.value[x].valueCoding Coding
    Extension.Slices for extension.extension:option.value[x].valueReference Reference(Any)
    Extension.Slices for extension.extension:expression 1..1 Extension Expression to trigger exclusion
    Extension.Slices for extension.extension:expression.id 0..1 id Unique id for inter-element referencing
    Extension.Slices for extension.extension:expression.extension 0..0 Extension
    Slice: Unordered, Open by value:url

    Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
    Extension.Slices for extension.extension:expression.url 1..1 uri "requirements"
    Extension.Slices for extension.extension:expression.value[x] 1..1 Expression Value of extension
    Extension.url 1..1 uri "http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction"
    Extension.value[x] 0..1 Value of extension
    Extension.value[x].valueBase64Binary base64Binary
    Extension.value[x].valueBoolean boolean
    Extension.value[x].valueCanonical canonical(Any)
    Extension.value[x].valueCode code
    Extension.value[x].valueDate date
    Extension.value[x].valueDateTime dateTime
    Extension.value[x].valueDecimal decimal
    Extension.value[x].valueId id
    Extension.value[x].valueInstant instant
    Extension.value[x].valueInteger integer
    Extension.value[x].valueInteger64 integer64
    Extension.value[x].valueMarkdown markdown
    Extension.value[x].valueOid oid
    Extension.value[x].valuePositiveInt positiveInt
    Extension.value[x].valueString string
    Extension.value[x].valueTime time
    Extension.value[x].valueUnsignedInt unsignedInt
    Extension.value[x].valueUri uri
    Extension.value[x].valueUrl url
    Extension.value[x].valueUuid uuid
    Extension.value[x].valueAddress Address
    Extension.value[x].valueAge Age
    Extension.value[x].valueAnnotation Annotation
    Extension.value[x].valueAttachment Attachment
    Extension.value[x].valueCodeableConcept CodeableConcept
    Extension.value[x].valueCodeableReference CodeableReference
    Extension.value[x].valueCoding Coding
    Extension.value[x].valueContactPoint ContactPoint
    Extension.value[x].valueCount Count
    Extension.value[x].valueDistance Distance
    Extension.value[x].valueDuration Duration
    Extension.value[x].valueHumanName HumanName
    Extension.value[x].valueIdentifier Identifier
    Extension.value[x].valueMoney Money
    Extension.value[x].valuePeriod Period
    Extension.value[x].valueQuantity Quantity
    Extension.value[x].valueRange Range
    Extension.value[x].valueRatio Ratio
    Extension.value[x].valueRatioRange RatioRange
    Extension.value[x].valueReference Reference(Any)
    Extension.value[x].valueSampledData SampledData
    Extension.value[x].valueSignature Signature
    Extension.value[x].valueTiming Timing
    Extension.value[x].valueContactDetail ContactDetail
    Extension.value[x].valueDataRequirement DataRequirement
    Extension.value[x].valueExpression Expression
    Extension.value[x].valueParameterDefinition ParameterDefinition
    Extension.value[x].valueRelatedArtifact RelatedArtifact
    Extension.value[x].valueTriggerDefinition TriggerDefinition
    Extension.value[x].valueUsageContext UsageContext
    Extension.value[x].valueAvailability Availability
    Extension.value[x].valueExtendedContactDetail ExtendedContactDetail
    Extension.value[x].valueDosage Dosage
    Extension.value[x].valueMeta Meta

    doco Documentation for this format

     

    Other representations of profile: CSV, Excel, Schematron

    Constraints

    Id Grade Path(s) Description Expression
    ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
    ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

    R4B

    The extension is unchanged in R4B

    R4

    The extension is unchanged in R4

    R3

    The extension is represented a little differently in R3:

    • Replace the type Expression with a set of extensions for the content of the type along with the _datatype extension
    • Note: Extensions that have been modified for R3 are still draft while real-world experience is collected
    Name Flags Card. Type Description & Constraints      Filter: doco
    Extension 0..* Extension Constraint
    Extension. Slices for extension Content/Rules for all slices
    Extension.Slices for extension. extension:option 1..* Extension Option to exclude
    Extension.Slices for extension.extension:option. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:option. url 1 .. 1 uri "option"
    Extension.Slices for extension.extension:option. value[x] 1.. 1 Value of extension
    Extension.Slices for extension.extension:option.value[x]. valueInteger integer
    Extension.Slices for extension.extension:option.value[x]. valueDate date
    Extension.Slices for extension.extension:option.value[x]. valueTime time
    Extension.Slices for extension.extension:option.value[x]. valueString string
    Extension.Slices for extension.extension:option.value[x]. valueCoding Coding
    Extension.Slices for extension.extension:option.value[x]. valueReference Reference (Any)
    Extension.Slices for extension. extension:expression 1..1 Extension Expression to trigger exclusion
    Extension.Slices for extension.extension:expression. Slices for extension 0 ..* Extension Extension
    Slice: Unordered, Open by value:url
    Extension.Slices for extension.extension:expression. Slices for extension Content/Rules for all slices
    Extension.Slices for extension.extension:expression.Slices for extension. extension:_datatype 1..1 (Complex) DataType name 'Expression' from R5
    URL: http://hl7.org/fhir/StructureDefinition/_datatype
    Extension.Slices for extension.extension:expression.Slices for extension.extension:_datatype. value[x] 1.. 1 string Value of extension
    Fixed Value: Expression
    Extension.Slices for extension.extension:expression.Slices for extension. extension:description 0..1 Extension Natural language description of the condition
    Extension.Slices for extension.extension:expression.Slices for extension.extension:description. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:expression.Slices for extension.extension:description. url 1 .. 1 uri "description"
    Extension.Slices for extension.extension:expression.Slices for extension.extension:description. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension.extension:expression.Slices for extension. extension:name 0..1 Extension Short name assigned to expression for reuse
    Extension.Slices for extension.extension:expression.Slices for extension.extension:name. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:expression.Slices for extension.extension:name. url 1 .. 1 uri "name"
    Extension.Slices for extension.extension:expression.Slices for extension.extension:name. value[x] 1.. 1 code Value of extension
    Extension.Slices for extension.extension:expression.Slices for extension. extension:language 0..1 Extension text/cql | text/fhirpath | application/x-fhir-query | etc.
    Extension.Slices for extension.extension:expression.Slices for extension.extension:language. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:expression.Slices for extension.extension:language. url 1 .. 1 uri "language"
    Extension.Slices for extension.extension:expression.Slices for extension.extension:language. value[x] 1.. 1 code Value of extension
    Binding: ExpressionLanguage ( extensible ) : The media type of the expression language.
    Additional Bindings Purpose
    MimeTypes Max Binding
    Extension.Slices for extension.extension:expression.Slices for extension. extension:expression 0..1 Extension Expression in specified language
    Extension.Slices for extension.extension:expression.Slices for extension.extension:expression. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:expression.Slices for extension.extension:expression. url 1 .. 1 uri "expression"
    Extension.Slices for extension.extension:expression.Slices for extension.extension:expression. value[x] 1.. 1 string Value of extension
    Extension.Slices for extension.extension:expression.Slices for extension. extension:reference 0..1 Extension Where the expression is found
    Extension.Slices for extension.extension:expression.Slices for extension.extension:reference. extension 0 .. 0 Extension
    Extension.Slices for extension.extension:expression.Slices for extension.extension:reference. url 1 .. 1 uri "reference"
    Extension.Slices for extension.extension:expression.Slices for extension.extension:reference. value[x] 1.. 1 uri Value of extension
    Extension.Slices for extension.extension:expression. url 1 .. 1 uri "requirements"
    Extension.Slices for extension.extension:expression. value[x] 0 .. 0 Value of extension
    Extension. url 1 .. 1 uri "http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction"

    doco Documentation for this format

    Search Parameters for this Extension

    (none found)