Indivo Data Values SchemaΒΆ

Schema:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://indivo.org/vocab/xml/documents#"
           xmlns:indivo="http://indivo.org/vocab/xml/documents#" elementFormDefault="qualified">

  <xs:complexType name="Range">
    <xs:sequence>
      <!-- a missing minimum means < max -->
      <xs:element name="minimum" type="xs:double" minOccurs="0" maxOccurs="1" />

      <!-- a missing maximum means > min -->
      <xs:element name="maximum" type="xs:double" minOccurs="0" maxOccurs="1" />

      <!-- technically this schema allows a range with neither min nor max, which doesn't mean much, but no big deal -->

      <xs:element name="unit" type="indivo:CodedValue" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>


  <!-- an ordinal, i.e. "2+" is coded using textValue -->
  <xs:complexType name="ValueAndUnit">
    <xs:sequence>
      <xs:element name="value" type="xs:double" minOccurs="0" maxOccurs="1" />
      <xs:element name="textValue" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="unit" type="indivo:CodedValue" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>

  <!-- a result is an abstract base, only subtypes can be used -->
  <xs:complexType name="Result" abstract="true">
    <xs:sequence>
      <!-- HL7 defines flag types -->
      <xs:element name="flag" type="indivo:CodedValue" minOccurs="0" maxOccurs="1" />   
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="ResultInRange">
    <xs:complexContent>
      <xs:extension base="indivo:Result">
        <xs:sequence>
          <xs:element name="valueAndUnit" type="indivo:ValueAndUnit" minOccurs="1" maxOccurs="1" />
          
          <xs:element name="normalRange" type="indivo:Range" minOccurs="0" maxOccurs="1" />
          
          <!-- nontoxicrange as in, if it's outside the range, it's toxic -->
          <xs:element name="nonCriticalRange" type="indivo:Range" minOccurs="0" maxOccurs="1" />          
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- untyped strings, e.g. "positive" -->
  <xs:complexType name="ResultInSet">
    <xs:complexContent>
      <xs:extension base="indivo:Result">
        <xs:sequence>
          <xs:element name="value" type="xs:string" minOccurs="1" maxOccurs="1" />

          <!-- the options should be listed in sensible order -->
          <xs:element name="option" minOccurs="0" maxOccurs="unbounded">
            <xs:complexType>
              <xs:simpleContent>
                <xs:extension base="xs:string">
                  <xs:attribute name="normal" type="xs:boolean" use="required" />
                  <xs:attribute name="description" type="xs:string" use="optional" />
                </xs:extension>
              </xs:simpleContent>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="ValueOrRange">
    <xs:choice>
      <xs:element name="value" type="indivo:ValueAndUnit" />
      <xs:element name="range" type="indivo:Range" />
    </xs:choice>
  </xs:complexType>

  <xs:complexType name="Concentration">
    <xs:complexContent>
      <xs:extension base="indivo:ValueOrRange" />
    </xs:complexContent>
  </xs:complexType>
</xs:schema>
  

Project Versions

Previous topic

Indivo Coded Values

Next topic

Indivo Provider Schema

This Page