public ActionResult Report(string reportType, string status, string optionSelection, string areaOfficeCode, string locType, string dateType, DateTime?dateFrom, DateTime?dateTo) { SSRS_RDLC_Reports.Models.CAP30Entities entities = new CAP30Entities(); ViewBag.clientorg = entities.CMAT_PC_MFC_ClientOrigination_LK.ToList().Select(co => new SelectListItem { Text = co.ClientOrigination, Value = co.ClientOriginationID.ToString() }).ToList(); ViewBag.DischargeDest = entities.CMAT_PC_MFC_DischargeDest_LK.ToList().Select(dd => new SelectListItem { Text = dd.DischargeDestDesc, Value = dd.DischargeDestID.ToString() }).ToList(); ViewBag.Reason = entities.CMAT_PC_MFC_Reason_LK.ToList().Select(r => new SelectListItem { Text = r.ReasonDesc, Value = r.MFCPC_ReasonID.ToString() }).ToList(); ViewBag.loc = entities.CMAT_PC_MPC_LevelOfCare_LK.ToList().Select(loc => new SelectListItem { Text = loc.MPC_LevelOfCare, Value = loc.MPC_L_CareID.ToString() }).ToList(); ViewBag.MFCStatus = entities.MFC_Status_LK.ToList().Select(MFCStatus => new SelectListItem { Text = MFCStatus.MFC_Status, Value = MFCStatus.MFC_StatusID.ToString() }).ToList(); ViewBag.AreaOffices = entities.AreaOffices.ToList() .Select(st => new SelectListItem { Text = st.AreaOfficeName, Value = st.AreaOfficeCode.ToString() }).ToList(); var ReportName = "MFC_DiagnosisLOR"; var Height = 650; var searchQuery = "reportType=" + reportType + "&status=" + status + "&optionSelection=" + optionSelection + "&areaOfficeCode=" + areaOfficeCode + "&locType=" + locType + "&dateType=" + dateType + "&dateFrom=" + dateFrom + "&dateTo=" + dateTo; var rptInfo = new ReportInfo { ReportName = ReportName, ReportDescription = "", ReportURL = String.Format("../../Reports/ReportTemplate.aspx?ReportName={0}&Height={1}&{2}", ReportName, Height, searchQuery), Width = 100, Height = Height }; return(View(rptInfo)); }
private Tuple <List <MFCReportViewModel>, List <HeaderFilterModel> > GetMFCReportData(string reportType, string status, string optionSelection, string areaOfficeCode, string locType, string dateType, DateTime dateFrom, DateTime dateTo) { List <HeaderFilterModel> filterList = new List <HeaderFilterModel>(); HeaderFilterModel filter = new HeaderFilterModel(); filter.DateFrom = dateFrom; filter.DateTo = dateTo; filter.AreaOfficeCode = areaOfficeCode; filter.ReportType = reportType; SSRS_RDLC_Reports.Models.CAP30Entities entities = new CAP30Entities(); var areaOfficeInt = 0; if (areaOfficeCode != "0") { areaOfficeInt = Convert.ToInt32(areaOfficeCode); filter.AreaOfficeCode = entities.AreaOffices.Where(st => st.AreaOfficeCode == areaOfficeInt).Select(st => st.AreaOfficeName).FirstOrDefault(); } else { filter.AreaOfficeCode = "All"; } MFCReportViewModel vm = new MFCReportViewModel(); List <MFCReportViewModel> data = new List <MFCReportViewModel>(); var query = (from st in entities.ClientMasters join pc in entities.CMAT_PC on st.MasterID equals pc.MasterID join area in entities.ClientAreaOffices on st.MasterID equals area.MasterID where areaOfficeInt == 0 || area.AreaOfficeCode == areaOfficeInt select new { st, pc, area }).AsQueryable(); if (status != "0") { int statusInt = Convert.ToInt32(status); filter.Status = entities.MFC_Status_LK.Where(st => st.MFC_StatusID == statusInt).Select(f => f.MFC_Status).FirstOrDefault(); query = query.Where(st => st.pc.MFC_StatusID == statusInt); } else { filter.Status = "All"; } if (dateType == "AdmitDateOption") { filter.DateType = "Admit Date"; query = query.Where(st => st.pc.MPC_AdmitDt >= dateFrom && st.pc.MPC_AdmitDt <= dateTo); } else if (dateType == "DischargeDateOption") { filter.DateType = "Discharge Date"; query = query.Where(st => st.pc.MPC_DischargeDt >= dateFrom && st.pc.MPC_DischargeDt <= dateTo); } else if (dateType == "ReferralDateOption") { filter.DateType = "Referral Date"; query = query.Where(st => st.pc.MPC_MFCReferralDt >= dateFrom && st.pc.MPC_MFCReferralDt <= dateTo); } else if (dateType == "ReportDateOption") { filter.DateType = "Report Date"; query = query.Where(st => st.pc.MPC_AdmitDt >= dateFrom && st.pc.MPC_DischargeDt <= dateTo); } if (reportType == "LOC") { if (locType == "ReferringLOC") { filter.LocType = "Referring LOC"; filter.ReportType = "Referring LOC"; query = query.Where(st => (optionSelection == "All" || st.pc.MPC_L_Care == optionSelection) && st.pc.MPC_AdmitDt >= dateFrom && st.pc.MPC_AdmitDt <= dateTo); } else if (locType == "DischargeLOC") { filter.LocType = "Discharge LOC"; filter.ReportType = "Discharge LOC"; query = query.Where(st => (optionSelection == "All" || st.pc.L_Reimbursement == optionSelection) && st.pc.MPC_AdmitDt >= dateFrom && st.pc.MPC_AdmitDt <= dateTo); } else if (locType == "MFCLOC") { filter.LocType = "MFC LOC"; filter.ReportType = "MFC LOC"; query = query.Where(st => (optionSelection == "All" || st.pc.L_Care == optionSelection) && st.pc.MPC_AdmitDt >= dateFrom && st.pc.MPC_AdmitDt <= dateTo); } else if (locType == "AdmitLOC") { filter.LocType = "Admit LOC"; filter.ReportType = "Admit LOC"; query = query.Where(st => (optionSelection == "All" || st.pc.First_L_Reimbursement == optionSelection) && st.pc.MPC_AdmitDt >= dateFrom && st.pc.MPC_AdmitDt <= dateTo); } else { filter.ReportType = reportType; } filter.OptionSelection = optionSelection; } else if (reportType == "Diagnosis") { filter.OptionSelection = optionSelection; } else if (reportType == "NotPlacedReason") { if (optionSelection != "0") { int selectedId = Convert.ToInt32(optionSelection); filter.OptionSelection = entities.CMAT_PC_MFC_Reason_LK.Where(st => st.MFCPC_ReasonID == selectedId).Select(st => st.ReasonDesc).FirstOrDefault(); query = query.Where(st => st.pc.MPC_ReasonNotPlaced == selectedId); } else { filter.OptionSelection = "All"; } filter.ReportType = "Not Placed Reason"; } else if (reportType == "DischargeDestination") { if (optionSelection != "0") { int selectedId = Convert.ToInt32(optionSelection); filter.OptionSelection = entities.CMAT_PC_MFC_DischargeDest_LK.Where(st => st.DischargeDestID == selectedId).Select(st => st.DischargeDestDesc).FirstOrDefault(); query = query.Where(st => st.pc.MPC_DischargeDest == selectedId); } else { filter.OptionSelection = "All"; } filter.ReportType = "Discharge Destination"; } else if (reportType == "Provider") { if (optionSelection != "0") { int selectedId = Convert.ToInt32(optionSelection); filter.OptionSelection = entities.CMAT_PC_MFC_ClientOrigination_LK.Where(st => st.ClientOriginationID == selectedId).Select(st => st.ClientOrigination).FirstOrDefault(); query = query.Where(st => st.pc.MPC_ClientOrigination == selectedId); } else { filter.OptionSelection = "All"; } filter.ReportType = "Client Origination"; } data = (from q in query select new MFCReportViewModel() { MasterID = q.st.MasterID, LastName = q.st.LastName ?? "", FirstName = q.st.FirstName ?? "", SSN = string.IsNullOrEmpty(q.st.SSN) ? "" : q.st.SSN, MedicaidID = q.st.MedicaidID, DateOfBirth = q.st.DateOfBirth, Race = q.st.Race, Gender = q.st.Gender, R_Status = q.st.R_Status == null ? 0 : q.st.R_Status.Value, KidCareID = q.st.KidCareID, AreaOfficeCode = q.area.AreaOfficeCode, WorkedDate = q.st.WorkedDate, AdmitDate = q.pc.MPC_AdmitDt, DischargeDate = q.pc.MPC_DischargeDt, ReferralDate = q.pc.MPC_MFCReferralDt, WorkedBy = q.st.WorkedBy, LOC = locType == "AdmitLOC" ? q.pc.L_Care : locType == "ReferringLOC" ? q.pc.First_L_Reimbursement : locType == "DischargeLOC" ? q.pc.First_L_Reimbursement : locType == "MFCLOC" ? q.pc.First_L_Reimbursement : q.pc.MPC_L_Care, LOR = q.pc.L_Reimbursement, ISEnrolled = q.st.isEnrolled == true ? true : false }).OrderByDescending(od => od.WorkedDate).ToList(); if (data.Count > 0) { var areaOffice = entities.AreaOffices //.Where(st=> userAreaOffce.Contains(st.AreaOfficeCode) .ToList(); foreach (var record in data) { record.AreaOfficeName = areaOffice.Where(st => st.AreaOfficeCode == record.AreaOfficeCode).Select(st => st.AreaOfficeName).FirstOrDefault(); record.DateOfBirth = CommonFormat.DOBFormat(record.DateOfBirth); record.SSN = CommonFormat.RemoveSpecialCharacters(record.SSN); } } filter.TotalCount = data.Count; filter.DistinctCount = data.Select(st => st.MasterID).Distinct().Count(); filterList.Add(filter); return(new Tuple <List <MFCReportViewModel>, List <HeaderFilterModel> >(data, filterList)); }