public override ReportResult Run(SavedReport report) { EliminationReportOptions standardOpts = (EliminationReportOptions)report.StandardReportOptions; ReportOptions options = report.ReportOptions; DistributionReportGenerator gen = new DistributionReportGenerator(); DiseaseRepository repo = new DiseaseRepository(); foreach (var disease in standardOpts.Diseases) { DiseaseDistroPc dd = repo.Create((DiseaseType)disease.Id); switch (disease.Id) { case (int)DiseaseType.Lf: AddIndicators(disease.Id, "DDLFPopulationAtRisk", dd, options); AddIndicators(disease.Id, "DDLFPopulationLivingInTheDistrictsThatAc", dd, options); break; case (int)DiseaseType.Trachoma: AddIndicators(disease.Id, "DDTraPopulationAtRisk", dd, options); AddIndicators(disease.Id, "DDTraPopulationLivingInAreasDistrict", dd, options); break; case (int)DiseaseType.Oncho: AddIndicators(disease.Id, "DDOnchoPopulationAtRisk", dd, options); AddIndicators(disease.Id, "DDOnchoPopulationLivingInTheDistrictsTha", dd, options); break; case (int)DiseaseType.STH: AddIndicators(disease.Id, "DDSTHPopulationAtRisk", dd, options); AddIndicators(disease.Id, "DDSTHPopulationLivingInTheDistrictsThatA", dd, options); break; case (int)DiseaseType.Schisto: AddIndicators(disease.Id, "DDSchistoPopulationAtRisk", dd, options); AddIndicators(disease.Id, "DDSchistoPopulationLivingInTheDistrictsT", dd, options); break; default: break; } } ReportResult result = gen.Run(report); // loop table, make sure column exists (with 0), sum other columns to good column and delete other columns if they have em. result.DataTableResults.Columns.Add(new DataColumn(TranslationLookup.GetValue("EliminationAtRisk"))); result.DataTableResults.Columns.Add(new DataColumn(TranslationLookup.GetValue("EliminationLiving"))); foreach (DataRow row in result.DataTableResults.Rows) { double totalAtRisk = 0, totalLiving = 0; totalAtRisk += GetColumnDouble(TranslationLookup.GetValue("DDLFPopulationAtRisk") + " - " + TranslationLookup.GetValue("LF"), result.DataTableResults, row); totalAtRisk += GetColumnDouble(TranslationLookup.GetValue("DDTraPopulationAtRisk") + " - " + TranslationLookup.GetValue("Trachoma"), result.DataTableResults, row); totalAtRisk += GetColumnDouble(TranslationLookup.GetValue("DDOnchoPopulationAtRisk") + " - " + TranslationLookup.GetValue("Oncho"), result.DataTableResults, row); totalAtRisk += GetColumnDouble(TranslationLookup.GetValue("DDSTHPopulationAtRisk") + " - " + TranslationLookup.GetValue("STH"), result.DataTableResults, row); totalAtRisk += GetColumnDouble(TranslationLookup.GetValue("DDSchistoPopulationAtRisk") + " - " + TranslationLookup.GetValue("Schisto"), result.DataTableResults, row); totalLiving += GetColumnDouble(TranslationLookup.GetValue("DDLFPopulationLivingInTheDistrictsThatAc") + " - " + TranslationLookup.GetValue("LF"), result.DataTableResults, row); totalLiving += GetColumnDouble(TranslationLookup.GetValue("DDTraPopulationLivingInAreasDistrict") + " - " + TranslationLookup.GetValue("Trachoma"), result.DataTableResults, row); totalLiving += GetColumnDouble(TranslationLookup.GetValue("DDSTHPopulationLivingInTheDistrictsThatA") + " - " + TranslationLookup.GetValue("STH"), result.DataTableResults, row); totalLiving += GetColumnDouble(TranslationLookup.GetValue("DDOnchoPopulationLivingInTheDistrictsTha") + " - " + TranslationLookup.GetValue("Oncho"), result.DataTableResults, row); totalLiving += GetColumnDouble(TranslationLookup.GetValue("DDSchistoPopulationLivingInTheDistrictsT") + " - " + TranslationLookup.GetValue("Schisto"), result.DataTableResults, row); row[TranslationLookup.GetValue("EliminationAtRisk")] = totalAtRisk; row[TranslationLookup.GetValue("EliminationLiving")] = totalLiving; } TryRemoveColumn(TranslationLookup.GetValue("DDLFPopulationAtRisk") + " - " + TranslationLookup.GetValue("LF"), result.DataTableResults); TryRemoveColumn(TranslationLookup.GetValue("DDLFPopulationLivingInTheDistrictsThatAc") + " - " + TranslationLookup.GetValue("LF"), result.DataTableResults); TryRemoveColumn(TranslationLookup.GetValue("DDTraPopulationAtRisk") + " - " + TranslationLookup.GetValue("Trachoma"), result.DataTableResults); TryRemoveColumn(TranslationLookup.GetValue("DDOnchoPopulationAtRisk") + " - " + TranslationLookup.GetValue("Oncho"), result.DataTableResults); TryRemoveColumn(TranslationLookup.GetValue("DDSTHPopulationAtRisk") + " - " + TranslationLookup.GetValue("STH"), result.DataTableResults); TryRemoveColumn(TranslationLookup.GetValue("DDSchistoPopulationAtRisk") + " - " + TranslationLookup.GetValue("Schisto"), result.DataTableResults); TryRemoveColumn(TranslationLookup.GetValue("DDTraPopulationLivingInAreasDistrict") + " - " + TranslationLookup.GetValue("Trachoma"), result.DataTableResults); TryRemoveColumn(TranslationLookup.GetValue("DDSTHPopulationLivingInTheDistrictsThatA") + " - " + TranslationLookup.GetValue("STH"), result.DataTableResults); TryRemoveColumn(TranslationLookup.GetValue("DDOnchoPopulationLivingInTheDistrictsTha") + " - " + TranslationLookup.GetValue("Oncho"), result.DataTableResults); TryRemoveColumn(TranslationLookup.GetValue("DDSchistoPopulationLivingInTheDistrictsT") + " - " + TranslationLookup.GetValue("Schisto"), result.DataTableResults); result.ChartData = result.DataTableResults.Copy(); result.DataTableResults.Columns.Remove(TranslationLookup.GetValue("Type")); if (options.IsCountryAggregation) result.DataTableResults.Columns.RemoveAt(0); return result; }
protected ReportResult RunDistributionReport(SavedReport report, PersonsTreatedCoverageReportOptions standardOpts) { // Add the disease indicators to the report foreach (var disease in Diseases) { DiseaseDistroPc dd = DiseaseRepo.Create((DiseaseType)disease.Id); switch (disease.Id) { case (int)DiseaseType.Lf: AddIndicators(disease.Id, "DDLFPopulationAtRisk", dd, dd.Disease.DisplayName, dd.Disease.DisplayNameKey, report.ReportOptions); break; case (int)DiseaseType.Trachoma: AddIndicators(disease.Id, "DDTraPopulationAtRisk", dd, dd.Disease.DisplayName, dd.Disease.DisplayNameKey, report.ReportOptions); break; case (int)DiseaseType.Oncho: AddIndicators(disease.Id, "DDOnchoPopulationAtRisk", dd, dd.Disease.DisplayName, dd.Disease.DisplayNameKey, report.ReportOptions); break; case (int)DiseaseType.STH: AddIndicators(disease.Id, "DDSTHPopulationAtRisk", dd, dd.Disease.DisplayName, dd.Disease.DisplayNameKey, report.ReportOptions); break; case (int)DiseaseType.Schisto: AddIndicators(disease.Id, "DDSchistoPopulationAtRisk", dd, dd.Disease.DisplayName, dd.Disease.DisplayNameKey, report.ReportOptions); break; default: break; } } // Run the report DistributionReportGenerator gen = new DistributionReportGenerator(); ReportResult result = gen.Run(report); return result; }
public override ReportResult Run(SavedReport report) { EliminationReportOptions standardOpts = (EliminationReportOptions)report.StandardReportOptions; ReportOptions options = report.ReportOptions; DistributionReportGenerator gen = new DistributionReportGenerator(); DiseaseRepository repo = new DiseaseRepository(); DemoRepository demo = new DemoRepository(); foreach (var disease in standardOpts.Diseases) { DiseaseDistroPc dd = repo.Create((DiseaseType)disease.Id); switch (disease.Id) { case (int)DiseaseType.Lf: AddIndicators(disease.Id, "DDLFDiseaseDistributionPcInterventions", dd, options); break; case (int)DiseaseType.Trachoma: AddIndicators(disease.Id, "DDTraDiseaseDistributionPcInterventions", dd, options); break; case (int)DiseaseType.Oncho: AddIndicators(disease.Id, "DDOnchoDiseaseDistributionPcInterventio", dd, options); break; case (int)DiseaseType.STH: AddIndicators(disease.Id, "DDSTHDiseaseDistributionPcInterventions", dd, options); break; case (int)DiseaseType.Schisto: AddIndicators(disease.Id, "DDSchistoDiseaseDistributionPcIntervent", dd, options); break; default: break; } } // need to add the proper sumation stuff report.ReportOptions.IsByLevelAggregation = true; report.ReportOptions.IsCountryAggregation = false; report.ReportOptions.IsNoAggregation = false; report.ReportOptions.SelectedAdminLevels = demo.GetAdminLevelByLevel(standardOpts.DistrictType.LevelNumber).Where(a => a.LevelNumber == standardOpts.DistrictType.LevelNumber).ToList(); // run report ReportResult result = gen.Run(report); Dictionary<string, DataRow> years = new Dictionary<string,DataRow>(); DataTable summed = new DataTable(); summed.Columns.Add(new DataColumn(TranslationLookup.GetValue("Location"))); summed.Columns.Add(new DataColumn(TranslationLookup.GetValue("Year"), typeof(string))); summed.Columns.Add(new DataColumn(string.Format(TranslationLookup.GetValue("EliminationEndemicDistricts"), standardOpts.DistrictType.DisplayName), typeof(int))); summed.Columns.Add(new DataColumn(string.Format(TranslationLookup.GetValue("EliminationStoppedDistricts"), standardOpts.DistrictType.DisplayName), typeof(int))); foreach (DataRow row in result.DataTableResults.Rows) { string endemicty = ""; int totalEndemic = 0, totalStopped = 0; if (result.DataTableResults.Columns.Contains(TranslationLookup.GetValue("DDLFDiseaseDistributionPcInterventions") + " - " + TranslationLookup.GetValue("LF"))) { endemicty = row[TranslationLookup.GetValue("DDLFDiseaseDistributionPcInterventions") + " - " + TranslationLookup.GetValue("LF")].ToString(); if (endemicty == TranslationLookup.GetValue("LfEnd1") || endemicty == TranslationLookup.GetValue("LfEndPending")) totalEndemic++; else if (endemicty == TranslationLookup.GetValue("LfEnd100")) totalStopped++; } if (result.DataTableResults.Columns.Contains(TranslationLookup.GetValue("DDOnchoDiseaseDistributionPcInterventio") + " - " + TranslationLookup.GetValue("Oncho"))) { endemicty = row[TranslationLookup.GetValue("DDOnchoDiseaseDistributionPcInterventio") + " - " + TranslationLookup.GetValue("Oncho")].ToString(); if (endemicty == TranslationLookup.GetValue("Oncho1") || endemicty == TranslationLookup.GetValue("OnchoPending")) totalEndemic++; else if (endemicty == TranslationLookup.GetValue("Oncho100")) totalStopped++; } if (result.DataTableResults.Columns.Contains(TranslationLookup.GetValue("DDSchistoDiseaseDistributionPcIntervent") + " - " + TranslationLookup.GetValue("Schisto"))) { endemicty = row[TranslationLookup.GetValue("DDSchistoDiseaseDistributionPcIntervent") + " - " + TranslationLookup.GetValue("Schisto")].ToString(); if (endemicty == TranslationLookup.GetValue("Sch1") || endemicty == TranslationLookup.GetValue("Sch2") || endemicty == TranslationLookup.GetValue("Sch2a") || endemicty == TranslationLookup.GetValue("Sch3") || endemicty == TranslationLookup.GetValue("Sch3a") || endemicty == TranslationLookup.GetValue("Sch3b") || endemicty == TranslationLookup.GetValue("Sch20") || endemicty == TranslationLookup.GetValue("Sch30") || endemicty == TranslationLookup.GetValue("Sch40") || endemicty == TranslationLookup.GetValue("SchPending")) totalEndemic++; else if (endemicty == TranslationLookup.GetValue("Sch100")) totalStopped++; } if (result.DataTableResults.Columns.Contains(TranslationLookup.GetValue("DDSTHDiseaseDistributionPcInterventions") + " - " + TranslationLookup.GetValue("STH"))) { endemicty = row[TranslationLookup.GetValue("DDSTHDiseaseDistributionPcInterventions") + " - " + TranslationLookup.GetValue("STH")].ToString(); if (endemicty == TranslationLookup.GetValue("Sth2") || endemicty == TranslationLookup.GetValue("Sth3") || endemicty == TranslationLookup.GetValue("Sth10") || endemicty == TranslationLookup.GetValue("Sth20") || endemicty == TranslationLookup.GetValue("Sth30") || endemicty == TranslationLookup.GetValue("Sth40") || endemicty == TranslationLookup.GetValue("SthPending")) totalEndemic++; else if (endemicty == TranslationLookup.GetValue("Sth100")) totalStopped++; } if (result.DataTableResults.Columns.Contains(TranslationLookup.GetValue("DDTraDiseaseDistributionPcInterventions") + " - " + TranslationLookup.GetValue("Trachoma"))) { endemicty = row[TranslationLookup.GetValue("DDTraDiseaseDistributionPcInterventions") + " - " + TranslationLookup.GetValue("Trachoma")].ToString(); if (endemicty == TranslationLookup.GetValue("Tra1") || endemicty == TranslationLookup.GetValue("Tra4") || endemicty == TranslationLookup.GetValue("Tra5") || endemicty == TranslationLookup.GetValue("TraPending")) totalEndemic++; else if (endemicty == TranslationLookup.GetValue("Tra100")) totalStopped++; } if (!years.ContainsKey(row[TranslationLookup.GetValue("Year")].ToString())) { DataRow dr = summed.NewRow(); dr[TranslationLookup.GetValue("Year")] = row[TranslationLookup.GetValue("Year")]; dr[string.Format(TranslationLookup.GetValue("EliminationEndemicDistricts"), standardOpts.DistrictType.DisplayName)] = totalEndemic; dr[string.Format(TranslationLookup.GetValue("EliminationStoppedDistricts"), standardOpts.DistrictType.DisplayName)] = totalStopped; years.Add(row[TranslationLookup.GetValue("Year")].ToString(), dr); summed.Rows.Add(dr); } else { years[row[TranslationLookup.GetValue("Year")].ToString()][string.Format(TranslationLookup.GetValue("EliminationEndemicDistricts"), standardOpts.DistrictType.DisplayName)] = totalEndemic + (int)years[row[TranslationLookup.GetValue("Year")].ToString()][string.Format(TranslationLookup.GetValue("EliminationEndemicDistricts"), standardOpts.DistrictType.DisplayName)]; years[row[TranslationLookup.GetValue("Year")].ToString()][string.Format(TranslationLookup.GetValue("EliminationStoppedDistricts"), standardOpts.DistrictType.DisplayName)] = totalStopped + (int)years[row[TranslationLookup.GetValue("Year")].ToString()][string.Format(TranslationLookup.GetValue("EliminationStoppedDistricts"), standardOpts.DistrictType.DisplayName)]; } } result.DataTableResults = summed; result.ChartData = summed.Copy(); report.ReportOptions.IsByLevelAggregation = false; report.ReportOptions.IsCountryAggregation = true; // to show only year return result; }
private Dictionary<int, DataRow> GetDd(DateTime start, DateTime end, List<AdminLevel> demography) { Dictionary<int, DataRow> dd = new Dictionary<int, DataRow>(); ReportOptions options = new ReportOptions { MonthYearStarts = start.Month, StartDate = start, EndDate = end, IsCountryAggregation = false, IsByLevelAggregation = true, IsAllLocations = false, IsNoAggregation = false }; options.SelectedAdminLevels = demography; DistributionReportGenerator gen = new DistributionReportGenerator(); var lf = diseaseRepo.Create(DiseaseType.Lf); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator(lf.Id, lf.Indicators["DDLFDiseaseDistributionPcInterventions"])); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator(lf.Id, lf.Indicators["DDLFNumPcRoundsYearCurrentlyImplemented"])); var oncho = diseaseRepo.Create(DiseaseType.Oncho); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator(oncho.Id, oncho.Indicators["DDOnchoDiseaseDistributionPcInterventio"])); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator(oncho.Id, oncho.Indicators["DDOnchoNumPcRoundsYearCurrentlyImplemen"])); var sth = diseaseRepo.Create(DiseaseType.STH); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator(sth.Id, sth.Indicators["DDSTHDiseaseDistributionPcInterventions"])); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator(sth.Id, sth.Indicators["DDSTHNumPcRoundsYearCurrentlyImplemente"])); var schisto = diseaseRepo.Create(DiseaseType.Schisto); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator(schisto.Id, schisto.Indicators["DDSchistoDiseaseDistributionPcIntervent"])); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator(schisto.Id, schisto.Indicators["DDSchistoNumPcRoundsYearCurrentlyImplem"])); ReportResult ddResult = gen.Run(new SavedReport { ReportOptions = options }); dd = new Dictionary<int, DataRow>(); foreach (DataRow dr in ddResult.DataTableResults.Rows) { int id = 0; if (int.TryParse(dr["ID"].ToString(), out id)) { if (dd.ContainsKey(id)) dd[id] = dr; else dd.Add(id, dr); } } return dd; }
/// <summary> /// Runs the report with the report options and collects all the disease distribution calculation /// </summary> /// <param name="mainReportOptions">The report options</param> public void Run(ReportOptions mainReportOptions) { SettingsRepository settingsRepo = new SettingsRepository(); Report = new SavedReport(); DistributionReportGenerator gen = new DistributionReportGenerator(); Report.ReportOptions = new ReportOptions(); Report.ReportOptions.SelectedIndicators = new List<ReportIndicator>(); Report.ReportOptions.Years = Util.DeepClone(mainReportOptions.Years); Report.ReportOptions.SelectedAdminLevels = Util.DeepClone(mainReportOptions.SelectedAdminLevels); Report.ReportOptions.MonthYearStarts = 1; Report.ReportOptions.IsByLevelAggregation = true; Report.ReportOptions.IsCountryAggregation = false; Report.ReportOptions.IsNoAggregation = false; // Determine the name of the reporting admin level if (mainReportOptions.SelectedAdminLevels.Count > 0) { int levelNum = mainReportOptions.SelectedAdminLevels[0].LevelNumber; AdminLevelType adminLevelType = settingsRepo.GetAdminLevelTypeByLevel(levelNum); NameOfReportingAdminLevel = adminLevelType.DisplayName; } if (NameOfReportingAdminLevel == null) throw new ArgumentException("Could not determine reporting level"); // STH Report.ReportOptions.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)DiseaseType.STH, new KeyValuePair<string, Indicator>("DDSTHPopulationRequiringPc", new Indicator { Id = 141, DisplayName = "DDSTHPopulationRequiringPc" }))); Report.ReportOptions.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)DiseaseType.STH, new KeyValuePair<string, Indicator>("DDSTHPsacAtRisk", new Indicator { Id = 142, DisplayName = "DDSTHPsacAtRisk" }))); Report.ReportOptions.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)DiseaseType.STH, new KeyValuePair<string, Indicator>("DDSTHSacAtRisk", new Indicator { Id = 143, DisplayName = "DDSTHSacAtRisk" }))); Report.ReportOptions.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)DiseaseType.STH, new KeyValuePair<string, Indicator>("DDSTHPopulationAtRisk", new Indicator { Id = 140, DisplayName = "DDSTHPopulationAtRisk" }))); // LF Report.ReportOptions.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)DiseaseType.Lf, new KeyValuePair<string, Indicator>("DDLFPopulationAtRisk", new Indicator { Id = 98, DisplayName = "DDLFPopulationAtRisk" }))); Report.ReportOptions.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)DiseaseType.Lf, new KeyValuePair<string, Indicator>("DDLFPopulationRequiringPc", new Indicator { Id = 99, DisplayName = "DDLFPopulationRequiringPc" }))); // Oncho Report.ReportOptions.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)DiseaseType.Oncho, new KeyValuePair<string, Indicator>("DDOnchoPopulationAtRisk", new Indicator { Id = 111, DisplayName = "DDOnchoPopulationAtRisk" }))); Report.ReportOptions.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)DiseaseType.Oncho, new KeyValuePair<string, Indicator>("DDOnchoPopulationRequiringPc", new Indicator { Id = 112, DisplayName = "DDOnchoPopulationRequiringPc" }))); // Schisto Report.ReportOptions.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)DiseaseType.Schisto, new KeyValuePair<string, Indicator>("DDSchistoPopulationAtRisk", new Indicator { Id = 125, DisplayName = "DDSchistoPopulationAtRisk" }))); Report.ReportOptions.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)DiseaseType.Schisto, new KeyValuePair<string, Indicator>("DDSchistoPopulationRequiringPc", new Indicator { Id = 126, DisplayName = "DDSchistoPopulationRequiringPc" }))); Report.ReportOptions.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)DiseaseType.Schisto, new KeyValuePair<string, Indicator>("DDSchistoSacAtRisk", new Indicator { Id = 127, DisplayName = "DDSchistoSacAtRisk" }))); // Trachoma Report.ReportOptions.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)DiseaseType.Trachoma, new KeyValuePair<string, Indicator>("DDTraPopulationAtRisk", new Indicator { Id = 161, DisplayName = "DDTraPopulationAtRisk" }))); // Run the report Result = gen.Run(Report); }
protected string GetRecentDistroIndicator(int adminLevelId, string indicatorName, DiseaseType diseaseType, DateTime start, DateTime end, ref string errors) { // If there is a RecentDistro instance, look for the value there RecentDistro recentDistro = RecentDistro.GetInstance(false /* don't instantiate */); if (recentDistro != null) { string storedVal = recentDistro.GetRecentDistroIndicator(adminLevelId, indicatorName, diseaseType, start, end, ref errors); if (storedVal != null) { return storedVal; } } AdminLevelIndicators levelInds = null; string key = adminLevelId + start.ToShortDateString() + end.ToShortDateString() + diseaseType.ToString(); if (distroDict.ContainsKey(key)) levelInds = distroDict[key]; else { ReportOptions options = new ReportOptions(); DistributionReportGenerator gen = new DistributionReportGenerator(); DiseaseRepository repo = new DiseaseRepository(); DemoRepository demo = new DemoRepository(); var disease = repo.GetDiseaseById((int)diseaseType); DiseaseDistroPc dd = repo.Create(diseaseType); if (diseaseType == DiseaseType.STH) { options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)diseaseType, new KeyValuePair<string, Indicator>(indicatorName, new Indicator { Id = 141, DisplayName = "DDSTHPopulationRequiringPc" }))); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)diseaseType, new KeyValuePair<string, Indicator>(indicatorName, new Indicator { Id = 142, DisplayName = "DDSTHPsacAtRisk" }))); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)diseaseType, new KeyValuePair<string, Indicator>(indicatorName, new Indicator { Id = 143, DisplayName = "DDSTHSacAtRisk" }))); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)diseaseType, new KeyValuePair<string, Indicator>(indicatorName, new Indicator { Id = 140, DisplayName = "DDSTHPopulationAtRisk" }))); } else if (diseaseType == DiseaseType.Lf) { options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)diseaseType, new KeyValuePair<string, Indicator>(indicatorName, new Indicator { Id = 98, DisplayName = "DDLFPopulationAtRisk" }))); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)diseaseType, new KeyValuePair<string, Indicator>(indicatorName, new Indicator { Id = 99, DisplayName = "DDLFPopulationRequiringPc" }))); } else if (diseaseType == DiseaseType.Oncho) { options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)diseaseType, new KeyValuePair<string, Indicator>(indicatorName, new Indicator { Id = 111, DisplayName = "DDOnchoPopulationAtRisk" }))); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)diseaseType, new KeyValuePair<string, Indicator>(indicatorName, new Indicator { Id = 112, DisplayName = "DDOnchoPopulationRequiringPc" }))); } else if (diseaseType == DiseaseType.Schisto) { options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)diseaseType, new KeyValuePair<string, Indicator>(indicatorName, new Indicator { Id = 125, DisplayName = "DDSchistoPopulationAtRisk" }))); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)diseaseType, new KeyValuePair<string, Indicator>(indicatorName, new Indicator { Id = 126, DisplayName = "DDSchistoPopulationRequiringPc" }))); options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)diseaseType, new KeyValuePair<string, Indicator>(indicatorName, new Indicator { Id = 127, DisplayName = "DDSchistoSacAtRisk" }))); } else if (diseaseType == DiseaseType.Trachoma) options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator((int)diseaseType, new KeyValuePair<string, Indicator>(indicatorName, new Indicator { Id = 161, DisplayName = "DDTraPopulationAtRisk" }))); options.StartDate = start; options.EndDate = end; options.MonthYearStarts = start.Month; var adminlevel = demo.GetAdminLevelById(adminLevelId); options.SelectedAdminLevels = new List<AdminLevel> { adminlevel }; options.IsNoAggregation = false; options.IsByLevelAggregation = true; options.IsAllLocations = false; levelInds = gen.GetRecentDiseaseDistribution(options); levelInds.StartDate = start; levelInds.EndDate = end; levelInds.DiseaseName = disease.DisplayName; } if (levelInds.Indicators.ContainsKey(indicatorName) ) { if(!string.IsNullOrEmpty(levelInds.Indicators[indicatorName].Value)) return levelInds.Indicators[indicatorName].Value.ToString(); else return ""; } string error = string.Format(Translations.ReportsNoDdInDateRange, levelInds.Name, start.ToShortDateString(), end.ToShortDateString(), levelInds.DiseaseName) + Environment.NewLine; if (!errors.Contains(error)) errors += error; return Translations.NA; }
//Worksheet 3: Disease Distribution //aggregate to the reporting level //all Oncho Disease Distribution indicators private void AddDdPage(excel.Worksheet xlsWorksheet, excel.Range rng, List<AdminLevel> districts, DateTime start, DateTime end, int month, DiseaseDistroPc dd) { ReportOptions options = new ReportOptions { MonthYearStarts = month, StartDate = start, EndDate = end, IsCountryAggregation = false, IsByLevelAggregation = true, IsAllLocations = false, IsNoAggregation = false }; options.SelectedAdminLevels = districts; DistributionReportGenerator gen = new DistributionReportGenerator(); AddReportToSheet(xlsWorksheet, dd.Indicators, options, gen, disease.Id, disease.DisplayName, rng); }
private void GetDdForDisease(DateTime start, DateTime end, List<AdminLevel> demography, out DiseaseDistroPc ddType, out Dictionary<int, DataRow> dd, DiseaseType dType) { ReportOptions options = new ReportOptions { MonthYearStarts = start.Month, StartDate = start, EndDate = end, IsCountryAggregation = false, IsByLevelAggregation = true, IsAllLocations = false, IsNoAggregation = false }; options.SelectedAdminLevels = demography; DistributionReportGenerator gen = new DistributionReportGenerator(); ddType = diseaseRepo.Create(dType); foreach (var indicator in ddType.Indicators.Where(i => i.Value.DataTypeId != (int)IndicatorDataType.Calculated)) options.SelectedIndicators.Add(ReportRepository.CreateReportIndicator(ddType.Id, indicator)); ReportResult ddResult = gen.Run(new SavedReport { ReportOptions = options }); dd = new Dictionary<int, DataRow>(); foreach (DataRow dr in ddResult.DataTableResults.Rows) { int id = 0; if (int.TryParse(dr["ID"].ToString(), out id)) { if (dd.ContainsKey(id)) dd[id] = dr; else dd.Add(id, dr); } } }