/// <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()); // разрыв строки } }