示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
        ///<summary>МЕТОД Фабрика объекта ListShablon</summary>
        /// <param name="pTip">Тип протокола</param>
        /// <param name="pCodShablon">Код шаблона</param>
        public static UserListShablon MET_FactoryListShablon(eTipDocum pTip, int pCodShablon)
        {
            // Коллекция ListShablons
            List <UserListShablon> _ListShablons = ((VirtualModul)MyGlo.Modul).PUB_ListShablons;
            //  Ищем в коллекции ListShablon по типу и номеру шаблона
            UserListShablon _Value = _ListShablons.FirstOrDefault(p => p.PROP_Cod == pCodShablon && p.PROP_TipProtokol.PROP_TipDocum == pTip);

            // Если не нашли, то пытаемся ListShablon создать
            if (_Value == null)
            {
                _Value = new UserListShablon();
                // Загружаем данные из SQL
                try
                {
                    var           _TipProtokol   = new MyTipProtokol(pTip);
                    SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_ListShablon_Select_3(pCodShablon, _TipProtokol.PROP_Prefix));
                    _SqlDataReader.Read();
                    _Value.MET_LoadDataReader(_SqlDataReader);
                    _Value.PROP_TipProtokol = _TipProtokol;
                    _SqlDataReader.Close();
                    _ListShablons.Add(_Value);
                }
                catch (Exception ex)
                {
                    MyGlo.PUB_Logger.Fatal(ex, "Ошибка Загрузки данных ListShablon из SQL");
                    MyGlo.Event_Error(ex);
                    _Value = null;
                }
            }
            return(_Value);
        }
示例#4
0
        /// <summary>МЕТОД Фабрика Массовая загрузка всех объектов Protokol одного посещения/стационара</summary>
        /// <param name="pTip">Тип протокола</param>
        /// <param name="pCodApstacKL">Код посещения/пациента</param>
        /// <param name="pTipFind">Ищем по CodApstac или по KL</param>
        public static bool MET_FactoryProtokolArray(eTipDocum pTip, decimal pCodApstacKL, string pTipFind = "CodApstac")
        {
            // Коллекция Protokol
            List <UserProtokol> _Protokol = ((VirtualModul)MyGlo.Modul).PUB_Protokol;

            try
            {
                var           _TipProtokol   = new MyTipProtokol(pTip);
                SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_Protokol_Select_12(pCodApstacKL, _TipProtokol.PROP_Prefix, pTipFind));
                // Перебираем весь поток и дабавляем все Protokolы
                while (_SqlDataReader.Read())
                {
                    UserProtokol _Value = new UserProtokol();
                    _Value.MET_LoadDataReader(_SqlDataReader);
                    _Value.PROP_TipProtokol = _TipProtokol;
                    _Protokol.Add(_Value);
                }
                _SqlDataReader.Close();
                // Загружаем все заголовки шаблонов ListShablon по загруженным протоколам
                UserListShablon.MET_FactoryListShablonArray(pTip);
                // Загружаем все заголовки шаблонов Shablon по загруженным протоколам
                UserShablon.MET_FactoryShablonArray(pTip);
                return(true);
            }
            catch (Exception ex)
            {
                MyGlo.PUB_Logger.Fatal(ex, "Ошибка Массовой Загрузки данных Protokol из SQL");
                MyGlo.Event_Error(ex);
                return(false);
            }
        }
示例#5
0
        //[DllImport("User32.dll")]
        //private static extern IntPtr SetForegroundWindow(IntPtr hWnd);          // Активирует окно процесса
        //[DllImport("User32.dll")]
        //private static extern bool ShowWindow(IntPtr handle, int cmdShow);      // Отображает данное окно впереди, даже если было свернуто
        //[DllImport("user32.dll", SetLastError = true)]
        //static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

        /// <summary>КОНСТРУКТОР</summary>
        public UserWindow_EditProtokol(MyTipProtokol pTipSha, int pNumSha, string pNameSha, string pImageSha, DateTime pDN, DateTime pDK, string pUserCod)
        {
            // Имя таблицы
            PRO_TableName = "EditProtokol";
            // Заголовок
            Title = $"Протоколы: {pNumSha} - {pNameSha}";
            // Иконка
            Icon = (BitmapImage)Application.Current.FindResource(pImageSha);
            // Тип шаблонов
            PRI_Tip = pTipSha;
            // Номер шаблона
            PRI_NumSha = pNumSha;
            // Начальная и конечная дата протоколов
            PRI_DN = pDN;
            PRI_DK = pDK;
            // Код пользователя (если есть)
            PRI_UserCod = pUserCod;
            // Размеры окна
            Width    = 800;
            MinWidth = Width;
            Height   = 700;
            // Сортируем по ФИО
            PRO_PoleSort = 3;
            // Разрешаем выбирать записи
            PROP_FlagButtonSelect = true;
            // Создаем фильтр
            // MET_CreateFiltr();
            // Открываем таблицу
            MET_OpenForm();
            // Ставим фокус на сторку поиска
            PART_TextBox.Focus();
        }
示例#6
0
 ///<summary>МЕТОД Инициализация ветки</summary>
 public override void MET_Inizial()
 {
     //  Тип протоколов
     PROP_shaTipProtokol = new MyTipProtokol(eTipDocum.Kdl);
     // Заполняем свойства базового класса
     base.MET_Inizial();
 }
示例#7
0
        /// <summary>МЕТОД Фабрика Массовая загрузка всех объектов ListShablon для загруженной коллекции Protokol</summary>
        /// <param name="pTip">Тип протокола</param>
        /// <remarks>Делается как правило разово из MET_FactoryProtokolArray</remarks>
        public static bool MET_FactoryListShablonArray(eTipDocum pTip)
        {
            // Коллекция ListShablons
            List <UserListShablon> _ListShablons = ((VirtualModul)MyGlo.Modul).PUB_ListShablons;
            // Находим список кодов шаблонов (пример: 101, 110, 120, 0), в конце добавляем ноль, что бы перекрыть последнюю запятую или в пустом списке был просто ноль
            string _NomShablons = ((VirtualModul)MyGlo.Modul).PUB_Protokol.Select(i => i.PROP_NumShablon).Distinct().Aggregate("", (s, i) => s + i + ", ") + "0";

            try
            {
                var           _TipProtokol   = new MyTipProtokol(pTip);
                SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_ListShablon_Select_4(_TipProtokol.PROP_Prefix, _NomShablons));
                // Перебираем весь поток и дабавляем все строки ListShablon
                while (_SqlDataReader.Read())
                {
                    UserListShablon _Value = new UserListShablon();
                    _Value.MET_LoadDataReader(_SqlDataReader);
                    _Value.PROP_TipProtokol = _TipProtokol;
                    _ListShablons.Add(_Value);
                }
                _SqlDataReader.Close();
                return(true);
            }
            catch (Exception ex)
            {
                MyGlo.PUB_Logger.Fatal(ex, "Ошибка Массовой Загрузки данных ListShablon из SQL");
                MyGlo.Event_Error(ex);
                return(false);
            }
        }
示例#8
0
        /// <summary>МЕТОД Фабрика объекта Protokol</summary>
        /// <param name="pTip">Тип протокола</param>
        /// <param name="pCod">Код протокола</param>
        public static UserProtokol MET_FactoryProtokol(eTipDocum pTip, int pCod)
        {
            // Коллекция Protokol
            List <UserProtokol> _Protokol = ((VirtualModul)MyGlo.Modul).PUB_Protokol;
            //  Ищем в коллекции Protokol по типу и коду протокола
            UserProtokol _Value = _Protokol.FirstOrDefault(p => p.PROP_TipProtokol.PROP_TipDocum == pTip && p.PROP_Cod == pCod);

            // Если не нашли, то пытаемся Protokol создать
            if (_Value == null)
            {
                _Value = new UserProtokol();
                // Загружаем данные из SQL
                try
                {
                    var           _TipProtokol   = new MyTipProtokol(pTip);
                    SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_Protokol_Select_9(pCod, _TipProtokol.PROP_Prefix));
                    _SqlDataReader.Read();
                    _Value.MET_LoadDataReader(_SqlDataReader);
                    _Value.PROP_TipProtokol = _TipProtokol;
                    _SqlDataReader.Close();
                    _Protokol.Add(_Value);
                }
                catch (Exception ex)
                {
                    MyGlo.PUB_Logger.Fatal(ex, "Ошибка Загрузки данных Protokol из SQL");
                    MyGlo.Event_Error(ex);
                    _Value = null;
                }
            }
            return(_Value);
        }
示例#9
0
 /// <summary>МЕТОД Инициализация Шаблона</summary>
 /// <param name="pNodes">Ветка</param>
 /// <param name="pNewProtokol">ture - Новый протокол, false - Старый протокол</param>
 /// <param name="pShablon">Номер шаблона, по умолчанию 0</param>
 /// <param name="pText">Наименование шаблона (по умолчанию pMyNodes.svoText)</param>
 public override VirtualFormShablon MET_Inizial(VirtualNodes pNodes, bool pNewProtokol, int pShablon = 0, string pText = "")
 {
     pNodes.PROP_shaButtonClearSha = Visibility.Collapsed;
     pNodes.PROP_shaButtonPrintSha = Visibility.Collapsed;
     base.MET_Inizial(pNodes, pNewProtokol, pShablon, pText);
     PROP_TipProtokol = new MyTipProtokol(PUB_VirtualNodes.PROP_shaTipProtokol.PROP_TipDocum);
     MET_CreateForm();
     return(this);
 }
示例#10
0
 ///<summary>МЕТОД Инициализация ветки</summary>
 public override void MET_Inizial()
 {
     //  Тип протоколов
     PROP_shaTipProtokol = new MyTipProtokol(eTipDocum.Kdl);
     // Заполняем свойства базового класса
     base.MET_Inizial();
     // Редактор и админ может создавать протоколы
     PROP_shaButtonNew = MyPdf.PROP_AccessPdf == eAccessPdf.Edit || MyPdf.PROP_AccessPdf == eAccessPdf.Admin;
 }
 ///<summary>МЕТОД Инициализация ветки</summary>
 public override void MET_Inizial()
 {
     //  Тип протоколов
     PROP_shaTipProtokol = new MyTipProtokol(eTipDocum.Pol);
     // Заполняем свойства базового класса
     base.MET_Inizial();
     // Запрещаем содаздание документов
     PROP_shaButtonNew = false;
 }
示例#12
0
 ///<summary>МЕТОД Инициализация ветки</summary>
 public override void MET_Inizial()
 {
     //  Тип протоколов
     PROP_shaTipProtokol = new MyTipProtokol(eTipDocum.Pol);
     // Заполняем свойства базового класса
     base.MET_Inizial();
     // Нижний текст вкладок (дата посещения протокола и ФИО врача)
     PROP_TextDown = Convert.ToString(MyGlo.HashAPAC["DP"]).Substring(0, 10) + " "
                     + MySql.MET_NameSpr(Convert.ToInt16(MyGlo.HashAPAC["KV"]), "s_VrachPol");
 }
示例#13
0
 /// <summary>МЕТОД Инициализация Шаблона</summary>
 /// <param name="pNodes">Ветка</param>
 /// <param name="pNewProtokol">ture - Новый протокол, false - Старый протокол</param>
 /// <param name="pShablon">Номер шаблона, по умолчанию 0</param>
 /// <param name="pText">Наименование шаблона (по умолчанию pMyNodes.svoText)</param>
 public override VirtualFormShablon MET_Inizial(VirtualNodes pNodes, bool pNewProtokol, int pShablon = 0, string pText = "")
 {
     base.MET_Inizial(pNodes, pNewProtokol, pShablon, pText);
     PROP_TipProtokol = new MyTipProtokol(PUB_VirtualNodes.PROP_shaTipProtokol.PROP_TipDocum);
     MET_CreateForm();
     // Если шаблон содержит тег Voice, то начинаем работу со звуком
     if (PROP_Docum.PROP_ListShablon.PROP_MyFormat.MET_If("Voice"))
     {
         PRI_VoiceShablon = new UseFormShablon_Voice(PROP_Docum);
     }
     return(this);
 }
示例#14
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);
     }
 }
示例#15
0
        /// <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();
        }
示例#16
0
        ///<summary>МЕТОД Замена шаблона в SQL (при импорте из Excel)</summary>
        public static void MET_SaveExcelToSQL(eTipDocum pTip, int pCodShablon)
        {
            // Коллекция Shablon
            List <UserShablon> _Shablon = ((VirtualModul)MyGlo.Modul).PUB_Shablon;
            //  Ищем в коллекции <Shablon> по типу и номеру шаблона все вопросы данного шаблона
            List <UserShablon> _Value = _Shablon.Where(p => p.PROP_ID == pCodShablon && p.PROP_TipProtokol.PROP_TipDocum == pTip).ToList();
            // Удаляем шаблон из SQL
            MyTipProtokol _Tip = new MyTipProtokol(pTip);

            MySql.MET_QueryNo(MyQuery.MET_Shablon_Delete_1(pCodShablon, _Tip.PROP_Prefix));
            // Добавляем элементы шаблона в SQL
            foreach (var _i in _Value)
            {
                MySql.MET_QueryNo(MyQuery.MET_Shablon_Insert_1(_i.PROP_TipProtokol.PROP_Shablon, _i.PROP_Cod, _i.PROP_ID, _i.PROP_Nomer, _i.PRI_VarId, _i.PROP_Maska,
                                                               _i.PROP_Type, _i.PROP_Razdel, _i.PROP_Name, _i.PROP_ValueStart, _i.PROP_OutText, _i.PROP_InText,
                                                               _i.PROP_xFormat, _i.PROP_xLua, _i.PROP_xInfo));
                // Сбрасываем флаг редактирования
                _i.PROP_FlagEdit = false;
            }
        }
示例#17
0
        /// <summary>СОБЫТИЕ Нажали на кнопку "Загрузки шаблона в SQL филиала"</summary>
        protected virtual void PRI_ButtonFromToFilialSQL_1_Click(object sender, RoutedEventArgs e)
        {
            DataRowView _DataRowView = (DataRowView)PART_DataGrid.SelectedItem;
            int         _CodShablon  = Convert.ToInt16(_DataRowView.Row["Cod"]);
            string      _TipDoc      = PRI_ComboBox_1.SelectedValue.ToString();
            eTipDocum   _eTip        = eTipDocum.Null;

            switch (_TipDoc)
            {
            case "apaN":
                _eTip = eTipDocum.Pol;
                break;

            case "ast":
                _eTip = eTipDocum.Stac;
                break;

            case "par":
                _eTip = eTipDocum.Paracl;
                break;

            case "kdl":
                _eTip = eTipDocum.Kdl;
                break;
            }
            var _TipProtokol = new MyTipProtokol(_eTip);

            // Вопрос на загрузку
            if (MessageBox.Show($"Вы точно хотите загрузить {_CodShablon} шаблон на филиал?", "Вот это вопрос", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                if (MySql.MET_QueryNo(MyQuery.MET_Shablon_InsertToFilial_1(_CodShablon, _TipProtokol.PROP_Prefix)))
                {
                    MessageBox.Show($"Успех!", "Загружено в SQL", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                }
                else
                {
                    MessageBox.Show($"Что то пошло не так!", "Загружено в SQL", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
示例#18
0
        ///<summary>МЕТОД Фабрика объектов Shablon</summary>
        /// <param name="pTip">Тип протокола</param>
        /// <param name="pCodShablon">Код шаблона</param>
        public static List <UserShablon> MET_FactoryListShablon(eTipDocum pTip, int pCodShablon)
        {
            // Коллекция Shablon
            List <UserShablon> _Shablons = ((VirtualModul)MyGlo.Modul).PUB_Shablon;
            //  Ищем в коллекции <Shablon> по типу и номеру шаблона
            List <UserShablon> _Value = _Shablons.Where(p => p.PROP_ID == pCodShablon && p.PROP_TipProtokol.PROP_TipDocum == pTip).ToList();

            // Если не нашли, то пытаемся <Shablon> загрузить из SQL
            if (!_Value.Any())
            {
                try
                {
                    MyTipProtokol _Tip           = new MyTipProtokol(pTip);
                    SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_Shablon_Select_3(pCodShablon, _Tip.PROP_Prefix));
                    while (_SqlDataReader.Read())
                    {
                        UserShablon _Shablon = new UserShablon();
                        _Shablon.MET_LoadDataReader(_SqlDataReader);
                        _Shablon.PROP_TipProtokol = _Tip;
                        // После загрузки, сбрасываем флаг редактирования
                        _Shablon.PROP_FlagEdit = false;
                        _Value.Add(_Shablon);
                    }
                    _SqlDataReader.Close();
                }
                catch (Exception ex)
                {
                    MyGlo.PUB_Logger.Fatal(ex, "Ошибка Загрузки данных Shablon из SQL");
                    MyGlo.Event_Error(ex);
                    _Value = null;
                }
                // Добавляем наши вопросы в библиотеку
                if (_Value != null)
                {
                    _Shablons?.AddRange(_Value);
                }
            }
            return(_Value);
        }
示例#19
0
        /// <summary>МЕТОД Выбор данных</summary>
        protected override void MET_Select()
        {
            if (!PROP_FlagButtonSelect || PART_DataGrid.SelectedItem == null)
            {
                return;
            }
            DataRowView _DataRowView = (DataRowView)PART_DataGrid.SelectedItem;
            int         _CodShablon  = Convert.ToInt16(_DataRowView.Row["Cod"]);
            string      _NameSha     = Convert.ToString(_DataRowView.Row["Name"]);
            string      _ImageSha    = Convert.ToString(_DataRowView.Row["Icon"]);
            string      _TipDoc      = PRI_ComboBox_1.SelectedValue.ToString();
            eTipDocum   _eTip        = eTipDocum.Null;

            switch (_TipDoc)
            {
            case "apaN":
                _eTip = eTipDocum.Pol;
                break;

            case "ast":
                _eTip = eTipDocum.Stac;
                break;

            case "par":
                _eTip = eTipDocum.Paracl;
                break;

            case "kdl":
                _eTip = eTipDocum.Kdl;
                break;
            }
            var _TipProtokol = new MyTipProtokol(_eTip);
            UserWindow_EditProtokol _WinSpr = new UserWindow_EditProtokol(_TipProtokol, _CodShablon, _NameSha, _ImageSha, PRI_DatePicker_1.DisplayDate, PRI_DatePicker_2.DisplayDate, PRI_UserCod.PROP_Text);

            _WinSpr.Show();
        }
        /// <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;
        }
示例#21
0
        /// <summary>СОБЫТИЕ Нажали на кнопку "Загрузка шаблона из Excel"</summary>
        protected virtual void PRI_ButtonFromExcel_1_Click(object sender, RoutedEventArgs e)
        {
            DataRowView _DataRowView = (DataRowView)PART_DataGrid.SelectedItem;
            int         _CodShablon  = Convert.ToInt16(_DataRowView.Row["Cod"]);
            string      _TipDoc      = PRI_ComboBox_1.SelectedValue.ToString();
            eTipDocum   _eTip        = eTipDocum.Null;

            switch (_TipDoc)
            {
            case "apaN":
                _eTip = eTipDocum.Pol;
                break;

            case "ast":
                _eTip = eTipDocum.Stac;
                break;

            case "par":
                _eTip = eTipDocum.Paracl;
                break;

            case "kdl":
                _eTip = eTipDocum.Kdl;
                break;
            }
            var    _TipProtokol = new MyTipProtokol(_eTip);
            string _NameFile    = $"{_TipDoc}_{_CodShablon}";
            string _PathFile    = $@"C:\Shablons\{_NameFile}.xlsx";

            Excel.Workbook    _WorkBook;
            Excel.Application _ExcelApp;
            _ExcelApp = new Excel.Application();
            FileInfo _FileInfo = new FileInfo(_PathFile);

            // Если нашли файл с текущим шаблоном
            if (!_FileInfo.Exists)
            {
                MessageBox.Show($"Не найден файл: {_PathFile}", "Алё, чо грузить то?!");
                return;
            }
            _WorkBook = _ExcelApp.Workbooks.Open(_PathFile);
            Excel.Worksheet _Sheet = (Excel.Worksheet)_WorkBook.Worksheets.Item[1];

            // Заполняем данные
            List <UserShablon> _ListShablons = new List <UserShablon>();
            int _y = 2;
            int _x = 1;

            try
            {
                while (_Sheet.Cells[_y, 1].Value2 is double)
                {
                    _x = 1;
                    UserShablon _Shablon = new UserShablon();
                    _Shablon.PROP_Cod         = (int)_Sheet.Cells[_y, _x++].Value2;
                    _Shablon.PROP_ID          = (int)_Sheet.Cells[_y, _x++].Value2;
                    _Shablon.PROP_Nomer       = (byte)_Sheet.Cells[_y, _x++].Value2;
                    _Shablon.PROP_VarId       = (int)_Sheet.Cells[_y, _x++].Value2;
                    _Shablon.PROP_Maska       = _Sheet.Cells[_y, _x++].Text ?? "";
                    _Shablon.PROP_Type        = (byte)_Sheet.Cells[_y, _x++].Value2;
                    _Shablon.PROP_Razdel      = _Sheet.Cells[_y, _x++].Value2 ?? "";
                    _Shablon.PROP_Name        = _Sheet.Cells[_y, _x++].Value2 ?? "";
                    _Shablon.PROP_ValueStart  = _Sheet.Cells[_y, _x++].Value2 ?? "";
                    _Shablon.PROP_OutText     = _Sheet.Cells[_y, _x++].Value2 ?? "";
                    _Shablon.PROP_InText      = _Sheet.Cells[_y, _x++].Value2 ?? "";
                    _Shablon.PROP_xFormat     = _Sheet.Cells[_y, _x++].Value2 ?? "";
                    _Shablon.PROP_xLua        = _Sheet.Cells[_y, _x++].Value2 ?? "";
                    _Shablon.PROP_xInfo       = _Sheet.Cells[_y, _x].Value2 ?? "";
                    _Shablon.PROP_TipProtokol = _TipProtokol;
                    _Shablon.PROP_FlagEdit    = false;
                    _y++;
                    _ListShablons.Add(_Shablon);
                }
            }
            catch (Exception)
            {
                _WorkBook.Close();
                _ExcelApp.Quit();
                MessageBox.Show($"Ошибка загрузки в строке: {_y}, в столбце: {--_x}", "Ошибка");
                return;
            }
            UserShablon.MET_FactoryListShablon(_eTip, _CodShablon);
            int _Remov = ((VirtualModul)MyGlo.Modul).PUB_Shablon.RemoveAll(p => p.PROP_ID == _CodShablon);

            ((VirtualModul)MyGlo.Modul).PUB_Shablon.AddRange(_ListShablons);
            _WorkBook.Close();
            _ExcelApp.Quit();

            // Если загружаем в SQL
            if (PRI_CheckBox_1.IsChecked == true)
            {
                UserShablon.MET_SaveExcelToSQL(_eTip, _CodShablon);
                MessageBox.Show($"Удалено: {_Remov} строк. Загружено {_ListShablons.Count} строк!", "Загружено в SQL");
            }
            else
            {
                MessageBox.Show($"Удалено: {_Remov} строк. Загружено {_ListShablons.Count} строк!", "Загружено в Память");
            }
        }
示例#22
0
        /// <summary>МЕТОД Создание фильтров</summary>
        private void MET_CreateFiltr()
        {
            PART_Grid.RowDefinitions[0].Height = new GridLength(80, GridUnitType.Auto);
            PART_Expander.Visibility           = Visibility.Visible;
            Border _Border = new Border();

            _Border.Style            = (Style)FindResource("Border_2");
            PART_Expander.Content    = _Border;
            PART_Expander.IsExpanded = true;
            StackPanel _SPanel = new StackPanel();

            _Border.Child = _SPanel;
            // ---- Настраиваем фильтр
            StackPanel _SPanel_1 = new StackPanel();

            _SPanel_1.Orientation = Orientation.Horizontal;
            _SPanel_1.Margin      = new Thickness(0, 2, 0, 2);
            _SPanel.Children.Add(_SPanel_1);
            // Server
            PRI_Server = new UserPole_ComboBox();
            PRI_Server.PART_ComboBox.ItemsSource   = new[] { "Pol", "Fil" };
            PRI_Server.PART_ComboBox.SelectedValue = "Pol";
            PRI_Server.PROP_WidthText   = 60;
            PRI_Server.PROP_Description = "Server";
            _SPanel_1.Children.Add(PRI_Server);
            // UserCod
            PRI_FiltrUserCod = new UserPole_Text();
            PRI_FiltrUserCod.PROP_MinWidthDescription = 90;
            PRI_FiltrUserCod.PROP_WidthText           = 100;
            PRI_FiltrUserCod.PROP_Description         = "UserCod";
            _SPanel_1.Children.Add(PRI_FiltrUserCod);
            // UserName
            PRI_FiltrUserName = new UserPole_Text();
            PRI_FiltrUserName.PROP_MinWidthDescription = 90;
            PRI_FiltrUserName.PROP_WidthText           = 100;
            PRI_FiltrUserName.PROP_Description         = "UserName";
            _SPanel_1.Children.Add(PRI_FiltrUserName);
            // CompName
            PRI_FiltrCompName = new UserPole_Text();
            PRI_FiltrCompName.PROP_WidthText   = 100;
            PRI_FiltrCompName.PROP_Description = "CompName";
            _SPanel_1.Children.Add(PRI_FiltrCompName);
            // Process
            PRI_FiltrProcess = new UserPole_Text();
            PRI_FiltrProcess.PROP_WidthText   = 100;
            PRI_FiltrProcess.PROP_Description = "Process";
            _SPanel_1.Children.Add(PRI_FiltrProcess);
            // DateN
            PRI_FiltrDateN = new UserPole_Data();
            PRI_FiltrDateN.PROP_WidthText   = 100;
            PRI_FiltrDateN.PROP_Date        = DateTime.Today;
            PRI_FiltrDateN.PROP_Description = "DateN";
            _SPanel_1.Children.Add(PRI_FiltrDateN);
            // DateK
            PRI_FiltrDateK = new UserPole_Data();
            PRI_FiltrDateK.PROP_WidthText   = 100;
            PRI_FiltrDateK.PROP_Date        = DateTime.Today;
            PRI_FiltrDateK.PROP_Description = "DateK";
            _SPanel_1.Children.Add(PRI_FiltrDateK);
            // Level
            PRI_FiltrLevel = new UserPole_ComboBox();
            PRI_FiltrLevel.PART_ComboBox.ItemsSource   = new[] { "All", "Error+Fatal", "Trace", "Debug", "Info", "Warn", "Error", "Fatal" };
            PRI_FiltrLevel.PART_ComboBox.SelectedValue = "Error+Fatal";
            PRI_FiltrLevel.PROP_WidthText   = 100;
            PRI_FiltrLevel.PROP_Description = "Level";
            _SPanel_1.Children.Add(PRI_FiltrLevel);
            // ---- Кнопка обновления фильтров
            PRI_ButtonReplace         = new Button();
            PRI_ButtonReplace.Content = "Обновить";
            PRI_ButtonReplace.Margin  = new Thickness(20, 0, 0, 0);
            PRI_ButtonReplace.Click  += delegate { MET_SqlFilter(); };
            _SPanel_1.Children.Add(PRI_ButtonReplace);
            // ---- Кнопка удаления отфильтрованных записей
            PRI_ButtonDelete         = new Button();
            PRI_ButtonDelete.Content = "Удалить";
            PRI_ButtonDelete.Margin  = new Thickness(20, 0, 0, 0);
            PRI_ButtonDelete.Click  += delegate
            {
                // Спросим на всякий случай
                if (MessageBox.Show("Вы точно хотите Удалить все эти записи?", "Внимание!", MessageBoxButton.YesNo) == MessageBoxResult.No)
                {
                    return;
                }
                // Удаляем
                MySql.MET_QueryNo(MyQuery.log_wpfBazis_Delete_1(PRO_SqlWhere, PRI_Server.PART_ComboBox.SelectedValue.ToString()));
                MET_SqlFilter();
            };
            _SPanel_1.Children.Add(PRI_ButtonDelete);
            // ---- Кнопка перехода в историю с ошибкой
            PRI_GotoHistory         = new Button();
            PRI_GotoHistory.Content = "Переход";
            PRI_GotoHistory.Margin  = new Thickness(20, 0, 0, 0);
            PRI_GotoHistory.Click  += delegate
            {
                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"]);
                    MySql.MET_DsAdapterFill(MyQuery.log_wpfBazis_Select_2(_KL, _IND), "TableRezult");
                    DataTable _Table = MyGlo.DataSet.Tables["TableRezult"];
                    if (_Table.Rows.Count == 0)
                    {
                        MessageBox.Show("Данной записи на текущем сервере нет, возможно эта запись сегодня создана на другом сервере", "Внимание!");
                        return;
                    }
                    DataRow _Row = _Table.Rows[0];
                    string  _Tip = (string)_Row["Tip"];

                    MyTipProtokol _MyTipProtokol;
                    switch (_Tip)
                    {
                    case "стац":
                        _MyTipProtokol = new MyTipProtokol(eTipDocum.Stac);         // модуль стационара
                        break;

                    case "пол":
                        _MyTipProtokol = new MyTipProtokol(eTipDocum.Pol);          // модуль поликлиники
                        break;

                    case "пар":
                        _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
                {
                }
            };
            _SPanel_1.Children.Add(PRI_GotoHistory);
        }