FHIR Extensions Pack
5.1.0-cibuild - Working Copy 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.1.0-cibuild 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: QConstraint - Detailed Descriptions

Page standards status: Trial-use Maturity Level: 3

Definitions for the questionnaire-constraint extension.

Guidance on how to interpret the contents of this table can be found here

0. Extension
Definition

An invariant that must be satisfied before responses to the questionnaire can be considered "complete".

ShortConstraint
Comments

This maps to the ElementDefinition.constraint element. See additional guidance and examples in the SDC implementation guide.

Control0..*
2. Extension.extension:key
Slice Namekey
Definition

Unique id for the constraint within the questionnaire.

ShortUnique identifier
Control1..1
TypeExtension
4. Extension.extension:key.extension
Control0..0
6. Extension.extension:key.url
Typeuri
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Fixed Valuekey
8. Extension.extension:key.value[x]
Control1..?
Typeid
[x] NoteSee Choice of Data Types for further information about how to use [x]
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
10. Extension.extension:requirements
Slice Namerequirements
Definition

An explanation of why this extension is required (for documentation purposes).

ShortWhy needed
Control0..1
TypeExtension
12. Extension.extension:requirements.extension
Control0..0
14. Extension.extension:requirements.url
Typeuri
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Fixed Valuerequirements
16. Extension.extension:requirements.value[x]
Control1..?
Typestring
[x] NoteSee Choice of Data Types for further information about how to use [x]
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
18. Extension.extension:severity
Slice Nameseverity
Definition

Indicates how serious violating the invariant is.

Shorterror|warning
Control1..1
TypeExtension
20. Extension.extension:severity.extension
Control0..0
22. Extension.extension:severity.url
Typeuri
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Fixed Valueseverity
24. Extension.extension:severity.value[x]
Control1..?
BindingThe codes SHALL be taken from ConstraintSeverity
(required to http://hl7.org/fhir/ValueSet/constraint-severity)

How important the invariant is.

Typecode
[x] NoteSee Choice of Data Types for further information about how to use [x]
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
26. Extension.extension:expression
Slice Nameexpression
Definition

The FHIRPath expression of the rule for computable interpretation.

ShortFormal rule
Control1..1
TypeExtension
28. Extension.extension:expression.extension
Control0..0
30. Extension.extension:expression.url
Typeuri
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Fixed Valueexpression
32. Extension.extension:expression.value[x]
Control1..?
Typestring
[x] NoteSee Choice of Data Types for further information about how to use [x]
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
34. Extension.extension:human
Slice Namehuman
Definition

A free text expression of the rule to display to the user if the rule is violated.

ShortHuman-readable rule
Control1..1
TypeExtension
36. Extension.extension:human.extension
Control0..0
38. Extension.extension:human.url
Typeuri
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Fixed Valuehuman
40. Extension.extension:human.value[x]
Control1..?
Typestring
[x] NoteSee Choice of Data Types for further information about how to use [x]
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
42. Extension.extension:location
Slice Namelocation
Definition

Relative paths to the questions this rule is enforced against.

ShortRelative path to elements
Control0..*
TypeExtension
44. Extension.extension:location.extension
Control0..0
46. Extension.extension:location.url
Typeuri
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Fixed Valuelocation
48. Extension.extension:location.value[x]
Control1..?
Typestring
[x] NoteSee Choice of Data Types for further information about how to use [x]
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
50. Extension.url
Fixed Valuehttp://hl7.org/fhir/StructureDefinition/questionnaire-constraint
52. Extension.value[x]
Control0..0

Guidance on how to interpret the contents of this table can be found here

0. Extension
Definition

An invariant that must be satisfied before responses to the questionnaire can be considered "complete".


Optional Extension Element - found in all resources.

ShortConstraintOptional Extensions Element
Comments

This maps to the ElementDefinition.constraint element. See additional guidance and examples in the SDC implementation guide.

Control0..*
Is Modifierfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
2. Extension.extension
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

ShortAdditional content defined by implementations
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control40..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 4. Extension.extension:key
    Slice Namekey
    Definition

    Unique id for the constraint within the questionnaire.

    ShortUnique identifierAdditional content defined by implementations
    Control10..1*
    TypeExtension
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    6. Extension.extension:key.extension
    Definition

    An Extension


    May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

    ShortExtensionAdditional content defined by implementations
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..0*
    TypeExtension
    Is Modifierfalse
    Summaryfalse
    Alternate Namesextensions, user content
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    SlicingThis element introduces a set of slices on Extension.extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
    • value @ url
    • 8. Extension.extension:key.url
      Definition

      Source of the definition for the extension code - a logical name or a URL.

      Shortidentifies the meaning of the extension
      Comments

      The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

      Control1..1
      Typeuri
      Is Modifierfalse
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      XML FormatIn the XML format, this property is represented as an attribute.
      Summaryfalse
      Fixed Valuekey
      10. Extension.extension:key.value[x]
      Definition

      Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

      ShortValue of extension
      Control10..1
      This element is affected by the following invariants: ext-1
      Typeid, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, RatioRange, Coding, SampledData, positiveInt, Distance, Availability, integer64, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, ExtendedContactDetail, CodeableConcept, ParameterDefinition, dateTime, code, string, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, CodeableReference, Signature, unsignedInt, time
      [x] NoteSee Choice of Data Types for further information about how to use [x]
      Is Modifierfalse
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summaryfalse
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      12. Extension.extension:requirements
      Slice Namerequirements
      Definition

      An explanation of why this extension is required (for documentation purposes).

      ShortWhy neededAdditional content defined by implementations
      Control0..1*
      TypeExtension
      Is Modifierfalse
      Summaryfalse
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      14. Extension.extension:requirements.extension
      Definition

      An Extension


      May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

      ShortExtensionAdditional content defined by implementations
      Comments

      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

      Control0..0*
      TypeExtension
      Is Modifierfalse
      Summaryfalse
      Alternate Namesextensions, user content
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      SlicingThis element introduces a set of slices on Extension.extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
      • value @ url
      • 16. Extension.extension:requirements.url
        Definition

        Source of the definition for the extension code - a logical name or a URL.

        Shortidentifies the meaning of the extension
        Comments

        The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

        Control1..1
        Typeuri
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        XML FormatIn the XML format, this property is represented as an attribute.
        Summaryfalse
        Fixed Valuerequirements
        18. Extension.extension:requirements.value[x]
        Definition

        Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

        ShortValue of extension
        Control10..1
        This element is affected by the following invariants: ext-1
        Typestring, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, RatioRange, Coding, SampledData, id, positiveInt, Distance, Availability, integer64, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, ExtendedContactDetail, CodeableConcept, ParameterDefinition, dateTime, code, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, CodeableReference, Signature, unsignedInt, time
        [x] NoteSee Choice of Data Types for further information about how to use [x]
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        20. Extension.extension:severity
        Slice Nameseverity
        Definition

        Indicates how serious violating the invariant is.

        Shorterror|warningAdditional content defined by implementations
        Control10..1*
        TypeExtension
        Is Modifierfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        22. Extension.extension:severity.extension
        Definition

        An Extension


        May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

        ShortExtensionAdditional content defined by implementations
        Comments

        There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

        Control0..0*
        TypeExtension
        Is Modifierfalse
        Summaryfalse
        Alternate Namesextensions, user content
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        SlicingThis element introduces a set of slices on Extension.extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
        • value @ url
        • 24. Extension.extension:severity.url
          Definition

          Source of the definition for the extension code - a logical name or a URL.

          Shortidentifies the meaning of the extension
          Comments

          The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

          Control1..1
          Typeuri
          Is Modifierfalse
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          XML FormatIn the XML format, this property is represented as an attribute.
          Summaryfalse
          Fixed Valueseverity
          26. Extension.extension:severity.value[x]
          Definition

          Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

          ShortValue of extension
          Control10..1
          This element is affected by the following invariants: ext-1
          BindingThe codes SHALL be taken from For codes, see ConstraintSeverity
          (required to http://hl7.org/fhir/ValueSet/constraint-severity)

          How important the invariant is.

          Typecode, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, RatioRange, Coding, SampledData, id, positiveInt, Distance, Availability, integer64, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, ExtendedContactDetail, CodeableConcept, ParameterDefinition, dateTime, string, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, CodeableReference, Signature, unsignedInt, time
          [x] NoteSee Choice of Data Types for further information about how to use [x]
          Is Modifierfalse
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          Summaryfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          28. Extension.extension:expression
          Slice Nameexpression
          Definition

          The FHIRPath expression of the rule for computable interpretation.

          ShortFormal ruleAdditional content defined by implementations
          Control10..1*
          TypeExtension
          Is Modifierfalse
          Summaryfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          30. Extension.extension:expression.extension
          Definition

          An Extension


          May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

          ShortExtensionAdditional content defined by implementations
          Comments

          There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

          Control0..0*
          TypeExtension
          Is Modifierfalse
          Summaryfalse
          Alternate Namesextensions, user content
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          SlicingThis element introduces a set of slices on Extension.extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
          • value @ url
          • 32. Extension.extension:expression.url
            Definition

            Source of the definition for the extension code - a logical name or a URL.

            Shortidentifies the meaning of the extension
            Comments

            The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

            Control1..1
            Typeuri
            Is Modifierfalse
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            XML FormatIn the XML format, this property is represented as an attribute.
            Summaryfalse
            Fixed Valueexpression
            34. Extension.extension:expression.value[x]
            Definition

            Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

            ShortValue of extension
            Control10..1
            This element is affected by the following invariants: ext-1
            Typestring, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, RatioRange, Coding, SampledData, id, positiveInt, Distance, Availability, integer64, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, ExtendedContactDetail, CodeableConcept, ParameterDefinition, dateTime, code, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, CodeableReference, Signature, unsignedInt, time
            [x] NoteSee Choice of Data Types for further information about how to use [x]
            Is Modifierfalse
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            Summaryfalse
            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            36. Extension.extension:human
            Slice Namehuman
            Definition

            A free text expression of the rule to display to the user if the rule is violated.

            ShortHuman-readable ruleAdditional content defined by implementations
            Control10..1*
            TypeExtension
            Is Modifierfalse
            Summaryfalse
            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
            38. Extension.extension:human.extension
            Definition

            An Extension


            May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

            ShortExtensionAdditional content defined by implementations
            Comments

            There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

            Control0..0*
            TypeExtension
            Is Modifierfalse
            Summaryfalse
            Alternate Namesextensions, user content
            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
            SlicingThis element introduces a set of slices on Extension.extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
            • value @ url
            • 40. Extension.extension:human.url
              Definition

              Source of the definition for the extension code - a logical name or a URL.

              Shortidentifies the meaning of the extension
              Comments

              The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

              Control1..1
              Typeuri
              Is Modifierfalse
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              XML FormatIn the XML format, this property is represented as an attribute.
              Summaryfalse
              Fixed Valuehuman
              42. Extension.extension:human.value[x]
              Definition

              Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

              ShortValue of extension
              Control10..1
              This element is affected by the following invariants: ext-1
              Typestring, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, RatioRange, Coding, SampledData, id, positiveInt, Distance, Availability, integer64, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, ExtendedContactDetail, CodeableConcept, ParameterDefinition, dateTime, code, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, CodeableReference, Signature, unsignedInt, time
              [x] NoteSee Choice of Data Types for further information about how to use [x]
              Is Modifierfalse
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              Summaryfalse
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              44. Extension.extension:location
              Slice Namelocation
              Definition

              Relative paths to the questions this rule is enforced against.

              ShortRelative path to elementsAdditional content defined by implementations
              Control0..*
              TypeExtension
              Is Modifierfalse
              Summaryfalse
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
              46. Extension.extension:location.extension
              Definition

              An Extension


              May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

              ShortExtensionAdditional content defined by implementations
              Comments

              There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

              Control0..0*
              TypeExtension
              Is Modifierfalse
              Summaryfalse
              Alternate Namesextensions, user content
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
              SlicingThis element introduces a set of slices on Extension.extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
              • value @ url
              • 48. Extension.extension:location.url
                Definition

                Source of the definition for the extension code - a logical name or a URL.

                Shortidentifies the meaning of the extension
                Comments

                The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                Control1..1
                Typeuri
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                XML FormatIn the XML format, this property is represented as an attribute.
                Summaryfalse
                Fixed Valuelocation
                50. Extension.extension:location.value[x]
                Definition

                Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                ShortValue of extension
                Control10..1
                This element is affected by the following invariants: ext-1
                Typestring, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, RatioRange, Coding, SampledData, id, positiveInt, Distance, Availability, integer64, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, ExtendedContactDetail, CodeableConcept, ParameterDefinition, dateTime, code, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, CodeableReference, Signature, unsignedInt, time
                [x] NoteSee Choice of Data Types for further information about how to use [x]
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                52. Extension.url
                Definition

                Source of the definition for the extension code - a logical name or a URL.

                Shortidentifies the meaning of the extension
                Comments

                The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                Control1..1
                Typeuri
                Is Modifierfalse
                XML FormatIn the XML format, this property is represented as an attribute.
                Summaryfalse
                Fixed Valuehttp://hl7.org/fhir/StructureDefinition/questionnaire-constraint
                54. Extension.value[x]
                Definition

                Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                ShortValue of extension
                Control0..01
                This element is affected by the following invariants: ext-1
                TypeChoice of: 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
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))

                Guidance on how to interpret the contents of this table can be found here

                0. Extension
                Definition

                An invariant that must be satisfied before responses to the questionnaire can be considered "complete".

                ShortConstraint
                Comments

                This maps to the ElementDefinition.constraint element. See additional guidance and examples in the SDC implementation guide.

                Control0..*
                Is Modifierfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                2. Extension.id
                Definition

                Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                ShortUnique id for inter-element referencing
                Control0..1
                This element is affected by the following invariants: ele-1
                Typeid
                Is Modifierfalse
                XML FormatIn the XML format, this property is represented as an attribute.
                Summaryfalse
                4. Extension.extension
                Definition

                May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                ShortAdditional content defined by implementations
                Comments

                There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                Control4..*
                TypeExtension
                Is Modifierfalse
                Summaryfalse
                Alternate Namesextensions, user content
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                SlicingThis element introduces a set of slices on Extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
                • value @ url
                • 6. Extension.extension:key
                  Slice Namekey
                  Definition

                  Unique id for the constraint within the questionnaire.

                  ShortUnique identifier
                  Control1..1
                  TypeExtension
                  Is Modifierfalse
                  Summaryfalse
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                  8. Extension.extension:key.id
                  Definition

                  Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                  ShortUnique id for inter-element referencing
                  Control0..1
                  This element is affected by the following invariants: ele-1
                  Typeid
                  Is Modifierfalse
                  XML FormatIn the XML format, this property is represented as an attribute.
                  Summaryfalse
                  10. Extension.extension:key.extension
                  Definition

                  An Extension

                  ShortExtension
                  Control0..0
                  TypeExtension
                  Is Modifierfalse
                  Summaryfalse
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                  SlicingThis element introduces a set of slices on Extension.extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
                  • value @ url
                  • 12. Extension.extension:key.url
                    Definition

                    Source of the definition for the extension code - a logical name or a URL.

                    Shortidentifies the meaning of the extension
                    Comments

                    The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                    Control1..1
                    Typeuri
                    Is Modifierfalse
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    XML FormatIn the XML format, this property is represented as an attribute.
                    Summaryfalse
                    Fixed Valuekey
                    14. Extension.extension:key.value[x]
                    Definition

                    Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                    ShortValue of extension
                    Control1..1
                    This element is affected by the following invariants: ext-1
                    Typeid
                    [x] NoteSee Choice of Data Types for further information about how to use [x]
                    Is Modifierfalse
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    Summaryfalse
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    16. Extension.extension:requirements
                    Slice Namerequirements
                    Definition

                    An explanation of why this extension is required (for documentation purposes).

                    ShortWhy needed
                    Control0..1
                    TypeExtension
                    Is Modifierfalse
                    Summaryfalse
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                    18. Extension.extension:requirements.id
                    Definition

                    Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                    ShortUnique id for inter-element referencing
                    Control0..1
                    This element is affected by the following invariants: ele-1
                    Typeid
                    Is Modifierfalse
                    XML FormatIn the XML format, this property is represented as an attribute.
                    Summaryfalse
                    20. Extension.extension:requirements.extension
                    Definition

                    An Extension

                    ShortExtension
                    Control0..0
                    TypeExtension
                    Is Modifierfalse
                    Summaryfalse
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                    SlicingThis element introduces a set of slices on Extension.extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
                    • value @ url
                    • 22. Extension.extension:requirements.url
                      Definition

                      Source of the definition for the extension code - a logical name or a URL.

                      Shortidentifies the meaning of the extension
                      Comments

                      The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                      Control1..1
                      Typeuri
                      Is Modifierfalse
                      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                      XML FormatIn the XML format, this property is represented as an attribute.
                      Summaryfalse
                      Fixed Valuerequirements
                      24. Extension.extension:requirements.value[x]
                      Definition

                      Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                      ShortValue of extension
                      Control1..1
                      This element is affected by the following invariants: ext-1
                      Typestring
                      [x] NoteSee Choice of Data Types for further information about how to use [x]
                      Is Modifierfalse
                      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      26. Extension.extension:severity
                      Slice Nameseverity
                      Definition

                      Indicates how serious violating the invariant is.

                      Shorterror|warning
                      Control1..1
                      TypeExtension
                      Is Modifierfalse
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                      28. Extension.extension:severity.id
                      Definition

                      Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                      ShortUnique id for inter-element referencing
                      Control0..1
                      This element is affected by the following invariants: ele-1
                      Typeid
                      Is Modifierfalse
                      XML FormatIn the XML format, this property is represented as an attribute.
                      Summaryfalse
                      30. Extension.extension:severity.extension
                      Definition

                      An Extension

                      ShortExtension
                      Control0..0
                      TypeExtension
                      Is Modifierfalse
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                      SlicingThis element introduces a set of slices on Extension.extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
                      • value @ url
                      • 32. Extension.extension:severity.url
                        Definition

                        Source of the definition for the extension code - a logical name or a URL.

                        Shortidentifies the meaning of the extension
                        Comments

                        The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                        Control1..1
                        Typeuri
                        Is Modifierfalse
                        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                        XML FormatIn the XML format, this property is represented as an attribute.
                        Summaryfalse
                        Fixed Valueseverity
                        34. Extension.extension:severity.value[x]
                        Definition

                        Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                        ShortValue of extension
                        Control1..1
                        This element is affected by the following invariants: ext-1
                        BindingThe codes SHALL be taken from ConstraintSeverity
                        (required to http://hl7.org/fhir/ValueSet/constraint-severity)

                        How important the invariant is.

                        Typecode
                        [x] NoteSee Choice of Data Types for further information about how to use [x]
                        Is Modifierfalse
                        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                        Summaryfalse
                        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                        36. Extension.extension:expression
                        Slice Nameexpression
                        Definition

                        The FHIRPath expression of the rule for computable interpretation.

                        ShortFormal rule
                        Control1..1
                        TypeExtension
                        Is Modifierfalse
                        Summaryfalse
                        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                        38. Extension.extension:expression.id
                        Definition

                        Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                        ShortUnique id for inter-element referencing
                        Control0..1
                        This element is affected by the following invariants: ele-1
                        Typeid
                        Is Modifierfalse
                        XML FormatIn the XML format, this property is represented as an attribute.
                        Summaryfalse
                        40. Extension.extension:expression.extension
                        Definition

                        An Extension

                        ShortExtension
                        Control0..0
                        TypeExtension
                        Is Modifierfalse
                        Summaryfalse
                        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                        SlicingThis element introduces a set of slices on Extension.extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
                        • value @ url
                        • 42. Extension.extension:expression.url
                          Definition

                          Source of the definition for the extension code - a logical name or a URL.

                          Shortidentifies the meaning of the extension
                          Comments

                          The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                          Control1..1
                          Typeuri
                          Is Modifierfalse
                          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                          XML FormatIn the XML format, this property is represented as an attribute.
                          Summaryfalse
                          Fixed Valueexpression
                          44. Extension.extension:expression.value[x]
                          Definition

                          Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                          ShortValue of extension
                          Control1..1
                          This element is affected by the following invariants: ext-1
                          Typestring
                          [x] NoteSee Choice of Data Types for further information about how to use [x]
                          Is Modifierfalse
                          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                          Summaryfalse
                          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                          46. Extension.extension:human
                          Slice Namehuman
                          Definition

                          A free text expression of the rule to display to the user if the rule is violated.

                          ShortHuman-readable rule
                          Control1..1
                          TypeExtension
                          Is Modifierfalse
                          Summaryfalse
                          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                          48. Extension.extension:human.id
                          Definition

                          Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                          ShortUnique id for inter-element referencing
                          Control0..1
                          This element is affected by the following invariants: ele-1
                          Typeid
                          Is Modifierfalse
                          XML FormatIn the XML format, this property is represented as an attribute.
                          Summaryfalse
                          50. Extension.extension:human.extension
                          Definition

                          An Extension

                          ShortExtension
                          Control0..0
                          TypeExtension
                          Is Modifierfalse
                          Summaryfalse
                          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                          SlicingThis element introduces a set of slices on Extension.extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
                          • value @ url
                          • 52. Extension.extension:human.url
                            Definition

                            Source of the definition for the extension code - a logical name or a URL.

                            Shortidentifies the meaning of the extension
                            Comments

                            The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                            Control1..1
                            Typeuri
                            Is Modifierfalse
                            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                            XML FormatIn the XML format, this property is represented as an attribute.
                            Summaryfalse
                            Fixed Valuehuman
                            54. Extension.extension:human.value[x]
                            Definition

                            Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                            ShortValue of extension
                            Control1..1
                            This element is affected by the following invariants: ext-1
                            Typestring
                            [x] NoteSee Choice of Data Types for further information about how to use [x]
                            Is Modifierfalse
                            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                            Summaryfalse
                            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                            56. Extension.extension:location
                            Slice Namelocation
                            Definition

                            Relative paths to the questions this rule is enforced against.

                            ShortRelative path to elements
                            Control0..*
                            TypeExtension
                            Is Modifierfalse
                            Summaryfalse
                            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                            ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                            58. Extension.extension:location.id
                            Definition

                            Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                            ShortUnique id for inter-element referencing
                            Control0..1
                            This element is affected by the following invariants: ele-1
                            Typeid
                            Is Modifierfalse
                            XML FormatIn the XML format, this property is represented as an attribute.
                            Summaryfalse
                            60. Extension.extension:location.extension
                            Definition

                            An Extension

                            ShortExtension
                            Control0..0
                            TypeExtension
                            Is Modifierfalse
                            Summaryfalse
                            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                            ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                            SlicingThis element introduces a set of slices on Extension.extension.extension. The slices are unordered and Open, and can be differentiated using the following discriminators:
                            • value @ url
                            • 62. Extension.extension:location.url
                              Definition

                              Source of the definition for the extension code - a logical name or a URL.

                              Shortidentifies the meaning of the extension
                              Comments

                              The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                              Control1..1
                              Typeuri
                              Is Modifierfalse
                              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                              XML FormatIn the XML format, this property is represented as an attribute.
                              Summaryfalse
                              Fixed Valuelocation
                              64. Extension.extension:location.value[x]
                              Definition

                              Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                              ShortValue of extension
                              Control1..1
                              This element is affected by the following invariants: ext-1
                              Typestring
                              [x] NoteSee Choice of Data Types for further information about how to use [x]
                              Is Modifierfalse
                              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                              Summaryfalse
                              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                              66. Extension.url
                              Definition

                              Source of the definition for the extension code - a logical name or a URL.

                              Shortidentifies the meaning of the extension
                              Comments

                              The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                              Control1..1
                              Typeuri
                              Is Modifierfalse
                              XML FormatIn the XML format, this property is represented as an attribute.
                              Summaryfalse
                              Fixed Valuehttp://hl7.org/fhir/StructureDefinition/questionnaire-constraint
                              68. Extension.value[x]
                              Definition

                              Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                              ShortValue of extension
                              Control0..0
                              This element is affected by the following invariants: ext-1
                              TypeChoice of: 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
                              Is Modifierfalse
                              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                              Summaryfalse
                              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))