/// <summary>СОБЫТИЕ Выбор контекстного меню Редактировать</summary> private void PART_MenuItem_Edit_Click(object sender, RoutedEventArgs e) { MyTipProtokol _MyTipProtokol; decimal _IND; if (PROP_Nodes != null) // протоколы основной карточки { _MyTipProtokol = PROP_Nodes.PROP_shaTipProtokol; _IND = PROP_Nodes.PROP_shaIND; if (_IND == 0) { return; } } else // из истории болезни { _MyTipProtokol = new MyTipProtokol(PROP_Type); _IND = PROP_CodApstac; } // Если документы Kdl, то выходим if (_MyTipProtokol.PROP_TipDocum == eTipDocum.Kdl) { MessageBox.Show("И что вы хотите?", "Опомнитесь!"); return; } // Пытаемся открыть новую копию программы, для редактирования протоколов MyMet.MET_EditWindows(_MyTipProtokol.PROP_TipDocum, _IND, MyGlo.KL); }
/// <summary>КОНСТРУКТОР</summary> protected VirtualUserWindow() { InitializeComponent(); // Ставим Русский язык MyMet.MET_Lаng(); }
/// <summary>КОНСТРУКТОР</summary> public UserPole_ErrorKSG(DataRow pRow) { PROP_FIO = MyMet.MET_PoleStr("FIO", pRow); PROP_DR = MyMet.MET_PoleDat("DR", pRow) + " г.р."; PROP_Diag = MyMet.MET_PoleStr("D", pRow); PROP_DN = "с " + MyMet.MET_PoleDat("DN", pRow) + " по"; PROP_DK = MyMet.MET_PoleDat("DK", pRow); if (PROP_DK == "01.01.0001") { PROP_DK = ". . ."; } PROP_Uet3 = MyMet.MET_PoleInt("Uet3", pRow); PROP_VrachCod = MyMet.MET_PoleInt("KV", pRow); PROP_VrachName = MyMet.MET_PoleStr("TKOD", pRow); PROP_KL = MyMet.MET_PoleDec("KL", pRow); PROP_CodApstac = MyMet.MET_PoleDec("IND", pRow); PROP_User = MyMet.MET_PoleInt("Us", pRow); PROP_Desk = MyMet.MET_PoleStr("Desk", pRow); InitializeComponent(); // Помечаем личных пациетов этого врача if (PROP_User == 1) { PART_Border.Background = new SolidColorBrush(Colors.AntiqueWhite); PART_Border.BorderBrush = new SolidColorBrush(Colors.Red); } }
/// <summary>КОНСТРУКТОР</summary> public UserWindow_Laboratory() { // Ставим Русский язык MyMet.MET_Lаng(); // Имя таблицы PRO_TableName = "Laboratory"; // Если строка ввода ищет через SQL PRO_FlagTextSql = true; // Заголовок Title = "Лабораторные исследования COVID 19:"; // Подсказка в строке поиска PART_TextBox.WatermarkContent = "Введите ФИО и год рождения (например: ИВАНО И НИ 28)"; // Размеры окна Height = 720; MinWidth = Width; // Разрешаем выбирать записи PROP_FlagButtonSelect = true; // Создаем фильтр MET_CreateFiltr(); // Открываем таблицу MET_OpenForm(); // Ставим фокус на сторку поиска PART_TextBox.Focus(); // Показываем в подсказке PRO_PoleBarPanel = 1; }
/// <summary>СОБЫТИЕ Открытие контекстного меню Редактировать</summary> private void PART_MenuItem_Edit_Click(object sender, RoutedEventArgs e) { MyTipProtokol _MyTipProtokol = new MyTipProtokol(eTipDocum.Stac); // Пытаемся открыть новую копию программы, для редактирования протоколов MyMet.MET_EditWindows(_MyTipProtokol.PROP_TipDocum, PROP_CodApstac, PROP_KL); }
/// <summary>КОНСТРУКТОР</summary> /// <param name="pDate">Дата действия кодов лечения (текущая дата, либо дата создания протокола)</param> /// <param name="pShablon">Номер шаблона (если есть)</param> public UserWindow_Oper(DateTime pDate, int pShablon = 0) { // Ставим Русский язык MyMet.MET_Lаng(); // Имя таблицы PRO_TableName = "s_VidOper"; // Заголовок Title = "Справочник Услуг (Операций):"; // Спец поле (составное) по которому производится поиск PRO_PoleFiltr = "Names"; // Дата действия кодов лечения PRI_Date = pDate; // Номер шаблона (если есть) PRI_Shablon = pShablon; // Размеры окна Height = 660; Width = 840; MinWidth = Width; // Сортируем по полю Варианты ответа PRO_PoleSort = 0; // Создаем фильтр MET_CreateFiltr(); // Фильтр по КСГ для загрузки из SQL MET_SqlFilter(); // Открываем таблицу MET_OpenForm(false); // Ставим фокус на сторку поиска PART_TextBox.Focus(); }
/// <summary>МЕТОД Создаем логи xLog (Создан)</summary> /// <param name="pUser">Кто создал документ (по умолчанию MyGlo.User)</param> /// <param name="pDate">Дата лога (по умолчанию текущее время)</param> /// <param name="pVer">Версия программы (по умолчанию текущее версия)</param> /// <remarks>Работа с json https://www.newtonsoft.com/json/help/html/QueryingLINQtoJSON.htm </remarks> public static string MET_CreateLogs(int pUser = 0, string pDate = "", string pVer = "") { if (pUser == 0) { pUser = MyGlo.User; } if (pDate == "") { pDate = DateTime.Now.ToString("dd.MM.yyyy H:mm"); } if (pVer == "") { pVer = MyMet.MET_Ver(); } var _ListLogs = new List <UserLog>(); UserLog _Log = new UserLog { Cod = 1, Date = pDate, Tip = "Создан", User = pUser, Ver = pVer }; _ListLogs.Add(_Log); string _xLog = JsonConvert.SerializeObject(_ListLogs, Formatting.None, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore }); _xLog = "{ \"Log\":" + _xLog + "}"; return(_xLog); }
/// <summary>МЕТОД Начальные данные</summary> public override void MET_NachDan() { // Заполняем hasAPSTAC MyGlo.HashAPSTAC = MySql.MET_QueryHash(MyQuery.APSTAC_Select_1(MyGlo.IND)); // Код пациента MyGlo.KL = (decimal)MyGlo.HashAPSTAC["KL"]; // Номер стац. карты MyGlo.NSTAC = (int)MyGlo.HashAPSTAC["NSTAC"]; // Отделение MyGlo.Otd = (int)MyGlo.HashAPSTAC["otd"]; // Заполняем hasKBOL MyGlo.HashKBOL = MySql.MET_QueryHash(MyQuery.kbol_Select_1(MyGlo.KL)); // ФИО пациента MyGlo.FIO = Convert.ToString(MyGlo.HashKBOL["FIO"]); // Дата рождения пациента MyGlo.DR = MyMet.MET_StrDat(MyGlo.HashKBOL["DR"]); // Пол пациента MyGlo.Pol = Convert.ToInt16(MyGlo.HashKBOL["POL"]) == 1 ? "Мужской" : "Женский"; // Дата, когда положили пациента в стационар MyGlo.DatePriem = MyMet.MET_StrDat(MyGlo.HashAPSTAC["DN"]); // Полная строка диагноза MyGlo.DiagStac = Convert.ToString(MyGlo.HashAPSTAC["D"]); // Обнуляем историю болезни MyGlo.HashOtchet.Clear(); IND = MyGlo.IND; }
/// <summary>КОНСТРУКТОР</summary> public UserWindow_OtherLpu() { // Ставим Русский язык MyMet.MET_Lаng(); // Имя таблицы PRO_TableName = "OtherLpu"; // Если строка ввода ищет через SQL PRO_FlagTextSql = true; // Заголовок Title = "Выбор направленных пациентов из БУЗОО КОД:"; // Подсказка в строке поиска PART_TextBox.WatermarkContent = "Введите ФИО пациента (например: ИВАНОВ Ф И)"; // Размеры окна Height = 660; MinWidth = Width; // Разрешаем выбирать записи PROP_FlagButtonSelect = true; // Создаем фильтр MET_CreateFiltr(); // Открываем таблицу MET_OpenForm(); // Ставим фокус на сторку поиска PART_TextBox.Focus(); // Показываем в подсказке PRO_PoleBarPanel = 1; }
/// <summary>МЕТОД Заполняем Поля</summary> protected override void MET_LoadPole() { // Наименование документа VirtualPole _Pole = MET_CreateUserPole(8); _Pole.PROP_FormShablon = this; _Pole.PROP_VarId = 1; // Ответ if (PROP_StadNodes == eStadNodes.Old) { _Pole.PROP_Text = MyMet.MET_GetPole(_Pole.PROP_VarId, PRO_StrProtokol); } _Pole.Name = "elePoleShabl_" + _Pole.PROP_VarId; // имя поля PUB_HashPole.Add(_Pole.Name, _Pole); // записываем элемент в очередь // Имя файла _Pole = MET_CreateUserPole(8); _Pole.PROP_FormShablon = this; _Pole.PROP_VarId = 2; // Ответ if (PROP_StadNodes == eStadNodes.Old) { _Pole.PROP_Text = MyMet.MET_GetPole(_Pole.PROP_VarId, PRO_StrProtokol); } _Pole.Name = "elePoleShabl_" + _Pole.PROP_VarId; // имя поля PUB_HashPole.Add(_Pole.Name, _Pole); // записываем элемент в очередь }
/// <summary>МЕТОД Возвращаем Дату</summary> private DateTime MET_PoleDat(string pPole) { try { return MyMet.MET_PoleDate(pPole, PRI_Row.Row) ?? DateTime.Today; } // Convert.ToDateTime(PRI_Row[pPole]); } catch { // ignored } return DateTime.Today; }
/// <summary>МЕТОД Возвращаем строку c Целым числом</summary> private int MET_PoleInt(string pPole) { try { return MyMet.MET_PoleInt(pPole, PRI_Row.Row); } catch { // ignored } return 0; }
/// <summary>Пользователь создавший протокол</summary> /// <remarks>Только для 15 типа (метки), так как в начале протокола ещё нет</remarks> private void User() { string _User = ""; if (PROP_Protokol != null) { _User = MyMet.MET_UserName(PROP_Protokol.PROP_xUserUp); } PROP_Text = PROP_Text.Replace("[User]", _User); }
/// <summary>МЕТОД Заголовок программы</summary> public override string MET_Title() { // Наименование модуля string _Title = "wpfBazis -- Лаборатория --"; // Номер версии _Title += " " + MyMet.MET_Ver(); // Показываем имя пользователя _Title += " (" + MyGlo.UserName + ")"; return(_Title); }
/// <summary>МЕТОД Заголовок программы</summary> public override string MET_Title() { // Наименование модуля string _Title = "wpfBazis -- История болезни --"; // Номер версии _Title += " " + MyMet.MET_Ver(); // Пациент _Title += MyGlo.KL > 0 ? " (" + MyGlo.FIO + " " + MyGlo.DR : " ( "; // Показываем имя пользователя _Title += " - " + MyGlo.UserName + ")"; return(_Title); }
/// <summary>МЕТОД Заголовок программы</summary> public override string MET_Title() { // Наименование модуля string _Title = "wpfBazis -- Врач поликлиники --"; // Номер версии _Title += " " + MyMet.MET_Ver(); // Пациент _Title += " (" + MyGlo.FIO + " " + MyGlo.DR; // Показываем имя пользователя _Title += " - " + MyGlo.UserName + ")"; return(_Title); }
/// <summary>МЕТОД Заголовок программы</summary> public override string MET_Title() { // Наименование модуля string _Title = "wpfBazis -- Канцер Регистр --"; // Номер версии _Title += " " + MyMet.MET_Ver(); // Отделение _Title += $" ({MyMet.MET_NameOtd()})"; // Пациент _Title += " (" + MyGlo.FIO + " " + MyGlo.DR; // Показываем имя пользователя _Title += " - " + MyGlo.UserName + ")"; return(_Title); }
/// <summary>МЕТОД Заголовок программы</summary> public override string MET_Title() { // Наименование модуля string _Title = "wpfBazis -- Врач стационара --"; // Номер версии _Title += " " + MyMet.MET_Ver(); // Отделение _Title += " (" + MySql.MET_NameSpr(MyGlo.Otd, "s_Department", "Names", "Cod"); // Пациент _Title += " " + MyGlo.FIO + " " + MyGlo.DR; // Показываем имя пользователя _Title += " - " + MyGlo.UserName + ")"; return(_Title); }
/// <summary>МЕТОД Начальные данные</summary> public override void MET_NachDan() { // Заполняем hasKBOL MyGlo.HashKBOL = MySql.MET_QueryHash(MyQuery.kbol_Select_1(MyGlo.KL)); // Заполняем HashLastDiag MyGlo.HashLastDiag = MySql.MET_QueryHash(MyQuery.MET_kbolInfo_Select_3(MyGlo.KL)); // ФИО пациента MyGlo.FIO = Convert.ToString(MyGlo.HashKBOL["FIO"]); // Дата рождения пациента MyGlo.DR = MyMet.MET_StrDat(MyGlo.HashKBOL["DR"]); // Пол пациента MyGlo.Pol = Convert.ToInt16(MyGlo.HashKBOL["POL"]) == 1 ? "Мужской" : "Женский"; // Обнуляем историю болезни MyGlo.HashOtchet.Clear(); }
/// <summary>МЕТОД Заголовок программы</summary> public override string MET_Title() { // Наименование модуля string _Title = "wpfBazis -- Врач параклиники --"; // Номер версии _Title += " " + MyMet.MET_Ver(); // Элемент расписания _Title += " (" + MySql.MET_NameSpr(MyGlo.Otd, "parElement", "FIO", "Cod") + " "; // Пациент _Title += " " + MyGlo.FIO + " " + MyGlo.DR; // Показываем имя пользователя _Title += " - " + MyGlo.UserName + ")"; return(_Title); }
/// <summary>СОБЫТИЕ Выбор Даты расписания</summary> private void PART_DataGridDate_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e) { MyGlo.DataSet.Tables["rnTime"].Clear(); // чистим время if (PART_DataGridDate.SelectedIndex < 0) { return; // если ничего не выбрали - выходим } // Выбранная запись DataRowView _DataRowView = (DataRowView)PART_DataGridDate.SelectedItem; // Наша дата PUB_Date = MyMet.MET_ParseDat(_DataRowView.Row["Dat"]); // Загружаем Время MET_LoadTime(); }
/// <summary>МЕТОД Выбор данных - Находим пациента и открываем окно с ним</summary> protected override void MET_Select() { if (!PROP_FlagButtonSelect) { return; } try { DataRowView _DataRowView = (DataRowView)PART_DataGrid.SelectedItem; if (_DataRowView == null) { return; } decimal _KL = Convert.ToDecimal(_DataRowView.Row["KL"]); decimal _IND = Convert.ToDecimal(_DataRowView.Row["IND"]); MyTipProtokol _MyTipProtokol; switch (PRI_Tip) { case "1": _MyTipProtokol = new MyTipProtokol(eTipDocum.Pol); // модуль поликлиники break; case "2": _MyTipProtokol = new MyTipProtokol(eTipDocum.Stac); // модуль стационара break; case "3": _MyTipProtokol = new MyTipProtokol(eTipDocum.Paracl); // модуль параклиники break; default: _MyTipProtokol = new MyTipProtokol(eTipDocum.Null); // модуль истории болезни break; } // У не админов доступ только в историю болезни if (!MyGlo.PROP_Admin) { _MyTipProtokol = new MyTipProtokol(eTipDocum.Null); } // Пытаемся открыть новую копию программы, для редактирования протоколов MyMet.MET_EditWindows(_MyTipProtokol.PROP_TipDocum, _IND, _KL); PROP_Return = true; } catch { } Close(); }
/// <summary>СОБЫТИЕ Записываем пациента на прием</summary> private void PART_ButtonSave_Click(object sender, RoutedEventArgs e) { // Наш код расписания int _CodSetka = PROP_Cod; // Если не выбрали код - выходим if (_CodSetka == 0) { MessageBox.Show("Нужно выбрать время!", "Сосредоточтесь"); return; } // Проверяем, есть ли свободная запись (повторно, а вдруг уже заняли) if (!MySql.MET_QueryBool(MyQuery.MET_RnSetka_Time_Select_2(_CodSetka, PROP_Server))) { MessageBox.Show("Пока вы думали, это время заняли!", "Задумались?"); return; } // Проверяем не записан ли повторно пациент в этот кабинет if (MySql.MET_QueryBool(MyQuery.MET_RnSetka_Time_Select_3(MyGlo.KL, PUB_Element, PROP_Server))) { MessageBox.Show("Пациент уже записан в этот кабинет!", "Зачем?"); return; } // Заполняем RsTalon int _Cod = MySql.MET_GetNextRef(67); string _FIO = (string)MyGlo.HashKBOL["FAM"]; // ФИО DateTime?_DR = MyMet.MET_ParseDat(MyGlo.HashKBOL["DR"]); // ДР string _Rai = MyGlo.HashKBOL["KRName"].ToString(); // Район if (_Rai == "") { _Rai = (string)MyGlo.HashKBOL["NasPName"]; // Населенный пункт } string _xLog = $@"{{""CrUser"": ""{MyGlo.UserName}"",""CrLPU"": ""БУЗОО КОД"",""CrProg"": ""wpfBazis"",""CrDate"": ""{DateTime.Now:yyyy-MM-dd hh:mm}""}}"; // Сохраняем if (!MySql.MET_QueryNo(MyQuery.MET_RnTalon_Insert_1(_Cod, _CodSetka, MyGlo.KL, _FIO, _DR, _Rai, _xLog, PROP_Server))) { MessageBox.Show("Записать не удалось!", "Ошибка"); return; } // Обновляем время (убрав, только что занятую позицию) MET_LoadTime(); // Показываем куда записан пациент MET_LoadTalon(); }
///<summary>МЕТОД Инициализация отчета</summary> /// <param name="pNodes">Ветка</param> public override VirtualOtchet MET_Inizial(VirtualNodes pNodes) { // Ставим Русский язык MyMet.MET_Lаng(); // Если нужно формировать отчет if (PROP_NewCreate) { base.MET_Inizial(pNodes); // Формируем отчет MET_Otchet(); // Добавляем последний параграф в блок Blocks.Add(PRO_Paragraph); // Помечаем, что больше его формировать не надо PROP_NewCreate = false; } return(this); }
/// <summary>КОНСТРУКТОР</summary> public UserWindow_LecMNN() { // Ставим Русский язык MyMet.MET_Lаng(); // Имя таблицы PRO_TableName = "LecMNN"; // Заголовок Title = "Справочник МНН Препаратов:"; // Подсказка в строке поиска PART_TextBox.WatermarkContent = "Введите чать МНН лекарства и/или чать его номера через пробел"; // Размеры окна MinWidth = Width; Height = 600; // Сортируем по полю Препарату PRO_PoleSort = 0; // Открываем таблицу MET_OpenForm(); // Ставим фокус на сторку поиска PART_TextBox.Focus(); }
/// <summary>КОНСТРУКТОР для отчета</summary> public UserPole_Image(string pText, int pVarID, int Shablon, int pZoom, MyFormat pFormat) { InitializeComponent(); PROP_VarId = pVarID; PROP_Shablon = Shablon; MET_LoadDataSet(); PART_Label.Visibility = Visibility.Collapsed; PROP_Format = pFormat; if (PROP_Format.MET_If("xH")) { PRI_Height = (int)(MyMet.MET_ParseInt(PROP_Format.PROP_Value["xH"]) * 3.4); } if (PROP_Format.MET_If("xW")) { PRI_Width = (int)(MyMet.MET_ParseInt(PROP_Format.PROP_Value["xW"]) * 3.4); } PRI_Height = PRI_Height == 0 ? 230 * pZoom : PRI_Height; PRI_Width = PRI_Width == 0 ? 320 * pZoom : PRI_Width; PRI_Opacity = 0.6; PROP_Text = pText; }
/// <summary>СОБЫТИЕ После загрузки окна</summary> /// <remarks>Работа с json https://www.newtonsoft.com/json/help/html/QueryingLINQtoJSON.htm </remarks> private void UserWindows_Loaded(object sender, RoutedEventArgs e) { PROP_Logs = new List <UserLog>(); // Если есть логи if (!string.IsNullOrEmpty(PRI_jLog)) { JObject _Json = JObject.Parse(PRI_jLog); foreach (var i in _Json["Log"].Children()) { var _Log = new UserLog(); _Log.Cod = (int)i["Cod"]; _Log.Date = (string)i["Date"]; _Log.Tip = (string)i["Tip"]; _Log.User = (int)i["User"]; _Log.UserName = MyMet.MET_UserName((int)i["User"]); _Log.Ver = (string)i["Ver"]; PROP_Logs.Add(_Log); } } PART_ListView.ItemsSource = PROP_Logs; }
/// <summary>КОНСТРУКТОР</summary> public About() { InitializeComponent(); // IP Сервера string _Server = ""; switch (MyGlo.Server) { case 1: // Локальный _Server = " Server: (1) 127.0.0.1;"; break; case 2: // Удаленное подключение к филиалу _Server = " Server: (2) 10.30.104.5;"; break; case 3: // Главный корпус _Server = " Server: (3) 192.168.0.8;"; break; case 5: // Филиал _Server = " Server: (5) 192.168.0.8;"; break; case 6: // Главный из вне _Server = " Server: (6) 10.30.103.8;"; break; } // Версия программы и IP серевера PART_Ver.Text = "Версия " + MyMet.MET_Ver() + _Server; // Если включен режим Админа if (MyGlo.PROP_Admin) { PRI_Flag = 3; PART_Bazis.Foreground = new SolidColorBrush(Colors.BlueViolet); } }
/// <summary>КОНСТРУКТОР</summary> public UserWindow_KbolLPU() { // Ставим Русский язык MyMet.MET_Lаng(); // Имя таблицы PRO_TableName = "kbolLPU"; // Если строка ввода ищет через SQL PRO_FlagTextSql = true; // Заголовок Title = "Приписные к ЛПУ пациенты по БАЗЕ ЗАСТРАХОВАННЫХ, посещавших БУЗОО КОД (первые 200 человек):"; // Подсказка в строке поиска PART_TextBox.WatermarkContent = "Введите ФИО пациента (например: ИВАНОВ Ф И)"; // Размеры окна MinWidth = Width; Height = 660; // Сортируем по Фамилии PRO_PoleSort = 0; // Разрешаем выбирать записи PROP_FlagButtonSelect = true; // Открываем таблицу MET_OpenForm(); // Ставим фокус на сторку поиска PART_TextBox.Focus(); }
/// <summary>МЕТОД Выбор данных</summary> protected override void MET_Select() { if (!PROP_FlagButtonSelect) { return; } try { DataRowView _DataRowView = (DataRowView)PART_DataGrid.SelectedItem; if (_DataRowView == null) { return; } decimal _KL = Convert.ToDecimal(_DataRowView.Row["KL"]); decimal _IND = Convert.ToDecimal(_DataRowView.Row["CodApstac"]); // Пытаемся открыть новую копию программы, для редактирования протоколов MyMet.MET_EditWindows(PRI_Tip.PROP_TipDocum, _IND, _KL); PROP_Return = true; } catch { } Close(); }