diff --git a/PEIS/Entity/DictHazardTypecs.cs b/PEIS/Entity/DictHazardTypecs.cs index 89b2140..7ae8b91 100644 --- a/PEIS/Entity/DictHazardTypecs.cs +++ b/PEIS/Entity/DictHazardTypecs.cs @@ -38,5 +38,18 @@ namespace PEIS.Entity public string Describe { get; set; } + + #region Other + + [RefFlag(true)] + public int total { get; set; } + + [RefFlag(true)] + public int sign { get; set; } + + [RefFlag(true)] + public double percent { get; set; } + + #endregion } } diff --git a/PEIS/Entity/Hospital.cs b/PEIS/Entity/Hospital.cs index 804ce97..a5627c4 100644 --- a/PEIS/Entity/Hospital.cs +++ b/PEIS/Entity/Hospital.cs @@ -12,5 +12,7 @@ namespace PEIS.Entity public String Description { get; set; } public String Tel { get; set; } public String DoctCode { get; set; } + public String DoctName { get; set; } + } } \ No newline at end of file diff --git a/PEIS/PEIS.csproj b/PEIS/PEIS.csproj index 8ab1858..a7b2047 100644 --- a/PEIS/PEIS.csproj +++ b/PEIS/PEIS.csproj @@ -747,7 +747,12 @@ Settings.settings True - + + Always + + + Always + Always diff --git a/PEIS/ReportFiles/CAPReport.frx b/PEIS/ReportFiles/CAPReport.frx index d328f2e..6379d70 100644 --- a/PEIS/ReportFiles/CAPReport.frx +++ b/PEIS/ReportFiles/CAPReport.frx @@ -1,5 +1,5 @@  - + using System; using System.Collections; using System.Collections.Generic; @@ -585,10 +585,10 @@ namespace FastReport - - + + - + @@ -602,8 +602,8 @@ namespace FastReport - - + + @@ -620,7 +620,7 @@ namespace FastReport - + diff --git a/PEIS/ReportFiles/CATReport.frx b/PEIS/ReportFiles/CATReport.frx new file mode 100644 index 0000000..eaf4fb2 --- /dev/null +++ b/PEIS/ReportFiles/CATReport.frx @@ -0,0 +1,187 @@ + + + using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Windows.Forms; +using System.Drawing; +using System.Data; +using FastReport; +using System.Linq; +using FastReport.Data; +using FastReport.Dialog; +using FastReport.Barcode; +using FastReport.Table; +using FastReport.Utils; + +namespace FastReport +{ + public class ReportScript + { + + } +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PEIS/Utils/ReportHelper.cs b/PEIS/Utils/ReportHelper.cs index 6ed1c59..050bec7 100644 --- a/PEIS/Utils/ReportHelper.cs +++ b/PEIS/Utils/ReportHelper.cs @@ -437,6 +437,8 @@ namespace PEIS.Utils var lstLis = new ReportModel().GetLisResult(eid); var lstPacs = new ReportModel().GetPacsResult(eid); var lstPacsPhotos = new ReportModel().GetPacsPhoto(eid); + // 第三方报告 + var lstExts = new ReportModel().GetReportExt(eid); // 登记信息 rpt.SetParameterValue("PatientName", patient.Name); @@ -486,7 +488,7 @@ namespace PEIS.Utils //LIS SetDataSource(ref rpt, lstLis, "L", "LIS"); // PacsImage - SetDataSource(ref rpt, lstPacsPhotos, "I", "PACSImage"); + SetDataSource(ref rpt, lstPacsPhotos.Concat(lstExts.Where(w => w.ReportImg != null).Select(s => new Entity.Report { ReportImage = s.ReportImg })), "I", "PACSImage"); rpt.Prepare(); //准备 return rpt; } @@ -506,6 +508,7 @@ namespace PEIS.Utils var lstChildren = new ReportModel().GetFastResult(eid); var lstSummary = new TotalModel().GetSummary(eid); var lstConclusion = new ReportModel().GetExamConclusions(eid); + var dict = new Dictionary(); lstChildren.ForEach(item => { diff --git a/PEIS/View/EReport/TeamReportForm.cs b/PEIS/View/EReport/TeamReportForm.cs index 1c1a6f7..450b314 100644 --- a/PEIS/View/EReport/TeamReportForm.cs +++ b/PEIS/View/EReport/TeamReportForm.cs @@ -74,108 +74,15 @@ namespace PEIS.View.EReport OnGetOrgConclusions(_regInfo.ID); OnGetOrgCon(_regInfo.ID); - tReport = new FastReport.Report(); //实例化一个Report报表 - try + if (_regInfo.IsOccupational) { - var reportFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ReportFiles", "TReport.frx"); - //var reportFile = "D:/Code/project/PEIS/TReport.frx"; - tReport.Load(reportFile); - tReport.Preview = ReportPreview; //设置报表的Preview控件 - - #region// 注入数据源 - - // 登记信息 - tReport.SetParameterValue("OrgName", _regInfo.Name); - tReport.SetParameterValue("OrgEId", _regInfo.ID); - tReport.SetParameterValue("ExamDate", _regInfo.ExamDate?.ToShortDateString()); - tReport.SetParameterValue("Contactor", _regInfo.Contactor1); - tReport.SetParameterValue("Tel", _regInfo.Tel1); - tReport.SetParameterValue("Address", _regInfo.Address); - tReport.SetParameterValue("HospitalName", Global._hospital.Name); - tReport.SetParameterValue("SumPerson", _sumInfo?.SumPerson); - tReport.SetParameterValue("SumExamPerson",_sumInfo?.SumExamPerson); - tReport.SetParameterValue("ExamPercent", _sumInfo?.ExamPercent); - tReport.SetParameterValue("SumMale", _sumInfo?.SumMale); - tReport.SetParameterValue("SumFemale",_sumInfo?.SumFemale); - tReport.SetParameterValue("MaxAge", _sumInfo?.MaxAge); - tReport.SetParameterValue("MinAge", _sumInfo?.MinAge); - - //收费列表 - tReport.RegisterData(_lstOrgFeeItems, "F"); - DataBand feeItems = tReport.Report.FindObject("FeeItems") as DataBand; - feeItems.DataSource = tReport.Report.GetDataSource("F"); - tReport.GetDataSource("F").Enabled = true; - - //异常结果 - tReport.RegisterData(_lstConclusions.Take(10), "C"); - DataBand conclusion = tReport.Report.FindObject("Conclusion") as DataBand; - conclusion.DataSource = tReport.Report.GetDataSource("C"); - tReport.GetDataSource("C").Enabled = true; - - //男性异常结果 - tReport.RegisterData(_lstConclusions.OrderByDescending(o => o.SumMalePercent).ToList().Take(10), "B"); - DataBand SumMale = tReport.Report.FindObject("SumMale") as DataBand; - SumMale.DataSource = tReport.Report.GetDataSource("B"); - tReport.GetDataSource("B").Enabled = true; - - //女性异常结果 - tReport.RegisterData(_lstConclusions.OrderByDescending(o => o.SumFemalePercent).ToList().Take(10), "G"); - DataBand SumFemale = tReport.Report.FindObject("SumFemale") as DataBand; - SumFemale.DataSource = tReport.Report.GetDataSource("G"); - tReport.GetDataSource("G").Enabled = true; - - tReport.RegisterData(_lstCon, "S"); - DataBand S = tReport.Report.FindObject("StatisticsDetail") as DataBand; - S.DataSource = tReport.Report.GetDataSource("S"); - tReport.GetDataSource("S").Enabled = true; - - - var newData = new List(); - foreach (var item in _lstConclusions.Take(10)) - { - newData.Add(new ExamConclusion() - { - Conclusion = item.Conclusion, - ResultFlag = "未检出", - SumWarn = item.SumPerson - item.SumWarn, - Suggestion = item.Suggestion - }); - } - - - var index = 0; - foreach (var group in _lstConclusions.Take(10).Concat(newData).GroupBy(g => new { g.Conclusion, g.Suggestion }).ToList()) - { - index++; - tReport.RegisterData(group, "Z" + index); - } - - - if (index != 10) - { - List List = new List - { - new ExamConclusion() { Conclusion = "填充", SumWarn = 0, ResultFlag = "" }, - new ExamConclusion() { Conclusion = "填充", SumWarn = 0, ResultFlag = "" } - }; - - for (int i = index + 1; i < 11; i++) - { - tReport.RegisterData(List, "Z" + i); - } - } - - - #endregion - - tReport.Prepare(); //准备 - tReport.ShowPrepared(); //显示 + OccupationalReport(); } - catch (Exception ex) + else { - Global.Msg("Info", ex.Message); - Console.WriteLine(ex.Message); + GeneralReport(); } + } private void RefreshBtn_Click(object sender, EventArgs e) @@ -351,6 +258,197 @@ namespace PEIS.View.EReport } #endregion + #region 报告 + + private void OccupationalReport() + { + tReport = new FastReport.Report(); //实例化一个Report报表 + + try + { + var reportFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ReportFiles", "CATReport.frx"); + //var reportFile = "D:/Code/project/PEIS/TReport.frx"; + tReport.Load(reportFile); + tReport.Preview = ReportPreview; //设置报表的Preview控件 + + // 注入数据 + tReport.SetParameterValue("OrgName", _regInfo.Name); + tReport.SetParameterValue("HospitalName", Global._hospital.Name); + tReport.SetParameterValue("Tel", Global._hospital.Tel); + tReport.SetParameterValue("Contacter", Global._hospital.DoctName); + tReport.SetParameterValue("Address", Global._hospital.Description); + tReport.SetParameterValue("Postcode", Global._hospital.Code); + tReport.SetParameterValue("JobStatus", "在岗期间职业健康体检"); + + //人员数据 + var OrgPatient = DAOHelp.GetDataBySQL($@"SELECT ID,Name,HazardFactors FROM Enrollment_Patient WHERE OEID = {_regInfo.ID}"); + + // 接害因素 + var HazardFactors = DAOHelp.GetDataBySQL($@"SELECT STUFF((SELECT '; ' + HazardFactors FROM Enrollment_OrgGroup WHERE OID = {_regInfo.ID} FOR XML PATH('')), 1, 2, '') AS HazardFactors")?[0].HazardFactors.Split(';').Select(s => s.Trim()).ToList(); + + var _lsthazard = new List(); + if(HazardFactors.Count != 0) + { + foreach (var item in HazardFactors) + { + _lsthazard.AddRange(DAOHelp.GetDataBySQL($@"SELECT NAME,Standard,[Describe] FROM Dict_HazardType WHERE NAME = '{item}' GROUP BY Name,Standard,[Describe] ORDER BY Standard").ToList()); + } + + + foreach (var item in HazardFactors) + { + var total = DAOHelp.GetDataBySQL($@"SELECT ID,Name,HazardFactors FROM Enrollment_Patient WHERE OEID = {_regInfo.ID} AND HazardFactors LIKE '%{item}%'").Count; + var sign = DAOHelp.GetDataBySQL($@"SELECT ID,Name,HazardFactors FROM Enrollment_Patient WHERE OEID = {_regInfo.ID} AND HazardFactors LIKE '%{item}%' AND SignTime IS NOT NULL").Count; + var percent = Math.Round((double)sign / (double)total, 2); + + foreach (var hazard in _lsthazard.Where(w => w.Name == item)) + { + hazard.total = total; + hazard.sign = sign; + hazard.percent = percent; + } + } + } + + tReport.RegisterData(_lsthazard, "H"); + DataBand HazardData = tReport.Report.FindObject("HazardData") as DataBand; + HazardData.DataSource = tReport.Report.GetDataSource("H"); + tReport.GetDataSource("H").Enabled = true; + + tReport.RegisterData(_lsthazard, "H1"); + DataBand HazardData1 = tReport.Report.FindObject("HazardData1") as DataBand; + HazardData1.DataSource = tReport.Report.GetDataSource("H1"); + tReport.GetDataSource("H1").Enabled = true; + + tReport.RegisterData(_lsthazard, "H2"); + DataBand HazardData2 = tReport.Report.FindObject("HazardData2") as DataBand; + HazardData2.DataSource = tReport.Report.GetDataSource("H2"); + tReport.GetDataSource("H2").Enabled = true; + + tReport.RegisterData(_lsthazard, "H3"); + DataBand HazardData3 = tReport.Report.FindObject("HazardData3") as DataBand; + HazardData3.DataSource = tReport.Report.GetDataSource("H3"); + tReport.GetDataSource("H3").Enabled = true; + + tReport.Prepare(); //准备 + tReport.ShowPrepared(); //显示 + } + catch (Exception ex) + { + Global.Msg("Info", ex.Message); + Console.WriteLine(ex.Message); + } + } + + private void GeneralReport() + { + + tReport = new FastReport.Report(); //实例化一个Report报表 + try + { + var reportFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ReportFiles", "TReport.frx"); + //var reportFile = "D:/Code/project/PEIS/TReport.frx"; + tReport.Load(reportFile); + tReport.Preview = ReportPreview; //设置报表的Preview控件 + + #region// 注入数据源 + + // 登记信息 + tReport.SetParameterValue("OrgName", _regInfo.Name); + tReport.SetParameterValue("OrgEId", _regInfo.ID); + tReport.SetParameterValue("ExamDate", _regInfo.ExamDate?.ToShortDateString()); + tReport.SetParameterValue("Contactor", _regInfo.Contactor1); + tReport.SetParameterValue("Tel", _regInfo.Tel1); + tReport.SetParameterValue("Address", _regInfo.Address); + tReport.SetParameterValue("HospitalName", Global._hospital.Name); + tReport.SetParameterValue("SumPerson", _sumInfo?.SumPerson); + tReport.SetParameterValue("SumExamPerson", _sumInfo?.SumExamPerson); + tReport.SetParameterValue("ExamPercent", _sumInfo?.ExamPercent); + tReport.SetParameterValue("SumMale", _sumInfo?.SumMale); + tReport.SetParameterValue("SumFemale", _sumInfo?.SumFemale); + tReport.SetParameterValue("MaxAge", _sumInfo?.MaxAge); + tReport.SetParameterValue("MinAge", _sumInfo?.MinAge); + + //收费列表 + tReport.RegisterData(_lstOrgFeeItems, "F"); + DataBand feeItems = tReport.Report.FindObject("FeeItems") as DataBand; + feeItems.DataSource = tReport.Report.GetDataSource("F"); + tReport.GetDataSource("F").Enabled = true; + + //异常结果 + tReport.RegisterData(_lstConclusions.Take(10), "C"); + DataBand conclusion = tReport.Report.FindObject("Conclusion") as DataBand; + conclusion.DataSource = tReport.Report.GetDataSource("C"); + tReport.GetDataSource("C").Enabled = true; + + //男性异常结果 + tReport.RegisterData(_lstConclusions.OrderByDescending(o => o.SumMalePercent).ToList().Take(10), "B"); + DataBand SumMale = tReport.Report.FindObject("SumMale") as DataBand; + SumMale.DataSource = tReport.Report.GetDataSource("B"); + tReport.GetDataSource("B").Enabled = true; + + //女性异常结果 + tReport.RegisterData(_lstConclusions.OrderByDescending(o => o.SumFemalePercent).ToList().Take(10), "G"); + DataBand SumFemale = tReport.Report.FindObject("SumFemale") as DataBand; + SumFemale.DataSource = tReport.Report.GetDataSource("G"); + tReport.GetDataSource("G").Enabled = true; + + tReport.RegisterData(_lstCon, "S"); + DataBand S = tReport.Report.FindObject("StatisticsDetail") as DataBand; + S.DataSource = tReport.Report.GetDataSource("S"); + tReport.GetDataSource("S").Enabled = true; + + + var newData = new List(); + foreach (var item in _lstConclusions.Take(10)) + { + newData.Add(new ExamConclusion() + { + Conclusion = item.Conclusion, + ResultFlag = "未检出", + SumWarn = item.SumPerson - item.SumWarn, + Suggestion = item.Suggestion + }); + } + + + var index = 0; + foreach (var group in _lstConclusions.Take(10).Concat(newData).GroupBy(g => new { g.Conclusion, g.Suggestion }).ToList()) + { + index++; + tReport.RegisterData(group, "Z" + index); + } + + + if (index != 10) + { + List List = new List + { + new ExamConclusion() { Conclusion = "填充", SumWarn = 0, ResultFlag = "" }, + new ExamConclusion() { Conclusion = "填充", SumWarn = 0, ResultFlag = "" } + }; + + for (int i = index + 1; i < 11; i++) + { + tReport.RegisterData(List, "Z" + i); + } + } + + + #endregion + + tReport.Prepare(); //准备 + tReport.ShowPrepared(); //显示 + } + catch (Exception ex) + { + Global.Msg("Info", ex.Message); + Console.WriteLine(ex.Message); + } + } + + #endregion + protected override object CreatePresenter() { return new TReportPresenter(this); diff --git a/PEIS/View/Enrollment/EnrollmentOrgForm.cs b/PEIS/View/Enrollment/EnrollmentOrgForm.cs index 799d990..63e338f 100644 --- a/PEIS/View/Enrollment/EnrollmentOrgForm.cs +++ b/PEIS/View/Enrollment/EnrollmentOrgForm.cs @@ -336,6 +336,15 @@ namespace PEIS.View.Enrollment var IsOccupational = Convert.ToBoolean(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "IsOccupational")); foreach (var item in _lstGroup) { + if (IsOccupational) + { + if(string.IsNullOrEmpty(item.JobStatus) || string.IsNullOrEmpty(item.HazardFactors)) + { + Global.Msg("info", "请选择在岗情况或接害因素"); + return; + } + } + item.Sex = item.Sex == null ? "0" : item.Sex.Equals("男") ? "1" : item.Sex.Equals("女") ? "2" : "0"; item.Type = IsOccupational ? "职业体检" : "健康体检"; if(item.ID != 0) diff --git a/PEIS/View/Enrollment/NewEnrollmentPersonForm.Designer.cs b/PEIS/View/Enrollment/NewEnrollmentPersonForm.Designer.cs index a3b4e20..ff60f43 100644 --- a/PEIS/View/Enrollment/NewEnrollmentPersonForm.Designer.cs +++ b/PEIS/View/Enrollment/NewEnrollmentPersonForm.Designer.cs @@ -155,7 +155,7 @@ this.Company.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); this.Company.Name = "Company"; this.Company.Size = new System.Drawing.Size(437, 23); - this.Company.TabIndex = 11; + this.Company.TabIndex = 16; // // label3 // @@ -215,7 +215,7 @@ this.Description.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); this.Description.Name = "Description"; this.Description.Size = new System.Drawing.Size(437, 23); - this.Description.TabIndex = 12; + this.Description.TabIndex = 17; // // RemarkLabel // @@ -246,7 +246,7 @@ this.Address1.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); this.Address1.Name = "Address1"; this.Address1.Size = new System.Drawing.Size(437, 23); - this.Address1.TabIndex = 10; + this.Address1.TabIndex = 15; // // Contactor2 // @@ -578,7 +578,7 @@ this.HazardYears.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); this.HazardYears.Name = "HazardYears"; this.HazardYears.Size = new System.Drawing.Size(172, 23); - this.HazardYears.TabIndex = 123; + this.HazardYears.TabIndex = 13; // // JobTypes // @@ -588,7 +588,7 @@ this.JobTypes.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); this.JobTypes.Name = "JobTypes"; this.JobTypes.Size = new System.Drawing.Size(172, 23); - this.JobTypes.TabIndex = 122; + this.JobTypes.TabIndex = 11; // // label7 // @@ -621,7 +621,7 @@ this.JobStatusComboBox.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); this.JobStatusComboBox.Name = "JobStatusComboBox"; this.JobStatusComboBox.Size = new System.Drawing.Size(176, 25); - this.JobStatusComboBox.TabIndex = 120; + this.JobStatusComboBox.TabIndex = 10; // // label9 // @@ -660,7 +660,7 @@ this.HazardFactorsComboBox.Properties.SelectAllItemCaption = "(全选)"; this.HazardFactorsComboBox.Properties.SeparatorChar = ';'; this.HazardFactorsComboBox.Size = new System.Drawing.Size(437, 24); - this.HazardFactorsComboBox.TabIndex = 128; + this.HazardFactorsComboBox.TabIndex = 14; // // label11 // @@ -681,7 +681,7 @@ this.WorkYears.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); this.WorkYears.Name = "WorkYears"; this.WorkYears.Size = new System.Drawing.Size(176, 23); - this.WorkYears.TabIndex = 130; + this.WorkYears.TabIndex = 12; // // NewEnrollmentPersonForm // diff --git a/PEIS/View/Enrollment/NewEnrollmentPersonForm.cs b/PEIS/View/Enrollment/NewEnrollmentPersonForm.cs index 498e4e1..7013d08 100644 --- a/PEIS/View/Enrollment/NewEnrollmentPersonForm.cs +++ b/PEIS/View/Enrollment/NewEnrollmentPersonForm.cs @@ -202,7 +202,11 @@ namespace PEIS.View.Enrollment JobStatusComboBox.SelectedValue = item?.JobStatus ?? "岗前"; WorkYears.Text = item?.WorkYears; HazardYears.Text = item?.HazardYears; - HazardFactorsComboBox.SetEditValue(item?.HazardFactors.Split(';').Select(s => (object)s.Trim()).ToList()); + + if (item.ExamType.Contains("职业")) + { + HazardFactorsComboBox.SetEditValue(item?.HazardFactors.Split(';').Select(s => (object)s.Trim()).ToList()); + } OnGetPid(); } @@ -282,6 +286,42 @@ namespace PEIS.View.Enrollment return; } + var ExamType = ExamTypeComboBox.SelectedValue?.ToString(); + + if (ExamType.Contains("职业")) + { + if(string.IsNullOrEmpty(JobTypes.Text.Trim())) + { + Global.Msg("err", "请输入工种!"); + return; + } + + if (string.IsNullOrEmpty(WorkYears.Text.Trim())) + { + Global.Msg("err", "请输入工龄!"); + return; + } + + if (string.IsNullOrEmpty(HazardYears.Text.Trim())) + { + Global.Msg("err", "请输入接害工龄!"); + return; + + } + + if (string.IsNullOrEmpty(JobStatusComboBox.SelectedValue?.ToString().Trim())) + { + Global.Msg("err", "请选择工作情况!"); + return; + } + + if (string.IsNullOrEmpty(HazardFactorsComboBox.Text.Trim())) + { + Global.Msg("err", "请选择接害因素!"); + return; + } + } + EnrollmentPatient item = new EnrollmentPatient() { Name = NameTextBox.Text.Trim(), @@ -308,7 +348,7 @@ namespace PEIS.View.Enrollment SpellCode = PingYinHelper.GetTotalPingYin(NameTextBox.Text.Trim()).FirstPingYin.Count == 0 ? null : PingYinHelper.GetTotalPingYin(NameTextBox.Text.Trim()).FirstPingYin[0] }; - var ExamType = ExamTypeComboBox.SelectedValue?.ToString(); + if (ExamType.Contains("职业")) { item.JobTypes = JobTypes.Text.Trim(); diff --git a/PEIS/View/Enrollment/NewEnrollmentPersonForm.resx b/PEIS/View/Enrollment/NewEnrollmentPersonForm.resx index 8646221..b7b2951 100644 --- a/PEIS/View/Enrollment/NewEnrollmentPersonForm.resx +++ b/PEIS/View/Enrollment/NewEnrollmentPersonForm.resx @@ -120,52 +120,52 @@ - iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAH1JREFUSEvt - lEEKgDAMBPNJf5GX+T+9aiM5REhDVlPx0AGhbXan4KE0+R8787Ixr7pNIx3p6raPBNt3IJfAHaSAZG9k - iplMSCSIZhCeyDt7hRXatY5rMOJ6uTD0AiOv/0We0Dt7RCSKZikygkzGBSki2Qu40IA6w5/ryccQnexo - 4OWtCNeHAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAHhJREFUSEvt + lEEOgCAMBPmkv9iX+T+8ampigtjUrlLCgTm2u9OEAylNhmMDlgys9fwN6Ui3nj+QYAZ25gjdYQpM9oan + 6MmYWAJrR6GJtNkvSmFz+UUhbi8XQg+EPpEm1GafsETWzoVH4MmoMEUme0IX2E74dz3pzgHsaODlqTYF + xgAAAABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAPJJREFUSEtj - GAWjgCRgP/9/KJRJfWA/73+kw7z//4GWmEKFqAeAhsaCDAfiy3az/2tChakDgC5PhBp+3m7+f1WoMHUA - 0OWpUMPP2Mz7rwQVpg4AujwTavgJl4X/5aDChIHD3P8NUCZOAHR5Ltjwuf+POE3/Lw0VJgyAmtKhGnFa - AnR5IdTlB5xn/xeHChMPgBpX4bIE6PJSqNwe54X/haHCpAO4JfP/10OFQC6vBIvN+78DKC4AFSYfwC0B - +gTo8looe4vDqv88UCWUA7glELzBsu8/J1SKegBsyfz/a4xn/meFCtEANPxngrJGwShABwwMAJBYlx6C - WXdWAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAPhJREFUSEvt + jyFLg1EUhodgEBYEg0EwDBbMsiCMnYvbX1hYMBhEDAsGg2Fsv2BVZOwcVseCYcFgWDAYBIM/6BHn3Yce + +FB3F78HLlzOc+/73lsqFRT8BzHafrYxROkEBTFq3iUjxtlneFDeGyOOvE9ClPMY/tYwqt4nIcZFDH+t + KxXvkxDlKoa/tCYcep9LGDPwM48Y3WX4mOfTOw68zyUol/Fiboko1/Hli+aIfe9/JSjTvBIxbqJ7ak7Y + 8/7PZCVGfzUT5Ta+/DEYuz9vrMH3n4jRi/t5mFL2Z9cmK/laDydDdvyZZJYlxuz4nm3vNseALT8qKMj4 + AJBYlx7zXbLXAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAMVJREFUSEvt - lM0NwjAMhTMBBxYiPVXMwAYsAVdmANILe2Q0U7sOSVVHcRQqOPRJn5T678ltFbPpf9Q/YG+fcBq5ttA5 - 6I8v2PHYqG6As3UA3+Dg4MZjo8aEp4I72CYmE89jo4IBnYXVESosSGcQtpmzbBKUrcUgJpOzT9amZyos - CGeItTykaPCJCXCv2iC8msBksIwH0nzBQPjACOUGuBC5vMagRSoDPlfDvWoDLKxBb9CiooH0+1WRM1j9 - slv9ut70IxnzBoJVbPdrwLwAAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAALlJREFUSEvt + lMENwjAMRTMBBxbCPVXMwAYs0V6ZAZpe2COjfdSUVsV1FEemgkO/9KW0if1kO4pzu/5G9QNH6nChDq3F + lUd9fuLA87uqx5U88A2fPG48vyOPEA/cQSaPkMDzz4C4FkofzGMk6QBTNZ9eBwlKnhUAYVF2/OYxksyA + Vc8XfseqAWKLhP/SfgYgDHgaMvVoolP7GoBFKsA8g0KXAniPc9YDLMoC+NUrdgqw+WO3+XO962d6AYJV + bPcLpuzLAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAARhJREFUSEvt - VLEOwVAU7aeYDH7Apm2I0WawkYjNJDFbfYCxbSQmiVHY/IDFF13nvhx9RFVfEQMnuWnfufee09v3Wu/3 - EMRyyAuWlQdEJC9Y9gUEiVT8SBZ4iszRC0ckM9WirAXIBAU6ZnZj8RDVoqzFJcllaRgDaHFp8cygEUnb - T2QcxjJCXYv0HUoZ4L322WgD75rpGzBf3ABPPGWTik78WOaXNSbqsiwFc8UNwB2Vh1GdlNdcSlU5nLoT - qRTKI5wMMhtc6/MazATNWGqk3jyBfjjalMhO9wD3Q+zDVjlcByxLYWpdDBQQX7HxOvZM34A5NwPFR78D - Fzw04I/OJF8M3ZsNZS3CSDpImhPzYqxh0KPsH1+H550BOIr69OqcMmkAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAQBJREFUSEvt + VLsKwkAQzKdYWfgDdt4dEUs7CzsFsbMSrG39AMvbQ7ASLEU7f8DGLxrZmIO40cglPgodmCJ7szPZu0ui + 6OegCcciSn0wNAFFlPrPQTvUlMVSjhxMizl7SX8OcOmY+aYwgr2kvz+8ynvoX1LWnwa0LDrKYWIIY01o + y3WPUgHaYiBvC++11DGCAwxhljGdKsLCPyuHntQHB2jCieuG0PS1eIV6EmBxvlWXC7jbEKovakgmiAkN + X3vtBPzhXO/2ns9AE0aKsEsCCMOcPjSAoR3WaWOWB6ljlApgvPU7CMHDgPRHlyxWJJ/NVvpHxqLrb0xF + bhShL/3/+B4uOIr69HXlzckAAAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAb5JREFUSEvl - lL1LA0EQxVMpiJYWWomKgoUg6czXXkTFTgRBC0UQrCwsLOwMtoKCYBHM3UWDTRrRwsImhWgvCDaChf9D - LJ9v1zm5y8d5SWzEHwzk3r6Z2Z3bS+x/kLYxpxzsKhdXjONMAWvxPHpkuTNYuMRAg3hNFzAltvZgkUMp - dp91MK1O0ZstYkTZyImOVAkDYm+NjINVXcBycCRSAHUGZZq4uBGpNZhcZnI15aBfpDq8k1hFxEWKDpPf - 2eBZHhviO+WWSNFh4pvl4kkeG8L1JTMmGxsiRYfJF0yuqhJGRarDG9HMOSZFig6TN83uHNyKFEAVsCjr - jyK1TsbGtS6iT8MXmUjY6ONux6htS3FYNsbF3h7+Yv7gC37gJRgSW2fwlsybefPOs3Bej2+5jC5Zbh8W - 2uMI1idyv1CsFr7EFW8cszYGRW6IOZ0Oft0ihUNzkoU/zKxdpERuiimuNxOlQdLBMM0vJuGHD8j8H+nw - NfBCLEEWTtBN450282oeiNwU+iqmcG2woViCcGFHG3hTLkUKhbdq3+zeO4H3O6TBlzFCSIrhO6/ZaPzw - Wp7QrI8eGmI3SINKpAZ/jFjsE9vLiZmE0xwHAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAbJJREFUSEvl + lLFrVEEQh1MpiJYWWgWVCBaCpDO5vNmEGOxCIKCFIghWKVKksMuRVlAIWITczl7usEkjSZEiTQrRXhBs + BAv/h1h+8pbdsAyn712wET+YZn+zM29+zNuJif+COc8DUTYk8F4Cb6oeT6Z3uGTzzoUoQ1EYEd/metyz + +WMhyqtU7MO8cl/ecnm+z03xdHOjzpBr9l4rKuVxXcApr61WI7tIbBI4tForRNmXwGlHuWq1TJ7E9Zm2 + WiPi+SGBL/a8pJjyhdUaEeW7C3y25yUusBJt8jyzWiMuMBDlVIbcslomW7Swx12rNSKe52lTjqxWIz2W + k/7Jaq2pPAfR48DA9ZmZ8VxZ2GNKlLW8ps5z294bi7JYGZXyUQKTNv9cOGUp+h04rJSd2r7VfS7YvLER + z0vneXqn+xeKWaTHo2zHoue61UvidHXsIlYbiXhmRfkZvQ50rG45e5vaNJhVbojytc0PFN+jOooGOWxu + 5OE2F0U5Tqu5ZXWLKCd2u9KHdW1uRDzraQXfWW0UEtg88z8VzmFzI+U73xQj7/3OmhLn2U6j/zHKO6nB + SasG/xy/ANvLiZmkPPdDAAAAAElFTkSuQmCC