private void RunAutomaticFaxesForOrthoNow() { faxRepository = new FaxRepository(); createLettersOrthoNow = new AutomatedFaxBL.Letters.CreateLetterOrthoNow(); documentsList = faxRepository.GetListOfOrthoNowDocumentssToSendViaFax(); 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.CheckToSeeIfProviderThatSignedDocumentIsCareProviderOrthoNow(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 = createLettersOrthoNow.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"; } }// 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 = "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 = createLettersOrthoNow.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"; } }// 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 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); } } 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 RunAutomaticFaxesForOrthoNow() { faxRepository = new FaxRepository(); createLettersOrthoNow = new AutomatedFaxBL.Letters.CreateLetterOrthoNow(); // //ResendFaxesThatHaveFailed(); //PeformActionOnFaxesThatHaveFailedThreeTimes(); documentsList = faxRepository.GetListOfOrthoNowDocumentssToSendViaFax(); 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.CheckToSeeIfProviderThatSignedDocumentIsCareProviderOrthoNow(documentsList[i].CareProviderID, documentsList[i].SignerID)) { if (GetDocumentFromGreenway(documentsList[i].DocumentID)) { //faxPathWithCoverLetterAndNote = createLettersOrthoNow.CreateLetterToPutInFrontOfNote(faxTelephoneNumber, documentsList[i]); 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 = createLettersOrthoNow.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], ""); //sendFax.SendTheFax(documentsList[i].PatientName, faxPathWithCoverLetterAndNote, faxTelephoneNumber.Name, "9,2034668585", "111", ""); } } 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 = createLettersOrthoNow.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); }