private void RunAutomatedFaxesForConnecticutOrtho() { faxRepository = new FaxRepository(); createLetters = new AutomatedFaxBL.Letters.CreateLetters(); documentsList = faxRepository.GetListOfDocumentssToSendViaFax(); faxRepository.InsertSignedDocumentsFromGreenway(documentsList); faxTelephoneNumberList = new List<FaxTelephoneNumber>(); faxTelephoneNumber = new FaxTelephoneNumber(); sendFaxesReporting = new SendFaxesReporting(); string faxPathWithCoverLetterAndNote = string.Empty; for (int i = 0; i < documentsList.Count; i++) { if (documentsList[i].Proccess == "Y") { if (faxRepository.CheckToSeeIfProviderThatSignedDocumentIsCareProvider(documentsList[i].CareProviderID, documentsList[i].SignerID)) { if (GetDocumentFromGreenway(documentsList[i].DocumentID)) { sendFaxesReporting = new SendFaxesReporting(); faxRepository.InsertAllSignedNotes(documentsList[i]); sendFaxesReporting = new SendFaxesReporting(); sendFaxesReporting.DocumentID = documentsList[i].DocumentID; sendFaxesReporting.CareProviderID = documentsList[i].CareProviderID; sendFaxesReporting.CareProviderName = documentsList[i].CareProviderName; sendFaxesReporting.PatientID = documentsList[i].PatientID; sendFaxesReporting.PatientName = documentsList[i].PatientName; sendFaxesReporting.PrimaryCareProviderID = documentsList[i].PrimaryCareProviderID; sendFaxesReporting.PrimaryCareProvider = documentsList[i].PrimaryCareProvider; sendFaxesReporting.ReferringCareProviderID = documentsList[i].ReferringCareProviderID; sendFaxesReporting.ReferringCareProvider = documentsList[i].ReferringCareProvider; faxTelephoneNumber = faxRepository.GetFaxNumbers(documentsList[i].PrimaryCareProviderID.ToString()); if (documentsList[i].PrimaryCareProviderID > 0) { if (faxTelephoneNumber.FaxNumber.Length > 0 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID) == false) { faxPathWithCoverLetterAndNote = string.Empty; if (documentsList[i].DocTypeName == "History and Physical") { faxPathWithCoverLetterAndNote = createLetters.CreateLetterToPutInFrontOfNote(faxTelephoneNumber, documentsList[i]); } else if (documentsList[i].DocTypeName == "Progress Note") { string newDocumentName = Guid.NewGuid().ToString() + ".pdf"; faxPathWithCoverLetterAndNote = ConfigurationValues.FinalFaxPath + newDocumentName; File.Copy(ConfigurationValues.CreatePdfPath, ConfigurationValues.FinalFaxPath + newDocumentName); } if (Utility.GetPDFPageCount(faxPathWithCoverLetterAndNote) < 15) { sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.PrimaryCareFaxSent = "Y"; sendFaxesReporting.PrimaryCareReason = "Approved Provider and has fax number"; OperationResult operationResult = CreateFaxRecord(documentsList[i].CareProviderName, faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber), faxTelephoneNumber.Name, faxPathWithCoverLetterAndNote); sendFaxesReporting.PrimaryCareSendID = int.Parse(operationResult.MessageList[0]); if (operationResult.Success) { AutomatedFaxBL.Multitech.SendFaxMultitech sendFax = new AutomatedFaxBL.Multitech.SendFaxMultitech(); faxTelephoneNumber.FaxNumber = faxTelephoneNumber.FaxNumber.Replace("(", "") .Replace(")", "") .Replace("-", "") .Replace(" ", ""); sendFax.SendTheFax(documentsList[i].PatientName, faxPathWithCoverLetterAndNote, faxTelephoneNumber.Name, faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber), operationResult.MessageList[0], ""); } } else { sendFaxesReporting.PrimaryCareFaxSent = "N"; sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.PrimaryCareReason = "Number of pages greater than 14"; } } else { whyFaxWasNotSent = string.Empty; if (faxTelephoneNumber.FaxNumber.Length < 1 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID)) { whyFaxWasNotSent = "No Fax Number for Provider and Primary Care Provider is in the Practice"; } else if (faxTelephoneNumber.FaxNumber.Length < 1) { whyFaxWasNotSent = "No Fax Number for Provider"; } else if (faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID)) { whyFaxWasNotSent = "Primary Care Provider is in the Practice"; } sendFaxesReporting.PrimaryCareFaxSent = "N"; sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.PrimaryCareReason = whyFaxWasNotSent; } } else { sendFaxesReporting.PrimaryCareFaxSent = "N"; sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.PrimaryCareReason = "No Primary Care Provider"; } faxTelephoneNumber = faxRepository.GetFaxNumbers(documentsList[i].ReferringCareProviderID.ToString()); if (documentsList[i].ReferringCareProviderID == documentsList[i].PrimaryCareProviderID) { sendFaxesReporting.ReferringCareFaxSent = "N"; sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.ReferringCareReason = "Primary Care Provider and Referring Care Provider are the same"; } else if (documentsList[i].ReferringCareProviderID > 0) { if (faxTelephoneNumber.FaxNumber.Length > 0 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID) == false) { faxPathWithCoverLetterAndNote = string.Empty; if (documentsList[i].DocTypeName == "History and Physical") { faxPathWithCoverLetterAndNote = createLetters.CreateLetterToPutInFrontOfNote(faxTelephoneNumber, documentsList[i]); } else if (documentsList[i].DocTypeName == "Progress Note") { string newDocumentName = Guid.NewGuid().ToString() + ".pdf"; faxPathWithCoverLetterAndNote = ConfigurationValues.FinalFaxPath + newDocumentName; File.Copy(ConfigurationValues.CreatePdfPath, ConfigurationValues.FinalFaxPath + newDocumentName); } if (Utility.GetPDFPageCount(faxPathWithCoverLetterAndNote) < 15) { sendFaxesReporting.ReferringCareFaxSent = "Y"; sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.ReferringCareReason = "Approved Provider and has fax number"; OperationResult operationResult = CreateFaxRecord(documentsList[i].CareProviderName, faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber), faxTelephoneNumber.Name, faxPathWithCoverLetterAndNote); sendFaxesReporting.ReferringCareSendID = int.Parse(operationResult.MessageList[0]); if (operationResult.Success) { AutomatedFaxBL.Multitech.SendFaxMultitech sendFax = new AutomatedFaxBL.Multitech.SendFaxMultitech(); faxTelephoneNumber.FaxNumber = faxTelephoneNumber.FaxNumber.Replace("(", "") .Replace(")", "") .Replace("-", "") .Replace(" ", ""); sendFax.SendTheFax(documentsList[i].PatientName, faxPathWithCoverLetterAndNote, faxTelephoneNumber.Name, faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber), operationResult.MessageList[0], ""); } } else { sendFaxesReporting.ReferringCareFaxSent = "N"; sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.ReferringCareReason = "Number of pages greater than 14"; } } else { whyFaxWasNotSent = string.Empty; if (faxTelephoneNumber.FaxNumber.Length < 1 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID)) { whyFaxWasNotSent = "No Fax Number for Provider and Referring Care Provider is in the Practice"; } else if (faxTelephoneNumber.FaxNumber.Length < 1) { whyFaxWasNotSent = "No Fax Number for Provider"; } else if (faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID)) { whyFaxWasNotSent = "Referring Care Provider is in the Practice"; } sendFaxesReporting.ReferringCareFaxSent = "N"; sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.ReferringCareReason = whyFaxWasNotSent; } } else { sendFaxesReporting.ReferringCareFaxSent = "N"; sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.ReferringCareReason = "No Referring Care Provider"; } SendFaxesReporting sendFaxesReporting2 = sendFaxesReporting; faxRepository.AddReportingRecord(sendFaxesReporting); } } else { //Care Provider who signed note is not Care Provider of record for visit faxRepository.InsertAllSignedNotes(documentsList[i]); sendFaxesReporting = new SendFaxesReporting(); sendFaxesReporting.DocumentID = documentsList[i].DocumentID; sendFaxesReporting.CareProviderID = documentsList[i].CareProviderID; sendFaxesReporting.CareProviderName = documentsList[i].CareProviderName; sendFaxesReporting.PatientID = documentsList[i].PatientID; sendFaxesReporting.PatientName = documentsList[i].PatientName; sendFaxesReporting.PrimaryCareProviderID = documentsList[i].PrimaryCareProviderID; sendFaxesReporting.PrimaryCareProvider = documentsList[i].PrimaryCareProvider; sendFaxesReporting.ReferringCareProviderID = documentsList[i].ReferringCareProviderID; sendFaxesReporting.ReferringCareProvider = documentsList[i].ReferringCareProvider; sendFaxesReporting.PrimaryCareFaxSent = "N"; sendFaxesReporting.PrimaryCareFaxNumber = string.Empty; sendFaxesReporting.PrimaryCareReason = "Care Provider who signed note is not Care Provider of record for visit"; sendFaxesReporting.ReferringCareFaxSent = "N"; sendFaxesReporting.ReferringCareFaxNumber = string.Empty; sendFaxesReporting.ReferringCareReason = "Care Provider who signed note is not Care Provider of record for visit"; faxRepository.AddReportingRecord(sendFaxesReporting); //Do nothing for this record } } else { //Document not set to Y to process //Either the document had already been sent //or it has been signed more than one time on the same day by the same provider faxRepository.InsertAllSignedNotes(documentsList[i]); sendFaxesReporting = new SendFaxesReporting(); sendFaxesReporting.DocumentID = documentsList[i].DocumentID; sendFaxesReporting.CareProviderID = documentsList[i].CareProviderID; sendFaxesReporting.CareProviderName = documentsList[i].CareProviderName; sendFaxesReporting.PatientID = documentsList[i].PatientID; sendFaxesReporting.PatientName = documentsList[i].PatientName; sendFaxesReporting.PrimaryCareProviderID = documentsList[i].PrimaryCareProviderID; sendFaxesReporting.PrimaryCareProvider = documentsList[i].PrimaryCareProvider; sendFaxesReporting.ReferringCareProviderID = documentsList[i].ReferringCareProviderID; sendFaxesReporting.ReferringCareProvider = documentsList[i].ReferringCareProvider; sendFaxesReporting.PrimaryCareFaxSent = "N"; sendFaxesReporting.PrimaryCareFaxNumber = string.Empty; sendFaxesReporting.PrimaryCareReason = "Either document has already been sent or duplicate signature on the same day"; sendFaxesReporting.ReferringCareFaxSent = "N"; sendFaxesReporting.ReferringCareFaxNumber = string.Empty; sendFaxesReporting.ReferringCareReason = "Either document has already been sent or duplicate signature on the same day"; faxRepository.AddReportingRecord(sendFaxesReporting); } System.Threading.Thread.Sleep(20000); } System.Threading.Thread.Sleep(30000); for (int i = 0; i <= 3; i++) { try { Console.WriteLine(DateTime.Now.ToShortTimeString()); faxRepository.UpdateCompletionTimes(); faxRepository.UpdateStatusOfSentFaxes(); System.Threading.Thread.Sleep(300000); Console.WriteLine(DateTime.Now.ToShortTimeString()); } catch (Exception er) { Logging.LogErrors(ConfigurationValues.ErrorLogPath, er.ToString()); } } }
private void RunAutomatedFaxesForConnecticutOrtho() { faxRepository = new FaxRepository(); createLetters = new AutomatedFaxBL.Letters.CreateLetters(); // //ResendFaxesThatHaveFailed(); PeformActionOnFaxesThatHaveFailedThreeTimes(); documentsList = faxRepository.GetListOfDocumentssToSendViaFax(faxRepository.GetListOfCarProviderIDs(), faxRepository.GetLocationsList()); faxTelephoneNumberList = new List<FaxTelephoneNumber>(); faxTelephoneNumber = new FaxTelephoneNumber(); sendFaxesReporting = new SendFaxesReporting(); string faxPathWithCoverLetterAndNote = string.Empty; for (int i = 0; i < documentsList.Count; i++) { if (documentsList[i].Proccess == "Y") { if (faxRepository.CheckToSeeIfProviderThatSignedDocumentIsCareProvider(documentsList[i].CareProviderID, documentsList[i].SignerID)) { if (GetDocumentFromGreenway(documentsList[i].DocumentID)) { sendFaxesReporting = new SendFaxesReporting(); faxRepository.InsertAllSignedNotes(documentsList[i]); sendFaxesReporting = new SendFaxesReporting(); sendFaxesReporting.DocumentID = documentsList[i].DocumentID; sendFaxesReporting.CareProviderID = documentsList[i].CareProviderID; sendFaxesReporting.CareProviderName = documentsList[i].CareProviderName; sendFaxesReporting.PatientID = documentsList[i].PatientID; sendFaxesReporting.PatientName = documentsList[i].PatientName; sendFaxesReporting.PrimaryCareProviderID = documentsList[i].PrimaryCareProviderID; sendFaxesReporting.PrimaryCareProvider = documentsList[i].PrimaryCareProvider; sendFaxesReporting.ReferringCareProviderID = documentsList[i].ReferringCareProviderID; sendFaxesReporting.ReferringCareProvider = documentsList[i].ReferringCareProvider; faxTelephoneNumber = faxRepository.GetFaxNumbers(documentsList[i].PrimaryCareProviderID.ToString()); if (documentsList[i].PrimaryCareProviderID > 0) { if (faxTelephoneNumber.FaxNumber.Length > 0 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID) == false) { faxPathWithCoverLetterAndNote = string.Empty; if (documentsList[i].DocTypeName == "History and Physical") { faxPathWithCoverLetterAndNote = createLetters.CreateLetterToPutInFrontOfNote(faxTelephoneNumber, documentsList[i]); } else if (documentsList[i].DocTypeName == "Progress Note") { string newDocumentName = Guid.NewGuid().ToString() + ".pdf"; faxPathWithCoverLetterAndNote = ConfigurationValues.FinalFaxPath + newDocumentName; File.Copy(ConfigurationValues.CreatePdfPath, ConfigurationValues.FinalFaxPath + newDocumentName); // ConfigurationValues.FinalFaxPath + newDocumentName } if (Utility.GetPageCount(faxPathWithCoverLetterAndNote) < 15) { sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.PrimaryCareFaxSent = "Y"; sendFaxesReporting.PrimaryCareReason = "Approved Provider and has fax number"; OperationResult operationResult = CreateFaxRecord(documentsList[i].CareProviderName, faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber), faxTelephoneNumber.Name, faxPathWithCoverLetterAndNote); sendFaxesReporting.PrimaryCareSendID = int.Parse(operationResult.MessageList[0]); if (operationResult.Success) { AutomatedFaxBL.Multitech.SendFaxMultitech sendFax = new AutomatedFaxBL.Multitech.SendFaxMultitech(); faxTelephoneNumber.FaxNumber = faxTelephoneNumber.FaxNumber.Replace("(", "") .Replace(")", "") .Replace("-", "") .Replace(" ", ""); sendFax.SendTheFax(documentsList[i].PatientName, faxPathWithCoverLetterAndNote, faxTelephoneNumber.Name, faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber), operationResult.MessageList[0], ""); } } else { sendFaxesReporting.PrimaryCareFaxSent = "N"; sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.PrimaryCareReason = "Number of pages greater than 14"; } }// end else { whyFaxWasNotSent = string.Empty; if (faxTelephoneNumber.FaxNumber.Length < 1 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID)) { whyFaxWasNotSent = "No Fax Number for Provider and Primary Care Provider is in the Practice"; } else if (faxTelephoneNumber.FaxNumber.Length < 1) { whyFaxWasNotSent = "No Fax Number for Provider"; } else if (faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID)) { whyFaxWasNotSent = "Primary Care Provider is in the Practice"; } sendFaxesReporting.PrimaryCareFaxSent = "N"; sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.PrimaryCareReason = whyFaxWasNotSent; } } else { sendFaxesReporting.PrimaryCareFaxSent = "N"; sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.PrimaryCareReason = "No Primary Care Provider"; } faxTelephoneNumber = faxRepository.GetFaxNumbers(documentsList[i].ReferringCareProviderID.ToString()); if (documentsList[i].ReferringCareProviderID == documentsList[i].PrimaryCareProviderID) { sendFaxesReporting.ReferringCareFaxSent = "N"; sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.ReferringCareReason = "No Delivery Requested"; } else if (documentsList[i].ReferringCareProviderID > 0) { if (faxTelephoneNumber.FaxNumber.Length > 0 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID) == false) { faxPathWithCoverLetterAndNote = string.Empty; if (documentsList[i].DocTypeName == "History and Physical") { faxPathWithCoverLetterAndNote = createLetters.CreateLetterToPutInFrontOfNote(faxTelephoneNumber, documentsList[i]); } else if (documentsList[i].DocTypeName == "Progress Note") { string newDocumentName = Guid.NewGuid().ToString() + ".pdf"; faxPathWithCoverLetterAndNote = ConfigurationValues.FinalFaxPath + newDocumentName; File.Copy(ConfigurationValues.CreatePdfPath, ConfigurationValues.FinalFaxPath + newDocumentName); } //faxPathWithCoverLetterAndNote = createLetters.CreateLetterToPutInFrontOfNote(faxTelephoneNumber, documentsList[i]); if (Utility.GetPageCount(faxPathWithCoverLetterAndNote) < 15) { //createLetters.CreateLetterToPutInFrontOfNote(faxTelephoneNumber, documentsList[i]); sendFaxesReporting.ReferringCareFaxSent = "Y"; sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.ReferringCareReason = "Approved Provider and has fax number"; OperationResult operationResult = CreateFaxRecord(documentsList[i].CareProviderName, faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber), faxTelephoneNumber.Name, faxPathWithCoverLetterAndNote); sendFaxesReporting.ReferringCareSendID = int.Parse(operationResult.MessageList[0]); if (operationResult.Success) { AutomatedFaxBL.Multitech.SendFaxMultitech sendFax = new AutomatedFaxBL.Multitech.SendFaxMultitech(); faxTelephoneNumber.FaxNumber = faxTelephoneNumber.FaxNumber.Replace("(", "") .Replace(")", "") .Replace("-", "") .Replace(" ", ""); sendFax.SendTheFax(documentsList[i].PatientName, faxPathWithCoverLetterAndNote, faxTelephoneNumber.Name, faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber), operationResult.MessageList[0], ""); } } else { sendFaxesReporting.ReferringCareFaxSent = "N"; sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.ReferringCareReason = "Number of pages greater than 14"; } }// end else { whyFaxWasNotSent = string.Empty; if (faxTelephoneNumber.FaxNumber.Length < 1 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID)) { whyFaxWasNotSent = "No Fax Number for Provider and Referring Care Provider is in the Practice"; } else if (faxTelephoneNumber.FaxNumber.Length < 1) { whyFaxWasNotSent = "No Fax Number for Provider"; } else if (faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID)) { whyFaxWasNotSent = "Referring Care Provider is in the Practice"; } sendFaxesReporting.ReferringCareFaxSent = "N"; sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.ReferringCareReason = whyFaxWasNotSent; } } else { sendFaxesReporting.ReferringCareFaxSent = "N"; sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber; sendFaxesReporting.ReferringCareReason = "No Referring Care Provider"; } SendFaxesReporting sendFaxesReporting2 = sendFaxesReporting; faxRepository.AddReportingRecord(sendFaxesReporting); } } else { //Care Provider who signed note is not Care Provider of record for visit } } else { //Document not have a Yes to process } System.Threading.Thread.Sleep(30000); } System.Threading.Thread.Sleep(30000); //} // faxRepository.UpdateCompletionTimes(); // faxRepository.UpdateStatusOfSentFaxes(); }