Release 5 Ballot

This page is part of the FHIR Specification (v5.0.0-ballot: R5 Ballot - see ballot notes). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R4B R4

Example StructureDefinition/questionnaire-unitValueSet (XML)

FHIR Infrastructure Work GroupMaturity Level: N/AStandards Status: Informative

Raw XML (canonical form + also see XML Format Specification)

unitValueSet

<?xml version="1.0" encoding="UTF-8"?>

<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="questionnaire-unitValueSet"/> 
  <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-unitValueSet"/> 
  <identifier> 
    <system value="urn:ietf:rfc:3986"/> 
    <value value="urn:oid:2.16.840.1.113883.4.642.5.1237"/> 
  </identifier> 
  <version value="5.0.0-ballot"/> 
  <name value="unitValueSet"/> 
  <status value="draft"/> 
  <experimental value="false"/> 
  <date value="2013-07-04"/> 
  <publisher value="HL7"/> 
  <contact> 
    <telecom> 
      <system value="url"/> 
      <value value="http://www.hl7.org"/> 
    </telecom> 
  </contact> 
  <description value="A set of units that the user may choose when providing a quantity value."/> 
  <fhirVersion value="5.0.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.item"/> 
  </context> 
  <context> 
    <type value="element"/> 
    <expression value="ElementDefinition"/> 
  </context> 
  <contextInvariant value="type='quantity'"/> 
  <type value="Extension"/> 
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension"/> 
  <derivation value="constraint"/> 
  <snapshot> 
    <element id="Extension">
      <path value="Extension"/> 
      <short value="Unit choices"/> 
      <definition value="A set of units that the user may choose when providing a quantity value."/> 
      <comment value="Provide either unitOption(s) or unitValueSet.  If either of the extensions are
       present, the units for a Quantity element are constrained to only the units listed
       by the extensions - i.e. it is treated as a &quot;required&quot;, not an &quot;extensible&quo
      t; binding.  In the absence of either, any unit is valid.  See additional guidance
       and examples in the [SDC implementation guide](http://hl7.org/fhir/2022Sep/ig/HL7/sdc/behavior#unit
      ValusSet).  If this extension present and an answer is provided for the question
       item in the QuestionnaireResponse, then the valueQuantity **SHALL** have a Quantity.code
       and Quantity.system that match the Coding.code and system of one of the allowed
       values if the Coding has a code and/or system.  If the Coding only has a display,
       then the Quantity.unit must match.  (Note that Coding with only a display is strongly
       discouraged.)  If there is a match on code and system, but no match on display/unit,
       systems MAY raise a warning.  However, because of translation and bandwidth considerations,
       some systems **MAY** opt to drop the unit or express it in an alternate language.
        Validation of the Quantity unit **MAY** be performed by using the $validateCode
       operation, populating the elements passed into the operation from the Quantity.code,
       system and unit elements."/> 
      <min value="0"/> 
      <max value="1"/> 
      <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() &gt; id.count())"/> 
        <xpath value="@value|f:*|h:div"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/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"/> 
      <mapping> 
        <identity value="rim"/> 
        <map value="N/A (MIF-level)"/> 
      </mapping> 
    </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">
          <valueUrl value="id"/> 
        </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="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() &gt; id.count())"/> 
        <xpath value="@value|f:*|h:div"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/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(.), &quot;value&quot;)])"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Extension"/> 
      </constraint> 
      <isModifier value="false"/> 
      <isSummary value="false"/> 
    </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">
          <valueUrl value="uri"/> 
        </extension> 
        <code value="http://hl7.org/fhirpath/System.String"/> 
      </type> 
      <fixedUri value="http://hl7.org/fhir/StructureDefinition/questionnaire-unitValueSet"/> 
      <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](
      extensibility.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="canonical"/> 
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/ValueSet"/> 
      </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() &gt; id.count())"/> 
        <xpath value="@value|f:*|h:div"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/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="Unit choices"/> 
      <definition value="A set of units that the user may choose when providing a quantity value."/> 
      <comment value="Provide either unitOption(s) or unitValueSet.  If either of the extensions are
       present, the units for a Quantity element are constrained to only the units listed
       by the extensions - i.e. it is treated as a &quot;required&quot;, not an &quot;extensible&quo
      t; binding.  In the absence of either, any unit is valid.  See additional guidance
       and examples in the [SDC implementation guide](http://hl7.org/fhir/2022Sep/ig/HL7/sdc/behavior#unit
      ValusSet).  If this extension present and an answer is provided for the question
       item in the QuestionnaireResponse, then the valueQuantity **SHALL** have a Quantity.code
       and Quantity.system that match the Coding.code and system of one of the allowed
       values if the Coding has a code and/or system.  If the Coding only has a display,
       then the Quantity.unit must match.  (Note that Coding with only a display is strongly
       discouraged.)  If there is a match on code and system, but no match on display/unit,
       systems MAY raise a warning.  However, because of translation and bandwidth considerations,
       some systems **MAY** opt to drop the unit or express it in an alternate language.
        Validation of the Quantity unit **MAY** be performed by using the $validateCode
       operation, populating the elements passed into the operation from the Quantity.code,
       system and unit elements."/> 
      <min value="0"/> 
      <max value="1"/> 
      <mapping> 
        <identity value="rim"/> 
        <map value="N/A (MIF-level)"/> 
      </mapping> 
    </element> 
    <element id="Extension.extension">
      <path value="Extension.extension"/> 
      <max value="0"/> 
    </element> 
    <element id="Extension.url">
      <path value="Extension.url"/> 
      <fixedUri value="http://hl7.org/fhir/StructureDefinition/questionnaire-unitValueSet"/> 
    </element> 
    <element id="Extension.value[x]">
      <path value="Extension.value[x]"/> 
      <min value="1"/> 
      <type> 
        <code value="canonical"/> 
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/ValueSet"/> 
      </type> 
    </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.