﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="http://www.vetxml.org/schemas/CaseHistory" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.4" id="CaseHistory">
  <xs:element name="CaseHistory">
    <xs:complexType>
      <xs:all>
        <xs:element name="OwnerIdentification" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:all>
              <xs:element name="OwnerPrimary" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="OwnerID" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="TitlePrim" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="OwnerSurnamePrim" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="OwnerForenamesPrim" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="AddressPrim" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="PostcodePrim" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="DaytimePhonePrim" type="xs:integer" minOccurs="0" maxOccurs="1" />
                    <xs:element name="EveningPhonePrim" type="xs:integer" minOccurs="0" maxOccurs="1" />
                    <xs:element name="MobilePhonePrim" type="xs:integer" minOccurs="0" maxOccurs="1" />
                    <xs:element name="EmailAddressPrim" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="PreferredContactByPrim" type="xs:string" minOccurs="0" maxOccurs="1" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
              <xs:element name="OwnerSecondary" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="OwnerID" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="TitleSec" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="Owner1SurnameSec" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="Owner1ForenamesSec" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="AddressSec" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="PostcodeSec" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="DaytimePhoneSec" type="xs:integer" minOccurs="0" maxOccurs="1" />
                    <xs:element name="EveningPhoneSec" type="xs:integer" minOccurs="0" maxOccurs="1" />
                    <xs:element name="MobilePhoneSec" type="xs:integer" minOccurs="0" maxOccurs="1" />
                    <xs:element name="EmailAddressSec" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="PreferredContactBySec" type="xs:string" minOccurs="0" maxOccurs="1" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
            </xs:all>
          </xs:complexType>
        </xs:element>
        <xs:element name="AnimalDetails" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:all>
              <xs:element name="AnimalID" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="PedigreeName" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="Species" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="Breed" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="DateOfBirth" type="xs:date" minOccurs="0" maxOccurs="1" />
              <xs:element name="Gender" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="NeuterStatus" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="Colour" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="MicrochipNumber" type="xs:string" minOccurs="0" maxOccurs="1" />
            </xs:all>
          </xs:complexType>
        </xs:element>
        <xs:element name="PracticeDetails" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:all>
              <xs:element name="PracticeName" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="PracticeID" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="PracticeAddress" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="PracticePostcode" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="PracticePhoneOne" type="xs:integer" minOccurs="0" maxOccurs="1" />
              <xs:element name="PracticePhoneTwo" type="xs:integer" minOccurs="0" maxOccurs="1" />
              <xs:element name="PracticeFax" type="xs:integer" minOccurs="0" maxOccurs="1" />
              <xs:element name="PracticeEmail" type="xs:string" minOccurs="0" maxOccurs="1" />
            </xs:all>
          </xs:complexType>
        </xs:element>
        <xs:element name="PreviousVets" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PreviousVet" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="PracticeName" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="PracticeID" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="PracticeAddress" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="PracticePostcode" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="PracticePhoneOne" type="xs:integer" minOccurs="0" maxOccurs="1" />
                    <xs:element name="PracticePhoneTwo" type="xs:integer" minOccurs="0" maxOccurs="1" />
                    <xs:element name="PracticeFax" type="xs:integer" minOccurs="0" maxOccurs="1" />
                    <xs:element name="PracticeEmail" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="DateFrom" type="xs:date" minOccurs="0" maxOccurs="1" />
                    <xs:element name="DateTo" type="xs:date" minOccurs="0" maxOccurs="1" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="InsurancePolicyDetails" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:all>
              <xs:element name="InsurerID" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="PolicyNumber" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="Exclusions" type="xs:string" minOccurs="0" maxOccurs="1" />
            </xs:all>
          </xs:complexType>
        </xs:element>
        <xs:element name="AnimalClinicalHistory" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Entry" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Date" type="xs:date" minOccurs="0" maxOccurs="1" />
                    <xs:element name="Time" type="xs:time" minOccurs="0" maxOccurs="1" />
                    <xs:element name="EnteredBy" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="CinicalHistory" minOccurs="0" maxOccurs="1">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="ClientHistory" type="xs:string" minOccurs="0" maxOccurs="1" />
                          <xs:element name="Appetite" type="xs:string" minOccurs="0" maxOccurs="1" />
                          <xs:element name="Drinking" type="xs:string" minOccurs="0" maxOccurs="1" />
                          <xs:element name="Urinating" type="xs:string" minOccurs="0" maxOccurs="1" />
                          <xs:element name="Faeces" type="xs:string" minOccurs="0" maxOccurs="1" />
                          <xs:element name="Vomiting" type="xs:string" minOccurs="0" maxOccurs="1" />
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="ClinicalExamination" minOccurs="0" maxOccurs="1">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="Temp" type="xs:string" minOccurs="0" maxOccurs="1" />
                          <xs:element name="Pulse" type="xs:string" minOccurs="0" maxOccurs="1" />
                          <xs:element name="Respiration" type="xs:string" minOccurs="0" maxOccurs="1" />
                          <xs:element name="MucousMembranes" type="xs:string" minOccurs="0" maxOccurs="1" />
                          <xs:element name="CRT" type="xs:string" minOccurs="0" maxOccurs="1" />
                          <xs:element name="Demeanor" type="xs:string" minOccurs="0" maxOccurs="1" />
                          <xs:element name="ClinExamText" type="xs:string" minOccurs="0" maxOccurs="1" />
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Treatment" minOccurs="0" maxOccurs="1">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="TreatmentText" type="xs:string" minOccurs="0" maxOccurs="1" />
                          <xs:element name="MedicationsDispensed" minOccurs="0" maxOccurs="1">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="MedicationDispensed" minOccurs="0" maxOccurs="unbounded">
                                  <xs:complexType>
                                    <xs:all>
                                      <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" />
                                      <xs:element name="Strength" type="xs:string" minOccurs="0" maxOccurs="1" />
                                      <xs:element name="Amount" type="xs:decimal" minOccurs="0" maxOccurs="1" />
                                      <xs:element name="AdminRoute" type="xs:string" minOccurs="0" maxOccurs="1" />
                                      <xs:element name="DosageInstruction" type="xs:string" minOccurs="0" maxOccurs="1" />
                                    </xs:all>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="Injections" minOccurs="0" maxOccurs="1">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="Injection" minOccurs="0" maxOccurs="unbounded">
                                  <xs:complexType>
                                    <xs:all>
                                      <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" />
                                      <xs:element name="Strength" type="xs:string" minOccurs="0" maxOccurs="1" />
                                      <xs:element name="AmountInMl" type="xs:decimal" minOccurs="0" maxOccurs="1" />
                                      <xs:element name="AdminRoute" type="xs:string" minOccurs="0" maxOccurs="1" />
                                    </xs:all>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="MedicationsPrescribed" minOccurs="0" maxOccurs="1">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="MedicationPrescribed" minOccurs="0" maxOccurs="unbounded">
                                  <xs:complexType>
                                    <xs:all>
                                      <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" />
                                      <xs:element name="Strength" type="xs:string" minOccurs="0" maxOccurs="1" />
                                      <xs:element name="Amount" type="xs:decimal" minOccurs="0" maxOccurs="1" />
                                      <xs:element name="AdminRoute" type="xs:string" minOccurs="0" maxOccurs="1" />
                                      <xs:element name="DosageInstruction" type="xs:string" minOccurs="0" maxOccurs="1" />
                                      <xs:element name="RepeatsAllowed" type="xs:string" minOccurs="0" maxOccurs="1" />
                                      <xs:element name="ValidUntil" type="xs:date" minOccurs="0" maxOccurs="1" />
                                    </xs:all>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="LineItems" minOccurs="0" maxOccurs="1">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Item" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                              <xs:all>
                                <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" />
                                <xs:element name="Type" type="xs:string" minOccurs="0" maxOccurs="1" />
                              </xs:all>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DicomImages" minOccurs="0" maxOccurs="1">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Dicom" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                              <xs:all>
                                <xs:element name="DicomDescription" type="xs:string" minOccurs="0" maxOccurs="1" />
                                <xs:element name="DicomReference" type="xs:string" minOccurs="0" maxOccurs="1" />
                              </xs:all>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="ClinicalDiagnosis" minOccurs="0" maxOccurs="1">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Diagnosis" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                              <xs:all>
                                <xs:element name="DiagnosisStatus" type="xs:string" minOccurs="0" maxOccurs="1" />
                                <xs:element name="DictionaryWord" type="xs:string" minOccurs="0" maxOccurs="1" />
                                <xs:element name="DiagnosticCode" type="xs:integer" minOccurs="0" maxOccurs="1" />
                              </xs:all>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:all>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="LastVaccinations" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="LastVaccination" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="VaccineType" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="BatchNumber" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VaccinationDate" type="xs:date" minOccurs="0" maxOccurs="1" />
                    <xs:element name="NextDoseDue" type="xs:date" minOccurs="0" maxOccurs="1" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="OngoingConditions" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="OngoingCondition" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="DictionaryWord" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="DiagnosticCode" type="xs:integer" minOccurs="0" maxOccurs="1" />
                    <xs:element name="OngoingMedications" minOccurs="0" maxOccurs="1">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="OngoingMedication" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                              <xs:all>
                                <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" />
                                <xs:element name="Strength" type="xs:string" minOccurs="0" maxOccurs="1" />
                                <xs:element name="Amount" type="xs:decimal" minOccurs="0" maxOccurs="1" />
                                <xs:element name="AdminRoute" type="xs:string" minOccurs="0" maxOccurs="1" />
                                <xs:element name="DosageInstruction" type="xs:string" minOccurs="0" maxOccurs="1" />
                              </xs:all>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:all>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="LabResults" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="LabResult" minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="LabResultHeader" minOccurs="0">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="TestType" type="xs:string" minOccurs="0"/>
                          <xs:element name="TestCode" type="xs:string" minOccurs="0"/>
                          <xs:element name="RequestDate" type="xs:dateTime" minOccurs="0"/>
                          <xs:element name="Sample" minOccurs="0">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="SampleRef" type="xs:string" minOccurs="0"/>
                                <xs:element name="SampleCollectionDate" type="xs:dateTime" minOccurs="0"/>
                                <xs:element name="SampleReceptionDate" type="xs:dateTime" minOccurs="0"/>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="PrintDate" type="xs:dateTime" minOccurs="0"/>
                          <xs:element name="RawResultData" type="xs:string" minOccurs="0"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="LabResultItems" minOccurs="0">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="LabResultItem" minOccurs="0">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="AnalyteName" type="xs:string" minOccurs="0"/>
                                <xs:element name="Result" type="xs:decimal" minOccurs="0"/>
                                <xs:element name="Units" type="xs:string" minOccurs="0"/>
                                <xs:element name="ExtremeLowRange" type="xs:decimal" minOccurs="0"/>
                                <xs:element name="ExtremeHighRange" type="xs:decimal" minOccurs="0"/>
                                <xs:element name="Notes" type="xs:string" minOccurs="0"/>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="ReferralOut" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:all>
              <xs:element name="ReferringVet" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="VetTitle" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetSurname" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetForenames" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetPosition" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetQualifications" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetEmailAddress" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetPhone" type="xs:integer" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetMobilePhone" type="xs:integer" minOccurs="0" maxOccurs="1" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
              <xs:element name="ReferralLetter" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="ImagesSent" type="xs:boolean" minOccurs="0" maxOccurs="1" />
              <xs:element name="ReportsSent" type="xs:boolean" minOccurs="0" maxOccurs="1" />
              <xs:element name="ReferralDate" type="xs:date" minOccurs="0" maxOccurs="1" />
            </xs:all>
          </xs:complexType>
        </xs:element>
        <xs:element name="ReferralBack" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:all>
              <xs:element name="ReferringVet" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="VetTitle" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetSurname" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetForenames" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetQualifications" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetPosition" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetEmailAddress" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetPhone" type="xs:integer" minOccurs="0" maxOccurs="1" />
                    <xs:element name="VetMobilePhone" type="xs:integer" minOccurs="0" maxOccurs="1" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
              <xs:element name="ReferralCentreSummaryLetter" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="ImagesSent" type="xs:boolean" minOccurs="0" maxOccurs="1" />
              <xs:element name="ReportsSent" type="xs:boolean" minOccurs="0" maxOccurs="1" />
              <xs:element name="ReferralDate" type="xs:date" minOccurs="0" maxOccurs="1" />
            </xs:all>
          </xs:complexType>
        </xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>
</xs:schema>