<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:nhis="https://www.his.bg"
  targetNamespace="https://www.his.bg" elementFormDefault="qualified" version="1.0.6">
  <xs:include schemaLocation="https://www.his.bg/api/v1/NHIS-Entities.xsd"/>
  <xs:element name="message" type="nhis:messageH002"/>
  <!-- Define all elements in 'Message' block -->
  <xs:complexType name="messageH002">
    <xs:complexContent>
      <xs:extension base="nhis:messageBase">
        <xs:sequence>
          <xs:element name="contents" type="nhis:contentsH002"/>
          <xs:element name="warnings" type="nhis:warningsBase" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- Define all elements in 'Contents' block -->
  <xs:complexType name="contentsH002">
    <xs:complexContent>
      <xs:extension base="nhis:contentsBase">
        <xs:sequence>
          <xs:element name="foundNumber" type="nhis:foundNumber"/>
          <xs:element name="results" type="nhis:results" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- Define all elements in 'Results' block -->
  <xs:complexType name="results">
    <xs:sequence>
      <xs:element name="hospitalization" type="nhis:hospitalization"/>
      <xs:element name="subject" type="nhis:patientExtended"/>
      <xs:element name="contactUnknown" type="nhis:contactUnknownBase" minOccurs="0"/>
      <xs:element name="contact" type="nhis:contactPerson" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <!-- Define all elements in 'Hospitalization' block -->
  <xs:complexType name="hospitalization">
    <xs:sequence>
      <xs:element name="nrnHospitalization" type="nhis:nrnBase"/>
      <xs:element name="lrn" type="nhis:lrnBase"/>
      <xs:element name="status" type="nhis:hospitalizationStatusBase"/>
      <xs:element name="authoredOn" type="nhis:authoredOnBase"/>
      <xs:element name="correctionReason" type="nhis:reasonBase" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="basedOn" type="nhis:nrnBase"/>
      <xs:element name="admissionType" type="nhis:admissionTypeBase"/>
      <xs:element name="clinicalPathway" type="nhis:clinicalPathwayBase" minOccurs="0"/>
      <xs:element name="outpatientProcedure" type="nhis:outpatientProcedureBase" minOccurs="0"/>
      <xs:element name="dischargeClinicalPathway" type="nhis:clinicalPathwayBase" minOccurs="0"/>
      <xs:element name="dischargeOutpatientProcedure" type="nhis:outpatientProcedureBase" minOccurs="0"/>
      <xs:element name="directedBy" type="nhis:directedByBase" minOccurs="0"/>
      <xs:element name="reasonCode" type="nhis:hospitalizationReasonBase"/>
      <xs:element name="note" type="nhis:textBase" minOccurs="0"/>
      <xs:element name="journalNumber" type="nhis:journalNumberBase"/>
      <xs:element name="practiceNumber" type="nhis:practiceNumberBase"/>
      <xs:element name="admissionDate" type="nhis:admissionDateBase"/>
      <xs:element name="elapsedTime" type="nhis:elapsedTimeBase" minOccurs="0"/>
      <xs:element name="severity" type="nhis:severityBase"/>
      <xs:element name="financingSource" type="nhis:financingSourceBase"/>
      <xs:element name="bloodType" type="nhis:bloodTypeBase" minOccurs="0"/>
      <xs:element name="dietPreference" type="nhis:dietPreferenceBase" minOccurs="0"/>
      <xs:element name="dischargeDate" type="nhis:dischargeDateBase" minOccurs="0"/>
      <xs:element name="outcome" type="nhis:outcomeBase" minOccurs="0"/>
      <xs:element name="dischargeDisposition" type="nhis:dischargeDispositionBase" minOccurs="0"/>
      <xs:element name="dischargeNote" type="nhis:textBase" minOccurs="0"/>
      <xs:element name="daysHospitalized" type="nhis:daysHospitalizedBase" minOccurs="0"/>
      <xs:element name="deceasedDate" type="nhis:deceasedDateBase" minOccurs="0"/>
      <xs:element name="autopsyDate" type="nhis:autopsyDateBase" minOccurs="0"/>
      <xs:element name="workability" type="nhis:workabilityBase" minOccurs="0"/>
      <xs:element name="accommodation" type="nhis:accommodation" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="allergies" type="nhis:allergy" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="nrnImmunization" type="nhis:nrnBase" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="assessment" type="nhis:assessment" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="admissionDiagnosis" type="nhis:diagnosisFull" maxOccurs="unbounded"/>
      <xs:element name="dischargeDiagnosis" type="nhis:diagnosisFull" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="comorbidity" type="nhis:diagnosisFull" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="epicrisis" type="nhis:epicrisis" minOccurs="0"/>
      <xs:element name="sickLeave" type="nhis:sickLeave" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <!-- Define all elements in 'Accommodation' block -->
  <xs:complexType name="accommodation">
    <xs:sequence>
      <xs:element name="accommodationDate" type="nhis:accommodationDateBase"/>
      <xs:element name="status" type="nhis:accommodationStatusBase"/>
      <xs:element name="ward" type="nhis:wardBase"/>
      <xs:element name="room" type="nhis:roomBase"/>
      <xs:element name="bed" type="nhis:bedBase"/>
      <xs:element name="reason" type="nhis:reasonBase"/>
      <xs:element name="attendingPhysician">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="pmi" type="nhis:pmiBase"/>
            <xs:element name="qualification" type="nhis:qualificationBase"/>
            <xs:element name="phone" type="nhis:phoneBase" minOccurs="0"/>
            <xs:element name="email" type="nhis:emailBase" minOccurs="0"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <!-- Define all elements in 'Allergy' block -->
  <xs:complexType name="allergy">
    <xs:sequence>
      <xs:element name="type" type="nhis:allergyTypeBase"/>
      <xs:element name="category" type="nhis:allergyCategoryBase"/>
      <xs:element name="criticality" type="nhis:allergyCriticalityBase"/>
      <xs:element name="lastOccurrence" type="nhis:lastOccurrenceBase" minOccurs="0"/>
      <xs:element name="note" type="nhis:textBase"/>
    </xs:sequence>
  </xs:complexType>
  <!-- Define all elements in 'Epicrisis' block -->
  <xs:complexType name="epicrisis">
    <xs:sequence>
      <xs:element name="fileVersion" type="nhis:epicrisisFileVersionBase"/>
      <xs:element name="addedOn" type="nhis:timestampBase"/>
      <xs:element name="note" type="nhis:text8kBase" minOccurs="0"/>
      <xs:element name="dischargingPhysician">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="pmi" type="nhis:pmiBase"/>
            <xs:element name="qualification" type="nhis:qualificationBase"/>
            <xs:element name="phone" type="nhis:phoneBase" minOccurs="0"/>
            <xs:element name="email" type="nhis:emailBase" minOccurs="0"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <!-- Define all elements in 'Sick Leave' block -->
  <xs:complexType name="sickLeave">
    <xs:sequence>
      <xs:element name="number" type="nhis:nrnBase"/>
      <xs:element name="daysBefore" type="nhis:sickLeaveDaysBase"/>
      <xs:element name="daysAfter" type="nhis:sickLeaveDaysBase"/>
      <xs:element name="reasonCode" type="nhis:mkbBase"/>
      <xs:element name="fromDate" type="nhis:startDateBase"/>
      <xs:element name="toDate" type="nhis:endDateBase"/>
    </xs:sequence>
  </xs:complexType>
  <!-- Define all elements in 'Contact' block -->
  <xs:complexType name="contactPerson">
    <xs:sequence>
      <xs:element name="name" type="nhis:humanNameBase"/>
      <xs:element name="address" type="nhis:addressBase" minOccurs="0"/>
      <xs:element name="phone" type="nhis:phoneBase"/>
      <xs:element name="email" type="nhis:emailBase" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
