/// <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("А логов то и нет!", "Ошибочка вышла"); } }
/// <summary>МЕТОД Формируем дерево</summary> public override void MET_CreateTree() { // Заполняем основу дерево (паспорт + история) base.MET_CreateTree(); // Загружаем все протоколы Protokol текущей параклиники (внутри загружаются и ListShablon и Shablon) UserProtokol.MET_FactoryProtokolArray(eTipDocum.Paracl, MyGlo.IND); VirtualNodes _Node; // ВЕТКА Параклинические исследования _Node = new UserNodes_RootsListParacl { PROP_TipNodes = eTipNodes.Para_RootsList, Name = "eleTVItem_ParaIss", PROP_Text = "Исследования", PROP_TextDefault = "Исследования", PROP_ImageName = "mnParacl", PROP_ParentName = "", IsExpanded = true }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_Roots { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); }
/// <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); }
/// <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(); }
/// <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(); }
/// <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; }
///<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); } }
/// <summary>МЕТОД Формируем дерево</summary> public override void MET_CreateTree() { // Заполняем основу дерево (паспорт + история) base.MET_CreateTree(); // Загружаем все протоколы Protokol текущей поликлиники (внутри загружаются и ListShablon и Shablon) UserProtokol.MET_FactoryProtokolArray(eTipDocum.Pol, MyGlo.IND); VirtualNodes _Node; // Временно скрыта для врачей по приказу начальника, из за конфликта Тарасевич-Плахотенко (сентябрь 2019) // Пока открыл (июль 2020) //if (MyGlo.Admin) //{ // ВЕТКА Запись в регистратуру _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.EditDocum, Name = "eleTVItem_Reg", PROP_Text = "Регистратура", PROP_ImageName = "mnReg", PROP_ParentName = "" }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_Registration { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); //} // ВЕТКА Поликлиника _Node = new UserNodes_RootsListPol { PROP_TipNodes = eTipNodes.Pol_RootsList, Name = "eleTVItem_Pol", PROP_Text = "Поликлиника", PROP_TextDefault = "Поликлиника", PROP_ImageName = "mnPosPolikl", PROP_ParentName = "", IsExpanded = true }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_Roots { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); _Node.IsSelected = true; }
/// <summary>МЕТОД Формируем дерево</summary> public virtual void MET_CreateTree() { // Преварительно чистим дерево MyGlo.TreeView.Items.Clear(); // Чистим структуру протоколов UserProtokol.MET_ClearProtokol(); // Загружаем все протоколы Protokol таблицы kdl, по KL пациента UserProtokol.MET_FactoryProtokolArray(eTipDocum.Kdl, MyGlo.KL, "KL"); // ВЕТКА Общие сведенья VirtualNodes _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Main, Name = "eleTVItemObSved", PROP_Text = "Общие сведения", PROP_ImageName = "mnObSved", PROP_ParentName = "", IsExpanded = true }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_InformCreate { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); { // ВЕТКА Паспортная часть (Сразу ставим на нем фокус) _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Inform, Name = "eleTVItemPasp", PROP_Text = "Паспортная часть", PROP_ImageName = "mnPasp", PROP_ParentName = "eleTVItemObSved" }; // Если пациент умер, то пишем сообщение if (Convert.ToString(MyGlo.HashKBOL["DSmerti"]) != "") { _Node.PROP_ImageName = "mnAngel"; _Node.PROP_TextDown = " Пациент Умер"; } _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_InformPasport { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); _Node.IsSelected = true; // ВЕТКА История болезни _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Inform, Name = "eleTVItem_History", PROP_Text = "История болезни", PROP_ImageName = "mnHistory", PROP_ParentName = "eleTVItemObSved" }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_History { PROP_Docum = _Node.PROP_Docum }; ((UserOtcher_History)_Node.PROP_Docum.PROP_Otchet).PUB_Ban = PUB_Menu == 0; _Node.MET_Inizial(); // ВЕТКА Канцер регистра if (MySql.MET_QueryBool(MyQuery.MET_varIfRakReg_Select_1(MyGlo.KL))) // только если есть пациент в Канцер-Регистре { _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Inform, Name = "eleTVItem_KancerRegistr", PROP_Text = "Канцер-Регистр", PROP_ImageName = "mnRakReg", PROP_ParentName = "eleTVItemObSved" }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_InformKancerRegistr { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); } // ВЕТКА Общие документы _Node = new UserNodes_RootObDoсum { PROP_TipNodes = eTipNodes.Kdl_RootsList, Name = "eleTVItem_ObDocum", PROP_Text = "Общие документы", PROP_TextDefault = "Общие документы", PROP_ImageName = "mnObDocum", PROP_ParentName = "eleTVItemObSved" }; ((UserNodes_RootObDoсum)_Node).PROP_shaTipObsled = 140; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_Roots { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); bool _accessPdfView = false; // Для тех кто может смотреть, показываем только если есть протоколы if (MyPdf.PROP_AccessPdf == eAccessPdf.View) { _accessPdfView = PUB_Protokol.Exists(p => p.PROP_TipProtokol.PROP_TipDocum == eTipDocum.Kdl && p.PROP_NumShablon == 2000 && p.PROP_xDelete == 0); } // Показываем админу, редактору в любом случае и просмоторщику если есть протоколы if (MyPdf.PROP_AccessPdf == eAccessPdf.Admin || MyPdf.PROP_AccessPdf == eAccessPdf.Edit || _accessPdfView) { // ВЕТКА Pdf документы _Node = new UserNodes_RootPdf { PROP_TipNodes = eTipNodes.Kdl_RootsPdf, Name = "eleTVItem_Pdf", PROP_Text = "PDF документы", PROP_TextDefault = "PDF документы", PROP_ImageName = "mnPdfMain", PROP_ParentName = "eleTVItemObSved" }; ((UserNodes_RootPdf)_Node).PROP_shaTipObsled = 2; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_RootsPdf { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); } // ВЕТКА Телефоны _Node = new UserNodes_Inform { Name = "elePhone", PROP_Text = "Телефоны", PROP_TextDefault = "Телефоны", PROP_ImageName = "mnPhone", PROP_ParentName = "", }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_Phone { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); // ВЕТКА Сотрудники (Только для админов) if (MyGlo.PROP_Admin) { _Node = new UserNodes_Inform { Name = "eleStaff", PROP_Text = "Сотрудники", PROP_TextDefault = "Сотрудники", PROP_ImageName = "mnMen", PROP_ParentName = "", }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_Staff { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); } } }
/// <summary>МЕТОД Формируем дерево</summary> public override void MET_CreateTree() { // Преварительно чистим дерево MyGlo.TreeView.Items.Clear(); if (MyGlo.KL > 0) { // Чистим структуру протоколов UserProtokol.MET_ClearProtokol(); // Загружаем все протоколы Protokol таблицы kdl, по KL пациента UserProtokol.MET_FactoryProtokolArray(eTipDocum.Kdl, MyGlo.KL, "KL"); // ВЕТКА Общие сведенья VirtualNodes _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Main, Name = "eleTVItemObSved", PROP_Text = "Общие сведения", PROP_ImageName = "mnObSved", PROP_ParentName = "", IsExpanded = true }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_InformCreate { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); { // ВЕТКА Паспортная часть (Сразу ставим на нем фокус) _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Inform, Name = "eleTVItemPasp", PROP_Text = "Паспортная часть", PROP_ImageName = "mnPasp", PROP_ParentName = "eleTVItemObSved" }; // Если пациент умер, то пишем сообщение if (Convert.ToString(MyGlo.HashKBOL["DSmerti"]) != "") { _Node.PROP_TextDown = " Пациент Умер"; } _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_InformPasport { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); _Node.IsSelected = true; // ВЕТКА Для лабораторных исследований (протоколы с 1000 по 1999) _Node = new UserNodes_RootLaboratory { PROP_TipNodes = eTipNodes.Kdl_RootsList, Name = "eleTVItem_Laboratory", PROP_Text = "Исследования", PROP_TextDefault = "Исследования", PROP_ImageName = "mnKdl_green", PROP_ParentName = "eleTVItemObSved", IsExpanded = true }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_Roots { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); } } else { VirtualUserWindow _WinSpr = new UserWindow_Laboratory(); _WinSpr.PROP_Modal = true; _WinSpr.WindowStyle = WindowStyle.ToolWindow; _WinSpr.ShowDialog(); if (_WinSpr.PROP_Return) { // Запуск программы MET_Window_Loaded() MyGlo.Event_ReloadWindows?.Invoke(true); } } }
/// <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); }
/// <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); }
/// <summary>МЕТОД Формируем дерево</summary> public override void MET_CreateTree() { // Преварительно чистим дерево MyGlo.TreeView.Items.Clear(); if (MyGlo.KL > 0) { // Чистим структуру протоколов UserProtokol.MET_ClearProtokol(); // Загружаем все протоколы Protokol таблицы kdl, по KL пациента UserProtokol.MET_FactoryProtokolArray(eTipDocum.Kdl, MyGlo.KL, "KL"); // Загружаем все протоколы Protokol таблицы Pol, по KL пациента UserProtokol.MET_FactoryProtokolArray(eTipDocum.Pol, MyGlo.KL, "KL"); // Загружаем все протоколы Protokol таблицы Stac, по KL пациента UserProtokol.MET_FactoryProtokolArray(eTipDocum.Stac, MyGlo.KL, "KL"); // ВЕТКА Общие сведенья VirtualNodes _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Main, Name = "eleTVItemObSved", PROP_Text = "Общие сведения", PROP_ImageName = "mnObSved", PROP_ParentName = "", IsExpanded = true }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_InformCreate { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); { // ВЕТКА Паспортная часть (Сразу ставим на нем фокус) _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Inform, Name = "eleTVItemPasp", PROP_Text = "Паспортная часть", PROP_ImageName = "mnPasp", PROP_ParentName = "eleTVItemObSved" }; // Если пациент умер, то пишем сообщение if (Convert.ToString(MyGlo.HashKBOL["DSmerti"]) != "") { _Node.PROP_TextDown = " Пациент Умер"; } _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_InformPasport { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); _Node.IsSelected = true; // ВЕТКА История болезни _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Inform, Name = "eleTVItem_History", PROP_Text = "История болезни", PROP_ImageName = "mnHistory", PROP_ParentName = "eleTVItemObSved" }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_History { PROP_Docum = _Node.PROP_Docum }; ((UserOtcher_History)_Node.PROP_Docum.PROP_Otchet).PUB_Ban = PUB_Menu == 0; _Node.MET_Inizial(); // ВЕТКА Канцер регистра if (MySql.MET_QueryBool(MyQuery.MET_varIfRakReg_Select_1(MyGlo.KL))) // только если есть пациент в Канцер-Регистре { _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Inform, Name = "eleTVItem_KancerRegistr", PROP_Text = "Канцер-Регистр", PROP_ImageName = "mnRakReg", PROP_ParentName = "eleTVItemObSved" }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_InformKancerRegistr { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); } // ВЕТКА Для направлений _Node = new UserNodes_RootNaprInOtherLpu { PROP_TipNodes = eTipNodes.Pol_RootsList, Name = "eleTVItem_NaprOtherLpu", PROP_Text = "Направления", PROP_TextDefault = "Направления", PROP_ImageName = "mnSelectPac", PROP_ParentName = "eleTVItemObSved", IsExpanded = true }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_Roots { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); // ВЕТКА Для документов - внешних ЛПУ _Node = new UserNodes_OtherLpu { PROP_TipNodes = eTipNodes.Kdl_RootsList, Name = "eleTVItem_OtherLpu", PROP_Text = "Документы", PROP_TextDefault = "Документы", PROP_ImageName = "mnObDocum", PROP_ParentName = "eleTVItemObSved", IsExpanded = true }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_Roots { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); } } else { VirtualUserWindow _WinSpr = new UserWindow_OtherLpu(); _WinSpr.PROP_Modal = true; _WinSpr.WindowStyle = WindowStyle.ToolWindow; _WinSpr.ShowDialog(); if (_WinSpr.PROP_Return) { // Запуск программы MET_Window_Loaded() MyGlo.Event_ReloadWindows?.Invoke(true); } } }
/// <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; }
/// <summary>МЕТОД Формируем дерево</summary> public override void MET_CreateTree() { // Заполняем основу дерево (паспорт + история) base.MET_CreateTree(); // Загружаем все протоколы Protokol текущего стационара (внутри загружаются и ListShablon и Shablon) UserProtokol.MET_FactoryProtokolArray(eTipDocum.Stac, MyGlo.IND); // ВЕТКА Ошибки Стационара (для реестров) MySql.MET_DsAdapterFill(MyQuery.MET_varErrorStac_Select_1(MyGlo.Otd, MyGlo.User), "ErrorStac"); int _AllError = MyGlo.DataSet.Tables["ErrorStac"].Rows.Count; VirtualNodes _Node; if (_AllError > 0) { _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Main, Name = "eleTVItem_ErrorStac", PROP_Text = "\"Ошибки\" стационара", PROP_ImageName = "mnDevil", PROP_ParentName = "eleTVItemObSved" }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_ErrorStac { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); var _UserError = MyGlo.DataSet.Tables["ErrorStac"].Compute("Count(Us)", "Us=1"); _Node.PROP_TextDown = $"Ваших пациентов: {_UserError} из {_AllError}"; if (_UserError != null) { _Node.IsSelected = Convert.ToInt16(_UserError) > 0; } } // ВЕТКА Текущий стационар _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Main, Name = "eleTVItem_TekStac", PROP_Text = "Текущий стационар", PROP_ParentName = "eleTVItemObSved", IsExpanded = true }; // Иконка в зависимости от типа стационара if (MySql.MET_QueryInt(MyQuery.s_Department_Select_2(MyGlo.Otd)) == 1) { _Node.PROP_ImageName = "mnStac"; } else { _Node.PROP_ImageName = "mnStacDnev"; } _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_Roots { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); { // ВЕТКА Приемное отделение _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Inform, Name = "eleTVItem_PriemnOtd", PROP_Text = "Приемное отделение", PROP_ImageName = "mnPriemnOtd", PROP_ParentName = "eleTVItem_TekStac" }; // Дата поступления - выписки string _DN = Convert.ToString(MyGlo.HashAPSTAC["DN"]); string _DK = Convert.ToString(MyGlo.HashAPSTAC["DK"]); _DN = _DN == "" ? "" : _DN.Substring(0, 10); _DK = _DK == "" ? " - в отделении" : " - " + _DK.Substring(0, 10); _Node.PROP_TextDown = _DN + _DK; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtcher_InformPriem { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); // ВЕТКА Осмотр при поступлении _Node = new UserNodes_EditVrStac { PROP_TipNodes = eTipNodes.Stac_Edit, Name = "eleTVItem_OneOsmotr", PROP_Text = "Осмотр при поступлении", PROP_TextDefault = "Осмотр при поступлении", PROP_ImageName = "mnOneOsmotr", PROP_ParentName = "eleTVItem_TekStac" }; _Node.PROP_shaNomerShablon = 1; _Node.PROP_Docum = new UserDocument(_Node, eTipDocum.Stac); _Node.PROP_Docum.PROP_ListShablon = UserListShablon.MET_FactoryListShablon(eTipDocum.Stac, _Node.PROP_shaNomerShablon); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_EditVrStac { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); { // ВЕТКА Гистология _Node = new UserNodes_EditVrStac { PROP_TipNodes = eTipNodes.Stac_Edit, Name = "eleTVItem_Gistol", PROP_Text = "Гистология", PROP_TextDefault = "Гистология", PROP_ImageName = "mnDoc_2", PROP_ParentName = "eleTVItem_OneOsmotr" }; _Node.PROP_shaNomerShablon = 9911; _Node.PROP_Docum = new UserDocument(_Node, eTipDocum.Stac); _Node.PROP_Docum.PROP_ListShablon = UserListShablon.MET_FactoryListShablon(eTipDocum.Stac, _Node.PROP_shaNomerShablon); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_EditVrStac { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); } // ВЕТКА Назначения мед. препаратов _Node = new UserNodes_NaznachMed { PROP_TipNodes = eTipNodes.EditDocum, Name = "eleTVItem_NaznachMed", PROP_Text = "Медикаменты", PROP_TextDefault = "Медикаменты", PROP_ImageName = "mnNaznachMed", // PROP_ParentName = "eleTVItem_Naznach" PROP_ParentName = "eleTVItem_TekStac" }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_NaznachMed { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); _Node.PROP_prnPadding = 2; { // ВЕТКА Бланк листа назначений _Node = new UserNodes_Inform { PROP_TipNodes = eTipNodes.Inform, Name = "eleTVItem_NaznachBlanck", PROP_Text = "Бланк листа назначений", PROP_TextDefault = "Бланк листа назначений", PROP_ImageName = "mnDoc_7", PROP_ParentName = "eleTVItem_NaznachMed" //PROP_ParentName = "eleTVItem_Naznach" }; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_NaznachBlanck { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); _Node.PROP_prnPadding = 2; } // ВЕТКА Анестезиолог _Node = new UserNodes_RootListVrStac { PROP_TipNodes = eTipNodes.Stac_RootsList, Name = "eleTVItem_Anest", PROP_Text = "Анестезиолог", PROP_TextDefault = "Анестезиолог", PROP_ImageName = "mnAnest", PROP_ParentName = "eleTVItem_TekStac" }; ((UserNodes_RootListVrStac)_Node).PROP_shaTipObsled = 130; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_Roots { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); // ВЕТКА Лечение _Node = new UserNodes_RootListVrStac { PROP_TipNodes = eTipNodes.Stac_RootsList, Name = "eleTVItem_Oper", PROP_Text = "Лечение", PROP_TextDefault = "Лечение", PROP_ImageName = "mnOper", PROP_ParentName = "eleTVItem_TekStac" }; ((UserNodes_RootListVrStac)_Node).PROP_shaTipObsled = 104; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_Roots { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); // ВЕТКА Обходы, консилиумы _Node = new UserNodes_RootListVrStac { PROP_TipNodes = eTipNodes.Stac_RootsList, Name = "eleTVItem_Obhod", PROP_Text = "Обходы, консилиумы", PROP_TextDefault = "Обходы, консилиумы", PROP_ImageName = "mnObhod", PROP_ParentName = "eleTVItem_TekStac" }; ((UserNodes_RootListVrStac)_Node).PROP_shaTipObsled = 110; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_Roots { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); // ВЕТКА Документы _Node = new UserNodes_RootListVrStac { PROP_TipNodes = eTipNodes.Stac_RootsList, Name = "eleTVItem_Dokum", PROP_Text = "Документы", PROP_TextDefault = "Документы", PROP_ImageName = "mnDocuments", PROP_ParentName = "eleTVItem_TekStac" }; ((UserNodes_RootListVrStac)_Node).PROP_shaTipObsled = 105; _Node.PROP_Docum = new UserDocument(_Node); _Node.PROP_Docum.PROP_Otchet = new UserOtchet_Roots { PROP_Docum = _Node.PROP_Docum }; _Node.MET_Inizial(); // ВЕТКА Выписные документы var _Node2 = new UserNodes_RootListVrStac { PROP_TipNodes = eTipNodes.Stac_RootsList, Name = "eleTVItem_Extact", PROP_Text = "Выписные документы", PROP_TextDefault = "Выписные документы", PROP_ImageName = "mnGoHome", PROP_ParentName = "eleTVItem_TekStac" }; _Node2.PROP_shaTipObsled = 120; _Node2.PROP_Docum = new UserDocument(_Node2); _Node2.PROP_Docum.PROP_Otchet = new UserOtchet_Roots { PROP_Docum = _Node2.PROP_Docum }; _Node2.MET_Inizial(); } }