Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }