<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://crown.esrd.net/crown" 
  targetNamespace="http://crown.esrd.net/crown" 
  xmlns:crown="http://crown.esrd.net/crown" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
>

  <xsd:complexType name="Address">
    <xsd:annotation>
      <xsd:documentation>Representation of an address.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="street1" type="NonEmptyString" minOccurs="0" />
      <xsd:element name="street2" type="NonEmptyString" minOccurs="0" />
      <xsd:element name="city" type="NonEmptyString" minOccurs="0"/>
      <xsd:element name="state" type="State" minOccurs="0"/>
      <xsd:element name="zip" type="ZipCode" minOccurs="0"/>
      <xsd:element name="zipExt" type="ZipCodeExt" minOccurs="0"/>
      <xsd:element name="county" type="NonEmptyString" minOccurs="0"/>
    </xsd:sequence>
    <xsd:attribute name="addressType" type="AddressType" use="required" />
  </xsd:complexType>

  <xsd:simpleType name="AreaCode">
    <xsd:restriction base="xsd:string">
      <xsd:whiteSpace value="preserve"/>
      <xsd:pattern value="[0-9]{3}"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="DialysisPeriod" >
    <xsd:annotation>
      <xsd:documentation>
        Patient dialysis time period
        - Day
        - Nocturnal
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Day" />
      <xsd:enumeration value="Nocturnal" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="IntervalUnit" >
    <xsd:annotation>
      <xsd:documentation>
        Annotation of the display units for a time interval.
        - DHM:   Days:Hours:Minutes
        - Hours: Hours only
        Note:  Internal storage of time and interval values is independent of 
            the displayed unit.  A "DHM" value of '00:03:00' is represented 
            internally the same as an "Hours" value of '3'.  Likewise, a "DHM" 
            value of '01:04:18' is the same as an "Hours" value of '28.3'.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DHM" />
      <xsd:enumeration value="Hours" />
      <xsd:enumeration value="Minutes" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:group name="MonthYearGroup">
    <xsd:sequence>
      <xsd:element name="month" type="Month" minOccurs="0" />
      <xsd:element name="year" type="xsd:int" minOccurs="0" />
    </xsd:sequence>
  </xsd:group>

  <xsd:complexType name="Period">
    <xsd:choice>
      <xsd:group ref="MonthYearGroup" />
      <xsd:element name="date" type="xsd:date" />
    </xsd:choice>
  </xsd:complexType>

  <xsd:complexType name="Phone">
    <xsd:annotation>
      <xsd:documentation>This type is to be used for any phone numbers.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="areaCode" type="AreaCode" />
      <xsd:element name="phoneNumber" type="PhoneNumber" />
      <xsd:element name="ext" type="NonEmptyString" minOccurs="0"/>
    </xsd:sequence>
    <xsd:attribute name="type" type="PhoneType" use="optional"/>
  </xsd:complexType>

  <xsd:simpleType name="PhoneNumber">
    <xsd:annotation>
      <xsd:documentation>xxx-xxxx format</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:whiteSpace value="preserve"/>
      <xsd:pattern value="([0-9]{3}-[0-9]{4})"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="Height">
    <xsd:sequence>
      <xsd:element name="value" type="xsd:decimal" />
      <xsd:element name="unit" type="LengthSmallUnit" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Weight">
    <xsd:sequence>
      <xsd:element name="value" type="xsd:decimal" />
      <xsd:element name="unit" type="WeightUnit" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="ZipCode">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="([0-9]{5})"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ZipCodeExt">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[0-9]{4}"/>
    </xsd:restriction>
  </xsd:simpleType>

  <!-- Exclusion -->

  <xsd:complexType name="Exclusion">
    <xsd:annotation>
      <xsd:documentation>Exclusion reason.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="medical" type="ExclusionMedical" />
      <xsd:element name="medicalNA" type="xsd:boolean" />
      <xsd:element name="patient" type="ExclusionPatient" />
      <xsd:element name="patientNA" type="xsd:boolean" /> 
    </xsd:choice>
  </xsd:complexType>

  <xsd:simpleType name="ExclusionMedical">
    <xsd:annotation>
      <xsd:documentation>
        Exclusion reason - medical.
        - Patient Allergic History             
        - Potential Adverse Drug Interaction
        - Other Medical
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Allergic" />
      <xsd:enumeration value="Adverse" />
      <xsd:enumeration value="OtherMedical" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="ExclusionPatient">
    <xsd:annotation>
      <xsd:documentation>
        Exclusion reason - patient.
        - Cultural Reasons                     
        - Personal Choice                      
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Cultural" />
      <xsd:enumeration value="Personal" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="ReasonVaccinationNotDocumented">
    <xsd:annotation>
      <xsd:documentation>
        Reason No Vaccination Documented
        - 1 - Medical Reason (Allergic or Adverse Reaction)                     
        - 2 - Other Medical Reason
        - 3 - Declined
        - 4 - Other Reason
        - 5 - Outside Vaccination Reported, but No Documentation
        - 6 - Vaccine Data Not Available
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:positiveInteger">
      <xsd:enumeration value="1" />
      <xsd:enumeration value="2" />
      <xsd:enumeration value="3" />
      <xsd:enumeration value="4" />
      <xsd:enumeration value="5" />
      <xsd:enumeration value="6" />
    </xsd:restriction>
  </xsd:simpleType>

  <!-- miscellany -->

<xsd:complexType name="Vaccination">
    <xsd:annotation>
      <xsd:documentation>
        - Administration of Vaccination Documented
        - When (Month Year or Year)
        - Where (On or Off-site)
        - Reason for Not Documented
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="vaccinationDocumented" type="xsd:boolean" />
      <xsd:group ref="MonthYearGroup" minOccurs="0" />
      <xsd:element name="whereDocumented" type="OnOffSite" minOccurs="0" />
      <xsd:element name="reasonNotDocumented" type="ReasonVaccinationNotDocumented" minOccurs="0" maxOccurs="6"/>
      </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="SelfCareSetting" >
    <xsd:annotation>
      <xsd:documentation>Self-care setting.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Home" />
      <xsd:enumeration value="Incenter" />
    </xsd:restriction>
  </xsd:simpleType>

  <!-- "Listed" types -->
  
  <xsd:complexType name="DoseMeasure">
    <xsd:annotation>
      <xsd:documentation>Dose measure</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="listed" type="ListedDoseMeasure" />
      <xsd:element name="other" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="ListedDoseMeasure">
    <xsd:annotation>
      <xsd:documentation>Listed dose measures</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="units" />
      <xsd:enumeration value="IU" />
      <xsd:enumeration value="mcg" />
      <xsd:enumeration value="mg" />
      <xsd:enumeration value="g" />
      <xsd:enumeration value="Other" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ListedDeliveryRoute">
    <xsd:annotation>
      <xsd:documentation>
        Medication delivery route.
        - IVP (Intravenous Push)
        - SC (Subcutaneous)
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="IVP" />
      <xsd:enumeration value="SC" />
    </xsd:restriction>
  </xsd:simpleType>

  <!-- simple types -->

  <xsd:simpleType name="AddressType">
    <xsd:annotation>
      <xsd:documentation>The type of an address.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Mailing" />
      <xsd:enumeration value="Physical" />
    </xsd:restriction>
  </xsd:simpleType>


  <xsd:simpleType name="NPI">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="([0-9]{10})"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="NonEmptyString">
    <xsd:restriction base="xsd:string">
      <xsd:whiteSpace value="collapse" />
      <xsd:minLength value="1"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="UPIN">
    <xsd:restriction base="xsd:string">
      <xsd:length value="6"/>
      <xsd:pattern value="([A-Za-z][0-9]{5})|([A-Za-z]{3}[0-9]{3})" />
    </xsd:restriction>
  </xsd:simpleType>

  <!-- enumerations -->

  <xsd:simpleType name="Action">
    <xsd:annotation>
      <xsd:documentation>Attribute to indicate intended action</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="declare" />
      <xsd:enumeration value="update" />
      <xsd:enumeration value="remove" />
      <xsd:enumeration value="retrieve" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="SimpleAction">
    <xsd:annotation>
      <xsd:documentation>Action restricted to "declare" or "remove"</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="Action">
      <xsd:enumeration value="declare" />
      <xsd:enumeration value="remove" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="Country">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="AF"/>
      <xsd:enumeration value="AX"/>
      <xsd:enumeration value="AL"/>
      <xsd:enumeration value="DZ"/>
      <xsd:enumeration value="AS"/>
      <xsd:enumeration value="AD"/>
      <xsd:enumeration value="AO"/>
      <xsd:enumeration value="AI"/>
      <xsd:enumeration value="AQ"/>
      <xsd:enumeration value="AG"/>
      <xsd:enumeration value="AR"/>
      <xsd:enumeration value="AM"/>
      <xsd:enumeration value="AW"/>
      <xsd:enumeration value="AU"/>
      <xsd:enumeration value="AT"/>
      <xsd:enumeration value="AZ"/>
      <xsd:enumeration value="BS"/>
      <xsd:enumeration value="BH"/>
      <xsd:enumeration value="BD"/>
      <xsd:enumeration value="BB"/>
      <xsd:enumeration value="BY"/>
      <xsd:enumeration value="BE"/>
      <xsd:enumeration value="BZ"/>
      <xsd:enumeration value="BJ"/>
      <xsd:enumeration value="BM"/>
      <xsd:enumeration value="BT"/>
      <xsd:enumeration value="BO"/>
      <xsd:enumeration value="BA"/>
      <xsd:enumeration value="BW"/>
      <xsd:enumeration value="BV"/>
      <xsd:enumeration value="BR"/>
      <xsd:enumeration value="IO"/>
      <xsd:enumeration value="BN"/>
      <xsd:enumeration value="BG"/>
      <xsd:enumeration value="BF"/>
      <xsd:enumeration value="BI"/>
      <xsd:enumeration value="KH"/>
      <xsd:enumeration value="CM"/>
      <xsd:enumeration value="CA"/>
      <xsd:enumeration value="CV"/>
      <xsd:enumeration value="KY"/>
      <xsd:enumeration value="CF"/>
      <xsd:enumeration value="TD"/>
      <xsd:enumeration value="CL"/>
      <xsd:enumeration value="CN"/>
      <xsd:enumeration value="CX"/>
      <xsd:enumeration value="CC"/>
      <xsd:enumeration value="CO"/>
      <xsd:enumeration value="KM"/>
      <xsd:enumeration value="CG"/>
      <xsd:enumeration value="CD"/>
      <xsd:enumeration value="CK"/>
      <xsd:enumeration value="CR"/>
      <xsd:enumeration value="CI"/>
      <xsd:enumeration value="HR"/>
      <xsd:enumeration value="CU"/>
      <xsd:enumeration value="CY"/>
      <xsd:enumeration value="CZ"/>
      <xsd:enumeration value="DK"/>
      <xsd:enumeration value="DJ"/>
      <xsd:enumeration value="DM"/>
      <xsd:enumeration value="DO"/>
      <xsd:enumeration value="EC"/>
      <xsd:enumeration value="EG"/>
      <xsd:enumeration value="SV"/>
      <xsd:enumeration value="GQ"/>
      <xsd:enumeration value="ER"/>
      <xsd:enumeration value="EE"/>
      <xsd:enumeration value="ET"/>
      <xsd:enumeration value="FK"/>
      <xsd:enumeration value="FO"/>
      <xsd:enumeration value="FJ"/>
      <xsd:enumeration value="FI"/>
      <xsd:enumeration value="FR"/>
      <xsd:enumeration value="GF"/>
      <xsd:enumeration value="PF"/>
      <xsd:enumeration value="TF"/>
      <xsd:enumeration value="GA"/>
      <xsd:enumeration value="GM"/>
      <xsd:enumeration value="GE"/>
      <xsd:enumeration value="DE"/>
      <xsd:enumeration value="GH"/>
      <xsd:enumeration value="GI"/>
      <xsd:enumeration value="GR"/>
      <xsd:enumeration value="GL"/>
      <xsd:enumeration value="GD"/>
      <xsd:enumeration value="GP"/>
      <xsd:enumeration value="GU"/>
      <xsd:enumeration value="GT"/>
      <xsd:enumeration value="GN"/>
      <xsd:enumeration value="GW"/>
      <xsd:enumeration value="GY"/>
      <xsd:enumeration value="HT"/>
      <xsd:enumeration value="HM"/>
      <xsd:enumeration value="VA"/>
      <xsd:enumeration value="HN"/>
      <xsd:enumeration value="HK"/>
      <xsd:enumeration value="HU"/>
      <xsd:enumeration value="IS"/>
      <xsd:enumeration value="IN"/>
      <xsd:enumeration value="ID"/>
      <xsd:enumeration value="IR"/>
      <xsd:enumeration value="IQ"/>
      <xsd:enumeration value="IE"/>
      <xsd:enumeration value="IL"/>
      <xsd:enumeration value="IT"/>
      <xsd:enumeration value="JM"/>
      <xsd:enumeration value="JP"/>
      <xsd:enumeration value="JO"/>
      <xsd:enumeration value="KZ"/>
      <xsd:enumeration value="KE"/>
      <xsd:enumeration value="KI"/>
      <xsd:enumeration value="KP"/>
      <xsd:enumeration value="KR"/>
      <xsd:enumeration value="KW"/>
      <xsd:enumeration value="KG"/>
      <xsd:enumeration value="LA"/>
      <xsd:enumeration value="LV"/>
      <xsd:enumeration value="LB"/>
      <xsd:enumeration value="LS"/>
      <xsd:enumeration value="LR"/>
      <xsd:enumeration value="LY"/>
      <xsd:enumeration value="LI"/>
      <xsd:enumeration value="LT"/>
      <xsd:enumeration value="LU"/>
      <xsd:enumeration value="MO"/>
      <xsd:enumeration value="MK"/>
      <xsd:enumeration value="MG"/>
      <xsd:enumeration value="MW"/>
      <xsd:enumeration value="MY"/>
      <xsd:enumeration value="MV"/>
      <xsd:enumeration value="ML"/>
      <xsd:enumeration value="MT"/>
      <xsd:enumeration value="MH"/>
      <xsd:enumeration value="MQ"/>
      <xsd:enumeration value="MR"/>
      <xsd:enumeration value="MU"/>
      <xsd:enumeration value="YT"/>
      <xsd:enumeration value="MX"/>
      <xsd:enumeration value="FM"/>
      <xsd:enumeration value="MD"/>
      <xsd:enumeration value="MC"/>
      <xsd:enumeration value="MN"/>
      <xsd:enumeration value="MS"/>
      <xsd:enumeration value="MA"/>
      <xsd:enumeration value="MZ"/>
      <xsd:enumeration value="MM"/>
      <xsd:enumeration value="NA"/>
      <xsd:enumeration value="NR"/>
      <xsd:enumeration value="NP"/>
      <xsd:enumeration value="NL"/>
      <xsd:enumeration value="AN"/>
      <xsd:enumeration value="NC"/>
      <xsd:enumeration value="NZ"/>
      <xsd:enumeration value="NI"/>
      <xsd:enumeration value="NE"/>
      <xsd:enumeration value="NG"/>
      <xsd:enumeration value="NU"/>
      <xsd:enumeration value="NF"/>
      <xsd:enumeration value="MP"/>
      <xsd:enumeration value="NO"/>
      <xsd:enumeration value="OM"/>
      <xsd:enumeration value="PK"/>
      <xsd:enumeration value="PW"/>
      <xsd:enumeration value="PS"/>
      <xsd:enumeration value="PA"/>
      <xsd:enumeration value="PG"/>
      <xsd:enumeration value="PY"/>
      <xsd:enumeration value="PE"/>
      <xsd:enumeration value="PH"/>
      <xsd:enumeration value="PN"/>
      <xsd:enumeration value="PL"/>
      <xsd:enumeration value="PT"/>
      <xsd:enumeration value="PR"/>
      <xsd:enumeration value="QA"/>
      <xsd:enumeration value="RE"/>
      <xsd:enumeration value="RO"/>
      <xsd:enumeration value="RU"/>
      <xsd:enumeration value="RW"/>
      <xsd:enumeration value="SH"/>
      <xsd:enumeration value="KN"/>
      <xsd:enumeration value="LC"/>
      <xsd:enumeration value="PM"/>
      <xsd:enumeration value="VC"/>
      <xsd:enumeration value="WS"/>
      <xsd:enumeration value="SM"/>
      <xsd:enumeration value="ST"/>
      <xsd:enumeration value="SA"/>
      <xsd:enumeration value="SN"/>
      <xsd:enumeration value="CS"/>
      <xsd:enumeration value="SC"/>
      <xsd:enumeration value="SL"/>
      <xsd:enumeration value="SG"/>
      <xsd:enumeration value="SK"/>
      <xsd:enumeration value="SI"/>
      <xsd:enumeration value="SB"/>
      <xsd:enumeration value="SO"/>
      <xsd:enumeration value="ZA"/>
      <xsd:enumeration value="GS"/>
      <xsd:enumeration value="ES"/>
      <xsd:enumeration value="LK"/>
      <xsd:enumeration value="SD"/>
      <xsd:enumeration value="SR"/>
      <xsd:enumeration value="SJ"/>
      <xsd:enumeration value="SZ"/>
      <xsd:enumeration value="SE"/>
      <xsd:enumeration value="CH"/>
      <xsd:enumeration value="SY"/>
      <xsd:enumeration value="TW"/>
      <xsd:enumeration value="TJ"/>
      <xsd:enumeration value="TZ"/>
      <xsd:enumeration value="TH"/>
      <xsd:enumeration value="TL"/>
      <xsd:enumeration value="TG"/>
      <xsd:enumeration value="TK"/>
      <xsd:enumeration value="TO"/>
      <xsd:enumeration value="TT"/>
      <xsd:enumeration value="TN"/>
      <xsd:enumeration value="TR"/>
      <xsd:enumeration value="TM"/>
      <xsd:enumeration value="TC"/>
      <xsd:enumeration value="TV"/>
      <xsd:enumeration value="UG"/>
      <xsd:enumeration value="UA"/>
      <xsd:enumeration value="AE"/>
      <xsd:enumeration value="GB"/>
      <xsd:enumeration value="US"/>
      <xsd:enumeration value="UM"/>
      <xsd:enumeration value="UY"/>
      <xsd:enumeration value="UZ"/>
      <xsd:enumeration value="VU"/>
      <xsd:enumeration value="VE"/>
      <xsd:enumeration value="VN"/>
      <xsd:enumeration value="VG"/>
      <xsd:enumeration value="VI"/>
      <xsd:enumeration value="WF"/>
      <xsd:enumeration value="EH"/>
      <xsd:enumeration value="YE"/>
      <xsd:enumeration value="ZM"/>
      <xsd:enumeration value="ZW"/>
      <xsd:enumeration value="PI"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="LengthSmallUnit" >
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Inch" />
      <xsd:enumeration value="Centimeter" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="Month">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Jan"/>
      <xsd:enumeration value="Feb"/>
      <xsd:enumeration value="Mar"/>
      <xsd:enumeration value="Apr"/>
      <xsd:enumeration value="May"/>
      <xsd:enumeration value="Jun"/>
      <xsd:enumeration value="Jul"/>
      <xsd:enumeration value="Aug"/>
      <xsd:enumeration value="Sep"/>
      <xsd:enumeration value="Oct"/>
      <xsd:enumeration value="Nov"/>
      <xsd:enumeration value="Dec"/>
    </xsd:restriction>
  </xsd:simpleType>  

  <xsd:simpleType name="OnOffSite" >
    <xsd:annotation>
      <xsd:documentation>Onsite, offsite.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Onsite" />
      <xsd:enumeration value="Offsite" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="OrganizationAffiliation">
    <xsd:restriction base="xsd:string">
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="PhoneType">
    <xsd:annotation>
      <xsd:documentation>If type is not specified, then default is TEL (which is HOME).</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Work"/>
      <xsd:enumeration value="Tel"/>
      <xsd:enumeration value="Fax"/>
      <xsd:enumeration value="Mobile"/>
      <xsd:enumeration value="Pager"/>
      <xsd:enumeration value="Other"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="Polarity">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Positive"/>
      <xsd:enumeration value="Negative"/>
      <xsd:enumeration value="Unknown"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="State">
    <xsd:restriction base="xsd:string">
      <xsd:length value="2"/>
      <xsd:enumeration value="AA"/>
      <xsd:enumeration value="AE"/>
      <xsd:enumeration value="AK"/>
      <xsd:enumeration value="AL"/>
      <xsd:enumeration value="AP"/>
      <xsd:enumeration value="AR"/>
      <xsd:enumeration value="AS"/>
      <xsd:enumeration value="AZ"/>
      <xsd:enumeration value="CA"/>
      <xsd:enumeration value="CM"/>
      <xsd:enumeration value="CO"/>
      <xsd:enumeration value="CT"/>
      <xsd:enumeration value="DC"/>
      <xsd:enumeration value="DE"/>
      <xsd:enumeration value="FL"/>
      <xsd:enumeration value="FM"/>
      <xsd:enumeration value="GA"/>
      <xsd:enumeration value="GU"/>
      <xsd:enumeration value="HI"/>
      <xsd:enumeration value="IA"/>
      <xsd:enumeration value="ID"/>
      <xsd:enumeration value="IL"/>
      <xsd:enumeration value="IN"/>
      <xsd:enumeration value="KS"/>
      <xsd:enumeration value="KY"/>
      <xsd:enumeration value="LA"/>
      <xsd:enumeration value="MA"/>
      <xsd:enumeration value="MD"/>
      <xsd:enumeration value="ME"/>
      <xsd:enumeration value="MH"/>
      <xsd:enumeration value="MI"/>
      <xsd:enumeration value="MN"/>
      <xsd:enumeration value="MO"/>
      <xsd:enumeration value="MP"/>
      <xsd:enumeration value="MS"/>
      <xsd:enumeration value="MT"/>
      <xsd:enumeration value="NC"/>
      <xsd:enumeration value="ND"/>
      <xsd:enumeration value="NE"/>
      <xsd:enumeration value="NH"/>
      <xsd:enumeration value="NJ"/>
      <xsd:enumeration value="NM"/>
      <xsd:enumeration value="NV"/>
      <xsd:enumeration value="NY"/>
      <xsd:enumeration value="OH"/>
      <xsd:enumeration value="OK"/>
      <xsd:enumeration value="OR"/>
      <xsd:enumeration value="PA"/>
      <xsd:enumeration value="PR"/>
      <xsd:enumeration value="PW"/>
      <xsd:enumeration value="RI"/>
      <xsd:enumeration value="SC"/>
      <xsd:enumeration value="SD"/>
      <xsd:enumeration value="TN"/>
      <xsd:enumeration value="TX"/>
      <xsd:enumeration value="UT"/>
      <xsd:enumeration value="VA"/>
      <xsd:enumeration value="VI"/>
      <xsd:enumeration value="VT"/>
      <xsd:enumeration value="WA"/>
      <xsd:enumeration value="WI"/>
      <xsd:enumeration value="WV"/>
      <xsd:enumeration value="WY"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="WeightUnit">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Pound" />
      <xsd:enumeration value="Kilogram" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="DialysisType">
    <xsd:annotation>
      <xsd:documentation>Dialysis Type.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="listed" type="ListedDialysisType" />
      <xsd:element name="other" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="ListedDialysisType">
    <xsd:annotation>
      <xsd:documentation>
        Listed Dialysis Type.
          - Hemodialysis
          - CAPD
          - CCPD
          - Other
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Hemodialysis" />
      <xsd:enumeration value="CAPD" />
      <xsd:enumeration value="CCPD" />
      <xsd:enumeration value="Other" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="MedicareEnrollmentStatus">
    <xsd:annotation>
      <xsd:documentation>
        Listed Medicare Enrollment Status.
          - Medicare Application Pending
          - No Medicare Coverage
          - Medicare Coverage
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Pending" />
      <xsd:enumeration value="NoCoverage" />
      <xsd:enumeration value="Coverage" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="MedicalCoverageType">
    <xsd:annotation>
      <xsd:documentation>Medicare Coverage Type.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="listed" type="ListedMedicalCoverageType"
        maxOccurs="7" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="ListedMedicalCoverageType">
    <xsd:annotation>
      <xsd:documentation>
        Listed Medical Coverage Types.
          - Medicaid 
          - DVA 
          - Medicare 
          - Medicare Advantage 
          - Employer Group Health Insurance 
          - Other 
          - None
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Medicaid" />
      <xsd:enumeration value="DVA" />
      <xsd:enumeration value="Medicare" />
      <xsd:enumeration value="MedicareAdvantage" />
      <xsd:enumeration value="EmployerGroupHealthInsurance" />
      <xsd:enumeration value="Other" />
      <xsd:enumeration value="None" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="CoMorbidConditionsType">
    <xsd:annotation>
      <xsd:documentation>Co-Morbid Conditions.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="listed" type="ListedCoMorbidConditionsType"
        maxOccurs="26" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="ListedCoMorbidConditionsType">
    <xsd:annotation>
      <xsd:documentation>
        Listed Co-Morbid Conditions.
          - p = Alcohol dependence
          - g = Amputation
          - b = Atherosclerotic heart disease ASHD
          - d = Cerebrovascular disease, CVA, TIA*
          - l = Chronic obstructive pulmonary disease
          - a = Congestive heart failure
          - h = Diabetes, currently on insulin
          - i = Diabetes, on oral medications
          - j = Diabetes, without medications
          - k = Diabetic retinopathy
          - q = Drug dependence*
          - f = History of hypertension
          - r = Inability to ambulate
          - s = Inability to transfer
          - u = Institutionalized
          - u1 = Institutionalized - Assisted Living
          - u2 = Institutionalized - Nursing Home
          - u3 = Institutionalized - Other Institution
          - n = Malignant neoplasm, Cancer
          - t = Needs assistance with daily activities
          - v = Non-renal congenital abnormality
          - w = None
          - c = Other cardiac disease
          - e = Peripheral vascular disease*
          - m = Tobacco use (current smoker)
          - o = Toxic nephropathy
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="p" />
      <xsd:enumeration value="g" />
      <xsd:enumeration value="b" />
      <xsd:enumeration value="d" />
      <xsd:enumeration value="l" />
      <xsd:enumeration value="a" />
      <xsd:enumeration value="h" />
      <xsd:enumeration value="i" />
      <xsd:enumeration value="j" />
      <xsd:enumeration value="k" />
      <xsd:enumeration value="q" />
      <xsd:enumeration value="f" />
      <xsd:enumeration value="r" />
      <xsd:enumeration value="s" />
      <xsd:enumeration value="u" />
      <xsd:enumeration value="u1" />
      <xsd:enumeration value="u2" />
      <xsd:enumeration value="u3" />
      <xsd:enumeration value="n" />
      <xsd:enumeration value="t" />
      <xsd:enumeration value="v" />
      <xsd:enumeration value="w" />
      <xsd:enumeration value="c" />
      <xsd:enumeration value="e" />
      <xsd:enumeration value="m" />
      <xsd:enumeration value="o" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="YesNoRangeType">
    <xsd:group ref="YesNoRangeGroup" />
  </xsd:complexType>

  <xsd:simpleType name="YesNoUnknownNAType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Yes"/>
      <xsd:enumeration value="No"/>
      <xsd:enumeration value="Unknown"/>
      <xsd:enumeration value="NA"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="YesNoUnknownType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Yes"/>
      <xsd:enumeration value="No"/>
      <xsd:enumeration value="Unknown"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="MonthRange">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="LessThan6Months"/>
      <xsd:enumeration value="6-12Months"/>
      <xsd:enumeration value="GreaterThan12Months"/>
    </xsd:restriction>
  </xsd:simpleType>

  <!-- Groups  -->

  <xsd:group name="DecimalDateGroup">
    <xsd:sequence>
      <xsd:element name="value" type="xsd:decimal" />
      <xsd:element name="date" type="xsd:date" />
    </xsd:sequence>
  </xsd:group>

  <xsd:group name="IntDateGroup">
    <xsd:sequence>
      <xsd:element name="value" type="xsd:int" />
      <xsd:element name="date" type="xsd:date" />
    </xsd:sequence>
  </xsd:group>

  <xsd:group name="BooleanDateGroup">
    <xsd:sequence>
      <xsd:element name="value" type="xsd:boolean" />
      <xsd:element name="date" type="xsd:date" />
    </xsd:sequence>
  </xsd:group>

  <xsd:group name="StringDateGroup">
    <xsd:sequence>
      <xsd:element name="value" type="xsd:string" />
      <xsd:element name="date" type="xsd:date" />
    </xsd:sequence>
  </xsd:group>

  <xsd:group name="YesNoRangeGroup">
    <xsd:sequence>
      <xsd:element name="value" type="YesNoUnknownType" />
      <xsd:element name="range" type="MonthRange" minOccurs="0" />
    </xsd:sequence>
  </xsd:group>

</xsd:schema>
