private void RunPSATransfer(object sender, System.ComponentModel.DoWorkEventArgs e) { System.ComponentModel.BackgroundWorker worker = sender as System.ComponentModel.BackgroundWorker; YellowstonePathology.Business.ReportNoCollection reportNoCollection = YellowstonePathology.Business.Gateway.AccessionOrderGateway.GetReportNumbersByPostDate(this.m_PostDate.Value); string workingFolder = System.IO.Path.Combine(this.m_BaseWorkingFolderPath, this.m_PostDate.Value.ToString("MMddyyyy")); this.SetupWorkingFolders(workingFolder); foreach (YellowstonePathology.Business.ReportNo reportNo in reportNoCollection) { string masterAccessionNo = YellowstonePathology.Business.Gateway.AccessionOrderGateway.GetMasterAccessionNoFromReportNo(reportNo.Value); YellowstonePathology.Business.Test.AccessionOrder accessionOrder = YellowstonePathology.Business.Persistence.DocumentGateway.Instance.GetAccessionOrderByMasterAccessionNo(masterAccessionNo); YellowstonePathology.Business.Test.PanelSetOrder panelSetOrder = accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(reportNo.Value); if (accessionOrder.UseBillingAgent == true) { if (panelSetOrder.IsBillable == true) { if (panelSetOrder.PanelSetOrderCPTCodeBillCollection.HasItemsToSendToPSA() == true) { this.m_ReportNumbersToProcess.Add(reportNo.Value); this.CreatePatientTifFile(reportNo.Value); this.CreateXmlBillingDocument(accessionOrder, reportNo.Value); this.CopyFiles(reportNo.Value, accessionOrder.MasterAccessionNo, workingFolder); this.m_BackgroundWorker.ReportProgress(1, reportNo.Value + " Complete."); } } } } }
private void CheckPatientTifFiles() { YellowstonePathology.Business.ReportNoCollection reportNoCollection = YellowstonePathology.Business.Gateway.AccessionOrderGateway.GetReportNumbersByPostDate(this.m_PostDate); foreach (YellowstonePathology.Business.ReportNo reportNo in reportNoCollection) { YellowstonePathology.Business.OrderIdParser orderIdParser = new YellowstonePathology.Business.OrderIdParser(reportNo.Value); string patientTifFilePath = YellowstonePathology.Business.Document.CaseDocument.GetCaseFileNamePatientTif(orderIdParser); string patientTifFileName = System.IO.Path.GetFileName(patientTifFilePath); string workingFolderPath = System.IO.Path.Combine(this.m_BaseWorkingFolderPathPSA, this.m_PostDate.ToString("MMddyyyy")); if (System.IO.File.Exists(patientTifFilePath) == true) { string psaFileName = workingFolderPath + @"\" + orderIdParser.MasterAccessionNo + ".Patient.tif"; if (System.IO.File.Exists(psaFileName) == false) { MessageBox.Show(psaFileName); } } } }
private void ProcessPSAFiles(object sender, System.ComponentModel.DoWorkEventArgs e) { int rowCount = 0; this.m_BackgroundWorker.ReportProgress(1, "Starting processing PSA Files: " + DateTime.Now.ToLongTimeString()); YellowstonePathology.Business.ReportNoCollection reportNoCollection = YellowstonePathology.Business.Gateway.AccessionOrderGateway.GetReportNumbersByPostDate(this.m_PostDate); string workingFolder = System.IO.Path.Combine(m_BaseWorkingFolderPathPSA, this.m_PostDate.ToString("MMddyyyy")); if (Directory.Exists(workingFolder) == false) { Directory.CreateDirectory(workingFolder); } foreach (YellowstonePathology.Business.ReportNo reportNo in reportNoCollection) { string masterAccessionNo = YellowstonePathology.Business.Gateway.AccessionOrderGateway.GetMasterAccessionNoFromReportNo(reportNo.Value); YellowstonePathology.Business.Test.AccessionOrder accessionOrder = YellowstonePathology.Business.Persistence.DocumentGateway.Instance.GetAccessionOrderByMasterAccessionNo(masterAccessionNo); YellowstonePathology.Business.Test.PanelSetOrder panelSetOrder = accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(reportNo.Value); if (accessionOrder.UseBillingAgent == true) { if (panelSetOrder.IsBillable == true) { if (panelSetOrder.PanelSetOrderCPTCodeBillCollection.HasItemsToSendToPSA() == true) { this.m_ReportNumbersToProcess.Add(reportNo.Value); this.CreatePatientTifFile(reportNo.Value); this.CreateXmlBillingDocument(accessionOrder, reportNo.Value); this.CopyFiles(reportNo.Value, accessionOrder.MasterAccessionNo, workingFolder); this.m_BackgroundWorker.ReportProgress(1, reportNo.Value + " Complete."); rowCount += 1; } } } } this.m_BackgroundWorker.ReportProgress(1, "Finished processing " + rowCount + " PSA Files"); Business.Gateway.BillingGateway.UpdateBillingEODProcess(this.m_PostDate, "ProcessPSAFiles"); }
private void ProcessSVHCDMFiles(object sender, System.ComponentModel.DoWorkEventArgs e) { this.m_BackgroundWorker.ReportProgress(1, "Starting processing SVH CDM files."); YellowstonePathology.Business.Client.Model.ClientGroupClientCollection hrhGroup = YellowstonePathology.Business.Gateway.PhysicianClientGateway.GetClientGroupClientCollectionByClientGroupId("2"); YellowstonePathology.Business.ReportNoCollection reportNoCollection = YellowstonePathology.Business.Gateway.AccessionOrderGateway.GetReportNumbersBySVHProcess(this.m_PostDate); string workingFolder = System.IO.Path.Combine(this.m_BaseWorkingFolderPathSVH, this.m_PostDate.ToString("MMddyyyy")); if (Directory.Exists(workingFolder) == false) { Directory.CreateDirectory(workingFolder); Directory.CreateDirectory(System.IO.Path.Combine(workingFolder, "ft1")); Directory.CreateDirectory(System.IO.Path.Combine(workingFolder, "ft1", "done")); Directory.CreateDirectory(System.IO.Path.Combine(workingFolder, "result")); Directory.CreateDirectory(System.IO.Path.Combine(workingFolder, "result", "done")); } int rowCount = 0; foreach (YellowstonePathology.Business.ReportNo reportNo in reportNoCollection) { this.m_BackgroundWorker.ReportProgress(1, "Processing: " + reportNo.Value); string masterAccessionNo = YellowstonePathology.Business.Gateway.AccessionOrderGateway.GetMasterAccessionNoFromReportNo(reportNo.Value); YellowstonePathology.Business.Test.AccessionOrder accessionOrder = YellowstonePathology.Business.Persistence.DocumentGateway.Instance.PullAccessionOrder(masterAccessionNo, this); YellowstonePathology.Business.Test.PanelSetOrder panelSetOrder = accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(reportNo.Value); foreach (Business.Test.PanelSetOrderCPTCodeBill panelSetOrderCPTCodeBill in panelSetOrder.PanelSetOrderCPTCodeBillCollection) { if (panelSetOrderCPTCodeBill.BillTo == "Client" && panelSetOrderCPTCodeBill.PostDate == this.m_PostDate) { if (YellowstonePathology.Business.Billing.Model.CDMCollection.Instance.Exists(panelSetOrderCPTCodeBill.CPTCode, "SVH") == true) { if (panelSetOrderCPTCodeBill.PostedToClient == false) { if (string.IsNullOrEmpty(panelSetOrderCPTCodeBill.MedicalRecord) == false && string.IsNullOrEmpty(panelSetOrderCPTCodeBill.Account) == false) { if (panelSetOrderCPTCodeBill.MedicalRecord.StartsWith("V") == true || panelSetOrderCPTCodeBill.MedicalRecord.StartsWith("R") == true) { this.m_BackgroundWorker.ReportProgress(1, "Writing File: " + reportNo.Value + " - " + panelSetOrderCPTCodeBill.CPTCode); Business.HL7View.EPIC.EPICFT1ResultView epicFT1ResultView = new Business.HL7View.EPIC.EPICFT1ResultView(accessionOrder, panelSetOrderCPTCodeBill); epicFT1ResultView.Publish(System.IO.Path.Combine(workingFolder, "ft1")); panelSetOrderCPTCodeBill.PostedToClient = true; panelSetOrderCPTCodeBill.PostedToClientDate = DateTime.Now; rowCount += 1; } else { throw new Exception("The MRN for this charge doesn't start with a V"); } } else { throw new Exception("This MRN or ACCT is null."); } } } else { this.m_BackgroundWorker.ReportProgress(1, "There is no CDM for ReportNo/Code: " + reportNo.Value + " - " + panelSetOrderCPTCodeBill.CPTCode); Business.Billing.Model.SVHNoCDMMailMessage.SendMessage(panelSetOrderCPTCodeBill.CPTCode); } } } } YellowstonePathology.Business.Persistence.DocumentGateway.Instance.Push(this); this.m_BackgroundWorker.ReportProgress(1, "Wrote " + rowCount + " SVH CDM files."); Business.Gateway.BillingGateway.UpdateBillingEODProcess(this.m_PostDate, "ProcessSVHCDMFiles"); }