Пример #1
0
        } // func lKbolInfoDel

        /// <summary>Lua Функция. Добавление признака ОМС в kbolInfo</summary>
        /// <param name="pOms">Значения поля ОМС: 0 - не подавать в реестры, 1 - подавать в реестры ОМС</param>
        /// <returns>Возвращаем успех или не успех изменения данных</returns>
        private bool lKbolInfoOms(int pOms = 1)
        {
            // Код записи (Cod из Apac, IND  из Apstac, Cod из parObsledov
            decimal _CodZap = MyGlo.IND;
            // Смотрим наличие указанной таблицы pTab
            string       _Tab      = PUB_Pole.PROP_FormShablon.PROP_TipProtokol.PROP_KbolInfo;
            UserKbolInfo _KbolInfo = UserKbolInfo.MET_FactoryKbolInfo(_Tab, _CodZap, MyGlo.KL);

            _KbolInfo.MET_ChangeOms(pOms);
            return(true);
        } // func lKbolInfoOms
Пример #2
0
        } // func lKbolInfoAdd

        /// <summary>Lua Функция. Удаление данных из таблицы kbolInfo</summary>
        /// <param name="pTag">Имя ключа тега</param>
        /// <param name="pRazdKey">Имя ключа раздела (если нет, то не используем раздел)</param>
        /// <param name="pRazdCod">Код раздела (не ставим, если нет раздела)</param>
        /// <param name="pTab">К какой таблицы привязываемся (kbol, pol, stac, par), по умолчанию привязываем в зависимости от типа шаблона</param>
        /// <returns>Возвращаем успех или не успех добавления/изменения данных</returns>
        /// <remarks>Реализовано только указание параметров pTag</remarks>
        private bool lKbolInfoDel(string pTag, string pRazdKey = "", decimal pRazdCod = 0, string pTab = "")
        {
            // Смотрим наличие раздела
            //string _Razdel = pRazdCod == 0 ? "" : $", '{pRazdKey}', {pRazdCod}";
            // Код записи (Cod из Apac, IND  из Apstac, KL из kbol
            decimal _CodZap = MyGlo.IND;

            // Смотрим наличие указанной таблицы pTab
            pTab = pTab == "" ? PUB_Pole.PROP_FormShablon.PROP_TipProtokol.PROP_KbolInfo : pTab;
            UserKbolInfo _KbolInfo = UserKbolInfo.MET_FactoryKbolInfo(pTab, _CodZap, MyGlo.KL);

            _KbolInfo.MET_Delete(pTag);
            return(true);
        } // func lKbolInfoDel
Пример #3
0
        } // func lLog

        /// <summary>Lua Функция. Добавление/изменение таблицы kbolInfo</summary>
        /// <param name="pTag">Имя ключа тега</param>
        /// <param name="pValue">Значение</param>
        /// <param name="pRazdKey">Имя ключа раздела (если нет, то не используем раздел)</param>
        /// <param name="pRazdCod">Код раздела (не ставим, если нет раздела)</param>
        /// <param name="pTab">К какой таблицы привязываемся (kbol, pol, stac), по умолчанию привязываем в зависимости от типа шаблона</param>
        /// <returns>Возвращаем успех или не успех добавления/изменения данных</returns>
        /// <remarks>Реализовано только указание параметров pTag, pValue</remarks>
        private bool lKbolInfoAdd(string pTag, object pValue = null, string pRazdKey = "", decimal pRazdCod = 0, string pTab = "")
        {
            // Значение
            object _Value = pValue ?? PUB_Pole.PROP_Text; // : pValue;
            // Смотрим наличие раздела
            //string _Razdel = pRazdCod == 0 ? "" : $", '{pRazdKey}', {pRazdCod}";
            // Код записи (Cod из Apac, IND  из Apstac, KL из kbol
            decimal _CodZap = MyGlo.IND;

            // Смотрим наличие указанной таблицы pTab
            pTab = pTab == "" ? PUB_Pole.PROP_FormShablon.PROP_TipProtokol.PROP_KbolInfo : pTab;
            UserKbolInfo _KbolInfo = UserKbolInfo.MET_FactoryKbolInfo(pTab, _CodZap, MyGlo.KL);

            _KbolInfo.MET_Change(pTag, _Value);
            //string _Query = $"exec dbo.jsonInfoAdd {_Cod}, '{pTab}', '{pKey}', '{_Value}', '' {_Razdel}";
            //MySql.MET_QueryNo(_Query);
            return(true);
        } // func lKbolInfoAdd
Пример #4
0
        /// <summary>МЕТОД Сохраняем данные</summary>
        public override bool MET_Save()
        {
            // Срабатываю фокус поля, что бы выполнилась Lua функция OnChange
            UIElement _ElementWithFocus = Keyboard.FocusedElement as UIElement;                             // элемент фокуса

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

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

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