<?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:include schemaLocation="crown-global.xsd" />
  <xsd:include schemaLocation="crown-patient.xsd" />
  <xsd:include schemaLocation="crown-clinical-cpms.xsd" />

  <xsd:complexType name="Form2728">
    <xsd:sequence>
      <xsd:element name="orgPatientId" type="NonEmptyString" />
      <xsd:element name="orgForm2728Id" type="NonEmptyString" />
      <xsd:element name="form2728Type" type="Form2728Type" />
      <xsd:element name="gfrCalculationMethod" type="GFRCalculationMethod" />
      <xsd:element name="partA" type="Form2728PartA" minOccurs="0" />
      <xsd:element name="partB" type="Form2728PartB" minOccurs="0" />
      <xsd:element name="partD" type="Form2728PartD" minOccurs="0" />
      <xsd:element name="partE" type="Form2728PartE" minOccurs="0" />
      <xsd:element name="partF" type="Form2728PartF" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Form2728PartA">
    <xsd:annotation>
      <xsd:documentation>
        Part A of Form 2728:
        - For primaryCauseRenalFailure, use the patient Diagnosis Code
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="patientInformation" type="Form2728PatientInformation"
        minOccurs="0" />
      <xsd:element name="medicareApply" type="xsd:boolean"
        minOccurs="0" />
      <xsd:element name="currentMedicalCoverage" type="MedicalCoverageType"
        minOccurs="0" />
      <xsd:element name="height" type="Height" minOccurs="0" />
      <xsd:element name="dryWeight" type="Weight" minOccurs="0" />
      <xsd:element name="primaryCauseRenalFailure" type="xsd:string"
        minOccurs="0" />
      <xsd:element name="currentEmploymentStatus" type="EmploymentStatus"
        minOccurs="0" />
      <xsd:element name="priorEmploymentStatus" type="EmploymentStatus"
        minOccurs="0" />
      <xsd:element name="coMorbidConditions" type="CoMorbidConditionsType"
        minOccurs="0" />
      <xsd:element name="receiveExoEryth" type="YesNoRangeType"
        minOccurs="0" />
      <xsd:element name="nephrologistCare" type="YesNoRangeType"
        minOccurs="0" />
      <xsd:element name="kidneyDietitianCare" type="YesNoRangeType"
        minOccurs="0" />
      <xsd:element name="firstAccessUsed" type="AccessType"
        minOccurs="0" />
      <xsd:element name="maturingAVFPresent" type="xsd:boolean"
        minOccurs="0" />
      <xsd:element name="maturingGraftPresent" type="xsd:boolean"
        minOccurs="0" />
      <xsd:element name="alb" type="Alb2728Value" minOccurs="0" />
      <xsd:element name="albMethod" type="AlbMethod" minOccurs="0" />
      <xsd:element name="albLowerLimit" type="xsd:decimal"
        minOccurs="0" />
      <xsd:element name="cre" type="CreValue" minOccurs="0" />
      <xsd:element name="hgb" type="HgbValue" minOccurs="0" />
      <xsd:element name="hbA1c" type="HbA1cValue" minOccurs="0" />
      <xsd:element name="lipidProfileTC" type="LipidProfileTCValue"
        minOccurs="0" />
      <xsd:element name="ldl" type="LdlValue" minOccurs="0" />
      <xsd:element name="hdl" type="HdlValue" minOccurs="0" />
      <xsd:element name="tg" type="TgValue" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Form2728PartB">
    <xsd:annotation>
      <xsd:documentation>Part B of Form 2728</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="dialysisSetting" type="DialysisSetting"
        minOccurs="0" />
      <xsd:element name="primaryTreatmentType" type="TreatmentType"
        minOccurs="0" />
      <xsd:element name="prescribedSessionsPerWeek" type="xsd:positiveInteger"
        minOccurs="0" />
      <xsd:element name="hoursPerSession" type="xsd:decimal"
        minOccurs="0" />
      <xsd:element name="chronicDialysisBeginDate" type="xsd:date"
        minOccurs="0" />
      <xsd:element name="chronicDialysisBeginFaciltyDate" type="xsd:date"
        minOccurs="0" />
      <xsd:element name="transplantOptions" type="xsd:boolean"
        minOccurs="0" />
      <xsd:element name="noTransplantOptions" type="NoTransplantOptions"
        minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Form2728PartD">
    <xsd:annotation>
      <xsd:documentation>Part D of Form 2728</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="trainingProvider" type="TrainingProvider" 
        minOccurs="0" />
      <xsd:element name="dialysisTraining" type="DialysisTraining" minOccurs="0" />
      <xsd:element name="willSelfDialyze" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="trainingPhysician" type="Physician" minOccurs="0" />
      <xsd:element name="trainingPhysicianDate" type="xsd:date" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Form2728PartE">
    <xsd:annotation>
      <xsd:documentation>Part E of Form 2728</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="physician" type="Physician" minOccurs="0" />
      <xsd:element name="physicianDate" type="xsd:date" minOccurs="0" />
      <xsd:element name="remarks" type="Remarks" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Form2728PartF">
    <xsd:annotation>
      <xsd:documentation>Part F of Form 2728</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="signatureDate" type="xsd:date" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="Form2728Type">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="InitialDialysis" />
      <xsd:enumeration value="SupplementalTraining" />
      <xsd:enumeration value="ReentitlementRestartDialysis" />
      <xsd:enumeration value="ReentitlementDialysisAfterTransplantFailed" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="GFRCalculationMethod">
    <xsd:annotation>
      <xsd:documentation>
        GFRCalculationMethod:
        - For adult patients use 
          MDRD - MDRD not IDMS standardized
          IDMS - MDRD IDMS standardized
        - For pediatric patients use 
          OMDRD - Schwartz Equation
          BIDMS - Bedside IDMS Traceable Schwartz Equation
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="MDRD" />
      <xsd:enumeration value="IDMS" />
      <xsd:enumeration value="OMDRD" />
      <xsd:enumeration value="BIDMS" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="Form2728PatientInformation">
    <xsd:sequence>
      <xsd:element name="patientIdentifier" type="PatientIdentifier"
        minOccurs="0" />
      <xsd:element name="mailingAddress" type="Address" minOccurs="0"
        maxOccurs="1" />
      <xsd:element name="phone" type="Phone" minOccurs="0"
        maxOccurs="1" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="AccessType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="AVF" />
      <xsd:enumeration value="Graft" />
      <xsd:enumeration value="Catheter" />
      <xsd:enumeration value="Other" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="Remarks">
    <xsd:restriction base="xsd:string">
      <xsd:maxLength value="255" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="TrainingProvider">
    <xsd:choice>
      <xsd:element name="trainingOrgFacilityCode" type="xsd:string"
        minOccurs="0" />
    </xsd:choice>
  </xsd:complexType>

  <xsd:complexType name="NoTransplantOptions">
    <xsd:annotation>
      <xsd:documentation>No Transplant Options.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="listed" type="ListedNoTransplantOptions"
        maxOccurs="6" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="ListedNoTransplantOptions">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="MedicallyUnfit"/>
      <xsd:enumeration value="UnsuitableDueToAge"/>
      <xsd:enumeration value="PsychologicallyUnfit"/>
      <xsd:enumeration value="PatientDeclinesInformation"/>
      <xsd:enumeration value="PatientHasNotBeenAssessed"/>
      <xsd:enumeration value="Other"/>
    </xsd:restriction>
  </xsd:simpleType>

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

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

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

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

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

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

</xsd:schema>
