<?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:messageH003"/>
  <!-- Define all elements in 'Message' block -->
  <xs:complexType name="messageH003">
    <xs:complexContent>
      <xs:extension base="nhis:messageBase">
        <xs:sequence>
          <xs:element name="contents" type="nhis:contentsH003"/>
          <xs:element ref="Signature"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- Define all elements in 'Contents' block -->
  <xs:complexType name="contentsH003">
    <xs:complexContent>
      <xs:extension base="nhis:contentsBase">
        <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:extension>
    </xs:complexContent>
  </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="authoredOn" type="nhis:authoredOnBase"/>
      <xs:element name="isCorrection" type="nhis:isCorrectionBase"/>
      <xs:element name="correctionReason" type="nhis:reasonBase" minOccurs="0"/>
      <xs:element name="basedOn" type="nhis:nrnBase"/>
      <xs:element name="practiceNumber" type="nhis:practiceNumberBase"/>
      <xs:element name="admissionType" type="nhis:admissionTypeBase"/>
      <xs:element name="admissionDate" type="nhis:admissionDateBase"/>
      <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="clinicalPathway" type="nhis:clinicalPathwayBase" minOccurs="0"/>
      <xs:element name="outpatientProcedure" type="nhis:outpatientProcedureBase" minOccurs="0"/>
      <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="accommodation" type="nhis:accommodation" minOccurs="0"/>
      <xs:element name="allergies" type="nhis:allergy" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="admissionDiagnosis" type="nhis:diagnosisFull" maxOccurs="unbounded"/>
      <xs:element name="comorbidity" type="nhis:diagnosisFull" 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="ward" type="nhis:wardBase"/>
      <xs:element name="room" type="nhis:roomBase"/>
      <xs:element name="bed" type="nhis:bedBase"/>
      <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 '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>
