<?xml version="1.0" standalone="yes"?>
<xs:schema xmlns:surveys="Surveys" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" targetNamespace="Surveys" xmlns:basedatatypes="Basedatatypes" xmlns:common="Common" elementFormDefault="unqualified" attributeFormDefault="unqualified">
	<xs:import namespace="Basedatatypes" schemaLocation="Basedatatypes.xsd"/>
	<xs:import namespace="Common" schemaLocation="Common.xsd"/>
	<!-- ================================================== -->
	<!-- =====  Complex Type Definitions  -->
	<!-- ================================================== -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  SurveyResponse  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:complexType name="SurveyResponse">
		<xs:sequence>
			<!--xs:element name="recordIdentifier" type="basedatatypes:HL72EntityIdentifier" minOccurs="0"/-->
			<xs:element name="patient" type="common:PatientLite"/>
			<xs:element name="surveyPatient" type="surveys:SurveyPatient"/>
			<xs:element name="enrollmentDate" type="xs:date"/>
			<xs:element name="disenrollmentDate" type="xs:date" nillable="true" minOccurs="0"/>
			<xs:element name="activationDate" type="xs:date" nillable="true" minOccurs="0"/>
			<xs:element name="inactivationDate" type="xs:date" nillable="true" minOccurs="0"/>
			<xs:element name="facility" type="surveys:Facility"/>
			<xs:element name="vendor" type="surveys:Vendor"/>
			<xs:element name="vendorMRN" type="xs:string"/>
			<xs:element name="careCoordinator" type="surveys:CareCoordinator" minOccurs="0"/>
			<xs:element name="scheduledDate" type="xs:date" nillable="true" minOccurs="0"/>
			<xs:element name="completedDate" type="xs:dateTime"/>
			<xs:element name="currentDialogueName" type="xs:string" minOccurs="0"/>
			<xs:element name="programName" type="xs:string" minOccurs="0"/>
			<xs:element name="deviceName" type="xs:string" minOccurs="0"/>
			<xs:element name="surveyAcceptedStatus" type="surveys:AcceptType"/>
			<xs:element name="recordSource" type="basedatatypes:HL72FacilityIdentifier"/>
			<xs:element name="recordUpdateTime" type="basedatatypes:PointInTime"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  ADLSurveyResponse  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:complexType name="ADLSurveyResponse">
		<xs:complexContent>
			<xs:extension base="surveys:SurveyResponse">
				<xs:sequence>
					<xs:element name="survey" type="surveys:SurveyType"/>
					<xs:element name="adlSurveyQuestionsAndAnswers" type="surveys:ADLSurveyQuestionsAndAnswers" minOccurs="0"/>
					<xs:element name="surveyScores" type="surveys:SurveyScores" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  SurveyType  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:complexType name="SurveyType">
		<xs:sequence>
			<xs:element name="surveyTitle" type="xs:string" fixed="VR-12 ADL"/>
			<xs:element name="surveyVersion" type="xs:string" fixed="1.0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  SurveyPersonName  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:complexType name="SurveyPersonName">
		<xs:sequence>
			<xs:element name="family" type="xs:string" minOccurs="0"/>
			<xs:element name="middle" type="xs:string" minOccurs="0"/>
			<xs:element name="given" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  SurveyPatient  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:complexType name="SurveyPatient">
		<xs:sequence>
			<xs:element name="icn" type="xs:string" minOccurs="0"/>
			<xs:element name="ssn" type="surveys:SSN" minOccurs="0"/>
			<xs:element name="name" type="surveys:SurveyPersonName" minOccurs="0"/>
			<xs:element name="birthdate" type="xs:date" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  Facility  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:complexType name="Facility">
		<xs:sequence>
			<xs:element name="facilityNumber" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  Vendor  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:complexType name="Vendor">
		<xs:sequence>
			<xs:element name="vendorNumber" type="xs:string"/>
			<xs:element name="vendorName" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  CareCoordinator  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:complexType name="CareCoordinator">
		<xs:sequence>
			<xs:element name="id" type="xs:string" minOccurs="0"/>
			<xs:element name="name" type="surveys:SurveyPersonName" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  ADLSurveyQuestionsAndAnswers  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:complexType name="ADLSurveyQuestionsAndAnswers">
		<xs:sequence>
			<xs:element name="adlSurveyQuestionAndAnswer" type="surveys:ADLSurveyQuestionAndAnswer" minOccurs="1" maxOccurs="12"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  ADLSurveyQuestionAndAnswer  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:complexType name="ADLSurveyQuestionAndAnswer">
		<xs:sequence>
			<xs:element name="questionNumber" type="surveys:ADLQuestionType"/>
			<xs:element name="answer" type="surveys:AnswerType"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  SurveyScores  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:complexType name="SurveyScores">
		<xs:all>
			<xs:element name="mentalScore" type="xs:decimal" minOccurs="0"/>
			<xs:element name="physicalScore" type="xs:decimal" minOccurs="0"/>
		</xs:all>
	</xs:complexType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  AcceptType  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:simpleType name="AcceptType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="ACCEPTED"/>
			<xs:enumeration value="REFUSED"/>
			<xs:enumeration value="DELAYED"/>
			<xs:enumeration value="DISENROLLED"/>
			<xs:enumeration value="REFUSED-TIME-OUT"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  SSN  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:simpleType name="SSN">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9]{9}[Pp]?"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  ADLQuestionType  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:simpleType name="ADLQuestionType">
		<xs:restriction base="xs:integer">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="12"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<!--  AnswerType  -->
	<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
	<xs:simpleType name="AnswerType">
		<xs:restriction base="xs:integer">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="6"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
