private void SetEventCustomerDetail(AnthemResultPostedViewModel customerResultObject) { var ecr = customerResultObject.EventCustomerResult; int pageCountInPdf = GetPdfPageCount(customerResultObject.SourceFilePath); if ((customerResultObject.TotalFilesInBatch <= 0 || ((customerResultObject.TotalFilesInBatch + pageCountInPdf) > _maxPagesinBatch)) || (customerResultObject.TotalCustomersInBatch <= 0 || customerResultObject.TotalCustomersInBatch > MaxCustomerinBatch)) { customerResultObject.TotalFilesInBatch = 0; customerResultObject.TotalCustomersInBatch = 0; customerResultObject.BatchName = "IC" + DateTime.Now.ToString("yyyyMMddhhmmss"); } customerResultObject.TotalFilesInBatch = customerResultObject.TotalFilesInBatch + pageCountInPdf; var customerData = _customerRepository.GetCustomer(ecr.CustomerId); var eventData = _eventRepository.GetById(ecr.EventId); customerResultObject.TotalCustomersInBatch++; customerResultObject.JulianDateFormate = GetJulianDate(ecr); customerResultObject.Identification = GetIdentificationNumber(ecr); customerResultObject.EventCustomerResult = ecr; customerResultObject.EventCustomerId = ecr.Id; customerResultObject.PagesInfile = pageCountInPdf; customerResultObject.Customer = customerData; customerResultObject.Event = eventData; DirectoryOperationsHelper.CreateDirectoryIfNotExist(customerResultObject.DestinationPathWithBatchName); }
private void AppentTransactFile(AnthemResultPostedViewModel anthemResultPostedView, string filePath) { using (StreamWriter sw = File.AppendText(filePath)) { var tranactRow = GetTransactEntry(anthemResultPostedView); sw.WriteLine(tranactRow); } }
private void SaveExportStartTime(AnthemResultPostedViewModel customerResultObject) { var customSettingFilePath = string.Format(_customSettingFile, customerResultObject.Tag); var customSettings = GetCustomSettings(customerResultObject.Tag); customSettings.LastTransactionDate = customerResultObject.ExportToTime; _customSettingManager.SerializeandSave(customSettingFilePath, customSettings); }
private void WriteTransactFile(AnthemResultPostedViewModel anthemResultPostedView) { if (DirectoryOperationsHelper.IsDirectoryExist(anthemResultPostedView.DestinationPathWithBatchName)) { var transactFile = Path.Combine(anthemResultPostedView.DestinationPathWithBatchName, "transact.dat"); if (DirectoryOperationsHelper.IsFileExist(transactFile)) { AppentTransactFile(anthemResultPostedView, transactFile); } else { CreatNewTransactFile(anthemResultPostedView, transactFile); } } }
private void SetFileNameWithVersion(AnthemResultPostedViewModel customerResultObject) { if (_resultPdfPostedXml == null) { GetResultPostedList(customerResultObject.Tag); } var ecr = customerResultObject.EventCustomerResult; var fileName = customerResultObject.DestinationFileNameWithoutExt; fileName = _resultPdfFileHelper.GetFileName(_resultPdfPostedXml.Customer, ecr, fileName, (long)ResultFormatType.PDF, false); fileName = GenerateNameForFilePostd(customerResultObject.BatchName, fileName, customerResultObject.CorporateAccount.Id); customerResultObject.DestinationFileNameWithoutExt = fileName; }
private void SetSourcePath(AnthemResultPostedViewModel customerResultObject) { var ecr = customerResultObject.EventCustomerResult; var pcpResultReport = _mediaRepository.GetPdfFileNameForPcpResultReport(); var healthPlanResultReport = _mediaRepository.GetPdfFileNameForHealthPlanResultReport(); var sourcePath = _mediaRepository.GetPremiumVersionResultPdfLocation(ecr.EventId, ecr.CustomerId).PhysicalPath + healthPlanResultReport; if (!DirectoryOperationsHelper.IsFileExist(sourcePath)) { sourcePath = _mediaRepository.GetPremiumVersionResultPdfLocation(ecr.EventId, ecr.CustomerId).PhysicalPath + pcpResultReport; } customerResultObject.SourceFilePath = sourcePath; }
private void AddToCrosswalkList(AnthemResultPostedViewModel resultPostedViewModel) { if (_anthemPdfCrossWalkVeiwModel == null) { _anthemPdfCrossWalkVeiwModel = new List <AnthemPdfCrossWalkVeiwModel>(); } _anthemPdfCrossWalkVeiwModel.Add(new AnthemPdfCrossWalkVeiwModel { FileName = resultPostedViewModel.DestinationPdfFileName, DateOfAssessment = resultPostedViewModel.Event.EventDate, DateOfTransferred = DateTime.Today, PageCount = resultPostedViewModel.PagesInfile, Dcn = resultPostedViewModel.DocketNumber, Batch = resultPostedViewModel.BatchName }); }
private IEnumerable <EventCustomerResult> GetEventCustomersToPostResult(AnthemResultPostedViewModel resultObject) { var corporatTags = _corporateTagRepository.GetByCustomTags(_settings.AnthemCustomTags); var eventCustomerResults = GetFreshCustomerResultToPost(corporatTags, resultObject); var customerResults = GetFinalEventCustomers(resultObject.Tag, eventCustomerResults); if (customerResults == null || !customerResults.Any()) { _logger.Info(string.Format("No event customer result list for {0} Result Pdf Download.", resultObject.Tag)); return(eventCustomerResults); } _logger.Info(string.Format("Found {0} customers for {1} Result Pdf Download. ", customerResults.Count(), resultObject.Tag)); return(eventCustomerResults); }
private string GetTransactEntry(AnthemResultPostedViewModel anthemResultPostedView) { var eventData = anthemResultPostedView.Event; var customer = anthemResultPostedView.Customer; var dcnNumber = anthemResultPostedView.DocketNumber; var edncNumber = anthemResultPostedView.EDocketNumber; var batchName = anthemResultPostedView.BatchName; var fileName = anthemResultPostedView.DestinationPdfFileName; var memberId = string.IsNullOrWhiteSpace(customer.InsuranceId) ? customer.CustomerId.ToString() : customer.InsuranceId; var sb = new StringBuilder(); sb.Append("131:" + anthemResultPostedView.Npi + ",Commercial,SCAN," + FormateDate(eventData.EventDate) + ",,," + FormateDate(customer.DateOfBirth) + ",,,," + anthemResultPostedView.Npi + ",,,,CORRO,," + FormateDate(eventData.EventDate) + ",,,,,,,,,," + dcnNumber + "," + batchName + "," + memberId + ",," + edncNumber + ",,,HLTHFAIR,,application/pdf::" + fileName); return(sb.ToString()); }
private void AddToResultNotPosted(AnthemResultPostedViewModel customerResultObject) { if (_resultPdfNotPosted == null) { _resultPdfNotPosted = new ResultPdfNotPosted { EventCustomer = new List <EventCustomerInfo>() }; } var ecr = customerResultObject.EventCustomerResult; _resultPdfNotPosted.EventCustomer.Add(new EventCustomerInfo { EventCustomerId = ecr.Id, EventId = ecr.EventId, CustomerId = ecr.CustomerId, Error = "file not Moved on HIP SFTP." }); }
private void SetDestinationFileNameWithoutExt(AnthemResultPostedViewModel customerResultObject) { var customerData = customerResultObject.Customer; var ecr = customerResultObject.EventCustomerResult; var corporateAccount = customerResultObject.CorporateAccount; var patientMemerId = string.IsNullOrEmpty(customerData.InsuranceId) ? "No_MemberId_" + ecr.CustomerId : customerData.InsuranceId; var fileName = "_" + patientMemerId + "-" + customerResultObject.UniqueIdetificationDocketNumber; if (corporateAccount.MarkPennedBack && ecr.IsPennedBack) { fileName += "_" + corporateAccount.PennedBackText; } customerResultObject.DestinationFileNameWithoutExt = fileName; SetFileNameWithVersion(customerResultObject); }
private void PostResultPdf(AnthemResultPostedViewModel resultPostedViewModel) { var ecr = resultPostedViewModel.EventCustomerResult; var pdfResultFile = resultPostedViewModel.DestinationPdfFileName; var corporateAccount = resultPostedViewModel.CorporateAccount; var sourceFile = resultPostedViewModel.SourceFilePath; if (DirectoryOperationsHelper.IsFileExist(sourceFile)) { try { _resultPdfDownloaderHelper.ExportResultInPdfFormat(pdfResultFile, resultPostedViewModel.SourceFilePath, resultPostedViewModel.DestinationPathWithBatchName); var pgpFilePath = _pgpFileEncryptionHelper.EncryptFile(corporateAccount, pdfResultFile); var finalFilePosted = Path.GetFileName(pgpFilePath); WriteTransactFile(resultPostedViewModel); AddToCrosswalkList(resultPostedViewModel); var customerInfo = _resultPdfFileHelper.GetCustomerInfo(resultPostedViewModel.Event, finalFilePosted, (long)ResultFormatType.PDF, resultPostedViewModel.Customer, ecr.Id); AddToResultPosted(corporateAccount.Tag, customerInfo); var destination = Path.Combine(resultPostedViewModel.DestinationPathWithBatchName, pdfResultFile); _logger.Info("Source: " + resultPostedViewModel.SourceFilePath); _logger.Info("destination: " + destination); } catch (Exception ex) { _logger.Error("result not posted for Customer Id: " + ecr.CustomerId + " and event Id " + ecr.EventId); _logger.Error(string.Format("some error occurred: Message {0} \\n Stack Trace: {1} ", ex.Message, ex.StackTrace)); AddToResultNotPosted(resultPostedViewModel); } } else { _logger.Info(string.Format("File not generated or removed for the Customer Id: {0}, Event Id: {1}", ecr.CustomerId, ecr.EventId)); AddToResultNotPosted(resultPostedViewModel); } }
private IEnumerable <EventCustomerResult> GetFreshCustomerResultToPost(IEnumerable <CorporateTag> corporatTags, AnthemResultPostedViewModel resultObject) { string[] customTags = null; var corporateAccount = resultObject.CorporateAccount; if (!corporatTags.IsNullOrEmpty()) { customTags = corporatTags.Where(x => x.CorporateId == corporateAccount.Id).Select(x => x.Tag).ToArray(); } _logger.Info(string.Format("Generating for accountId {0} and account tag {1}. ", corporateAccount.Id, corporateAccount.Tag)); var exportFromTime = GetExportStartTime(resultObject.Tag); //in case of Anthem (Anthem-CA) we send all files if (corporateAccount.Id == _settings.AnthemAccountId) { customTags = null; } DateTime?stopSendingPdftoHealthPlanDate = null; if (corporateAccount.IsHealthPlan) { stopSendingPdftoHealthPlanDate = _settings.StopSendingPdftoHealthPlanDate; } var eventCustomerResults = _eventCustomerResultRepository.GetEventCustomerResultsToFax((int)TestResultStateNumber.ResultDelivered, (int)NewTestResultStateNumber.ResultDelivered, false, resultObject.ExportToTime, exportFromTime, corporateAccount.Id, corporateAccount.Tag, true, customTags, true, true, _cutOfDateForSendingReport, stopSendingPdftoHealthPlanDate: stopSendingPdftoHealthPlanDate); return(eventCustomerResults); }
private void PostResultAccountWise(CorporateAccount corporateAccount, string destinationFolderPdf) { try { _resultPdfPostedXml = null; //_anthemPdfCrossWalkVeiwModel = null; _resultPdfNotPosted = null; var customerResultObject = new AnthemResultPostedViewModel { Tag = corporateAccount.Tag, DestinationFilePath = destinationFolderPdf, ExportToTime = DateTime.Now.AddHours(-1), CorporateAccount = corporateAccount, }; var customerResults = GetEventCustomersToPostResult(customerResultObject); foreach (var ecr in customerResults) { try { customerResultObject.EventCustomerResult = ecr; SetSourcePath(customerResultObject); if (File.Exists(customerResultObject.SourceFilePath)) { var ec = _eventCustomerRepository.GetById(ecr.Id); if (ec.AwvVisitId.HasValue) { try { _logger.Info(" fetching NPI info for VistId :" + ec.AwvVisitId.Value); var visitDetails = new EhrAssignedNursePractitionerDetails { VisitId = ec.AwvVisitId.Value }; // var model = _medicareApiService.PostAnonymous<EhrAssignedNursePractitionerDetails>(_settings.MedicareApiUrl + MedicareApiUrl.AssignedNursePractitionerDetails, visitDetails); var npi = string.Empty; if (!string.IsNullOrWhiteSpace(npi)) { customerResultObject.Npi = npi; _logger.Info("NPI: " + npi + " for VistId :" + ec.AwvVisitId.Value); } else { var mssage = "NPI Is Null or Empty"; mssage = mssage + " for visit id: " + ec.AwvVisitId.Value; _logger.Info(mssage); } } catch (Exception ex) { _logger.Error("exception while fetching NPI information"); _logger.Error("Message: " + ex.Message); _logger.Error("stack Trace: " + ex.StackTrace); AddToResultNotPosted(customerResultObject); continue; } } SetEventCustomerDetail(customerResultObject); SetDestinationFileNameWithoutExt(customerResultObject); PostResultPdf(customerResultObject); } else { AddToResultNotPosted(customerResultObject); } } catch (Exception exception) { _logger.Error(string.Format("some error occurred for the customerId {0}, {1},\n Message {2} \n Stack Trace {3}", ecr.CustomerId, ecr.EventId, exception.Message, exception.StackTrace)); } } SaveExportStartTime(customerResultObject); CreateResultPostedLoger(corporateAccount); SetResultPostedList(corporateAccount.Tag, _resultPdfPostedXml); SaveResultNotPosted(corporateAccount.Tag); } catch (Exception ex) { _logger.Error(string.Format("some error occurred for custom tag: {0} Exception Message: \n{1}, \n stack Trace: \n\t {2} ", corporateAccount.Id, ex.Message, ex.StackTrace)); } finally { _resultPdfPostedXml = null; //_anthemPdfCrossWalkVeiwModel = null; _resultPdfNotPosted = null; _customSettings = null; } }