Пример #1
0
        /// <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;
        }
Пример #2
0
        ///<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);
            }
        }
Пример #3
0
        /// <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;
        }
Пример #4
0
        /// <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
            }
        }
Пример #5
0
        /// <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();
            }
        }