<?xml version="1.0" encoding="UTF-8"?>
<xs:schema id="monthlydata" targetNamespace="http://homehealthcahps.rti.org" xmlns:mstns="http://homehealthcahps.rti.org" xmlns="http://homehealthcahps.rti.org" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">

  <xs:element name="monthlydata" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">

    <xs:complexType>
      <xs:sequence>

        <xs:element name="header" minOccurs="1" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="header-type" minOccurs="1"><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="1"/><xs:maxInclusive value="1"/></xs:restriction></xs:simpleType></xs:element>
              <xs:element name="provider-name" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:minLength value="1"/><xs:maxLength value="100"/></xs:restriction></xs:simpleType></xs:element>
              <xs:element name="provider-id" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="\d{6}"/></xs:restriction></xs:simpleType></xs:element>
              <xs:element name="npi" minOccurs="0"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="\d{10}"/></xs:restriction></xs:simpleType></xs:element>
              <xs:element name="sample-month" minOccurs="1"><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="1"/><xs:maxInclusive value="12"/></xs:restriction></xs:simpleType></xs:element>
              <xs:element name="sample-yr" minOccurs="1"><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="2025"/><xs:maxInclusive value="9998"/></xs:restriction></xs:simpleType></xs:element>
              <xs:element name="survey-mode" minOccurs="1"><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="1"/><xs:maxInclusive value="3"/></xs:restriction></xs:simpleType></xs:element>
              <xs:element name="sample-type" minOccurs="1"><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="1"/><xs:maxInclusive value="4"/></xs:restriction></xs:simpleType></xs:element>
              <xs:element name="patients-hha" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="\d{1,6}|[mM]"/></xs:restriction></xs:simpleType></xs:element>
              <xs:element name="number-vendor-submitted" minOccurs="1"><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="0"/><xs:maxInclusive value="999999"/></xs:restriction></xs:simpleType></xs:element>
              <xs:element name="number-eligible-patients" minOccurs="1"><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="0"/><xs:maxInclusive value="999999"/></xs:restriction></xs:simpleType></xs:element>
              <xs:element name="number-sampled" minOccurs="1"><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="0"/><xs:maxInclusive value="999999"/></xs:restriction></xs:simpleType></xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>

        <xs:element name="patientleveldata" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="administration" minOccurs="1" maxOccurs="1">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="provider-id" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="\d{6}"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="npi" minOccurs="0"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="\d{10}"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="sample-month" minOccurs="1"><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="1"/><xs:maxInclusive value="12"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="sample-yr" minOccurs="1"><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="2025"/><xs:maxInclusive value="9998"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="sample-id" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:minLength value="1"/><xs:maxLength value="16"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="patient-age" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-9]|[1][0-5]|[0][1-9]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="sex" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[12]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="number-visits" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="lb-visits" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[2-9]|[1-9][0-9]|[1-9][0-9][0-9]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="admission-source-1" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="admission-source-2" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="admission-source-3" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="admission-source-4" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="admission-source-5" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="admission-source-6" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="payer-medicare" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]|[aA]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="payer-medicaid" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]|[aA]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="payer-private" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]|[aA]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="payer-other" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]|[aA]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="hmo-enrollee" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[12]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="dual-eligible" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[123]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="surgical-discharge" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[12]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="esrd" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[12]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="adl-deficits" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[0-5]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="adl-du" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[0-3]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="adl-dl" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[0-3]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="adl-bathing" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[0-6]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="adl-toilet-transferring" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[0-4]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="adl-transfer" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[0-5]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="final-status" minOccurs="1"><xs:simpleType><xs:restriction base="xs:integer"><xs:pattern value="110|120|210|220|230|240|310|320|330|340|350"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="language-survey" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-6]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="proxy" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[12]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="number-supplemental" minOccurs="1"><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="0"/><xs:maxInclusive value="99"/></xs:restriction></xs:simpleType></xs:element>
                  </xs:sequence>
                </xs:complexType>

              </xs:element>

              <xs:element name="patientresponse" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                  <xs:sequence>

                    <xs:element name="confirm-care" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[12]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="home-safety" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-4]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="review-meds" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-4]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="med-side-effects" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[12348]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="when-arrive" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-4]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="aware-care" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-4]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="treat-care" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-4]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="explain-things" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-4]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="listen-carefully" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-4]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="courtesy-respect" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-4]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="care-person" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-4]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="family-friends-info" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-4]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="help-health" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-4]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="rate-care" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="0?[0-9]|10|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="contact-office-screener" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[12]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="get-help-needed" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[128]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="recommend" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-4]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="overall-health" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-5]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="mental-health" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-5]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="live" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[12]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="education" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[1-6]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="race-amer-indian" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="race-asian" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="race-african-amer" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="race-hispanic" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="race-middle-eastern" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="race-native-hawaiian" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="race-white" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="1|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="language-home" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[123]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="help-you" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[12]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="help-read" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[18]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="help-wrote" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[18]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="help-answer" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[18]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="help-translate" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[18]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="help-other" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[18]|[mM]"/></xs:restriction></xs:simpleType></xs:element>
                    <xs:element name="help-none" minOccurs="1"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[18]|[mM]"/></xs:restriction></xs:simpleType></xs:element>

                  </xs:sequence>
                </xs:complexType>

	<xs:unique name="onePateientIDforXMLFile">
	   <xs:selector xpath=".//administration"/>
	   <xs:field xpath="patient-id"/>
	</xs:unique>

              </xs:element>

            </xs:sequence>
          </xs:complexType>

        </xs:element>

      </xs:sequence>
    </xs:complexType>

    <xs:unique name="patient-id_constraint" msdata:ConstraintName="Constraint1">
      <xs:selector xpath=".//mstns:administration" />
      <xs:field xpath="mstns:sample-id" />
    </xs:unique>

  </xs:element>

</xs:schema>