/// <summary>МЕТОД Заполняем Протоколы</summary> /// <param name="pPole">Наше поле</param> public void MET_Protokol(UserPole_History pPole) { // Обязательно, если экспандер содержит текст, а не под-вкладки pPole.PROP_IsTexted = true; // Документ FlowDocument _FlowDocument = new FlowDocument(); _FlowDocument.Background = Brushes.White; // Просмоторщик pPole.PUB_RichTextBox = new RichTextBox(); RichTextBox _RichTextBox = pPole.PUB_RichTextBox; _RichTextBox.Document = _FlowDocument; // Добавляем документ в экспандер pPole.MET_AddEle(_RichTextBox); // Привязываем к полю Документ, таблицы ListShablon и Protokol, Отчет pPole.PROP_DocumHistory.PROP_ListShablon = UserListShablon.MET_FactoryListShablon(pPole.PROP_Type, pPole.PROP_NumerShablon); pPole.PROP_DocumHistory.PROP_Otchet = new UserOtchet_Shablon { PROP_Docum = pPole.PROP_DocumHistory }; // Добавляем отчет к документу _FlowDocument.Blocks.Add(pPole.PROP_DocumHistory.PROP_Otchet.MET_Inizial()); // Отключаем делегат pPole.Event_OpenNewPoleHistory = null; }
///<summary>МЕТОД Инициализация ветки</summary> public override void MET_Inizial() { // Заполняем свойства базового класса base.MET_Inizial(); PROP_shaButtonNew = true; // По умолчанию ветка пустая PROP_shaCountNodesChild = 0; // Загружаем протоколы данной ветки var _Protokol = MET_LoadProtokol(); foreach (var _pro in _Protokol) { // Создаем подветку UserNodes_Add _Node = MET_TypeNodesAdd(); _Node.PROP_Docum = new UserDocument(_Node, _pro.PROP_TipProtokol.PROP_TipDocum); _Node.PROP_Docum.PROP_ListShablon = UserListShablon.MET_FactoryListShablon(_pro.PROP_TipProtokol.PROP_TipDocum, _pro.PROP_NumShablon); _Node.PROP_Docum.PROP_Protokol = _pro; _Node.PROP_Docum.PROP_Otchet = MET_OtchetChild(_Node.PROP_Docum); _Node.PROP_TipNodes = PRO_TipNodeChild; // тип _Node.Name = Name + "_Child" + _pro.PROP_pIndex; // имя _Node.PROP_ParentName = Name; // имя родителя _Node.PROP_shaNomerShablon = _pro.PROP_NumShablon; // номер шаблона _Node.PROP_shaIndex = _pro.PROP_pIndex; // индекс _Node.PROP_ImageName = _Node.PROP_Docum.PROP_ListShablon.PROP_Icon; // иконка _Node.PROP_Text = MET_CreateTextNode(_Node.PROP_Docum); // описание ветки _Node.PROP_TextDefault = _Node.PROP_Text; _Node.PROP_shaIND = _pro.PROP_CodApstac; _Node.PROP_Data = _pro.PROP_pDate; // дата ветки _Node.PROP_shaTipProtokol = _pro.PROP_TipProtokol; // тип протокола _Node.PROP_TextDown = _pro.PROP_pDate.ToString().Substring(0, 10) + " " + _pro.PROP_UserName; // нижний текст ветки _Node.MET_Inizial(); // Если протокол удаленый, то помечаем его _Node.MET_Remote(_pro.PROP_xDelete == 1); _Node.PROP_shaPresenceProtokol = true; // Настраиваем дополнительные параметры для подветки MET_PropertyNodeAdd(_Node); } }
/// <summary>МЕТОД Формируем форму Шаблона</summary> public override void MET_CreateForm() { if (PROP_Docum.PROP_ListShablon == null) { PROP_Docum.PROP_ListShablon = UserListShablon.MET_FactoryListShablon(PROP_TipProtokol.PROP_TipDocum, PRO_NomerShablon); } PUB_HashPole = new SortedList(); // список полей // Если открываем заполненый протокол if (!PROP_NewProtokol) { PRO_StrProtokol = PROP_Docum.PROP_Protokol.PROP_Protokol; PROP_Cod = PROP_Docum.PROP_Protokol.PROP_Cod; // Старый шаблон PROP_StadNodes = eStadNodes.Old; } else // Пытаемся найти последний протокол по KL и коду шаблона { // Новый шаблон PROP_StadNodes = eStadNodes.New; } // Создаем поля MET_LoadPole(); Frame _Frame = new Frame(); PRI_Page.MET_Inizial(PUB_VirtualNodes, this, PROP_NewProtokol); _Frame.Navigate(PRI_Page); this.Children.Add(_Frame); // Деактивируем кнопку "Сохранить" PROP_EditShablon = false; // Всё шаблон создан! PROP_Created = true; }
/// <summary>МЕТОД Формируем Форму Шаблона</summary> public override void MET_CreateForm() { PRI_StackPanel.Orientation = Orientation.Vertical; if (PROP_Docum.PROP_ListShablon == null) { PROP_Docum.PROP_ListShablon = UserListShablon.MET_FactoryListShablon(PROP_TipProtokol.PROP_TipDocum, PRO_NomerShablon); } // Исключение при выполнении запроса к базе try { PUB_HashPole = new SortedList(); // список полей Background = Brushes.GhostWhite; // Если открываем заполненый протокол if (!PROP_NewProtokol) { PRO_StrProtokol = PROP_Docum.PROP_Protokol.PROP_Protokol; PROP_Cod = PROP_Docum.PROP_Protokol.PROP_Cod; // Старый шаблон PROP_StadNodes = eStadNodes.Old; } else // Пытаемся найти последний протокол по KL и коду шаблона { if (MySql.MET_DsAdapterFill(MyQuery.MET_Protokol_Select_8(MyGlo.KL, PRO_NomerShablon, PROP_TipProtokol.PROP_Prefix), PROP_TipProtokol.PROP_Protokol) > 0) { // Новый шаблон, с предыдушими данными PROP_StadNodes = eStadNodes.NewPerw; PRO_StrProtokol = MyGlo.DataSet.Tables[PROP_TipProtokol.PROP_Protokol].Rows[0]["Protokol"].ToString(); } else { // Новый шаблон PROP_StadNodes = eStadNodes.New; } } // ---- Дата осмотра PROP_Format = PROP_Docum.PROP_ListShablon.PROP_MyFormat; VirtualPole _Date = MET_CreateUserPole(3); _Date.PROP_Necessarily = true; _Date.PROP_Description = PROP_Format.MET_If("pDateT") ? PROP_Format.PROP_Value["pDateT"].ToString() : "Дата"; // Если старый протокол if (!PROP_NewProtokol) { _Date.PROP_Text = PROP_Docum.PROP_Protokol.PROP_pDate.ToString(); } else { // Если новый шаблон if (PROP_Format.MET_If("pDateD")) { switch (PROP_Format.PROP_Value["pDateD"].ToString()) { case "pol": // если посещение поликлиники _Date.PROP_Text = MyMet.MET_ParseDat(MyGlo.HashAPAC["DP"]).ToString(); break; default: _Date.PROP_Text = DateTime.Today.ToString(); // текущий день break; } } else { _Date.PROP_Text = DateTime.Today.ToString(); // текущий день } } _Date.PROP_DefaultText = DateTime.Today.ToString(); // начальное значение _Date.PROP_ValueMin = Convert.ToDateTime("01/01/2011"); // минимальное число - 2011 год _Date.Name = "DateOsmotr"; // имя поля _Date.PROP_FormShablon = this; // ссылка на форму PUB_HashPole.Add(_Date.Name, _Date); // записываем элемент в очередь PRI_StackPanel.Children.Add(_Date); // добавляем элемент на форму // Перебераем все вопросы MET_LoadPole(); // Деактивируем кнопку "Сохранить" PROP_EditShablon = false; // Всё шаблон создан! PROP_Created = true; } catch { // ignored } }
/// <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(); } }