<?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" 
>
  <!-- CPMs - Clinical Performance Measures -->

  <xsd:include schemaLocation="crown-global.xsd" />

  <!-- main-level types -->

  <xsd:complexType name="CPMs">
    <xsd:annotation>
      <xsd:documentation>Clinical Performance Measures (CPMs).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="adequacy" type="Adequacy" minOccurs="0" />
      <xsd:element name="ultrafiltration" type="Ultrafiltration" minOccurs="0"/> 
      <xsd:element name="medicationReconciliation" type="MedicationReconciliation" minOccurs="0"/>       
      <xsd:element name="esaAdministered" type="ESA" minOccurs="0" />
      <xsd:element name="fluidWeightManagement" type="FluidWeightManagement" minOccurs="0" />
      <xsd:element name="hospitalization" type="Hospitalization" minOccurs="0" />
      <xsd:element name="hospitalizationNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="vaccinations" type="Vaccinations" minOccurs="0" />
      <xsd:element name="infection" type="Infection" minOccurs="0" />
      <xsd:element name="infectionNA" type="xsd:boolean" minOccurs="0" />      
      <xsd:element name="ironCpm" type="IronCpm" minOccurs="0" />
     
    </xsd:sequence>

    <xsd:attribute name="action" type="Action" default="declare" />
  </xsd:complexType>

  <xsd:complexType name="Adequacy">
    <xsd:annotation>
      <xsd:documentation>
        CPMs related to treatment adequacy.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="hKtVInfo" type="HKtVInfo" minOccurs="0" />
      <xsd:element name="pKtVInfo" type="PKtVInfo" minOccurs="0" />
    </xsd:sequence>
    
  </xsd:complexType>

  <xsd:complexType name="ESA">
    <xsd:annotation>
      <xsd:documentation>
        CPM related to ESA agent administered.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="wasAdministered" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="wasAdministeredNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="date" type="xsd:date" minOccurs="0" />
      <xsd:element name="agent" type="ESAAgent" minOccurs="0" />
      <xsd:element name="agentNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="monthlyDose" type="xsd:decimal" minOccurs="0" />
      <xsd:element name="monthlyDoseNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="doseMeasure" type="DoseMeasure" minOccurs="0" />
      <xsd:element name="esaRoute" type="ListedDeliveryRoute" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="FluidWeightManagement">
    <xsd:annotation>
      <xsd:documentation>
        CPM related to fluid weight management:
        - *Post-Dialysis Target Weight for Session Prescribed - true or false
      </xsd:documentation>
    </xsd:annotation>

    <xsd:sequence>
      <xsd:element name="postDialysisWgtAssessmentDate" type="xsd:date" minOccurs="0" />
      <xsd:element name="postDialysisTargetWgtRxed" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="postDialysisTargetWgtRxedNA" type="xsd:boolean" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  
   <xsd:complexType name="MedicationReconciliation">
    <xsd:annotation>
      <xsd:documentation>
        CPM related to MedicationReconciliation:
       </xsd:documentation>
    </xsd:annotation>

    <xsd:sequence>
      <xsd:element name="mrDate" type="xsd:date" minOccurs="0" />
      <xsd:element name="mrClinicianName" type="xsd:string" minOccurs="0" />
      <xsd:element name="mrClinicianType" type="ListedClinicianType" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:simpleType name="ListedClinicianType">
    <xsd:annotation>
      <xsd:documentation>Listed Clinician Type.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Physician" />
      <xsd:enumeration value="Nurse" />
      <xsd:enumeration value="APRN" />
      <xsd:enumeration value="PA" />
      <xsd:enumeration value="Pharmacist" />
      <xsd:enumeration value="PharmacyTechnician" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="Hospitalization">
    <xsd:annotation>
      <xsd:documentation>CPM related to hospitalization.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="hospitalizationId" type="xsd:string" minOccurs="0" />
      <xsd:element name="admissionDate" type="xsd:date" minOccurs="0"/>
      <xsd:element name="admissionDateNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="dischargeDate" type="xsd:date" minOccurs="0" />
      <xsd:element name="dischargeDateNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="visit" type="HospitalVisit" minOccurs="0"/>
      <xsd:element name="visitNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="hospitalName" type="xsd:string" minOccurs="0" />
      <xsd:element name="hospitalNameNA" type="xsd:boolean" minOccurs="0" />
     </xsd:sequence>
  </xsd:complexType>
  

  <xsd:complexType name="Vaccinations">
    <xsd:annotation>
      <xsd:documentation>
        CPMs related to vaccinations and exclusions.
        Note: "pneumococcalVaccination" only uses the year not the entire date.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:all>
      <xsd:element name="hepatitisBVaccineNotGiven" type="xsd:boolean" />
      <xsd:element name="hepatitisB" type="HepatitisB" minOccurs="0" />
      <xsd:element name="influenza" type="Vaccination" />
      <xsd:element name="ppsv23Pneumococcal" type="Vaccination" />
      <xsd:element name="pcv13Pneumococcal" type="Vaccination" />
    </xsd:all>
  </xsd:complexType>

  <xsd:complexType name="Infection">
    <xsd:annotation>
      <xsd:documentation>
        CPMs related to infection (at access).
        "isHospitalizationReqd": Infection Requires Hospitalization

      </xsd:documentation>
    </xsd:annotation>
	
    <xsd:sequence>
      <xsd:element name="infectionId" type="xsd:string" minOccurs="0" />
      <xsd:element name="outpatientAntibiotics" type="OutpatientAntibiotics" minOccurs="0" />
      <xsd:element name="isHospitalizationReqd" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="isHospitalizationReqdNA" type="xsd:boolean" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="Ultrafiltration">
    <xsd:annotation>
      <xsd:documentation>
      	CPM related to Ultrafiltration.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ufSessionId" type="xsd:string" minOccurs="0" />
      <xsd:element name="ufSessionDate" type="xsd:date"/>
      <xsd:element name="ufPredWgt" type="xsd:decimal"/>
      <xsd:element name="ufPredWgtUnit" type="WeightUnit"/>      
      <xsd:element name="ufPostdWgt" type="xsd:decimal"/>
      <xsd:element name="ufPostdWgtUnit" type="WeightUnit"/>  
      <xsd:element name="ufDialysisSessionMinutes" type="xsd:int" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>  
    

  <xsd:complexType name="IronCpm">
    <xsd:annotation>
      <xsd:documentation>
        CPMs related to iron administration.
        "..Prescribed": Positive=prescribed, Negative, Unknown.

        "ivIron": Intravenous (IV) Iron.
          - "dextran": Iron dextran (Dexferrum, Infed)
          - "gluconate": Sodium ferric gluconate (Ferrlecit)
          - "sucrose": Iron sucrose (Venofer)
          - Other

        Oral (PO) Iron.
        "poIron": /Per ora/ iron.  

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ivAdministered" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="ivAdministeredNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="ivDate" type="xsd:date" minOccurs="0" />
      <xsd:element name="ivIron" type="IVIron" minOccurs="0" />
      <xsd:element name="ivIronNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="ivDose" type="xsd:decimal" minOccurs="0" />
      <xsd:element name="ivDoseNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="ivDoseMeasure" type="DoseMeasure" minOccurs="0" />
      <xsd:element name="poPrescribed" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="poPrescribedNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="poDate" type="xsd:date" minOccurs="0" />
      <xsd:element name="poIron" type="POIron" minOccurs="0" />
      <xsd:element name="poIronNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="poDose" type="xsd:decimal" minOccurs="0" />
      <xsd:element name="poDoseNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="poDoseMeasure" type="DoseMeasure" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <!-- implementing types -->

  <xsd:complexType name="HKtVInfo">
    <xsd:annotation>
      <xsd:documentation>
          "nPCR": Normalized Protein Catabolic (nPCR) Rate (g/kg/day).
          "nPCRDate": nPCR collection date.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="value" type="xsd:decimal" minOccurs="0" />
      <xsd:element name="date" type="xsd:date" minOccurs="0" />
      <xsd:element name="ktvNA" type="xsd:boolean" minOccurs="0"/>      
      <xsd:element name="method" type="HKtVMethod" minOccurs="0" />
      <xsd:element name="hgt" type="Height" minOccurs="0" />
      <xsd:element name="hgtNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="bun" type="Bun" minOccurs="0" />     
      <xsd:element name="nPCR" type="NPCRValue" minOccurs="0" />
      <xsd:element name="nPCRNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="noOfDialysisSess" type="xsd:int" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Bun">
    <xsd:sequence>
      <xsd:element name="bunPreDialysis" type="xsd:int"  minOccurs="0" />
      <xsd:element name="bunPreDialysisNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="preDialysisWgt" type="xsd:decimal"  minOccurs="0"/>
      <xsd:element name="preDialysisWgtNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="preDialysisWgtUnit" type="WeightUnit"  minOccurs="0" />
      <xsd:element name="bunPostDialysis" type="xsd:int"  minOccurs="0" />
      <xsd:element name="bunPostDialysisNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="postDialysisWgt" type="xsd:decimal"  minOccurs="0" />
      <xsd:element name="postDialysisWgtNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="postDialysisWgtUnit" type="WeightUnit"  minOccurs="0" />
      <xsd:element name="bunSessionMinutes" type="xsd:int"  minOccurs="0" />
      <xsd:element name="bunSessionMinutesNA" type="xsd:boolean" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <!-- *************************************** -->
  <!-- *** Peritoneal Dialysis Adequacy Lab Type *** -->
  <!-- *************************************** -->

  <xsd:complexType name="PKtVInfo">
    <xsd:sequence>
      <xsd:element name="ktV" type="PKtV" minOccurs="0" />
      <xsd:element name="nPCR" type="NPCRValue" minOccurs="0" />
      <xsd:element name="nPCRNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="urineVol" type="xsd:int" minOccurs="0" />
      <xsd:element name="urineVolNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="wgt" type="Weight" minOccurs="0" />
      <xsd:element name="wgtNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="bsac" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="bsacNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="crc" type="CrcValue" minOccurs="0" />
      <xsd:element name="crcNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="hgt" type="Height" minOccurs="0" />
      <xsd:element name="hgtNA" type="xsd:boolean" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="PKtV">
    <xsd:sequence>
      <xsd:element name="value" type="xsd:decimal" minOccurs="0" />
      <xsd:element name="date" type="xsd:date" minOccurs="0" />
      <xsd:element name="ktvNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="method" type="PKtVMethod" minOccurs="0" />
      <xsd:element name="bsaMethod" type="BsaMethod" minOccurs="0" />
      <xsd:element name="bsaMethodNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="rrf" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="rrfNA" type="xsd:boolean" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="OutpatientAntibiotics">
    <xsd:annotation>
      <xsd:documentation>
        Outpatient Antibiotics Administered.
          "hospitalizationDate": date present if hospitalization required.
      </xsd:documentation>
    </xsd:annotation>

    <xsd:sequence>
      <xsd:element name="hospitalizationDate" type="xsd:date" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="HepatitisB">
    <xsd:annotation>
      <xsd:documentation>Hepatitis B Test Information (HBsAg).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="vaccinationDate1" type="xsd:date" minOccurs="0" />
      <xsd:element name="vaccinationDate1NA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="vaccinationDate2" type="xsd:date" minOccurs="0" />
      <xsd:element name="vaccinationDate2NA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="vaccinationDate3" type="xsd:date" minOccurs="0" />
      <xsd:element name="vaccinationDate3NA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="vaccinationDate4" type="xsd:date" minOccurs="0" />
      <xsd:element name="vaccinationDate4NA" type="xsd:boolean" minOccurs="0" />                                                                            
      <xsd:element name="boosterDate1" type="xsd:date" minOccurs="0" />
      <xsd:element name="boosterDate1NA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="boosterDate2" type="xsd:date" minOccurs="0" />
      <xsd:element name="boosterDate2NA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="boosterDate3" type="xsd:date" minOccurs="0" />
      <xsd:element name="boosterDate3NA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="boosterDate4" type="xsd:date" minOccurs="0" />     
      <xsd:element name="boosterDate4NA" type="xsd:boolean" minOccurs="0" />                                                                           
      <xsd:element name="exclusion" type="Exclusion" minOccurs="0" />
      <xsd:element name="exclusionNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="antiHBs" type="AntiHBs" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="AntiHBs">
    <xsd:annotation>
      <xsd:documentation>
        Anti-Hepatitis B result.  "testResult" is in mIU/mL.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="testResult" type="xsd:string" minOccurs="0" />
      <xsd:element name="testResultNA" type="xsd:boolean" minOccurs="0" /> 
      <xsd:element name="testDate" type="xsd:date" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="NPCRValue" >
    <xsd:group ref="DecimalDateGroup" />
  </xsd:complexType>

  <!-- Vascular access  -->

  <!-- ******************************** -->
  <!-- *** Vascular Access Lab Type *** -->
  <!-- ******************************** -->

  <xsd:complexType name="VascularAccess">
    <xsd:annotation>
      <xsd:documentation>Vascular access information.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="accessType" type="VascularAccessType" />
      <xsd:element name="accessDate" type="xsd:date" />
      <xsd:element name="dxSessDate" type="xsd:date" minOccurs="0" />
      <xsd:element name="dxSessDateNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="avfCreateDate" type="xsd:date" minOccurs="0" />
      <xsd:element name="avfCreateDateNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="avfUseDate" type="xsd:date" minOccurs="0" />
      <xsd:element name="avfUseDateNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="avfMaturing" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="avfMaturingNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="avfState" type="AvState" minOccurs="0" />
      <xsd:element name="avfStateNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="avgMaturing" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="avgMaturingNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="avgState" type="AvState" minOccurs="0" />
      <xsd:element name="avgStateNA" type="xsd:boolean" minOccurs="0" />
    </xsd:sequence>

    <xsd:attribute name="action" type="Action" default="declare" />
  </xsd:complexType>

  <xsd:complexType name="VascularAccessType">
    <xsd:annotation>
      <xsd:documentation>Vascular access types.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="listed" type="ListedVascularAccessType" />
      <xsd:element name="other" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="ListedVascularAccessType" >
    <xsd:annotation>
      <xsd:documentation>Listed vascular access types.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="AVFonly" />
      <xsd:enumeration value="AVFwAVG" />
      <xsd:enumeration value="AVFwCatheter" />
      <xsd:enumeration value="AVFsingle" />
      <xsd:enumeration value="AVGonly" />
      <xsd:enumeration value="AVGwCatheter" />
      <xsd:enumeration value="AVGsingle" />
      <xsd:enumeration value="CatheterOnly" />
      <xsd:enumeration value="PortOnly" />
      <xsd:enumeration value="Other" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="AvState" >
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NotPresent" />
      <xsd:enumeration value="Created" />
      <xsd:enumeration value="Active" />
      <xsd:enumeration value="Inactive" />
      <xsd:enumeration value="Removed" />
    </xsd:restriction>
  </xsd:simpleType>
  
<!-- "Listed" types - enumerations with an "Other" option -->
  <xsd:complexType name="ESAAgent">
    <xsd:annotation>
      <xsd:documentation>ESA agent prescribed.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="listed" type="ListedESAAgent" />
      <xsd:element name="other" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="ListedESAAgent">
    <xsd:annotation>
      <xsd:documentation>Listed ESA agent.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Epoetin alfa" />
      <xsd:enumeration value="Epoetin beta" />
      <xsd:enumeration value="Darbepoetin alfa" />
      <xsd:enumeration value="Other" />
    </xsd:restriction>
  </xsd:simpleType>
 
  <xsd:simpleType name="HospitalVisit">
    <xsd:annotation>
      <xsd:documentation>
        Hospital visit type.
          - Emergency Department Visit
          - Hospitalization
          - Emergency Visit Resulted in Hospital Admission        
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ER" />
      <xsd:enumeration value="Hospitalization" />
      <xsd:enumeration value="ERResultingHospitalization" />
    </xsd:restriction>
  </xsd:simpleType>
 
  <xsd:complexType name="IVIron">
    <xsd:annotation>
      <xsd:documentation>IV Iron</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="listed" type="ListedIVIron" />
      <xsd:element name="other" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:simpleType name="ListedIVIron">
    <xsd:annotation>
      <xsd:documentation>
        Listed "Intravenous (IV) Iron" 
          - "dextran": Iron dextran (Dexferrum, Infed)
          - "gluconate": Sodium ferric gluconate (Ferrlecit)
          - "sucrose": Iron sucrose (Venofer)
          - Other
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Dextran" />
      <xsd:enumeration value="Gluconate" />
      <xsd:enumeration value="Sucrose" />
      <xsd:enumeration value="Other" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="POIron">
    <xsd:annotation>
      <xsd:documentation>PO Iron</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="listed" type="ListedPOIron" />
      <xsd:element name="other" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  
  
  <xsd:simpleType name="ListedPOIron">
    <xsd:annotation>
      <xsd:documentation>
        Listed Oral (PO) Iron.          - 
          - Ferrous fumarate (Feostat, Femiron)
          - Ferrous sulfate (Feosol, FerIron)
          - Ferrous gluconate (Ferate, Fergon, Ferralet, Simron)
          - Other
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Fumarate" />
      <xsd:enumeration value="Sulfate" />
      <xsd:enumeration value="Gluconate" />
      <xsd:enumeration value="Other" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="HKtVMethod">
    <xsd:annotation>
      <xsd:documentation>Hemodialysis - KtV method.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="listed" type="ListedHKtVMethod" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="ListedHKtVMethod" >
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="UKM" />
      <xsd:enumeration value="Daugirdas2" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="PKtVMethod">
    <xsd:annotation>
      <xsd:documentation>Peritoneal Dialysis - KtV method.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="listed" type="ListedPKtVMethod" />
      <xsd:element name="other" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="ListedPKtVMethod">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="PercentBodyWgt" />
      <xsd:enumeration value="Hume" />
      <xsd:enumeration value="Watson" />
      <xsd:enumeration value="Other" />
    </xsd:restriction>
  </xsd:simpleType>

  <!-- -->

  <!-- ************************ -->
  <!-- *** Common Lab Values *** -->
  <!-- ************************ -->

  <xsd:complexType name="LabValues" >
    <xsd:sequence>
      <xsd:element name="hgb" type="HgbValue" minOccurs="0" />
      <xsd:element name="hgbNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="fer" type="FerValue" minOccurs="0" />
      <xsd:element name="ferNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="tsat" type="TsatValue" minOccurs="0" />
      <xsd:element name="tsatNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="chr" type="ChrValue" minOccurs="0" />
      <xsd:element name="chrNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="phos" type="PhosValue" minOccurs="0" />
      <xsd:element name="phosMethod" type="PhosMethod" minOccurs="0" />
      <xsd:element name="phosNA" type="xsd:boolean" minOccurs="0" />    
      <xsd:element name="cca" type="CcaValue" minOccurs="0" />
      <xsd:element name="ccaNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="uca" type="UcaValue" minOccurs="0" />
      <xsd:element name="ucaNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="alb" type="AlbValue" minOccurs="0" />
      <xsd:element name="albNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="cre" type="CreValue" minOccurs="0" />
      <xsd:element name="creNA" type="xsd:boolean" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="HgbValue">
    <xsd:group ref="DecimalDateGroup" />
  </xsd:complexType>

  <xsd:complexType name="FerValue">
    <xsd:group ref="IntDateGroup" />
  </xsd:complexType>

  <xsd:complexType name="TsatValue">
    <xsd:group ref="IntDateGroup" />
  </xsd:complexType>

  <xsd:complexType name="ChrValue">
    <xsd:group ref="IntDateGroup" />
  </xsd:complexType>

  <xsd:complexType name="PhosValue">
    <xsd:group ref="DecimalDateGroup" />
  </xsd:complexType>

  <xsd:complexType name="CcaValue">
    <xsd:group ref="DecimalDateGroup" />
  </xsd:complexType>

  <xsd:complexType name="UcaValue">
    <xsd:group ref="DecimalDateGroup" />
  </xsd:complexType>

  <xsd:complexType name="AlbValue">
    <xsd:sequence>
      <xsd:group ref="DecimalDateGroup" />
      <xsd:element name="method" type="AlbMethod" minOccurs="0" />
	  <xsd:element name="methodNA" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="lowValue" type="xsd:decimal" minOccurs="0" />
      <xsd:element name="lowValueNA" type="xsd:boolean" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="CreValue">
    <xsd:group ref="DecimalDateGroup" />
  </xsd:complexType>

  <xsd:complexType name="CrcValue">
    <xsd:sequence>
      <xsd:element name="value" type="xsd:decimal" />
      <xsd:element name="unit" type="CrcUnit" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="AlbMethod" >
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BCG" />
      <xsd:enumeration value="BCP" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="BsaMethod">
    <xsd:annotation>
      <xsd:documentation>Body-Surface Area estimation method.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="listed" type="ListedBsaMethod" />
      <xsd:element name="other" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="ListedBsaMethod" >
    <xsd:annotation>
      <xsd:documentation>Listed Body-Surface Area estimation method.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DuBoisDuBois" />
      <xsd:enumeration value="Other" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="CrcUnit" >
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="LWK" />
      <xsd:enumeration value="LWK173M2" />
    </xsd:restriction>
  </xsd:simpleType>


  <xsd:simpleType name="PhosMethod">
    <xsd:annotation>
      <xsd:documentation>
        Listed Phosphorus Method.          - 
          - Plasma
          - Serum
          - Unable to be Determined (UTD)
      </xsd:documentation>
    </xsd:annotation>  
  	<xsd:restriction base="xsd:string">
  		<xsd:enumeration value="PLASMA"/>
  		<xsd:enumeration value="SERUM"/>
  		<xsd:enumeration value="UTD"/>
  	</xsd:restriction>
  </xsd:simpleType>


</xsd:schema>
