<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Ratio-uv-ips" />
  <text>
    <status value="generated" />
    <div xmlns="http://www.w3.org/1999/xhtml">Ratio data type, constrained to use UCUM as a codesystem.</div>
  </text>
  <url value="http://hl7.org/fhir/uv/ips/StructureDefinition/Ratio-uv-ips" />
  <version value="0.2.0" />
  <name value="Ratio_uv_ips" />
  <title value="Ratio" />
  <status value="draft" />
  <date value="2018-03-21T13:49:16+00:00" />
  <description value="Ratio data type, constrained to use UCUM as a codesystem." />
  <jurisdiction>
    <coding>
      <system value="http://unstats.un.org/unsd/methods/m49/m49.htm" />
      <code value="001" />
      <display value="World" />
    </coding>
  </jurisdiction>
  <purpose value="allow only UCUM as a codesystem." />
  <fhirVersion value="4.0.0" />
  <mapping>
    <identity value="v2" />
    <uri value="http://hl7.org/v2" />
    <name value="HL7 v2 Mapping" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <kind value="complex-type" />
  <abstract value="false" />
  <type value="Ratio" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Ratio" />
  <derivation value="constraint" />
  <snapshot>
    <element id="Ratio">
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
        <valueCode value="normative" />
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version">
        <valueCode value="4.0.0" />
      </extension>
      <path value="Ratio" />
      <short value="A ratio of two Quantity values - a numerator and a denominator" />
      <definition value="A relationship of two Quantity values - expressed as a numerator and a denominator." />
      <comment value="The Ratio datatype should only be used to express a relationship of two numbers if the relationship cannot be suitably expressed using a Quantity and a common unit.  Where the denominator value is known to be fixed to &quot;1&quot;, Quantity should be used instead of Ratio." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Ratio" />
        <min value="0" />
        <max value="*" />
      </base>
      <condition value="ele-1" />
      <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="Element" />
      </constraint>
      <constraint>
        <key value="rat-1" />
        <severity value="error" />
        <human value="Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present" />
        <expression value="(numerator.empty() xor denominator.exists()) and (numerator.exists() or extension.exists())" />
        <xpath value="(count(f:numerator) = count(f:denominator)) and ((count(f:numerator) &gt; 0) or (count(f:extension) &gt; 0))" />
        <source value="Ratio" />
      </constraint>
      <mustSupport value="true" />
      <isModifier value="false" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="N/A" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="RTO" />
      </mapping>
    </element>
    <element id="Ratio.id">
      <path value="Ratio.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>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <isSummary value="false" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element id="Ratio.extension">
      <path value="Ratio.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>
      <isModifier value="false" />
      <isSummary value="false" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element id="Ratio.numerator">
      <path value="Ratio.numerator" />
      <short value="Numerator value" />
      <definition value="The value of the numerator." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Ratio.numerator" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="Quantity" />
      </type>
      <mustSupport value="true" />
      <isModifier value="false" />
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value=".numerator" />
      </mapping>
    </element>
    <element id="Ratio.numerator.id">
      <path value="Ratio.numerator.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>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <isSummary value="false" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element id="Ratio.numerator.extension">
      <path value="Ratio.numerator.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>
      <isModifier value="false" />
      <isSummary value="false" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element id="Ratio.numerator.value">
      <path value="Ratio.numerator.value" />
      <short value="Numerical value (with implicit precision)" />
      <definition value="The value of the measured amount. The value includes an implicit precision in the presentation of the value." />
      <comment value="The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books)." />
      <requirements value="Precision is handled implicitly in almost all cases of measurement." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Quantity.value" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="decimal" />
      </type>
      <isModifier value="false" />
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="SN.2  / CQ - N/A" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value" />
      </mapping>
    </element>
    <element id="Ratio.numerator.comparator">
      <path value="Ratio.numerator.comparator" />
      <short value="&lt; | &lt;= | &gt;= | &gt; - how to understand the value" />
      <definition value="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is &quot;&lt;&quot; , then the real value is &lt; stated value." />
      <requirements value="Need a framework for handling measures where the value is &lt;5ug/L or &gt;400mg/L due to the limitations of measuring methodology." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Quantity.comparator" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="code" />
      </type>
      <meaningWhenMissing value="If there is no comparator, then there is no modification of the value" />
      <isModifier value="true" />
      <isModifierReason value="This is labeled as &quot;Is Modifier&quot; because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value" />
      <isSummary value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="QuantityComparator" />
        </extension>
        <strength value="required" />
        <description value="How the Quantity should be understood and represented." />
        <valueSet value="http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.0" />
      </binding>
      <mapping>
        <identity value="v2" />
        <map value="SN.1  / CQ.1" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="IVL properties" />
      </mapping>
    </element>
    <element id="Ratio.numerator.unit">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Ratio.numerator.unit" />
      <short value="Unit representation" />
      <definition value="A human-readable form of the unit." />
      <requirements value="There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Quantity.unit" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="(see OBX.6 etc.) / CQ.2" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="PQ.unit" />
      </mapping>
    </element>
    <element id="Ratio.numerator.system">
      <path value="Ratio.numerator.system" />
      <short value="System that defines coded unit form" />
      <definition value="The identification of the system that provides the coded form of the unit." />
      <requirements value="Need to know the system that defines the coded form of the unit." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="Quantity.system" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="uri" />
      </type>
      <fixedUri value="http://unitsofmeasure.org" />
      <condition value="qty-3" />
      <mustSupport value="true" />
      <isModifier value="false" />
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="(see OBX.6 etc.) / CQ.2" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="CO.codeSystem, PQ.translation.codeSystem" />
      </mapping>
    </element>
    <element id="Ratio.numerator.code">
      <path value="Ratio.numerator.code" />
      <short value="Coded form of the unit" />
      <definition value="A computer processable form of the unit in some unit representation system." />
      <comment value="The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency.  The context of use may additionally require a code from a particular system." />
      <requirements value="Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="Quantity.code" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="code" />
      </type>
      <mustSupport value="true" />
      <isModifier value="false" />
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="(see OBX.6 etc.) / CQ.2" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="PQ.code, MO.currency, PQ.translation.code" />
      </mapping>
    </element>
    <element id="Ratio.denominator">
      <path value="Ratio.denominator" />
      <short value="Denominator value" />
      <definition value="The value of the denominator." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Ratio.denominator" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="Quantity" />
      </type>
      <mustSupport value="true" />
      <isModifier value="false" />
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value=".denominator" />
      </mapping>
    </element>
    <element id="Ratio.denominator.id">
      <path value="Ratio.denominator.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>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <isSummary value="false" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element id="Ratio.denominator.extension">
      <path value="Ratio.denominator.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>
      <isModifier value="false" />
      <isSummary value="false" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element id="Ratio.denominator.value">
      <path value="Ratio.denominator.value" />
      <short value="Numerical value (with implicit precision)" />
      <definition value="The value of the measured amount. The value includes an implicit precision in the presentation of the value." />
      <comment value="The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books)." />
      <requirements value="Precision is handled implicitly in almost all cases of measurement." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Quantity.value" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="decimal" />
      </type>
      <isModifier value="false" />
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="SN.2  / CQ - N/A" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value" />
      </mapping>
    </element>
    <element id="Ratio.denominator.comparator">
      <path value="Ratio.denominator.comparator" />
      <short value="&lt; | &lt;= | &gt;= | &gt; - how to understand the value" />
      <definition value="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is &quot;&lt;&quot; , then the real value is &lt; stated value." />
      <requirements value="Need a framework for handling measures where the value is &lt;5ug/L or &gt;400mg/L due to the limitations of measuring methodology." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Quantity.comparator" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="code" />
      </type>
      <meaningWhenMissing value="If there is no comparator, then there is no modification of the value" />
      <isModifier value="true" />
      <isModifierReason value="This is labeled as &quot;Is Modifier&quot; because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value" />
      <isSummary value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="QuantityComparator" />
        </extension>
        <strength value="required" />
        <description value="How the Quantity should be understood and represented." />
        <valueSet value="http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.0" />
      </binding>
      <mapping>
        <identity value="v2" />
        <map value="SN.1  / CQ.1" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="IVL properties" />
      </mapping>
    </element>
    <element id="Ratio.denominator.unit">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Ratio.denominator.unit" />
      <short value="Unit representation" />
      <definition value="A human-readable form of the unit." />
      <requirements value="There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Quantity.unit" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="(see OBX.6 etc.) / CQ.2" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="PQ.unit" />
      </mapping>
    </element>
    <element id="Ratio.denominator.system">
      <path value="Ratio.denominator.system" />
      <short value="System that defines coded unit form" />
      <definition value="The identification of the system that provides the coded form of the unit." />
      <requirements value="Need to know the system that defines the coded form of the unit." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="Quantity.system" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="uri" />
      </type>
      <fixedUri value="http://unitsofmeasure.org" />
      <condition value="qty-3" />
      <mustSupport value="true" />
      <isModifier value="false" />
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="(see OBX.6 etc.) / CQ.2" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="CO.codeSystem, PQ.translation.codeSystem" />
      </mapping>
    </element>
    <element id="Ratio.denominator.code">
      <path value="Ratio.denominator.code" />
      <short value="Coded form of the unit" />
      <definition value="A computer processable form of the unit in some unit representation system." />
      <comment value="The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency.  The context of use may additionally require a code from a particular system." />
      <requirements value="Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="Quantity.code" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="code" />
      </type>
      <mustSupport value="true" />
      <isModifier value="false" />
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="(see OBX.6 etc.) / CQ.2" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="PQ.code, MO.currency, PQ.translation.code" />
      </mapping>
    </element>
  </snapshot>
  <differential>
    <element id="Ratio">
      <path value="Ratio" />
      <mustSupport value="true" />
    </element>
    <element id="Ratio.numerator">
      <path value="Ratio.numerator" />
      <mustSupport value="true" />
    </element>
    <element id="Ratio.numerator.system">
      <path value="Ratio.numerator.system" />
      <min value="1" />
      <fixedUri value="http://unitsofmeasure.org" />
      <mustSupport value="true" />
    </element>
    <element id="Ratio.numerator.code">
      <path value="Ratio.numerator.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Ratio.denominator">
      <path value="Ratio.denominator" />
      <mustSupport value="true" />
    </element>
    <element id="Ratio.denominator.system">
      <path value="Ratio.denominator.system" />
      <min value="1" />
      <fixedUri value="http://unitsofmeasure.org" />
      <mustSupport value="true" />
    </element>
    <element id="Ratio.denominator.code">
      <path value="Ratio.denominator.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>