public ClaimVarianceDetails(VarianceReportViewModel varianceReport) { InitializeComponent(); _varianceReport = varianceReport; DataSource = varianceReport.VarianceReports; contractDetails.DataSource = varianceReport.Contracts; table5.DataSource = varianceReport.ClaimsAdjudicated; table10.DataSource = varianceReport.PaymentsLinked; table6.DataSource = varianceReport.ClaimCharges; table7.DataSource = varianceReport.ClaimVariances; table9.DataSource = varianceReport.VarianceRanges; Name = Constants.ClaimVarianceReportFileBaseName; txtBox_ClaimCount.Value = varianceReport.Contracts.Sum(x => x.ContractName.ToLower().Contains(Constants.NoRemit) || x.ContractName == Constants.UnAdjudicated || string.IsNullOrEmpty(x.ContractName) ? 0 : x.ClaimCount).ToString(CultureInfo.InvariantCulture); var totalClaimCharges = varianceReport.Contracts.Sum(x => x.ContractName.ToLower().Contains(Constants.NoRemit) || x.ContractName == Constants.UnAdjudicated ? 0 : x.TotalClaimCharges); txtBox_TotalCliamCharges.Value = totalClaimCharges == 0 ? String.Empty : String.Format("{0:C}", totalClaimCharges); var calculatedAllowedClaimLevel = varianceReport.Contracts.Sum(x => x.ContractName.ToLower().Contains(Constants.NoRemit) || x.ContractName == Constants.UnAdjudicated ? 0 : x.CalculatedAllowed); txtBox_CalculatedAllowedClaimLevel.Value = calculatedAllowedClaimLevel == 0 ? String.Empty : String.Format("{0:C}", calculatedAllowedClaimLevel); var actualPaymentClaimLevel = varianceReport.Contracts.Sum(x => x.ContractName.ToLower().Contains(Constants.NoRemit) || x.ContractName == Constants.UnAdjudicated ? 0 : x.ActualPayment); txtBox_ActualPaymentClaimLevel.Value = actualPaymentClaimLevel == 0 ? String.Empty : String.Format("{0:C}", actualPaymentClaimLevel); var patientResponsibility = varianceReport.Contracts.Sum(x => x.ContractName.ToLower().Contains(Constants.NoRemit) || x.ContractName == Constants.UnAdjudicated ? 0 : x.PatientResponsibility); textBox_PatientResponsibility.Value = patientResponsibility == 0 ? String.Empty : String.Format("{0:C}", patientResponsibility); var paymentVariance = varianceReport.Contracts.Sum(x => x.ContractName.ToLower().Contains(Constants.NoRemit) || x.ContractName == Constants.UnAdjudicated ? 0 : x.PaymentVariance); txtBox_PaymentVariance.Value = paymentVariance == 0 ? String.Empty : String.Format("{0:C}", paymentVariance); var calculatedAdjustment = varianceReport.Contracts.Sum(x => x.ContractName.ToLower().Contains(Constants.NoRemit) || x.ContractName == Constants.UnAdjudicated ? 0 : x.CalculatedAdjustment); txtBox_CalculatedAdjustment.Value = calculatedAdjustment == 0 ? String.Empty : String.Format("{0:C}", calculatedAdjustment); var actualAdjustment = varianceReport.Contracts.Sum(x => x.ContractName.ToLower().Contains(Constants.NoRemit) || x.ContractName == Constants.UnAdjudicated ? 0 : x.ActualAdjustment); txtBox_ActualAdjustment.Value = actualAdjustment == 0 ? String.Empty : String.Format("{0:C}", actualAdjustment); var contractualVariance = varianceReport.Contracts.Sum(x => x.ContractName.ToLower().Contains(Constants.NoRemit) || x.ContractName == Constants.UnAdjudicated ? 0 : x.ContractualVariance); txtBox_contractualVariance.Value = contractualVariance == 0 ? String.Empty : String.Format("{0:C}", contractualVariance); totalClaims.Value = Convert.ToString(varianceReport.TotalClaims); }
/// <summary> /// Variances the claim report. /// </summary> /// <param name="nodeId">The node unique identifier.</param> /// <param name="datetype">The datetype.</param> /// <param name="startDate">The start date.</param> /// <param name="endDate">The end date.</param> /// <param name="criteria">The criteria.</param> /// <param name="reportType">Type of the report.</param> /// <param name="fileType">type of file. Either pdf or excel</param> /// <param name="currentDateTime"></param> /// <returns></returns> public ActionResult VarianceReport(long?nodeId, int?datetype, DateTime?startDate, DateTime?endDate, string criteria, int reportType, int fileType, string currentDateTime) { string fileName; Enums.DownloadFileType reportFormat = fileType == 1 ? Enums.DownloadFileType.Pdf : Enums.DownloadFileType.Xls; //If the Report Type is Claim Level and report format is PDF if (reportType == Constants.One && fileType == Constants.One) { ClaimAdjudicationReport claimAdjudicationReport = new ClaimAdjudicationReport { ModelId = nodeId, NodeId = nodeId, DateType = Convert.ToInt32(datetype), StartDate = Convert.ToDateTime(startDate), EndDate = Convert.ToDateTime(endDate), ClaimSearchCriteria = criteria, FacilityId = GetCurrentFacilityId(), //Added RequestedUserID and RequestedUserName with reference to HIPAA logging feature RequestedUserId = string.IsNullOrEmpty(GetCurrentUserName()) ? Guid.Empty.ToString() : GetUserKey(), RequestedUserName = GetCurrentUserName(), CommandTimeoutForClaimAdjudication = Convert.ToInt32(GlobalConfigVariable.CommandTimeoutForClaimAdjudication), MaxLinesForPdfReport = GlobalConfigVariable.MaxRecordLimitForTelericReport, }; ClaimAdjudicationReport claimAdjudicationReportDetails = PostApiResponse <ClaimAdjudicationReport>(Constants.ClaimAdjudicationReport, Constants.GetClaimAdjudicationReport, claimAdjudicationReport); ClaimAdjudicationReportViewModel adjudicationList = Mapper.Map <ClaimAdjudicationReport, ClaimAdjudicationReportViewModel>( claimAdjudicationReportDetails); // Gets the current CST time. adjudicationList.CurrentDateTime = Utilities.GetLocalTimeString(currentDateTime); adjudicationList.LoggedInUser = GetCurrentUserName(); fileName = new ClaimAdjudicationReportUtil().GetExportedFileName(adjudicationList, Enums.DownloadFileType.Pdf, GlobalConfigVariable.ReportsFilePath, currentDateTime); } else { VarianceReport varianceReport = new VarianceReport { NodeId = nodeId, DateType = datetype, StartDate = Convert.ToDateTime(startDate), EndDate = Convert.ToDateTime(endDate), ClaimSearchCriteria = criteria, ReportLevel = reportType, FacilityId = GetCurrentFacilityId(), RequestedUserId = string.IsNullOrEmpty(GetCurrentUserName()) ? Guid.Empty.ToString() : GetUserKey(), RequestedUserName = GetCurrentUserName(), FileType = fileType, MaxLinesForPdfReport = GlobalConfigVariable.MaxRecordLimitForTelericReport }; //Added RequestedUserID and RequestedUserName with reference to HIPAA logging feature VarianceReport varianceReportInfo = PostApiResponse <VarianceReport>(Constants.VarianceReport, Constants.GetVarianceReport, varianceReport); VarianceReportViewModel varianceReportlist = Mapper.Map <VarianceReport, VarianceReportViewModel>(varianceReportInfo); varianceReportlist.LoggedInUser = GetCurrentUserName(); // Gets the local time zone. varianceReportlist.CurrentDateTime = Utilities.GetLocalTimeString(currentDateTime); fileName = new VarianceReportUtil().GetExportedFileName(reportType, reportFormat, varianceReportlist, GlobalConfigVariable.ReportsFilePath, currentDateTime); } return(Json(new { fileName, reportFormat }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// takes different parameters and returns either file name or error result /// </summary> /// <param name="reportType">either claim level or contract level report</param> /// <param name="reportFormat">either pdf or excel format</param> /// <param name="varianceReportList">items to be written to the file</param> /// <param name="configuredPath">path to store the file in server</param> /// <param name="currentDateTime"></param> /// <returns></returns> public string GetExportedFileName(int reportType, Enums.DownloadFileType reportFormat, VarianceReportViewModel varianceReportList, string configuredPath, string currentDateTime) { string fileName = string.Empty; if (!Directory.Exists(configuredPath)) { Directory.CreateDirectory(configuredPath); } switch (reportType) { case Constants.ReportLevelClaim: //if threshold is Constants.ReportThreshold, report can't be displayed as number of claims exceeds the requirement. Proper message would be displayed to user //in this case if (varianceReportList.CountThreshold == Constants.ReportThreshold) { fileName = Convert.ToString(Constants.ReportThreshold); } else if (varianceReportList.ClaimData.Count == 0 && varianceReportList.VarianceReports.Count == 0) { fileName = Constants.EmptyReportResult; } else { if (reportFormat == Enums.DownloadFileType.Xls) { fileName = GetReportData(varianceReportList, currentDateTime); } else { fileName = ReportUtility.CreateFileUsingTelerik(new ClaimVarianceDetails(varianceReportList), reportFormat, configuredPath, Constants.VarianceReportFileBaseName, currentDateTime); } } break; case Constants.ReportLevelContract: if (varianceReportList.Contracts == null || varianceReportList.Contracts.Count == 0) { fileName = Constants.EmptyReportResult; } else { fileName = ReportUtility.CreateFileUsingTelerik(new ContractVarianceDetails(varianceReportList), reportFormat, configuredPath, Constants.VarianceReportFileBaseName, currentDateTime); } break; } return(fileName); }
/// <summary> /// Prepares complete variance report string /// </summary> /// <param name="varianceReportList">list of claim data in variance report</param> /// <param name="currentDateTime"></param> /// <returns></returns> private string GetReportData(VarianceReportViewModel varianceReportList, string currentDateTime) { string fileName = _reportUtility.GenerateCsvFile(varianceReportList.ClaimData, currentDateTime); return(fileName); }