<?xml version="1.0" encoding="utf-8"?>
<Entity 
Schema="AKUZ" 
Name="REHAB_COURSE" 
Description="Курс реабилитации" 
PrimaryKey="RehabCourseID">
  <Fields>
    <Attribute Name="RehabCourseID" Type="guid" Description="Идентификатор" />
    <Attribute Name="CourseOpeningDate" Type="datetime" Description="Дата открытия курса" />
    <Parent Name="Refferal" Type="AKUZ.AMBULANCE_RECORD" Description="Направление" />
    <Parent Name="RehabRegistry" Type="AKUZ.REHAB_REGISTRY" Description="Регистр Реабилитации" />
    <Child Name="RehabFiles" Type="AKUZ.REHAB_FILE" Description="Прикрепленные документы для реабилитации" ChildAttribute="RehabCourse" RemoveAction="0" />
    <Attribute Name="CourseStatus" Type="string" Description="Статус курса" />
    <Parent Name="LpuMain" Type="AKUZ.LPU_MAIN" Description="Направившее МО" />
    <Parent Name="LpuMainTo" Type="AKUZ.LPU_MAIN" Description="Исполняющее МО" />
    <Link Name="EventRehabilitationCard" Type="AKUZ.EVENT_REHABILITATION_CARD" Description="Карта реабилитационных мероприятий" LinkAttribute="RehabCourse" />
  </Fields>
  <DbMapping>
    <Table name="T_REHAB_COURSE">
      <Map Name="RehabCourseID" Column="RehabCourseID" />
      <Map Name="CourseOpeningDate" Column="CourseOpeningDate" />
      <Map Name="Refferal" Column="Refferal" />
      <Map Name="RehabRegistry" Column="RehabRegistry" />
      <Map Name="LpuMain" Column="LpuMain" />
      <Map Name="LpuMainTo" Column="LpuMainTo" />
    </Table>
    <Lexem>
      <Map Name="CourseStatus">
        <lx:Case xmlns:lx="lexem">
          <When>
            <lx:Criterion type="=">
              <lx:Path OwnerQueryLevel="0">
                <lx:StepString name="Refferal" />
              </lx:Path>
              <lx:BaseObjectOperand Entity="AKUZ.AMBULANCE_RECORD" isNull="1" />
            </lx:Criterion>
          </When>
          <Then>
            <lx:ConstOperand type="String"><![CDATA[Нет направления]]></lx:ConstOperand>
          </Then>
          <Else>
            <lx:Case>
              <When>
                <lx:Criterion not="1" type="=">
                  <lx:Path OwnerQueryLevel="0">
                    <lx:StepString name="Refferal" />
                    <lx:StepAs as="AKUZ.REFERRAL" />
                    <lx:StepAs as="AKUZ.HOSPITALIZATION_REFERRAL" />
                    <lx:StepString name="CancelHospitalizationReferral" />
                  </lx:Path>
                  <lx:BaseObjectOperand Entity="AKUZ.CANCEL_HOSPITALIZATION_REFERRAL" isNull="1" />
                </lx:Criterion>
              </When>
              <Then>
                <lx:ConstOperand type="String"><![CDATA[Направление на госпитализацию отменено]]></lx:ConstOperand>
              </Then>
              <Else>
                <lx:Case>
                  <When>
                    <lx:Criterion not="1" type="=">
                      <lx:Path OwnerQueryLevel="0">
                        <lx:StepString name="EventRehabilitationCard" />
                      </lx:Path>
                      <lx:BaseObjectOperand Entity="AKUZ.EVENT_REHABILITATION_CARD" isNull="1" />
                    </lx:Criterion>
                  </When>
                  <Then>
                    <lx:Case>
                      <When>
                        <lx:Criterion not="1" type="=">
                          <lx:Path OwnerQueryLevel="0">
                            <lx:StepString name="EventRehabilitationCard" />
                            <lx:StepString name="EventBase" />
                            <lx:StepString name="CloseDate" />
                          </lx:Path>
                          <lx:ConstOperand isNull="1" />
                        </lx:Criterion>
                      </When>
                      <Then>
                        <lx:ConstOperand type="String"><![CDATA[Завершен курс реабилитации]]></lx:ConstOperand>
                      </Then>
                      <Else>
                        <lx:ConstOperand type="String"><![CDATA[Прохождение курса реабилитации]]></lx:ConstOperand>
                      </Else>
                    </lx:Case>
                  </Then>
                  <Else>
                    <lx:Case>
                      <When>
                        <lx:Criterion not="1" type="=">
                          <lx:Path OwnerQueryLevel="0">
                            <lx:StepString name="Refferal" />
                            <lx:StepAs as="AKUZ.REFERRAL" />
                            <lx:StepAs as="AKUZ.HOSPITALIZATION_REFERRAL" />
                            <lx:StepString name="EmergencyEvent" />
                          </lx:Path>
                          <lx:BaseObjectOperand Entity="AKUZ.EMERGENCY_EVENT" isNull="1" />
                        </lx:Criterion>
                      </When>
                      <Then>
                        <lx:ConstOperand type="String"><![CDATA[Госпитализирован]]></lx:ConstOperand>
                      </Then>
                      <Else>
                        <lx:Case>
                          <When>
                            <lx:Criterion type="=">
                              <lx:Cast type="Boolean">
                                <lx:Path OwnerQueryLevel="0">
                                  <lx:StepString name="Refferal" />
                                  <lx:StepAs as="AKUZ.REFERRAL" />
                                  <lx:StepAs as="AKUZ.HOSPITALIZATION_REFERRAL" />
                                  <lx:StepString name="NeedConsiliumSign" />
                                </lx:Path>
                              </lx:Cast>
                              <lx:ConstOperand type="Boolean">True</lx:ConstOperand>
                            </lx:Criterion>
                          </When>
                          <Then>
                            <lx:Case>
                              <When>
                                <lx:Criterion not="1" type="=">
                                  <lx:Path OwnerQueryLevel="0">
                                    <lx:StepString name="Refferal" />
                                    <lx:StepString name="ConsiliumDecisionLink" />
                                  </lx:Path>
                                  <lx:BaseObjectOperand Entity="AKUZ.CONSILIUM_DECISION" isNull="1" />
                                </lx:Criterion>
                              </When>
                              <Then>
                                <lx:Case>
                                  <When>
                                    <lx:Criterion type="=">
                                      <lx:Path OwnerQueryLevel="0">
                                        <lx:StepString name="Refferal" />
                                        <lx:StepString name="ConsiliumDecisionLink" />
                                        <lx:StepAs as="AKUZ.REHABILITATION_CONSILIUM_DECISION" />
                                      </lx:Path>
                                      <lx:BaseObjectOperand Entity="AKUZ.CONSILIUM_DECISION" isNull="1" />
                                    </lx:Criterion>
                                  </When>
                                  <Then>
                                    <lx:ConstOperand type="String"><![CDATA[Ожидает рассмотрения]]></lx:ConstOperand>
                                  </Then>
                                  <Else>
                                    <lx:Case>
                                      <When>
                                        <lx:Criterion type="=">
                                          <lx:Path OwnerQueryLevel="0">
                                            <lx:StepString name="Refferal" />
                                            <lx:StepString name="ConsiliumDecisionLink" />
                                            <lx:StepAs as="AKUZ.REHABILITATION_CONSILIUM_DECISION" />
                                            <lx:StepString name="ConsiliumDecision" />
                                          </lx:Path>
                                          <lx:ChoiceOperand Entity="AKUZ.REHABILITATION_CONSILIUM_DECISION" AttributeName="ConsiliumDecision" type="Int32" PrimaryKey="0" />
                                        </lx:Criterion>
                                      </When>
                                      <Then>
                                        <lx:Case>
                                          <When>
                                            <lx:Criterion type="=">
                                              <lx:Path OwnerQueryLevel="0">
                                                <lx:StepString name="Refferal" />
                                                <lx:StepAs as="AKUZ.REFERRAL" />
                                                <lx:StepAs as="AKUZ.HOSPITALIZATION_REFERRAL" />
                                                <lx:StepString name="ApprovedHospitalDate" />
                                              </lx:Path>
                                              <lx:ConstOperand isNull="1" />
                                            </lx:Criterion>
                                          </When>
                                          <Then>
                                            <lx:ConstOperand type="String"><![CDATA[Ожидает дату госпитализации]]></lx:ConstOperand>
                                          </Then>
                                          <Else>
                                            <lx:ConstOperand type="String"><![CDATA[Ожидает госпитализации]]></lx:ConstOperand>
                                          </Else>
                                        </lx:Case>
                                      </Then>
                                      <Else>
                                        <lx:Case>
                                          <When>
                                            <lx:Criterion not="1" type="=">
                                              <lx:Path OwnerQueryLevel="0">
                                                <lx:StepString name="Refferal" />
                                                <lx:StepAs as="AKUZ.REFERRAL" />
                                                <lx:StepAs as="AKUZ.HOSPITALIZATION_REFERRAL" />
                                                <lx:StepString name="CancelHospitalizationReferral" />
                                              </lx:Path>
                                              <lx:BaseObjectOperand Entity="AKUZ.CANCEL_HOSPITALIZATION_REFERRAL" isNull="1" />
                                            </lx:Criterion>
                                          </When>
                                          <Then>
                                            <lx:ConstOperand type="String"><![CDATA[Отменено консилиумом]]></lx:ConstOperand>
                                          </Then>
                                          <Else>
                                            <lx:ConstOperand type="String"><![CDATA[Ожидает отмены направления консилиумом]]></lx:ConstOperand>
                                          </Else>
                                        </lx:Case>
                                      </Else>
                                    </lx:Case>
                                  </Else>
                                </lx:Case>
                              </Then>
                              <Else>
                                <lx:ConstOperand type="String"><![CDATA[Ожидает рассмотрения]]></lx:ConstOperand>
                              </Else>
                            </lx:Case>
                          </Then>
                          <Else>
                            <lx:Case>
                              <When>
                                <lx:Criterion type="=">
                                  <lx:Path OwnerQueryLevel="0">
                                    <lx:StepString name="Refferal" />
                                    <lx:StepAs as="AKUZ.REFERRAL" />
                                    <lx:StepAs as="AKUZ.HOSPITALIZATION_REFERRAL" />
                                    <lx:StepString name="ApprovedHospitalDate" />
                                  </lx:Path>
                                  <lx:ConstOperand isNull="1" />
                                </lx:Criterion>
                              </When>
                              <Then>
                                <lx:ConstOperand type="String"><![CDATA[Ожидает дату госпитализации]]></lx:ConstOperand>
                              </Then>
                              <Else>
                                <lx:ConstOperand type="String"><![CDATA[Ожидает госпитализацию]]></lx:ConstOperand>
                              </Else>
                            </lx:Case>
                          </Else>
                        </lx:Case>
                      </Else>
                    </lx:Case>
                  </Else>
                </lx:Case>
              </Else>
            </lx:Case>
          </Else>
        </lx:Case>
      </Map>
    </Lexem>
  </DbMapping>
</Entity>