コード例 #1
0
        /// <summary>СОБЫТИЕ Сортируем протоколы по дате в обратном порядке</summary>
        private void PART_ButtonSort_Click(object sender, RoutedEventArgs e)
        {
            // Меняем иконку на кнопке
            var _Button = (Button)sender;

            if ((int)_Button.Tag == 1)
            {
                ((Image)_Button.Content).Source = (BitmapImage)FindResource("mnGreenDown");
                _Button.Tag = 2;
            }
            else
            {
                ((Image)_Button.Content).Source = (BitmapImage)FindResource("mnGreenUp");
                _Button.Tag = 1;
            }
            // Сортировка
            var _Panel   = PRO_Paragraph.Inlines.FirstInline;                   // панель управления
            var _History = PRO_Paragraph.Inlines.Reverse();                     // сортируем в обратном порядке элементы истории болезни

            PRO_Paragraph.Inlines.Add(_Panel);                                  // ставим на место сначала панель управления
            PRO_Paragraph.Inlines.AddRange(_History);                           // потом обратно историю
            PRO_PoleHistory.Reverse();
        }
コード例 #2
0
        /// <summary>МЕТОД Формируем отчет История болезни</summary>
        protected override void MET_Otchet()
        {
            PRO_Paragraph = new Paragraph();
            MyGlo.HashOtchet.Add("eleTVItem_History", this);

            // Добавляем кнопки фильтра истории
            StackPanel _Panel = new StackPanel();

            _Panel.Orientation = Orientation.Horizontal;
            PRO_Paragraph.Inlines.Add(_Panel);
            Button _ButtonSort = new Button();
            Image  _Image      = new Image();

            _Image.Height         = 20;
            _Image.Width          = 20;
            _Image.Source         = (BitmapImage)FindResource("mnGreenUp");
            _ButtonSort.Content   = _Image;
            _ButtonSort.ToolTip   = "Меняет сортировку по дате посещения на обратную";
            _ButtonSort.Focusable = false;
            _ButtonSort.Tag       = 1;
            _ButtonSort.Click    += PART_ButtonSort_Click;
            _Panel.Children.Add(_ButtonSort);
            Label _LabelFiltr = new Label();

            _LabelFiltr.Content           = "Фильтр по:";
            _LabelFiltr.VerticalAlignment = VerticalAlignment.Center;
            _Panel.Children.Add(_LabelFiltr);
            RadioButton _ButtonAll = new RadioButton();

            _ButtonAll.Content   = "Все";
            _ButtonAll.ToolTip   = "Отображает Все посещения";
            _ButtonAll.Margin    = new Thickness(5);
            _ButtonAll.IsChecked = true;
            _ButtonAll.Checked  += PART_RadioButton_Checked;
            _Panel.Children.Add(_ButtonAll);
            RadioButton _ButtonIssl = new RadioButton();

            _ButtonIssl.Content  = "Параклиника";
            _ButtonIssl.ToolTip  = "Отображает только посещения в Параклинику";
            _ButtonIssl.Margin   = new Thickness(5);
            _ButtonIssl.Checked += PART_RadioButton_Checked;
            _Panel.Children.Add(_ButtonIssl);
            RadioButton _ButtonStac = new RadioButton();

            _ButtonStac.Content  = "Стационар";
            _ButtonStac.ToolTip  = "Отображает только посещения Стационара";
            _ButtonStac.Margin   = new Thickness(5);
            _ButtonStac.Checked += PART_RadioButton_Checked;
            _Panel.Children.Add(_ButtonStac);
            RadioButton _ButtonPol = new RadioButton();

            _ButtonPol.Content  = "Поликлиника";
            _ButtonPol.ToolTip  = "Отображает только посещения Поликлиники";
            _ButtonPol.Margin   = new Thickness(5);
            _ButtonPol.Checked += PART_RadioButton_Checked;
            _Panel.Children.Add(_ButtonPol);
            RadioButton _ButtonKdl = new RadioButton();

            _ButtonKdl.Content = "Диагностика";
            _ButtonKdl.ToolTip = "     Отображает только те посещения,\n" +
                                 "в которых есть результат Диагностических исследований\n" +
                                 "(пока только Гистологии, Цитологии)";
            _ButtonKdl.Margin   = new Thickness(5);
            _ButtonKdl.Checked += PART_RadioButton_Checked;
            _Panel.Children.Add(_ButtonKdl);
            PRO_Paragraph.Inlines.Add(new LineBreak());                         // разрыв строки
            // Заполняем список шаблонов
            MySql.MET_DsAdapterFill(MyQuery.MET_History_Select_1(MyGlo.KL), "History");
            foreach (DataRow _Row in MyGlo.DataSet.Tables["History"].Rows)
            {
                PRO_RowShablon = _Row;
                UserPole_History _Pole = new UserPole_History();
                string           _Icon = "";
                // Тип поля
                _Pole.PROP_Type = (eTipDocum)MET_PoleInt("Nom");
                // Код документа
                _Pole.PROP_Cod       = MET_PoleDec("Cod");
                _Pole.PROP_Vrach     = MET_PoleStr("Vr");
                _Pole.PROP_Dp        = MET_PoleDat("Dp");
                _Pole.PROP_Diag      = MET_PoleStr("D");
                _Pole.PROP_Profil    = MET_PoleStr("Profil");
                _Pole.PROP_CodApstac = MET_PoleDec("CodApstac");
                _Pole.PROP_Kdl       = MET_PoleStr("kdl");
                _Pole.PROP_IsDelete  = MET_PoleInt("xDelete") == 1;
                _Pole.PROP_xLog      = MET_PoleStr("xLog");
                // В зависимости от типа: поликлинника/стационар/параклиника
                switch (_Pole.PROP_Type)
                {
                case eTipDocum.Pol:
                    _Icon               = "mnPosPolikl";
                    _Pole.PROP_Date     = MET_PoleDat("Dp");
                    _Pole.PROP_Document = MET_PoleStr("Profil");
                    _Pole.PROP_Vrach    = MET_PoleStr("Vr");
                    _Pole.PROP_Diag     = MET_PoleStr("D");
                    // Цвет
                    if (MET_PoleInt("pCount") > 0)
                    {
                        _Pole.PROP_Background = Brushes.Azure;
                    }
                    // Тип посещения (разовое, обращение)
                    _Pole.PROP_Metca = MET_PoleStr("Metka");
                    // Если нет протоколов, то
                    if (MET_PoleInt("pCount") == 0)
                    {
                        _Pole.PROP_Metca += " (без протоколов)";
                        _Pole.IsEnabled   = false;
                    }
                    // Ставим значек консилиум
                    if (MET_PoleStr("ImageInform") == "консилиум")
                    {
                        _Pole.MET_LoadIconInform("mnKons", "Наличие консилиума");
                    }
                    _Pole.Event_OpenNewPoleHistory = MET_OpenPolicl;
                    break;

                case eTipDocum.Stac:
                    _Icon = MET_PoleStr("ImageInform");
                    string _Dk = MET_PoleDat("Dk");
                    if (_Dk == "")
                    {
                        _Dk = "(по сегодня)";
                    }
                    _Pole.PROP_Date     = MET_PoleDat("Dp") + " - " + _Dk;
                    _Pole.PROP_Document = MET_PoleStr("Profil");
                    _Pole.PROP_Vrach    = MET_PoleStr("Vr");
                    _Pole.PROP_Diag     = MET_PoleStr("D");
                    // Цвет
                    if (MET_PoleInt("pCount") > 0)
                    {
                        _Pole.PROP_Background = Brushes.AliceBlue;
                    }
                    // Если нет протоколов, то
                    if (MET_PoleInt("pCount") == 0)
                    {
                        _Pole.PROP_Metca = "(без протоколов)";
                        _Pole.IsEnabled  = false;
                    }
                    _Pole.Event_OpenNewPoleHistory = MET_OpenStac;
                    break;

                case eTipDocum.Paracl:
                    _Icon                   = "mnParacl";
                    _Pole.PROP_Date         = MET_PoleDat("Dp");
                    _Pole.PROP_Document     = MET_PoleStr("Profil");
                    _Pole.PROP_Vrach        = MET_PoleStr("Vr");
                    _Pole.PROP_Background   = Brushes.BlanchedAlmond;
                    _Pole.PROP_NumerShablon = MET_PoleInt("pCount");
                    _Pole.PROP_IsTexted     = true;
                    _Pole.PROP_DocumHistory = new UserDocument(_Pole.PROP_Type);
                    _Pole.PROP_DocumHistory.PROP_Protokol = UserProtokol.MET_FactoryProtokol(_Pole.PROP_Type, (int)_Pole.PROP_Cod);
                    _Pole.MET_Inicial();
                    _Pole.Event_OpenNewPoleHistory = MET_Protokol;
                    // Костыль для физиологов
                    if (_Pole.PROP_NumerShablon > 300 & _Pole.PROP_NumerShablon < 400)
                    {
                        _Icon = "mnPhysiology";
                        _Pole.PROP_Background = Brushes.LightYellow;
                    }
                    break;
                }
                // Иконка
                _Pole.MET_LoadIcon(_Icon);
                // Если есть результат КДЛ, то окрашиваем это поле в зависимости от результата
                if (_Pole.PROP_Kdl != "" && _Pole.PROP_Type != eTipDocum.Paracl)
                {
                    MET_ColorKDL(_Pole);
                }
                // Добавляем в очередь
                PRO_PoleHistory.Add(_Pole);
                // Добавляем поле в параграф
                PRO_Paragraph.Inlines.Add(_Pole);
                if (_Pole.PROP_Kdl != "" && _Pole.PROP_Type == eTipDocum.Paracl)
                {
                    var _KDL = MET_GreatKDL(_Pole);
                    // Добавляем в очередь
                    PRO_PoleHistory.Add(_KDL);
                    // Добавляем поле в параграф
                    PRO_Paragraph.Inlines.Add(_KDL);
                }
                //PRO_Paragraph.Inlines.Add(new LineBreak());                     // разрыв строки
            }
        }