/// <summary>СОБЫТИЕ Выбор контекстного меню Открытие окна логов документа</summary>
        private void PART_MenuItem_Log_Click(object sender, RoutedEventArgs e)
        {
            string _jLog;

            // Для Apac и Apstac
            if (!string.IsNullOrEmpty(PROP_xLog))
            {
                _jLog = PROP_xLog;
            }
            else
            {
                // Если протокола нет, то создаем
                if (PROP_DocumHistory.PROP_Protokol == null)
                {
                    PROP_DocumHistory.PROP_Protokol = UserProtokol.MET_FactoryProtokol(PROP_Type, (int)PROP_Cod);
                }

                _jLog = PROP_DocumHistory.PROP_Protokol.PROP_xLog;
            }

            if (!string.IsNullOrEmpty(_jLog))
            {
                // Открываем Форму Карточка Log
                UserWindow_DocumLog _WinLog = new UserWindow_DocumLog(_jLog);
                _WinLog.Show();
            }
            else
            {
                MessageBox.Show("А логов то и нет!", "Ошибочка вышла");
            }
        }
Example #2
0
        /// <summary>МЕТОД Создаем поле истории результата исседования КДЛ</summary>
        /// <param name="pPole">Родительское поле</param>
        private UserPole_History MET_GreatKDL(UserPole_History pPole)
        {
            // Заполняем список шаблонов
            MySql.MET_DsAdapterFill(MyQuery.MET_History_Select_4(MET_PoleInt("kdl")), "HistoryKDL");
            PRO_RowShablon = MyGlo.DataSet.Tables["HistoryKDL"].Rows[0];
            // Настраиваем поле документа
            UserPole_History _Pole = new UserPole_History();

            _Pole.PROP_Date       = MET_PoleDat("pDate");
            _Pole.PROP_Document   = MET_PoleStr("NameKr");
            _Pole.PROP_Dp         = MET_PoleDat("pDate");
            _Pole.PROP_Kdl        = MET_PoleStr("Indicator");
            _Pole.PROP_Metca      = " (" + _Pole.PROP_Kdl + ")";
            _Pole.PROP_Background = Brushes.LightYellow;
            // Окрашиваем поле в зависимости от результата
            MET_ColorKDL(_Pole);
            _Pole.PROP_Type     = eTipDocum.Kdl;
            _Pole.PROP_IsTexted = true;
            // Находим иконку
            string _Icon = MET_PoleStr("Icon") != "" ? MET_PoleStr("Icon") : "mnOneOsmotr";

            _Pole.MET_LoadIcon(_Icon);
            _Pole.PROP_Cod          = MET_PoleInt("Cod");
            _Pole.PROP_CodApstac    = pPole.PROP_CodApstac;
            _Pole.PROP_NumerShablon = MET_PoleInt("NumShablon");
            _Pole.PROP_Kdl          = "1";
            _Pole.PROP_DocumHistory = new UserDocument(_Pole.PROP_Type);
            _Pole.PROP_IsDelete     = MET_PoleInt("xDelete") == 1;
            _Pole.PROP_DocumHistory.PROP_Protokol = UserProtokol.MET_FactoryProtokol(_Pole.PROP_Type, (int)_Pole.PROP_Cod);
            _Pole.PROP_Vrach = _Pole.PROP_DocumHistory.PROP_Protokol.PROP_UserName;
            _Pole.MET_Inicial();
            // Делегат при открытии документа
            _Pole.Event_OpenNewPoleHistory = MET_Protokol;
            return(_Pole);
        }
Example #3
0
 /// <summary>МЕТОД Формируем отчет</summary>
 protected override void MET_Otchet()
 {
     PROP_Docum.PROP_Protokol = UserProtokol.MET_FactoryProtokol(PROP_Docum.PROP_Protokol.PROP_TipProtokol.PROP_TipDocum,
                                                                 PROP_Docum.PROP_Protokol.PROP_Cod);
     PRO_Paragraph = new Paragraph();
     // Заполняем ответы
     MET_Protokol();
 }
Example #4
0
 /// <summary>МЕТОД Формируем отчет</summary>
 protected override void MET_Otchet()
 {
     PROP_Docum.PROP_Protokol = UserProtokol.MET_FactoryProtokol(PROP_Docum.PROP_ListShablon.PROP_TipProtokol.PROP_TipDocum,
                                                                 MyGlo.IND, PROP_Docum.PROP_ListShablon.PROP_Cod, PROP_Nodes.PROP_shaIndex);
     PRO_Paragraph = new Paragraph();
     // Заполняем ответы
     MET_Protokol();
 }
Example #5
0
 /// <summary>МЕТОД Заполняем экспандер при первом открытии Стационара</summary>
 /// <param name="pPole">Наше поле</param>
 private void MET_OpenStac(UserPole_History pPole)
 {
     // Заполняем список шаблонов
     MySql.MET_DsAdapterFill(MyQuery.MET_History_Select_2(pPole.PROP_Cod), "History");
     foreach (DataRow _Row in MyGlo.DataSet.Tables["History"].Rows)
     {
         PRO_RowShablon = _Row;
         // Настраиваем поле документа
         UserPole_History _Pole = new UserPole_History();
         _Pole.PROP_Date       = MET_PoleDat("pDate");
         _Pole.PROP_Document   = MET_PoleStr("NameKr");
         _Pole.PROP_Dp         = MET_PoleDat("pDate");
         _Pole.Margin          = new Thickness(5, 0, 0, 0);
         _Pole.PROP_Background = Brushes.LightYellow;
         _Pole.PROP_Type       = eTipDocum.Stac;
         _Pole.PROP_IsTexted   = true;
         // Находим иконку
         string _Icon = MET_PoleStr("Icon") != "" ? MET_PoleStr("Icon") : "mnOneOsmotr";
         _Pole.MET_LoadIcon(_Icon);
         _Pole.PROP_Cod          = MET_PoleInt("Cod");
         _Pole.PROP_CodApstac    = pPole.PROP_CodApstac;
         _Pole.PROP_NumerShablon = MET_PoleInt("NumShablon");
         _Pole.PROP_Kdl          = MET_PoleStr("kdl");
         _Pole.PROP_DocumHistory = new UserDocument(_Pole.PROP_Type);
         _Pole.PROP_DocumHistory.PROP_Protokol = UserProtokol.MET_FactoryProtokol(_Pole.PROP_Type, (int)_Pole.PROP_Cod);
         _Pole.PROP_Vrach = _Pole.PROP_DocumHistory.PROP_Protokol.PROP_UserName;
         _Pole.MET_Inicial();
         // Делегат при открытии документа
         _Pole.Event_OpenNewPoleHistory = MET_Protokol;
         // Если запрет для просмотра
         if (PUB_Ban && MET_PoleInt("Dostup") == 0)
         {
             _Pole.PROP_Description         = "(Доступ Закрыт)   ";
             _Pole.PROP_Background          = Brushes.GhostWhite;
             _Pole.IsEnabled                = false;
             _Pole.Event_OpenNewPoleHistory = null;
         }
         _Pole.PROP_IsDelete = MET_PoleInt("xDelete") == 1;
         pPole.MET_AddEle(_Pole);
         if (_Pole.PROP_Kdl != "")
         {
             var _PoleKDL = MET_GreatKDL(_Pole);
             _PoleKDL.Margin = new Thickness(5, 0, 0, 0);
             // Добавляем в очередь
             pPole.MET_AddEle(_PoleKDL);
         }
     }
     // Отключаем делегат
     pPole.Event_OpenNewPoleHistory = null;
 }
Example #6
0
 ///<summary>МЕТОД Инициализация ветки</summary>
 public override void MET_Inizial()
 {
     // Заполняем свойства базового класса
     base.MET_Inizial();
     //  Тип протоколов
     PROP_shaTipProtokol = new MyTipProtokol(eTipDocum.Stac);
     // Если есть протокол в наличии
     if (PROP_shaPresenceProtokol)
     {
         // Находим протокол
         PROP_Docum.PROP_Protokol = UserProtokol.MET_FactoryProtokol(PROP_shaTipProtokol.PROP_TipDocum, MyGlo.IND, PROP_shaNomerShablon, PROP_shaIndex);
         PROP_Data     = PROP_Docum.PROP_Protokol.PROP_pDate;
         PROP_TextDown = PROP_Data.ToString().Substring(0, 10);
     }
 }
Example #7
0
        /// <summary>МЕТОД Сохраняем данные</summary>
        public override bool MET_Save()
        {
            // Срабатываю фокус поля, что бы выполнилась Lua функция OnChange
            UIElement _ElementWithFocus = Keyboard.FocusedElement as UIElement;                             // элемент фокуса

            if (_ElementWithFocus?.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next)) ?? false) // сдвигаю фокус на следующее поле
            {
                _ElementWithFocus.Focus();
            }
            // возвращаю фокус на место
            string      _Rezult = "";                                           // результат ответа
            VirtualPole _Pole;                                                  // элементы поля
            DateTime    _Date = DateTime.Today;                                 // дата осмотра

            // Формируем строку ответов
            foreach (DictionaryEntry _DiEnt in PUB_HashPole)
            {
                _Pole = (VirtualPole)_DiEnt.Value;                              // наше поле с ответом

                if (_Pole.PROP_Type == eVopros.Label)
                {
                    continue;                                                            // не берем поля с меткой
                }
                if (_Pole.PROP_VarId > 0 && !string.IsNullOrWhiteSpace(_Pole.PROP_Text)) // если есть ответ, то вставляем его в строку ответов
                {
                    _Rezult += "\\" + _Pole.PROP_VarId + "#" + _Pole.PROP_Text;
                }
                if (_Pole.Name == "DateOsmotr")
                {
                    _Date = Convert.ToDateTime(_Pole.PROP_Text);
                }
                // Запускаем Lua функцию, перед сохранием, если есть.
                if (!(_Pole.PROP_Lua?.MET_OnBeforeSave() ?? true))
                {
                    return(false);
                }
            }
            // Сохраняем ответы
            if (_Rezult.Length > 0)
            {
                // Если данные уже сохроняли, то просто обновляем, иначе добавляем
                string _StrSql;                                                     // строка SQL запроса
                int    _User     = MyGlo.User;
                string _UserName = MyGlo.UserName;
                if (PROP_Cod > 0)
                {
                    // Если установлен админ - то обновляем протокол с пользователем, создавшем данный протокол
                    if (MyGlo.PROP_Admin || MyGlo.FlagEdit)
                    {
                        _User     = PROP_Docum.PROP_Protokol.PROP_xUserUp;
                        _UserName = MyMet.MET_UserName(_User);
                    }
                    // Обновим логи
                    PROP_Docum.PROP_Protokol.MET_ChangeLogs(MyGlo.User, "Изменён");
                    _StrSql = MyQuery.MET_Protokol_Update_1(PROP_Cod, _Rezult, DateTime.Today, _User, _Date,
                                                            PROP_TipProtokol.PROP_Prefix, PROP_Docum.PROP_Protokol.PROP_xLog);
                    // Обновим протокол в SQL
                    MySql.MET_QueryNo(_StrSql);
                    // Обновим Protokol
                    PROP_Docum.PROP_Protokol.MET_Save(_Rezult, DateTime.Today, _User, _Date);
                }
                else
                {
                    string _xLog = UserLog.MET_CreateLogs();
                    PROP_Cod = MySql.MET_GetNextRef(PROP_TipProtokol.PROP_NextRef);
                    _StrSql  = MyQuery.MET_Protokol_Insert_1(PROP_Cod, MyGlo.IND, PRO_NomerShablon, _Rezult,
                                                             MyGlo.KL, DateTime.Today, _User, PUB_VirtualNodes.PROP_shaIndex, _Date, PROP_TipProtokol.PROP_Prefix, _xLog);
                    // Сохраним протокол в SQL
                    MySql.MET_QueryNo(_StrSql);
                    // Создадим Protokol
                    PROP_Docum.PROP_Protokol = UserProtokol.MET_FactoryProtokol(PUB_VirtualNodes.PROP_shaTipProtokol.PROP_TipDocum, PROP_Cod);
                }
                if (!PUB_VirtualNodes.PROP_shaPresenceProtokol)
                {
                    PUB_VirtualNodes.PROP_shaPresenceProtokol = true;           // пометили, что сохранили шаблон
                }
                // Дата протокола
                PUB_VirtualNodes.PROP_Data = _Date;
                // Нижний текст вкладок
                PUB_VirtualNodes.PROP_TextDown = _Date.ToString().Substring(0, 10) + " " + _UserName;
                // Только для добавляемых веток
                PUB_VirtualNodes.PROP_Text = PUB_VirtualNodes.PROP_TextDefault;
                PROP_EditShablon           = false;                             // сохранили шаблон
                PUB_VirtualNodes.PROP_Docum.PROP_Otchet.PROP_NewCreate = true;  // отчет необходимо переформировать
                // Выполняем сохранение определенных полей
                foreach (DictionaryEntry _DiEnt in PUB_HashPole)
                {
                    _Pole = (VirtualPole)_DiEnt.Value;                          // наше поле с ответом
                    // Запускаем Lua функцию, после сохрания, если есть.
                    _Pole?.PROP_Lua?.MET_OnSave();
                    // Запускаем сохранение полей
                    if (!_Pole.MET_Save())
                    {
                        MessageBox.Show("Ошибка сохранения");
                        return(false);
                    }
                }
                UserKbolInfo.MET_SaveKbolInfo();
                return(true);
            }
            return(false);
        }
Example #8
0
        /// <summary>МЕТОД Сохраняем данные</summary>
        public override bool MET_Save()
        {
            // Сохраняем Pdf файл на сервер
            if (!PRI_Page.MET_Save())
            {
                return(false);
            }

            // возвращаю фокус на место
            string      _Rezult = "";                                                                         // результат ответа
            VirtualPole _Pole;                                                                                // элементы поля
            DateTime    _Date      = PROP_NewProtokol ? DateTime.Today : PROP_Docum.PROP_Protokol.PROP_pDate; // дата создания протокола
            string      _textDocum = "";

            // Формируем строку ответов
            foreach (DictionaryEntry _DiEnt in PUB_HashPole)
            {
                _Pole = (VirtualPole)_DiEnt.Value;                                       // наше поле с ответом
                if (_Pole.PROP_VarId > 0 && !string.IsNullOrWhiteSpace(_Pole.PROP_Text)) // если есть ответ, то вставляем его в строку ответов
                {
                    _Rezult += "\\" + _Pole.PROP_VarId + "#" + _Pole.PROP_Text;
                }

                if (_Pole.PROP_VarId == 1)
                {
                    _textDocum = _Pole.PROP_Text;
                }
                ;
            }

            // Если данные уже сохроняли, то просто обновляем, иначе добавляем
            string _StrSql;                                                     // строка SQL запроса
            int    _User     = MyGlo.User;
            string _UserName = MyGlo.UserName;

            if (PROP_Cod > 0)
            {
                // Если установлен админ - то обновляем протокол с пользователем, создавшем данный протокол
                if (MyGlo.PROP_Admin || MyGlo.FlagEdit)
                {
                    _User     = PROP_Docum.PROP_Protokol.PROP_xUserUp;
                    _UserName = MyMet.MET_UserName(_User);
                }
                // Обновим логи
                PROP_Docum.PROP_Protokol.MET_ChangeLogs(MyGlo.User, "Изменён");
                _StrSql = MyQuery.MET_Protokol_Update_1(PROP_Cod, _Rezult, DateTime.Today, _User, _Date,
                                                        PROP_TipProtokol.PROP_Prefix, PROP_Docum.PROP_Protokol.PROP_xLog);
                // Обновим протокол в SQL
                MySql.MET_QueryNo(_StrSql);
                // Обновим Protokol
                PROP_Docum.PROP_Protokol.MET_Save(_Rezult, DateTime.Today, _User, _Date);
            }
            else
            {  // Новый протокол
                string _xLog = UserLog.MET_CreateLogs();
                PROP_Cod = MySql.MET_GetNextRef(PROP_TipProtokol.PROP_NextRef);
                _StrSql  = MyQuery.MET_Protokol_Insert_1(PROP_Cod, MyGlo.IND, PRO_NomerShablon, _Rezult,
                                                         MyGlo.KL, DateTime.Today, _User, PUB_VirtualNodes.PROP_shaIndex, _Date, PROP_TipProtokol.PROP_Prefix, _xLog);
                // Сохраним протокол в SQL
                MySql.MET_QueryNo(_StrSql);
                // Создадим Protokol
                PROP_Docum.PROP_Protokol = UserProtokol.MET_FactoryProtokol(PUB_VirtualNodes.PROP_shaTipProtokol.PROP_TipDocum, PROP_Cod);
            }
            if (!PUB_VirtualNodes.PROP_shaPresenceProtokol)
            {
                PUB_VirtualNodes.PROP_shaPresenceProtokol = true;           // пометили, что сохранили шаблон
            }
            // Дата протокола
            PUB_VirtualNodes.PROP_Data = _Date;
            // Нижний текст вкладок
            PUB_VirtualNodes.PROP_TextDown = _Date.ToString().Substring(0, 10) + " " + _UserName;
            // Наименование ветки
            PUB_VirtualNodes.PROP_Text        = _textDocum;
            PUB_VirtualNodes.PROP_TextDefault = _textDocum;

            PROP_EditShablon = false;                                       // сохранили шаблон
            PUB_VirtualNodes.PROP_Docum.PROP_Otchet.PROP_NewCreate = true;  // отчет необходимо переформировать
            return(true);
        }
Example #9
0
        /// <summary>МЕТОД Формируем отчет История болезни</summary>
        protected override void MET_Otchet()
        {
            PRO_Paragraph = new Paragraph();
            MyGlo.HashOtchet.Add("eleTVItem_History", this);

            // Добавляем кнопки фильтра истории
            StackPanel _Panel = new StackPanel();

            _Panel.Orientation = Orientation.Horizontal;
            PRO_Paragraph.Inlines.Add(_Panel);
            Button _ButtonSort = new Button();
            Image  _Image      = new Image();

            _Image.Height         = 20;
            _Image.Width          = 20;
            _Image.Source         = (BitmapImage)FindResource("mnGreenUp");
            _ButtonSort.Content   = _Image;
            _ButtonSort.ToolTip   = "Меняет сортировку по дате посещения на обратную";
            _ButtonSort.Focusable = false;
            _ButtonSort.Tag       = 1;
            _ButtonSort.Click    += PART_ButtonSort_Click;
            _Panel.Children.Add(_ButtonSort);
            Label _LabelFiltr = new Label();

            _LabelFiltr.Content           = "Фильтр по:";
            _LabelFiltr.VerticalAlignment = VerticalAlignment.Center;
            _Panel.Children.Add(_LabelFiltr);
            RadioButton _ButtonAll = new RadioButton();

            _ButtonAll.Content   = "Все";
            _ButtonAll.ToolTip   = "Отображает Все посещения";
            _ButtonAll.Margin    = new Thickness(5);
            _ButtonAll.IsChecked = true;
            _ButtonAll.Checked  += PART_RadioButton_Checked;
            _Panel.Children.Add(_ButtonAll);
            RadioButton _ButtonIssl = new RadioButton();

            _ButtonIssl.Content  = "Параклиника";
            _ButtonIssl.ToolTip  = "Отображает только посещения в Параклинику";
            _ButtonIssl.Margin   = new Thickness(5);
            _ButtonIssl.Checked += PART_RadioButton_Checked;
            _Panel.Children.Add(_ButtonIssl);
            RadioButton _ButtonStac = new RadioButton();

            _ButtonStac.Content  = "Стационар";
            _ButtonStac.ToolTip  = "Отображает только посещения Стационара";
            _ButtonStac.Margin   = new Thickness(5);
            _ButtonStac.Checked += PART_RadioButton_Checked;
            _Panel.Children.Add(_ButtonStac);
            RadioButton _ButtonPol = new RadioButton();

            _ButtonPol.Content  = "Поликлиника";
            _ButtonPol.ToolTip  = "Отображает только посещения Поликлиники";
            _ButtonPol.Margin   = new Thickness(5);
            _ButtonPol.Checked += PART_RadioButton_Checked;
            _Panel.Children.Add(_ButtonPol);
            RadioButton _ButtonKdl = new RadioButton();

            _ButtonKdl.Content = "Диагностика";
            _ButtonKdl.ToolTip = "     Отображает только те посещения,\n" +
                                 "в которых есть результат Диагностических исследований\n" +
                                 "(пока только Гистологии, Цитологии)";
            _ButtonKdl.Margin   = new Thickness(5);
            _ButtonKdl.Checked += PART_RadioButton_Checked;
            _Panel.Children.Add(_ButtonKdl);
            PRO_Paragraph.Inlines.Add(new LineBreak());                         // разрыв строки
            // Заполняем список шаблонов
            MySql.MET_DsAdapterFill(MyQuery.MET_History_Select_1(MyGlo.KL), "History");
            foreach (DataRow _Row in MyGlo.DataSet.Tables["History"].Rows)
            {
                PRO_RowShablon = _Row;
                UserPole_History _Pole = new UserPole_History();
                string           _Icon = "";
                // Тип поля
                _Pole.PROP_Type = (eTipDocum)MET_PoleInt("Nom");
                // Код документа
                _Pole.PROP_Cod       = MET_PoleDec("Cod");
                _Pole.PROP_Vrach     = MET_PoleStr("Vr");
                _Pole.PROP_Dp        = MET_PoleDat("Dp");
                _Pole.PROP_Diag      = MET_PoleStr("D");
                _Pole.PROP_Profil    = MET_PoleStr("Profil");
                _Pole.PROP_CodApstac = MET_PoleDec("CodApstac");
                _Pole.PROP_Kdl       = MET_PoleStr("kdl");
                _Pole.PROP_IsDelete  = MET_PoleInt("xDelete") == 1;
                _Pole.PROP_xLog      = MET_PoleStr("xLog");
                // В зависимости от типа: поликлинника/стационар/параклиника
                switch (_Pole.PROP_Type)
                {
                case eTipDocum.Pol:
                    _Icon               = "mnPosPolikl";
                    _Pole.PROP_Date     = MET_PoleDat("Dp");
                    _Pole.PROP_Document = MET_PoleStr("Profil");
                    _Pole.PROP_Vrach    = MET_PoleStr("Vr");
                    _Pole.PROP_Diag     = MET_PoleStr("D");
                    // Цвет
                    if (MET_PoleInt("pCount") > 0)
                    {
                        _Pole.PROP_Background = Brushes.Azure;
                    }
                    // Тип посещения (разовое, обращение)
                    _Pole.PROP_Metca = MET_PoleStr("Metka");
                    // Если нет протоколов, то
                    if (MET_PoleInt("pCount") == 0)
                    {
                        _Pole.PROP_Metca += " (без протоколов)";
                        _Pole.IsEnabled   = false;
                    }
                    // Ставим значек консилиум
                    if (MET_PoleStr("ImageInform") == "консилиум")
                    {
                        _Pole.MET_LoadIconInform("mnKons", "Наличие консилиума");
                    }
                    _Pole.Event_OpenNewPoleHistory = MET_OpenPolicl;
                    break;

                case eTipDocum.Stac:
                    _Icon = MET_PoleStr("ImageInform");
                    string _Dk = MET_PoleDat("Dk");
                    if (_Dk == "")
                    {
                        _Dk = "(по сегодня)";
                    }
                    _Pole.PROP_Date     = MET_PoleDat("Dp") + " - " + _Dk;
                    _Pole.PROP_Document = MET_PoleStr("Profil");
                    _Pole.PROP_Vrach    = MET_PoleStr("Vr");
                    _Pole.PROP_Diag     = MET_PoleStr("D");
                    // Цвет
                    if (MET_PoleInt("pCount") > 0)
                    {
                        _Pole.PROP_Background = Brushes.AliceBlue;
                    }
                    // Если нет протоколов, то
                    if (MET_PoleInt("pCount") == 0)
                    {
                        _Pole.PROP_Metca = "(без протоколов)";
                        _Pole.IsEnabled  = false;
                    }
                    _Pole.Event_OpenNewPoleHistory = MET_OpenStac;
                    break;

                case eTipDocum.Paracl:
                    _Icon                   = "mnParacl";
                    _Pole.PROP_Date         = MET_PoleDat("Dp");
                    _Pole.PROP_Document     = MET_PoleStr("Profil");
                    _Pole.PROP_Vrach        = MET_PoleStr("Vr");
                    _Pole.PROP_Background   = Brushes.BlanchedAlmond;
                    _Pole.PROP_NumerShablon = MET_PoleInt("pCount");
                    _Pole.PROP_IsTexted     = true;
                    _Pole.PROP_DocumHistory = new UserDocument(_Pole.PROP_Type);
                    _Pole.PROP_DocumHistory.PROP_Protokol = UserProtokol.MET_FactoryProtokol(_Pole.PROP_Type, (int)_Pole.PROP_Cod);
                    _Pole.MET_Inicial();
                    _Pole.Event_OpenNewPoleHistory = MET_Protokol;
                    // Костыль для физиологов
                    if (_Pole.PROP_NumerShablon > 300 & _Pole.PROP_NumerShablon < 400)
                    {
                        _Icon = "mnPhysiology";
                        _Pole.PROP_Background = Brushes.LightYellow;
                    }
                    break;
                }
                // Иконка
                _Pole.MET_LoadIcon(_Icon);
                // Если есть результат КДЛ, то окрашиваем это поле в зависимости от результата
                if (_Pole.PROP_Kdl != "" && _Pole.PROP_Type != eTipDocum.Paracl)
                {
                    MET_ColorKDL(_Pole);
                }
                // Добавляем в очередь
                PRO_PoleHistory.Add(_Pole);
                // Добавляем поле в параграф
                PRO_Paragraph.Inlines.Add(_Pole);
                if (_Pole.PROP_Kdl != "" && _Pole.PROP_Type == eTipDocum.Paracl)
                {
                    var _KDL = MET_GreatKDL(_Pole);
                    // Добавляем в очередь
                    PRO_PoleHistory.Add(_KDL);
                    // Добавляем поле в параграф
                    PRO_Paragraph.Inlines.Add(_KDL);
                }
                //PRO_Paragraph.Inlines.Add(new LineBreak());                     // разрыв строки
            }
        }
        /// <summary>СОБЫТИЕ После загрузки окна</summary>
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            PROP_FIOkbol = MyGlo.FIO;
            UserProtokol _Protokol = null;

            if (PROP_PoleHistory.PROP_Nodes != null)                            // протоколы основной карточки
            {
                _Protokol = PROP_PoleHistory.PROP_DocumHistory?.PROP_Protokol;
            }
            else                                                                // из истории болезни
            {
                PROP_MyTipProtokol = new MyTipProtokol(PROP_PoleHistory.PROP_Type);
                if (PROP_PoleHistory.PROP_IsTexted)                               // ... если протокол
                {
                    PROP_CodProtokol = (int)PROP_PoleHistory.PROP_Cod;
                    // Протокол

                    _Protokol = UserProtokol.MET_FactoryProtokol(PROP_MyTipProtokol.PROP_TipDocum, PROP_CodProtokol);
                }
                else                                                            // ... если карточка
                {
                    PROP_KLkbol = MyGlo.KL;
                    PROP_Date   = DateTime.Parse(PROP_PoleHistory.PROP_Dp);
                    PROP_IND    = PROP_PoleHistory.PROP_Cod;
                    PROP_Tip    = "карта";
                }
            }
            // Только протоколы
            if (_Protokol != null)
            {
                // Запись протокола
                PROP_CodProtokol = _Protokol.PROP_Cod;
                PROP_KLkbol      = _Protokol.PROP_KL;
                // Для kdl, IND будет равен коду протокола
                PROP_IND           = _Protokol.PROP_TipProtokol.PROP_TipDocum == eTipDocum.Kdl ? PROP_CodProtokol : _Protokol.PROP_CodApstac;
                PROP_Index         = _Protokol.PROP_pIndex;
                PROP_NumShablon    = _Protokol.PROP_NumShablon;
                PROP_Date          = _Protokol.PROP_pDate;
                PROP_DateUp        = _Protokol.PROP_xDateUp;
                PROP_UserUp        = _Protokol.PROP_xUserUp;
                PROP_UserUpName    = _Protokol.PROP_UserName;
                PROP_MyTipProtokol = _Protokol.PROP_TipProtokol;
                PROP_xDelete       = _Protokol.PROP_xDelete;
                PROP_Tip           = "протокол";
            }

            PRI_KbolInfo = UserKbolInfo.MET_FactoryKbolInfo(PROP_MyTipProtokol.PROP_KbolInfo, PROP_IND, MyGlo.KL);
            if (!PRI_KbolInfo.PROP_FlagNew && PRI_KbolInfo.PROP_jTag != null)
            {
                // Берем сразу отформатированные теги
                PROP_jTag = PRI_KbolInfo.PROP_Json.ToString();
                PROP_Oms  = PRI_KbolInfo.PROP_Oms == 1;
                PART_CheckBoxOms.IsEnabled    = PROP_MyTipProtokol.PROP_TipDocum == eTipDocum.Kdl;
                PART_ButtonKbolInfo.IsEnabled = false;
            }
            else
            {
                PART_StacPanelKbolInfo.IsEnabled = false;
                PROP_jTag = "Нет записи kbolInfo";
            }
            // Запрет на проверку правописания
            PART_jTag.PART_TextBox.SpellCheck.IsEnabled = false;
        }