This page is part of the FHIR Specification (v4.2.0: R5 Preview #1). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R4B R4
FHIR Infrastructure Work Group | Maturity Level: N/A | Standards Status: Informative |
Raw XML (canonical form + also see XML Format Specification)
constraint
<?xml version="1.0" encoding="UTF-8"?> <StructureDefinition xmlns="http://hl7.org/fhir"> <id value="questionnaire-constraint"/> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg"> <valueCode value="fhir"/> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm"> <valueInteger value="1"/> </extension> <url value="http://hl7.org/fhir/StructureDefinition/questionnaire-constraint"/> <version value="4.2.0"/> <name value="constraint"/> <status value="draft"/> <date value="2013-07-04"/> <publisher value="HL7"/> <contact> <telecom> <system value="url"/> <value value="http://www.hl7.org"/> </telecom> </contact> <description value="An invariant that must be satisfied before responses to the questionnaire can be considered "complete"."/> <fhirVersion value="4.2.0"/> <mapping> <identity value="rim"/> <uri value="http://hl7.org/v3"/> <name value="RIM Mapping"/> </mapping> <kind value="complex-type"/> <abstract value="false"/> <context> <type value="element"/> <expression value="Questionnaire"/> </context> <context> <type value="element"/> <expression value="Questionnaire.item"/> </context> <context> <type value="element"/> <expression value="Questionnaire.item.item"/> </context> <type value="Extension"/> <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension"/> <derivation value="constraint"/> <snapshot> <element id="Extension"> <path value="Extension"/> <short value="Constraint"/> <definition value="An invariant that must be satisfied before responses to the questionnaire can be considered "complete"."/> <comment value="This maps to the ElementDefinition.constraint element."/> <min value="0"/> <max value="*"/> <base> <path value="Extension"/> <min value="0"/> <max value="*"/> </base> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])"/> <source value="http://hl7.org/fhir/StructureDefinition/Extension"/> </constraint> <isModifier value="false"/> </element> <element id="Extension.id"> <path value="Extension.id"/> <representation value="xmlAttr"/> <short value="Unique id for inter-element referencing"/> <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."/> <min value="0"/> <max value="1"/> <base> <path value="Element.id"/> <min value="0"/> <max value="1"/> </base> <type> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> <valueUri value="string"/> </extension> <code value="http://hl7.org/fhirpath/System.String"/> </type> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="n/a"/> </mapping> </element> <element id="Extension.extension"> <path value="Extension.extension"/> <slicing> <discriminator> <type value="value"/> <path value="url"/> </discriminator> <description value="Extensions are always sliced by (at least) url"/> <rules value="open"/> </slicing> <short value="Additional content defined by implementations"/> <definition value="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 manageable, 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."/> <comment value="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."/> <alias value="extensions"/> <alias value="user content"/> <min value="0"/> <max value="*"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/> <source value="Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="n/a"/> </mapping> </element> <element id="Extension.extension:key"> <path value="Extension.extension"/> <sliceName value="key"/> <short value="Unique identifier"/> <definition value="Unique id for the constraint within the questionnaire."/> <min value="1"/> <max value="1"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/> <source value="Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="Extension.extension:key.id"> <path value="Extension.extension.id"/> <representation value="xmlAttr"/> <short value="Unique id for inter-element referencing"/> <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."/> <min value="0"/> <max value="1"/> <base> <path value="Element.id"/> <min value="0"/> <max value="1"/> </base> <type> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> <valueUri value="string"/> </extension> <code value="http://hl7.org/fhirpath/System.String"/> </type> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="n/a"/> </mapping> </element> <element id="Extension.extension:key.extension"> <path value="Extension.extension.extension"/> <slicing> <discriminator> <type value="value"/> <path value="url"/> </discriminator> <description value="Extensions are always sliced by (at least) url"/> <rules value="open"/> </slicing> <short value="Extension"/> <definition value="An Extension"/> <min value="0"/> <max value="0"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/> <source value="Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="Extension.extension:key.url"> <path value="Extension.extension.url"/> <representation value="xmlAttr"/> <short value="identifies the meaning of the extension"/> <definition value="Source of the definition for the extension code - a logical name or a URL."/> <comment value="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."/> <min value="1"/> <max value="1"/> <base> <path value="Extension.url"/> <min value="1"/> <max value="1"/> </base> <type> <code value="uri"/> </type> <fixedUri value="key"/> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> <element id="Extension.extension:key.value[x]"> <path value="Extension.extension.value[x]"/> <short value="Value of extension"/> <definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensi bility.html) for a list)."/> <min value="1"/> <max value="1"/> <base> <path value="Extension.value[x]"/> <min value="0"/> <max value="1"/> </base> <type> <code value="id"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> <element id="Extension.extension:requirements"> <path value="Extension.extension"/> <sliceName value="requirements"/> <short value="Why needed"/> <definition value="An explanation of why this extension is required (for documentation purposes)."/> <min value="0"/> <max value="1"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/> <source value="Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="Extension.extension:requirements.id"> <path value="Extension.extension.id"/> <representation value="xmlAttr"/> <short value="Unique id for inter-element referencing"/> <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."/> <min value="0"/> <max value="1"/> <base> <path value="Element.id"/> <min value="0"/> <max value="1"/> </base> <type> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> <valueUri value="string"/> </extension> <code value="http://hl7.org/fhirpath/System.String"/> </type> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="n/a"/> </mapping> </element> <element id="Extension.extension:requirements.extension"> <path value="Extension.extension.extension"/> <slicing> <discriminator> <type value="value"/> <path value="url"/> </discriminator> <description value="Extensions are always sliced by (at least) url"/> <rules value="open"/> </slicing> <short value="Extension"/> <definition value="An Extension"/> <min value="0"/> <max value="0"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/> <source value="Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="Extension.extension:requirements.url"> <path value="Extension.extension.url"/> <representation value="xmlAttr"/> <short value="identifies the meaning of the extension"/> <definition value="Source of the definition for the extension code - a logical name or a URL."/> <comment value="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."/> <min value="1"/> <max value="1"/> <base> <path value="Extension.url"/> <min value="1"/> <max value="1"/> </base> <type> <code value="uri"/> </type> <fixedUri value="requirements"/> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> <element id="Extension.extension:requirements.value[x]"> <path value="Extension.extension.value[x]"/> <short value="Value of extension"/> <definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensi bility.html) for a list)."/> <min value="1"/> <max value="1"/> <base> <path value="Extension.value[x]"/> <min value="0"/> <max value="1"/> </base> <type> <code value="string"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> <element id="Extension.extension:severity"> <path value="Extension.extension"/> <sliceName value="severity"/> <short value="error|warning"/> <definition value="Indicates how serious violating the invariant is."/> <min value="1"/> <max value="1"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/> <source value="Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="Extension.extension:severity.id"> <path value="Extension.extension.id"/> <representation value="xmlAttr"/> <short value="Unique id for inter-element referencing"/> <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."/> <min value="0"/> <max value="1"/> <base> <path value="Element.id"/> <min value="0"/> <max value="1"/> </base> <type> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> <valueUri value="string"/> </extension> <code value="http://hl7.org/fhirpath/System.String"/> </type> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="n/a"/> </mapping> </element> <element id="Extension.extension:severity.extension"> <path value="Extension.extension.extension"/> <slicing> <discriminator> <type value="value"/> <path value="url"/> </discriminator> <description value="Extensions are always sliced by (at least) url"/> <rules value="open"/> </slicing> <short value="Extension"/> <definition value="An Extension"/> <min value="0"/> <max value="0"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/> <source value="Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="Extension.extension:severity.url"> <path value="Extension.extension.url"/> <representation value="xmlAttr"/> <short value="identifies the meaning of the extension"/> <definition value="Source of the definition for the extension code - a logical name or a URL."/> <comment value="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."/> <min value="1"/> <max value="1"/> <base> <path value="Extension.url"/> <min value="1"/> <max value="1"/> </base> <type> <code value="uri"/> </type> <fixedUri value="severity"/> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> <element id="Extension.extension:severity.value[x]"> <path value="Extension.extension.value[x]"/> <short value="Value of extension"/> <definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensi bility.html) for a list)."/> <min value="1"/> <max value="1"/> <base> <path value="Extension.value[x]"/> <min value="0"/> <max value="1"/> </base> <type> <code value="code"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> <binding> <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName"> <valueString value="ConstraintSeverity"/> </extension> <strength value="required"/> <description value="How important the invariant is."/> <valueSet value="http://hl7.org/fhir/ValueSet/constraint-severity|4.2.0"/> </binding> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> <element id="Extension.extension:expression"> <path value="Extension.extension"/> <sliceName value="expression"/> <short value="Formal rule"/> <definition value="The FHIRPath expression of the rule for computable interpretation."/> <min value="1"/> <max value="1"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/> <source value="Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="Extension.extension:expression.id"> <path value="Extension.extension.id"/> <representation value="xmlAttr"/> <short value="Unique id for inter-element referencing"/> <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."/> <min value="0"/> <max value="1"/> <base> <path value="Element.id"/> <min value="0"/> <max value="1"/> </base> <type> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> <valueUri value="string"/> </extension> <code value="http://hl7.org/fhirpath/System.String"/> </type> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="n/a"/> </mapping> </element> <element id="Extension.extension:expression.extension"> <path value="Extension.extension.extension"/> <slicing> <discriminator> <type value="value"/> <path value="url"/> </discriminator> <description value="Extensions are always sliced by (at least) url"/> <rules value="open"/> </slicing> <short value="Extension"/> <definition value="An Extension"/> <min value="0"/> <max value="0"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/> <source value="Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="Extension.extension:expression.url"> <path value="Extension.extension.url"/> <representation value="xmlAttr"/> <short value="identifies the meaning of the extension"/> <definition value="Source of the definition for the extension code - a logical name or a URL."/> <comment value="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."/> <min value="1"/> <max value="1"/> <base> <path value="Extension.url"/> <min value="1"/> <max value="1"/> </base> <type> <code value="uri"/> </type> <fixedUri value="expression"/> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> <element id="Extension.extension:expression.value[x]"> <path value="Extension.extension.value[x]"/> <short value="Value of extension"/> <definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensi bility.html) for a list)."/> <min value="1"/> <max value="1"/> <base> <path value="Extension.value[x]"/> <min value="0"/> <max value="1"/> </base> <type> <code value="string"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> <element id="Extension.extension:human"> <path value="Extension.extension"/> <sliceName value="human"/> <short value="Human-readable rule"/> <definition value="A free text expression of the rule to display to the user if the rule is violated."/> <min value="1"/> <max value="1"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/> <source value="Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="Extension.extension:human.id"> <path value="Extension.extension.id"/> <representation value="xmlAttr"/> <short value="Unique id for inter-element referencing"/> <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."/> <min value="0"/> <max value="1"/> <base> <path value="Element.id"/> <min value="0"/> <max value="1"/> </base> <type> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> <valueUri value="string"/> </extension> <code value="http://hl7.org/fhirpath/System.String"/> </type> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="n/a"/> </mapping> </element> <element id="Extension.extension:human.extension"> <path value="Extension.extension.extension"/> <slicing> <discriminator> <type value="value"/> <path value="url"/> </discriminator> <description value="Extensions are always sliced by (at least) url"/> <rules value="open"/> </slicing> <short value="Extension"/> <definition value="An Extension"/> <min value="0"/> <max value="0"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/> <source value="Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="Extension.extension:human.url"> <path value="Extension.extension.url"/> <representation value="xmlAttr"/> <short value="identifies the meaning of the extension"/> <definition value="Source of the definition for the extension code - a logical name or a URL."/> <comment value="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."/> <min value="1"/> <max value="1"/> <base> <path value="Extension.url"/> <min value="1"/> <max value="1"/> </base> <type> <code value="uri"/> </type> <fixedUri value="human"/> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> <element id="Extension.extension:human.value[x]"> <path value="Extension.extension.value[x]"/> <short value="Value of extension"/> <definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensi bility.html) for a list)."/> <min value="1"/> <max value="1"/> <base> <path value="Extension.value[x]"/> <min value="0"/> <max value="1"/> </base> <type> <code value="string"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> <element id="Extension.extension:location"> <path value="Extension.extension"/> <sliceName value="location"/> <short value="Relative path to elements"/> <definition value="Relative paths to the questions this rule is enforced against."/> <min value="0"/> <max value="*"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/> <source value="Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="Extension.extension:location.id"> <path value="Extension.extension.id"/> <representation value="xmlAttr"/> <short value="Unique id for inter-element referencing"/> <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."/> <min value="0"/> <max value="1"/> <base> <path value="Element.id"/> <min value="0"/> <max value="1"/> </base> <type> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> <valueUri value="string"/> </extension> <code value="http://hl7.org/fhirpath/System.String"/> </type> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="n/a"/> </mapping> </element> <element id="Extension.extension:location.extension"> <path value="Extension.extension.extension"/> <slicing> <discriminator> <type value="value"/> <path value="url"/> </discriminator> <description value="Extensions are always sliced by (at least) url"/> <rules value="open"/> </slicing> <short value="Extension"/> <definition value="An Extension"/> <min value="0"/> <max value="0"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])"/> <source value="Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="Extension.extension:location.url"> <path value="Extension.extension.url"/> <representation value="xmlAttr"/> <short value="identifies the meaning of the extension"/> <definition value="Source of the definition for the extension code - a logical name or a URL."/> <comment value="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."/> <min value="1"/> <max value="1"/> <base> <path value="Extension.url"/> <min value="1"/> <max value="1"/> </base> <type> <code value="uri"/> </type> <fixedUri value="location"/> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> <element id="Extension.extension:location.value[x]"> <path value="Extension.extension.value[x]"/> <short value="Value of extension"/> <definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensi bility.html) for a list)."/> <min value="1"/> <max value="1"/> <base> <path value="Extension.value[x]"/> <min value="0"/> <max value="1"/> </base> <type> <code value="string"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> <element id="Extension.url"> <path value="Extension.url"/> <representation value="xmlAttr"/> <short value="identifies the meaning of the extension"/> <definition value="Source of the definition for the extension code - a logical name or a URL."/> <comment value="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."/> <min value="1"/> <max value="1"/> <base> <path value="Extension.url"/> <min value="1"/> <max value="1"/> </base> <type> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> <valueUri value="uri"/> </extension> <code value="http://hl7.org/fhirpath/System.String"/> </type> <fixedUri value="http://hl7.org/fhir/StructureDefinition/questionnaire-constraint"/> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> <element id="Extension.value[x]"> <path value="Extension.value[x]"/> <short value="Value of extension"/> <definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensi bility.html) for a list)."/> <min value="0"/> <max value="0"/> <base> <path value="Extension.value[x]"/> <min value="0"/> <max value="1"/> </base> <type> <code value="base64Binary"/> </type> <type> <code value="boolean"/> </type> <type> <code value="canonical"/> </type> <type> <code value="code"/> </type> <type> <code value="date"/> </type> <type> <code value="dateTime"/> </type> <type> <code value="decimal"/> </type> <type> <code value="id"/> </type> <type> <code value="instant"/> </type> <type> <code value="integer"/> </type> <type> <code value="integer64"/> </type> <type> <code value="markdown"/> </type> <type> <code value="oid"/> </type> <type> <code value="positiveInt"/> </type> <type> <code value="string"/> </type> <type> <code value="time"/> </type> <type> <code value="unsignedInt"/> </type> <type> <code value="uri"/> </type> <type> <code value="url"/> </type> <type> <code value="uuid"/> </type> <type> <code value="Address"/> </type> <type> <code value="Age"/> </type> <type> <code value="Annotation"/> </type> <type> <code value="Attachment"/> </type> <type> <code value="CodeableConcept"/> </type> <type> <code value="Coding"/> </type> <type> <code value="ContactPoint"/> </type> <type> <code value="Count"/> </type> <type> <code value="Distance"/> </type> <type> <code value="Duration"/> </type> <type> <code value="HumanName"/> </type> <type> <code value="Identifier"/> </type> <type> <code value="Money"/> </type> <type> <code value="Period"/> </type> <type> <code value="Quantity"/> </type> <type> <code value="Range"/> </type> <type> <code value="Ratio"/> </type> <type> <code value="Reference"/> </type> <type> <code value="SampledData"/> </type> <type> <code value="Signature"/> </type> <type> <code value="Timing"/> </type> <type> <code value="ContactDetail"/> </type> <type> <code value="Contributor"/> </type> <type> <code value="DataRequirement"/> </type> <type> <code value="Expression"/> </type> <type> <code value="ParameterDefinition"/> </type> <type> <code value="RelatedArtifact"/> </type> <type> <code value="TriggerDefinition"/> </type> <type> <code value="UsageContext"/> </type> <type> <code value="Dosage"/> </type> <type> <code value="Meta"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <xpath value="@value|f:*|h:div"/> <source value="Element"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> <mapping> <identity value="rim"/> <map value="N/A"/> </mapping> </element> </snapshot> <differential> <element id="Extension"> <path value="Extension"/> <short value="Constraint"/> <definition value="An invariant that must be satisfied before responses to the questionnaire can be considered "complete"."/> <comment value="This maps to the ElementDefinition.constraint element."/> <min value="0"/> <max value="*"/> </element> <element id="Extension.extension:key"> <path value="Extension.extension"/> <sliceName value="key"/> <short value="Unique identifier"/> <definition value="Unique id for the constraint within the questionnaire."/> <min value="1"/> <max value="1"/> <type> <code value="Extension"/> </type> </element> <element id="Extension.extension:key.extension"> <path value="Extension.extension.extension"/> <max value="0"/> </element> <element id="Extension.extension:key.url"> <path value="Extension.extension.url"/> <type> <code value="uri"/> </type> <fixedUri value="key"/> </element> <element id="Extension.extension:key.value[x]"> <path value="Extension.extension.value[x]"/> <min value="1"/> <type> <code value="id"/> </type> </element> <element id="Extension.extension:requirements"> <path value="Extension.extension"/> <sliceName value="requirements"/> <short value="Why needed"/> <definition value="An explanation of why this extension is required (for documentation purposes)."/> <min value="0"/> <max value="1"/> <type> <code value="Extension"/> </type> </element> <element id="Extension.extension:requirements.extension"> <path value="Extension.extension.extension"/> <max value="0"/> </element> <element id="Extension.extension:requirements.url"> <path value="Extension.extension.url"/> <type> <code value="uri"/> </type> <fixedUri value="requirements"/> </element> <element id="Extension.extension:requirements.value[x]"> <path value="Extension.extension.value[x]"/> <min value="1"/> <type> <code value="string"/> </type> </element> <element id="Extension.extension:severity"> <path value="Extension.extension"/> <sliceName value="severity"/> <short value="error|warning"/> <definition value="Indicates how serious violating the invariant is."/> <min value="1"/> <max value="1"/> <type> <code value="Extension"/> </type> </element> <element id="Extension.extension:severity.extension"> <path value="Extension.extension.extension"/> <max value="0"/> </element> <element id="Extension.extension:severity.url"> <path value="Extension.extension.url"/> <type> <code value="uri"/> </type> <fixedUri value="severity"/> </element> <element id="Extension.extension:severity.value[x]"> <path value="Extension.extension.value[x]"/> <min value="1"/> <type> <code value="code"/> </type> <binding> <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName"> <valueString value="ConstraintSeverity"/> </extension> <strength value="required"/> <description value="How important the invariant is."/> <valueSet value="http://hl7.org/fhir/ValueSet/constraint-severity|4.2.0"/> </binding> </element> <element id="Extension.extension:expression"> <path value="Extension.extension"/> <sliceName value="expression"/> <short value="Formal rule"/> <definition value="The FHIRPath expression of the rule for computable interpretation."/> <min value="1"/> <max value="1"/> <type> <code value="Extension"/> </type> </element> <element id="Extension.extension:expression.extension"> <path value="Extension.extension.extension"/> <max value="0"/> </element> <element id="Extension.extension:expression.url"> <path value="Extension.extension.url"/> <type> <code value="uri"/> </type> <fixedUri value="expression"/> </element> <element id="Extension.extension:expression.value[x]"> <path value="Extension.extension.value[x]"/> <min value="1"/> <type> <code value="string"/> </type> </element> <element id="Extension.extension:human"> <path value="Extension.extension"/> <sliceName value="human"/> <short value="Human-readable rule"/> <definition value="A free text expression of the rule to display to the user if the rule is violated."/> <min value="1"/> <max value="1"/> <type> <code value="Extension"/> </type> </element> <element id="Extension.extension:human.extension"> <path value="Extension.extension.extension"/> <max value="0"/> </element> <element id="Extension.extension:human.url"> <path value="Extension.extension.url"/> <type> <code value="uri"/> </type> <fixedUri value="human"/> </element> <element id="Extension.extension:human.value[x]"> <path value="Extension.extension.value[x]"/> <min value="1"/> <type> <code value="string"/> </type> </element> <element id="Extension.extension:location"> <path value="Extension.extension"/> <sliceName value="location"/> <short value="Relative path to elements"/> <definition value="Relative paths to the questions this rule is enforced against."/> <min value="0"/> <max value="*"/> <type> <code value="Extension"/> </type> </element> <element id="Extension.extension:location.extension"> <path value="Extension.extension.extension"/> <max value="0"/> </element> <element id="Extension.extension:location.url"> <path value="Extension.extension.url"/> <type> <code value="uri"/> </type> <fixedUri value="location"/> </element> <element id="Extension.extension:location.value[x]"> <path value="Extension.extension.value[x]"/> <min value="1"/> <type> <code value="string"/> </type> </element> <element id="Extension.url"> <path value="Extension.url"/> <fixedUri value="http://hl7.org/fhir/StructureDefinition/questionnaire-constraint"/> </element> <element id="Extension.value[x]"> <path value="Extension.value[x]"/> <min value="0"/> <max value="0"/> </element> </differential> </StructureDefinition>
Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.