<?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.4.1">
  <xs:include schemaLocation="https://www.his.bg/api/v1/NHIS-Entities.xsd"/>
  <xs:element name="message" type="nhis:messageR001"/>
  <!-- Define all elements in 'Message' block -->
  <xs:complexType name="messageR001">
    <xs:complexContent>
      <xs:extension base="nhis:messageBase">
        <xs:sequence>
          <xs:element name="contents" type="nhis:contentsR001"/>
          <xs:element ref="Signature"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- Define all elements in 'Contents' block -->
  <xs:complexType name="contentsR001">
    <xs:complexContent>
      <xs:extension base="nhis:contentsBase">
        <xs:sequence>
          <xs:element name="referral" type="nhis:referral"/>
          <xs:element name="subject" type="nhis:patientExtendedWithID"/>
          <xs:element name="requester" type="nhis:medicalPractitioner"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- Extend the 'Patient' block -->
  <xs:complexType name="patientExtendedWithID">
    <xs:complexContent>
      <xs:extension base="nhis:patientExtended">
        <xs:sequence>
          <xs:element name="identificationDocument" minOccurs="0">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="number" type="nhis:idNumberBase"/>
                <xs:element name="issueDate" type="nhis:documentDateBase"/>
                <xs:element name="isPregnant" type="nhis:isPregnantBase" minOccurs="0"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- Define all elements in 'Referral' block -->
  <xs:complexType name="referral">
    <xs:sequence>
      <xs:element name="lrn" type="nhis:lrnBase"/>
      <xs:element name="authoredOn" type="nhis:authoredOnBase"/>
      <xs:element name="category" type="nhis:referralTypeBase"/>
      <xs:element name="type" type="nhis:referralSubtypeBase" minOccurs="0"/>
      <xs:element name="rhifAreaNumber" type="nhis:rhifAreaNumberBase" minOccurs="0"/>
      <xs:element name="basedOn" type="nhis:documentNumberBase"/>
      <xs:element name="financingSource" type="nhis:financingSourceBase"/>
      <xs:choice>
        <xs:element name="laboratory">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="code" type="nhis:mdaBase" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="consultation">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="qualification" type="nhis:qualificationBase"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="specializedActivities">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="qualification" type="nhis:qualificationBase"/>
              <xs:element name="code" type="nhis:specializedActivityCodeBase"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="hospitalization">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="admissionType" type="nhis:admissionTypeBase"/>
              <xs:element name="directedBy" type="nhis:directedByBase"/>
              <xs:element name="clinicalPathway" type="nhis:clinicalPathwayBase" minOccurs="0"/>
              <xs:element name="outpatientProcedure" type="nhis:outpatientProcedureBase" minOccurs="0"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="medicalExpertise">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="qualification" type="nhis:qualificationBase"/>
              <xs:element name="examType" type="nhis:examTypeBase" minOccurs="0"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="workIncapacity">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="reason" type="nhis:referralReasonBase"/>
              <xs:element name="addressType" type="nhis:addressTypeBase"/>
              <xs:element name="isHomeVisitNecessary" type="nhis:isHomeVisitNecessaryBase"/>
              <xs:element name="employer" minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="name" type="nhis:employerNameBase"/>
                    <xs:element name="identificationCode" type="nhis:identificationCodeBase"/>
                    <xs:element name="phone" type="nhis:phoneBase" minOccurs="0"/>
                    <xs:element name="email" type="nhis:emailBase" minOccurs="0"/>
                    <xs:element name="address" type="nhis:addressBase"/>
                    <xs:element name="position" type="nhis:employmentPositionBase"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="documents" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="type" type="nhis:documentTypeBase"/>
                    <xs:element name="date" type="nhis:documentDateBase" minOccurs="0"/>
                    <xs:element name="number" type="nhis:documentNumberBase"/>
                    <xs:element name="isNrn" type="nhis:isNrnBase"/>
                    <xs:element name="note" type="nhis:textBase" minOccurs="0"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
      <xs:element name="diagnosis" type="nhis:diagnosisFull" maxOccurs="unbounded"/>
      <xs:element name="comorbidity" type="nhis:diagnosisFull" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="note" type="nhis:text8kBase" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
