public JsonResult GetSummaryForYear(int hospitalId, int epiYear) { int nSemaActual; DateTime dSEHoy; List <Dictionary <string, int> > summaryPerYear = new List <Dictionary <string, int> >(); DateTime dFech = PAHOClassUtilities.fechaInicioPrimeraSemanaEpidemiologica(epiYear); if (DateTime.Today.Year == epiYear) { nSemaActual = PAHOClassUtilities.NumeroActualSE(); dSEHoy = dFech.AddDays((nSemaActual - 1) * 7).AddDays(6); } else { nSemaActual = PAHOClassUtilities.semanasAnioEpidemiologico(epiYear); dSEHoy = PAHOClassUtilities.fechaInicioPrimeraSemanaEpidemiologica(epiYear); dSEHoy = dSEHoy.AddDays(-1); } for (int i = nSemaActual; i >= 1; i--) { Dictionary <string, int> dictionary = new Dictionary <string, int>(); var ColETINumST = 0; var ColETIDenoST = 0; var ColETINumEmerST = 0; var ColHospTST = 0; var ColUCITST = 0; var ColFalleTST = 0; var ColHospSARITST = 0; //#### CAFQ: 181101 var ColUCISARITST = 0; //#### CAFQ: 181101 var ColFalleSARITST = 0; //#### CAFQ: 181101 var ColNeuTST = 0; var ColCCSARITST = 0; var ColVentTST = 0; DateTime StartDateOfWeek = DateTime.UtcNow; var casesummary = db.CaseSummaries.FirstOrDefault(s => s.HosiptalId == hospitalId && s.EW == i && s.EpiYear == epiYear); if (casesummary == null) { DateTime vFeIn = dFech.AddDays(7 * (i - 1)); DateTime vFeFi = vFeIn.AddDays(6); if (StartDateOfWeek >= vFeIn && StartDateOfWeek <= vFeFi) { StartDateOfWeek = vFeFi; } else { if (vFeFi < StartDateOfWeek) { StartDateOfWeek = dFech.AddDays(7 * (i - 1) + 6); } else { StartDateOfWeek = dSEHoy; } } } else { var casesummaryDetails = casesummary.CaseSummaryDetails.ToArray(); StartDateOfWeek = casesummary.StartDateOfWeek; foreach (CaseSummaryDetail casesummaryDetail in casesummaryDetails) { ColETINumST += casesummaryDetail.ETINumST; ColETIDenoST += casesummaryDetail.ETIDenoST; ColETINumEmerST += casesummaryDetail.ETINumEmerST; ColHospTST += casesummaryDetail.HospST; ColUCITST += casesummaryDetail.UCIST; ColFalleTST += casesummaryDetail.DefST; ColHospSARITST += casesummaryDetail.HospSARIST; //#### CAFQ: 181101 ColUCISARITST += casesummaryDetail.UCISARIST; //#### CAFQ: 181101 ColFalleSARITST += casesummaryDetail.DefSARIST; //#### CAFQ: 181101 ColNeuTST += casesummaryDetail.NeuST.HasValue ? casesummaryDetail.NeuST.Value : 0; //ColCCSARITST += casesummaryDetail.CCSARIST.HasValue ? casesummaryDetail.CCSARIST.Value : 0; ColCCSARITST += casesummaryDetail.CCSARIST.Value; ColVentTST += casesummaryDetail.VentST.HasValue ? casesummaryDetail.VentST.Value : 0; } } dictionary.Add("EpiWeek", i); dictionary.Add("ColHospTST", ColHospTST); dictionary.Add("ColUCITST", ColUCITST); dictionary.Add("ColFalleTST", ColFalleTST); dictionary.Add("ColHospSARITST", ColHospSARITST); //#### CAFQ: 181101 dictionary.Add("ColUCISARITST", ColUCISARITST); //#### CAFQ: 181101 dictionary.Add("ColFalleSARITST", ColFalleSARITST); //#### CAFQ: 181101 dictionary.Add("ColETINumST", ColETINumST); dictionary.Add("ColETIDenoST", ColETIDenoST); dictionary.Add("ColETINumEmerST", ColETINumEmerST); dictionary.Add("ColNeuTST", ColNeuTST); dictionary.Add("ColCCSARITST", ColCCSARITST); dictionary.Add("ColVentTST", ColVentTST); Int32 unixTimestamp = (Int32)(StartDateOfWeek.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; dictionary.Add("StartDateOfWeek", unixTimestamp); dictionary.Add("EpiYear", epiYear); //dictionary.Add("HospitalId", hospitalId); summaryPerYear.Add(dictionary); } return(Json(summaryPerYear, JsonRequestBehavior.AllowGet)); }
public JsonResult GetSummaryForYearJM(int hospitalId, int epiYear) { int nSemaActual; DateTime dSEHoy; List <Dictionary <string, int> > summaryPerYear = new List <Dictionary <string, int> >(); DateTime dFech = PAHOClassUtilities.fechaInicioPrimeraSemanaEpidemiologica(epiYear); if (DateTime.Today.Year == epiYear) { nSemaActual = PAHOClassUtilities.NumeroActualSE(); dSEHoy = dFech.AddDays((nSemaActual - 1) * 7).AddDays(6); } else { nSemaActual = PAHOClassUtilities.semanasAnioEpidemiologico(epiYear); dSEHoy = PAHOClassUtilities.fechaInicioPrimeraSemanaEpidemiologica(epiYear); dSEHoy = dSEHoy.AddDays(-1); } //**** string hospitalIDs = ""; IQueryable <Institution> institutions = null; var user = UserManager.FindById(User.Identity.GetUserId()); if (user.Institution is Hospital || user.Institution is AdminInstitution) { if (user.Institution.AccessLevel == AccessLevel.Country) { institutions = db.Institutions .Where(i => i.CountryID == user.Institution.CountryID && i.ILI == true).OrderBy(n => n.FullName); } else if (user.Institution.AccessLevel == AccessLevel.Area) // Jamaica: Parish { institutions = db.Institutions .Where(i => i.AreaID == user.Institution.AreaID && i.ILI == true).OrderBy(n => n.FullName); } else { institutions = db.Institutions.OfType <Hospital>() .Where(i => i.ID == user.Institution.ID).OrderBy(n => n.FullName); } foreach (var inst in institutions) { hospitalIDs += inst.ID.ToString() + ","; } hospitalIDs = hospitalIDs.Substring(0, hospitalIDs.Length - 1); } //**** Dictionary <string, int> aILICaseTG = new Dictionary <string, int>(); Dictionary <string, int> aILISampTG = new Dictionary <string, int>(); Dictionary <string, int> aTotVisiTG = new Dictionary <string, int>(); int countryId = (int)user.Institution.CountryID; int weekFrom = 1; var consString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; using (var con = new SqlConnection(consString)) { using (var command = new SqlCommand("Summary_ILI_TotalByEW", con) { CommandType = CommandType.StoredProcedure, CommandTimeout = 600 }) { command.Parameters.Clear(); command.Parameters.Add("@Country_ID", SqlDbType.Int).Value = countryId; command.Parameters.Add("@Year_case", SqlDbType.Int).Value = epiYear; command.Parameters.Add("@Hospital_ID", SqlDbType.NVarChar).Value = hospitalIDs; command.Parameters.Add("@weekFrom", SqlDbType.Int).Value = weekFrom; command.Parameters.Add("@weekTo", SqlDbType.Int).Value = nSemaActual; con.Open(); using (var reader = command.ExecuteReader()) { while (reader.Read()) { string cAnio = reader.GetValue(0).ToString(); string cWE = reader.GetValue(1).ToString(); aILICaseTG.Add(cAnio + cWE, (int)reader.GetValue(2)); aILISampTG.Add(cAnio + cWE, (int)reader.GetValue(3)); aTotVisiTG.Add(cAnio + cWE, (int)reader.GetValue(4)); } } command.Parameters.Clear(); con.Close(); } } //**** for (int i = nSemaActual; i >= 1; i--) { Dictionary <string, int> dictionary = new Dictionary <string, int>(); var ColILICasesST = 0; var ColILISamplesTakenST = 0; var ColTotalVisitsST = 0; DateTime WeekendDate = DateTime.UtcNow; var casesummary = db.CaseSummariesJM.FirstOrDefault(s => s.HospitalId == hospitalId && s.EW == i && s.EpiYear == epiYear); if (casesummary == null) { DateTime vFeIn = dFech.AddDays(7 * (i - 1)); DateTime vFeFi = vFeIn.AddDays(6); if (WeekendDate >= vFeIn && WeekendDate <= vFeFi) { WeekendDate = vFeFi; } else { if (vFeFi < WeekendDate) { WeekendDate = dFech.AddDays(7 * (i - 1) + 6); } else { WeekendDate = dSEHoy; } } } else { var casesummaryDetails = casesummary.CaseSummaryDetailJM.ToArray(); WeekendDate = casesummary.WeekendDate; foreach (CaseSummaryDetailJM casesummaryDetail in casesummaryDetails) { ColILICasesST += casesummaryDetail.ILICases; ColILISamplesTakenST += casesummaryDetail.ILISamplesTaken; ColTotalVisitsST += casesummaryDetail.TotalVisits; } } dictionary.Add("EpiWeek", i); dictionary.Add("ColILICasesST", ColILICasesST); dictionary.Add("ColILISamplesTakenST", ColILISamplesTakenST); dictionary.Add("ColTotalVisitsST", ColTotalVisitsST); Int32 unixTimestamp = (Int32)(WeekendDate.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; dictionary.Add("WeekendDate", unixTimestamp); dictionary.Add("EpiYear", epiYear); //**** dictionary.Add("ColILICaseGroup", aILICaseTG[epiYear.ToString() + i.ToString()]); dictionary.Add("ColILISampGroup", aILISampTG[epiYear.ToString() + i.ToString()]); dictionary.Add("ColTotVisiGroup", aTotVisiTG[epiYear.ToString() + i.ToString()]); //**** summaryPerYear.Add(dictionary); } //System.Diagnostics.Debug.WriteLine("F2->" + DateTime.Now.ToString()); //=> OKOK return(Json(summaryPerYear, JsonRequestBehavior.AllowGet)); }