private bool TryPublish(YellowstonePathology.Business.Interface.ICaseDocument caseDocument, Business.Test.AccessionOrder accessionOrder,
                                YellowstonePathology.Business.Test.PanelSetOrder panelSetOrder)
        {
            bool result = true;

            //try
            //{

            //YellowstonePathology.Business.PanelSet.Model.ResultDocumentSourceEnum resultDocumentSource;
            //bool hasEnum = Enum.TryParse<YellowstonePathology.Business.PanelSet.Model.ResultDocumentSourceEnum>(panelSetOrder.ResultDocumentSource, out resultDocumentSource);
            //if(hasEnum == true && resultDocumentSource != YellowstonePathology.Business.PanelSet.Model.ResultDocumentSourceEnum.PublishedDocument)
            //{
            //   caseDocument.Publish();
            //}

            if (panelSetOrder.ResultDocumentSource == YellowstonePathology.Business.PanelSet.Model.ResultDocumentSourceEnum.YPIDatabase.ToString())
            {
                caseDocument.Render();
                caseDocument.Publish();
            }

            this.m_ReportDistributionLogEntryCollection.AddEntry("INFO", "Publish Next", null, panelSetOrder.ReportNo, panelSetOrder.MasterAccessionNo, null, null, "PanelSetOrder Published");
            //}
            //catch (Exception publishException)
            //{
            //    this.m_ReportDistributionLogEntryCollection.AddEntry("ERROR", "Publish Next", null, panelSetOrder.ReportNo, panelSetOrder.MasterAccessionNo, null, null, publishException.Message);
            //    this.DelayPublishAndDistribution(15, publishException.Message, panelSetOrder);
            //    result = false;
            //}

            return(result);
        }
Ejemplo n.º 2
0
        public void View(Business.Test.AccessionOrder accessionOrder, Business.Test.PanelSetOrder panelSetOrder)
        {
            YellowstonePathology.Business.PanelSet.Model.PanelSet panelSet = YellowstonePathology.Business.PanelSet.Model.PanelSetCollection.GetAll().GetPanelSet(panelSetOrder.PanelSetId);
            YellowstonePathology.Business.Interface.ICaseDocument doc      = YellowstonePathology.Business.Document.DocumentFactory.GetDocument(accessionOrder, panelSetOrder, Business.Document.ReportSaveModeEnum.Draft);
            doc.Render();
            YellowstonePathology.Business.OrderIdParser orderIdParser = new Business.OrderIdParser(panelSetOrder.ReportNo);

            string fileName = string.Empty;

            if (panelSet.ResultDocumentSource == Business.PanelSet.Model.ResultDocumentSourceEnum.PublishedDocument ||
                panelSet.ResultDocumentSource == Business.PanelSet.Model.ResultDocumentSourceEnum.RetiredTestDocument)
            {
                fileName = YellowstonePathology.Business.Document.CaseDocument.GetCaseFileNameXPS(orderIdParser);
            }
            else
            {
                fileName = YellowstonePathology.Business.Document.CaseDocument.GetDraftDocumentFilePath(orderIdParser);
            }

            switch (doc.NativeDocumentFormat)
            {
            case Business.Document.NativeDocumentFormatEnum.Word:
                YellowstonePathology.Business.Document.CaseDocument.OpenWordDocumentWithWordViewer(fileName);
                break;

            case Business.Document.NativeDocumentFormatEnum.XPS:
                YellowstonePathology.UI.XpsDocumentViewer xpsDocumentViewer = new XpsDocumentViewer();
                xpsDocumentViewer.ViewDocument(fileName);
                xpsDocumentViewer.ShowDialog();
                break;
            }
        }
        private void HyperLinkShowDocument_Click(object sender, RoutedEventArgs e)
        {
            YellowstonePathology.Business.Interface.ICaseDocument caseDocument = YellowstonePathology.Business.Document.DocumentFactory.GetDocument(this.m_AccessionOrder, this.m_PanelSetOrder, Business.Document.ReportSaveModeEnum.Draft);
            caseDocument.Render();

            YellowstonePathology.Business.Document.CaseDocument.OpenWordDocumentWithWord(caseDocument.SaveFileName);
        }
Ejemplo n.º 4
0
        public static YellowstonePathology.Business.Interface.ICaseDocument GetDocument(Business.Test.AccessionOrder accessionOrder, Business.Test.PanelSetOrder panelSetOrder, ReportSaveModeEnum reportSaveMode)
        {
            YellowstonePathology.Business.PanelSet.Model.PanelSet panelSet = YellowstonePathology.Business.PanelSet.Model.PanelSetCollection.GetAll().GetPanelSet(panelSetOrder.PanelSetId);
            Type caseDocumentType = Type.GetType(panelSet.WordDocumentClassName);

            YellowstonePathology.Business.Interface.ICaseDocument document = (YellowstonePathology.Business.Interface.ICaseDocument)Activator.CreateInstance(caseDocumentType, accessionOrder, panelSetOrder, reportSaveMode);
            return(document);
        }
        private void HyperLinkShowDocument_Click(object sender, RoutedEventArgs e)
        {
            YellowstonePathology.Business.Interface.ICaseDocument caseDocument = YellowstonePathology.Business.Document.DocumentFactory.GetDocument(this.m_AccessionOrder, this.m_PanelSetOrder, Business.Document.ReportSaveModeEnum.Draft);
            caseDocument.Render();

            YellowstonePathology.Business.OrderIdParser orderIdParser = new Business.OrderIdParser(this.m_PanelSetOrder.ReportNo);
            string fileName = YellowstonePathology.Business.Document.CaseDocument.GetDraftDocumentFilePath(orderIdParser);

            YellowstonePathology.Business.Document.CaseDocument.OpenWordDocumentWithWordViewer(fileName);
        }
Ejemplo n.º 6
0
 private void ContextMenuPublish_Click(object sender, RoutedEventArgs e)
 {
     if (this.m_CytologyUI.AccessionOrder != null)
     {
         YellowstonePathology.Business.Interface.ICaseDocument caseDocument = YellowstonePathology.Business.Document.DocumentFactory.GetDocument(this.m_CytologyUI.AccessionOrder, this.m_CytologyUI.PanelSetOrderCytology, Business.Document.ReportSaveModeEnum.Normal);
         caseDocument.Render();
         caseDocument.Publish();
         MessageBox.Show("The document has been published");
     }
 }
Ejemplo n.º 7
0
        public void ButtonViewDocument_Click(object sender, RoutedEventArgs args)
        {
            Save(false);
            if (this.m_FlowUI.PanelSetOrderLeukemiaLymphoma.PanelSetId != 19 && this.m_FlowUI.PanelSetOrderLeukemiaLymphoma.PanelSetId != 20)
            {
                YellowstonePathology.Business.Interface.ICaseDocument caseDocument = YellowstonePathology.Business.Document.DocumentFactory.GetDocument(this.m_FlowUI.AccessionOrder, this.m_FlowUI.PanelSetOrderLeukemiaLymphoma, Business.Document.ReportSaveModeEnum.Draft);
                caseDocument.Render();

                YellowstonePathology.Business.OrderIdParser orderIdParser = new Business.OrderIdParser(this.m_FlowUI.PanelSetOrderLeukemiaLymphoma.ReportNo);
                string fileName = YellowstonePathology.Business.Document.CaseDocument.GetDraftDocumentFilePath(orderIdParser);
                YellowstonePathology.Business.Document.CaseDocument.OpenWordDocumentWithWordViewer(fileName);
            }
        }
 private void HyperLinkPublish_Click(object sender, RoutedEventArgs e)
 {
     if (this.DoesXPSDocumentExist() == true)
     {
         YellowstonePathology.Business.Interface.ICaseDocument caseDocument = YellowstonePathology.Business.Document.DocumentFactory.GetDocument(this.m_AccessionOrder, this.m_PanelSetOrder, Business.Document.ReportSaveModeEnum.Normal);
         caseDocument.Render();
         caseDocument.Publish();
         MessageBox.Show("The case was successfully published.");
     }
     else
     {
         MessageBox.Show("Cannot publish this case until the XPS document is present.");
     }
 }
Ejemplo n.º 9
0
        private bool TryPublish(YellowstonePathology.Business.Interface.ICaseDocument caseDocument, Business.Test.AccessionOrder accessionOrder,
                                YellowstonePathology.Business.Test.PanelSetOrder panelSetOrder)
        {
            bool result = true;

            //try
            //{
            caseDocument.Render();
            caseDocument.Publish();

            this.m_ReportDistributionLogEntryCollection.AddEntry("INFO", "Publish Next", null, panelSetOrder.ReportNo, panelSetOrder.MasterAccessionNo, null, null, "PanelSetOrder Published");
            //}

            /*
             * catch (Exception publishException)
             * {
             *  this.m_ReportDistributionLogEntryCollection.AddEntry("ERROR", "Publish Next", null, panelSetOrder.ReportNo, panelSetOrder.MasterAccessionNo,
             *  null, null, publishException.Message);
             *
             *  System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage("*****@*****.**", "*****@*****.**", System.Windows.Forms.SystemInformation.UserName, publishException.Message);
             *  System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("10.1.2.111");
             *
             *  Uri uri = new Uri("http://tempuri.org/");
             *  System.Net.ICredentials credentials = System.Net.CredentialCache.DefaultCredentials;
             *  System.Net.NetworkCredential credential = credentials.GetCredential(uri, "Basic");
             *
             *  client.Credentials = credential;
             *  client.Send(message);
             *
             *  this.DelayPublishAndDistribution(15, publishException.Message, panelSetOrder);
             *
             *  result = false;
             * }
             */

            return(result);
        }
        private void HyperLinkPublish_Click(object sender, RoutedEventArgs e)
        {
            if (this.m_PanelSetOrder.Final == true)
            {
                YellowstonePathology.Business.Interface.ICaseDocument caseDocument  = YellowstonePathology.Business.Document.DocumentFactory.GetDocument(this.m_AccessionOrder, this.m_PanelSetOrder, Business.Document.ReportSaveModeEnum.Normal);
                YellowstonePathology.Business.OrderIdParser           orderIdParser = new Business.OrderIdParser(this.m_PanelSetOrder.ReportNo);
                YellowstonePathology.Business.Rules.MethodResult      methodResult  = caseDocument.DeleteCaseFiles(orderIdParser);

                if (methodResult.Success == true)
                {
                    caseDocument.Render();
                    caseDocument.Publish();
                    MessageBox.Show("The document has been published.");
                }
                else
                {
                    MessageBox.Show(methodResult.Message);
                }
            }
            else
            {
                MessageBox.Show("You cannot publish this case until it's final.");
            }
        }
Ejemplo n.º 11
0
        public static YellowstonePathology.Business.Interface.ICaseDocument GetDocument(Business.Test.AccessionOrder accessionOrder, Business.Test.PanelSetOrder panelSetOrder, ReportSaveModeEnum reportSaveMode)
        {
            YellowstonePathology.Business.Interface.ICaseDocument document = null;

            YellowstonePathology.Business.PanelSet.Model.PanelSet panelSet = YellowstonePathology.Business.PanelSet.Model.PanelSetCollection.GetAll().GetPanelSet(panelSetOrder.PanelSetId);
            if (panelSet.ResultDocumentSource == YellowstonePathology.Business.PanelSet.Model.ResultDocumentSourceEnum.PublishedDocument)
            {
                document = new ReferenceLabReport(accessionOrder, panelSetOrder, reportSaveMode);
            }
            else if (panelSet.ResultDocumentSource == YellowstonePathology.Business.PanelSet.Model.ResultDocumentSourceEnum.RetiredTestDocument)
            {
                document = new DoNotPublishReport(accessionOrder, panelSetOrder, reportSaveMode);
            }
            else
            {
                switch (panelSetOrder.PanelSetId)
                {
                case 1:                         //JAK2
                    document = new YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                //case 2: //Cystic Fybrosis
                //	document = new YellowstonePathology.Business.Test.CysticFibrosis.CysticFibrosisWordDocument();
                //	break;
                case 3:                         //NGCT
                    document = new YellowstonePathology.Business.Test.NGCT.NGCTWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 12:                         //Future FISH
                    document = new YellowstonePathology.Business.Document.HER2AmplificationReport(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 13:                         //Surgical
                case 128:                        //Non GYN Cytology
                    document = new YellowstonePathology.Business.Test.Surgical.SurgicalWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 14:                         //HPV
                    document = new YellowstonePathology.Business.Test.HPV.HPVWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 15:                          //Cytology
                    document = new YellowstonePathology.Business.Test.ThinPrepPap.ThinPrepPapWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 18:                          //BRAF
                    document = new YellowstonePathology.Business.Test.BRAFV600EK.BRAFV600EKWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 19:                         //PNH
                    document = new YellowstonePathology.Business.Test.PNH.PNHWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 20:                         //Leukemia/Lymphoma Phenotyping
                    document = new YellowstonePathology.Business.Test.LLP.LeukemiaLymphomaWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 21:                         //Thrombocytopenia Profile
                    document = new YellowstonePathology.Business.Test.ThombocytopeniaProfile.ThombocytopeniaProfileWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 22:                         //Platelet Associated Antibodies
                    document = new YellowstonePathology.Business.Test.PlateletAssociatedAntibodies.PlateletAssociatedAntibodiesWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 23:                         //Reticulated platelet Analysis
                    document = new YellowstonePathology.Business.Test.ReticulatedPlateletAnalysis.ReticulatedPlateletAnalysisWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 24:                         //Stem Cell Enumeration
                    document = new YellowstonePathology.Business.Test.StemCellEnumeration.StemCellEnumerationWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 27:                         //New KRAS
                    document = new YellowstonePathology.Business.Test.KRASStandard.KRASStandardWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 28:                         //Fetal Hemoglobin
                    document = new YellowstonePathology.Business.Test.FetalHemoglobin.FetalHemoglobinWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 29:                         //DNA
                    document = new YellowstonePathology.Business.Document.DnaReport(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 30:                         //KRAS Standard Reflex
                    document = new YellowstonePathology.Business.Test.KRASStandardReflex.KRASStandardReflexWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 31:                         //TechnicalOnly
                    document = new YellowstonePathology.Business.Test.TechnicalOnly.TechnicalOnlyWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 32:                         //FactorVLeiden
                    document = new YellowstonePathology.Business.Test.FactorVLeiden.FactorVLeidenWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 33:                         //Prothrombin
                    document = new YellowstonePathology.Business.Test.Prothrombin.ProthrombinWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 35:                         //Autopsy
                    document = new YellowstonePathology.Business.Test.Autopsy.AutopsyWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 36:                         //BCellClonality
                    document = new YellowstonePathology.Business.Test.BCellClonalityByPCR.BCellClonalityByPCRWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 46:                         //Her2ByIsh
                    document = new YellowstonePathology.Business.Test.HER2AmplificationByISH.HER2AmplificationByISHWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 50:                         //ErPrSemiQuantitative
                    document = new YellowstonePathology.Business.Test.ErPrSemiQuantitative.ErPrSemiQuantitativeWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 60:                         //EGFR
                    document = new YellowstonePathology.Business.Test.EGFRMutationAnalysis.EGFRMutationAnalysisWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 61:                         //Trichomonas
                    document = new YellowstonePathology.Business.Test.Trichomonas.TrichomonasWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 62:                         //HPV 16/18
                    document = new YellowstonePathology.Business.Test.HPV1618.HPV1618WordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 213:     //HPV 16/18
                    document = new YellowstonePathology.Business.Test.HPV1618ByPCR.HPV1618ByPCRWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 66:      //Test Cancelled
                    document = new YellowstonePathology.Business.Test.TestCancelled.TestCancelledWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 100:                         //BCL1 t1114
                    document = new YellowstonePathology.Business.Test.BCL1t1114.BCL1t1114WordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 102:
                    document = new YellowstonePathology.Business.Test.LynchSyndrome.LynchSyndromeIHCPanelWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 106:
                    document = new YellowstonePathology.Business.Test.LynchSyndrome.LynchSyndromeEvaluationWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 112:
                    document = new YellowstonePathology.Business.Test.ComprehensiveColonCancerProfile.ComprehensiveColonCancerProfileWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 116:
                    document = new YellowstonePathology.Business.Test.WomensHealthProfile.WomensHealthProfileWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 124:
                    document = new YellowstonePathology.Business.Test.EGFRToALKReflexAnalysis.EGFRToALKReflexAnalysisWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 125:
                    document = new YellowstonePathology.Business.Test.InvasiveBreastPanel.InvasiveBreastPanelWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 131:
                    document = new YellowstonePathology.Business.Test.ALKForNSCLCByFISH.ALKForNSCLCByFISHWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 132:
                    document = new YellowstonePathology.Business.Test.MicrosatelliteInstabilityAnalysis.MicrosatelliteInstabilityAnalysisWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 135:
                    document = new YellowstonePathology.Business.Test.ABL1KinaseDomainMutation.ABL1KinaseDomainMutationWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 136:
                    document = new YellowstonePathology.Business.Test.MPNStandardReflex.MPNStandardReflexWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 137:
                    document = new YellowstonePathology.Business.Test.MPNExtendedReflex.MPNExtendedReflexWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 140:                         //Calreticulin V2
                    document = new YellowstonePathology.Business.Test.CalreticulinMutationAnalysis.CalreticulinMutationAnalysisWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 141:                         //Jak2Exon1214 V2
                    document = new YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214WordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 143:                         //ZAP 70 lymphoid panel
                    document = new YellowstonePathology.Business.Test.ZAP70LymphoidPanel.ZAP70LymphoidPanelWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 144:                         //MLH1
                    document = new YellowstonePathology.Business.Test.LynchSyndrome.MLH1MethylationAnalysisWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 145:                         //Cytogenetic Analysis
                    document = new YellowstonePathology.Business.Test.ChromosomeAnalysis.ChromosomeAnalysisWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 147:                         //Multiple Myeloma MGUS by FISH
                    document = new YellowstonePathology.Business.Test.MultipleMyelomaMGUSByFish.MultipleMyelomaMGUSByFishWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 148:                         //CCNDI
                    document = new YellowstonePathology.Business.Test.CCNDIBCLIGH.CCNDIBCLIGHWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 149:                         //High Grade Large B Cell Lymphoma
                    document = new YellowstonePathology.Business.Test.HighGradeLargeBCellLymphoma.HighGradeLargeBCellLymphomaWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 150:                         // CEBPA
                    document = new YellowstonePathology.Business.Test.CEBPA.CEBPAWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 151:                         // CLL by Fish
                    document = new YellowstonePathology.Business.Test.CLLByFish.CLLByFishWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 152:                         // T Cell Clonality By PCR
                    document = new YellowstonePathology.Business.Test.TCellClonalityByPCR.TCellClonalityByPCRWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 153:                         // FLT3
                    document = new YellowstonePathology.Business.Test.FLT3.FLT3WordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 155:                         // NPM1
                    document = new YellowstonePathology.Business.Test.NPM1.NPM1WordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 156:                         // BCRABL Fish
                    document = new YellowstonePathology.Business.Test.BCRABLByFish.BCRABLByFishWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 157:                         // MPN Fish
                    document = new YellowstonePathology.Business.Test.MPNFish.MPNFishWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 158:                         // MDS by Fish
                    document = new YellowstonePathology.Business.Test.MDSByFish.MDSByFishWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 159:                         // MPL
                    document = new YellowstonePathology.Business.Test.MPL.MPLWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 160:                         // MultipleFISHProbePanel
                    document = new YellowstonePathology.Business.Test.MultipleFISHProbe.MultipleFISHProbeWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 161:                         // MultipleMyelomaIgHByFish
                    document = new YellowstonePathology.Business.Test.MultipleMyelomaIgHByFish.MultipleMyelomaIgHByFishWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 162:                         // BCRABLByPCR
                    document = new YellowstonePathology.Business.Test.BCRABLByPCR.BCRABLByPCRWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 163:                         //Her2AmplificationByFish
                    document = new YellowstonePathology.Business.Test.Her2AmplificationByFish.Her2AmplificationByFishWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 164:                         // MDS Extended Panel by Fish
                    document = new YellowstonePathology.Business.Test.MDSExtendedByFish.MDSExtendedByFishWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 168:                         // AML Standard By Fish
                    document = new YellowstonePathology.Business.Test.AMLStandardByFish.AMLStandardByFishWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 169:                         // Chromosome Analysis For Fetal Anomaly
                    document = new YellowstonePathology.Business.Test.ChromosomeAnalysisForFetalAnomaly.ChromosomeAnalysisForFetalAnomalyWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 170:                         // Non Hodgkins Lymphoma FISH Panel
                    document = new YellowstonePathology.Business.Test.NonHodgkinsLymphomaFISHPanel.NonHodgkinsLymphomaFISHPanelWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 171:                         // HER2 IHC
                    document = new YellowstonePathology.Business.Test.Her2AmplificationByIHC.Her2AmplificationByIHCWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 172:                         // Eosinophilia By FISH
                    document = new YellowstonePathology.Business.Test.EosinophiliaByFISH.EosinophiliaByFISHWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 173:                         // Plasma Cell Myeloma Risk Stratification
                    document = new YellowstonePathology.Business.Test.PlasmaCellMyelomaRiskStratification.PlasmaCellMyelomaRiskStratificationWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 174:                         // NeoARRAY SNP Cytogenetic Profile
                    document = new YellowstonePathology.Business.Test.NeoARRAYSNPCytogeneticProfile.NeoARRAYSNPCytogeneticProfileWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 175:                         // KRAS Exon 4 Mutation
                    document = new YellowstonePathology.Business.Test.KRASExon4Mutation.KRASExon4MutationWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 177:                         // B-Cell Gene Rearrangement
                    document = new YellowstonePathology.Business.Test.BCellGeneRearrangement.BCellGeneRearrangementWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 178:                         // MYD88 Mutation Analysis
                    document = new YellowstonePathology.Business.Test.MYD88MutationAnalysis.MYD88MutationAnalysisWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 179:                         // MYD88 Mutation Analysis
                    document = new YellowstonePathology.Business.Test.NRASMutationAnalysis.NRASMutationAnalysisWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 181:                          //CKIT
                    document = new YellowstonePathology.Business.Test.CKIT.CKITWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 183:                         //Cystic Fybrosis
                    document = new YellowstonePathology.Business.Test.CysticFibrosis.CysticFibrosisWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 184:                         //
                    document = new YellowstonePathology.Business.Test.DeletionsForGlioma1p19q.DeletionsForGlioma1p19qWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 185:                         //
                    document = new YellowstonePathology.Business.Test.BladderCancerFISHUrovysion.BladderCancerFISHUrovysionWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 186:                         //
                    document = new YellowstonePathology.Business.Test.API2MALT1.API2MALT1WordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 192:                         //
                    document = new YellowstonePathology.Business.Test.ALLAdultByFISH.ALLAdultByFISHWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 81:     //
                case 165:
                case 189:
                case 190:
                case 197:
                case 201:
                case 208:
                case 211:
                case 212:
                case 216:
                    document = new YellowstonePathology.Business.Document.NothingToPublishReport(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 203:
                    document = new YellowstonePathology.Business.Test.ReviewForAdditionalTesting.ReviewForAdditionalTestingWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 204:
                    document = new YellowstonePathology.Business.Test.ROS1ByFISH.ROS1ByFISHWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 214:
                    document = new YellowstonePathology.Business.Test.TechInitiatedPeripheralSmear.TechInitiatedPeripheralSmearWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 215:
                    document = new YellowstonePathology.Business.Test.PDL1.PDL1WordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 217:
                    document = new YellowstonePathology.Business.Test.KRASExon23Mutation.KRASExon23MutationWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 218:
                    document = new YellowstonePathology.Business.Test.RASRAFPanel.RASRAFPanelWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 222:
                    document = new YellowstonePathology.Business.Test.BCellEnumeration.BCellEnumerationWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                case 223:
                    document = new YellowstonePathology.Business.Test.TCellSubsetAnalysis.TCellSubsetAnalysisWordDocument(accessionOrder, panelSetOrder, reportSaveMode);
                    break;

                default:
                    break;
                }
            }
            return(document);
        }
        private void PublishNext()
        {
            List <YellowstonePathology.Business.Test.PanelSetOrderView> caseList = YellowstonePathology.Business.Gateway.AccessionOrderGateway.GetNextCasesToPublish();

            int maxProcessCount = 2;

            if (caseList.Count >= 10)
            {
                maxProcessCount = 10;
            }

            int processCount = 0;

            foreach (YellowstonePathology.Business.Test.PanelSetOrderView view in caseList)
            {
                YellowstonePathology.Business.Test.AccessionOrder accessionOrder = YellowstonePathology.Business.Persistence.DocumentGateway.Instance.PullAccessionOrder(view.MasterAccessionNo, this);
                YellowstonePathology.Business.Test.PanelSetOrder  panelSetOrder  = accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(view.ReportNo);

                if (panelSetOrder.PanelSetId == 116)
                {
                    this.HandleWHP(accessionOrder, panelSetOrder);
                }

                YellowstonePathology.Business.PanelSet.Model.PanelSetCollection panelSetCollection = YellowstonePathology.Business.PanelSet.Model.PanelSetCollection.GetAll();
                YellowstonePathology.Business.PanelSet.Model.PanelSet           panelSet           = panelSetCollection.GetPanelSet(panelSetOrder.PanelSetId);

                YellowstonePathology.Business.Interface.ICaseDocument caseDocument  = YellowstonePathology.Business.Document.DocumentFactory.GetDocument(accessionOrder, panelSetOrder, Business.Document.ReportSaveModeEnum.Normal);
                YellowstonePathology.Business.OrderIdParser           orderIdParser = new YellowstonePathology.Business.OrderIdParser(panelSetOrder.ReportNo);

                if (panelSetOrder.HoldDistribution == false)
                {
                    if (this.TryDelete(panelSetOrder, caseDocument, orderIdParser) == true)
                    {
                        if (this.TryPublish(caseDocument, accessionOrder, panelSetOrder) == true)
                        {
                            if (panelSetOrder.Distribute == true)
                            {
                                foreach (YellowstonePathology.Business.ReportDistribution.Model.TestOrderReportDistribution testOrderReportDistribution in panelSetOrder.TestOrderReportDistributionCollection)
                                {
                                    if (testOrderReportDistribution.Distributed == false)
                                    {
                                        YellowstonePathology.Business.ReportDistribution.Model.DistributionResult distributionResult = this.Distribute(testOrderReportDistribution, accessionOrder, panelSetOrder);
                                        if (distributionResult.IsComplete == true)
                                        {
                                            testOrderReportDistribution.TimeOfLastDistribution    = DateTime.Now;
                                            testOrderReportDistribution.ScheduledDistributionTime = null;
                                            testOrderReportDistribution.Distributed = true;

                                            string testOrderReportDistributionLogId = Guid.NewGuid().ToString();
                                            string objectId = MongoDB.Bson.ObjectId.GenerateNewId().ToString();
                                            YellowstonePathology.Business.ReportDistribution.Model.TestOrderReportDistributionLog testOrderReportDistributionLog = new YellowstonePathology.Business.ReportDistribution.Model.TestOrderReportDistributionLog(testOrderReportDistributionLogId, objectId);
                                            testOrderReportDistributionLog.FromTestOrderReportDistribution(testOrderReportDistribution);
                                            testOrderReportDistributionLog.TimeDistributed = DateTime.Now;
                                            panelSetOrder.TestOrderReportDistributionLogCollection.Add(testOrderReportDistributionLog);

                                            this.m_ReportDistributionLogEntryCollection.AddEntry("INFO", "Publish Next", testOrderReportDistribution.DistributionType, panelSetOrder.ReportNo, panelSetOrder.MasterAccessionNo,
                                                                                                 testOrderReportDistribution.PhysicianName, testOrderReportDistribution.ClientName, "TestOrderReportDistribution Distributed");
                                        }
                                        else
                                        {
                                            testOrderReportDistribution.ScheduledDistributionTime = DateTime.Now.AddMinutes(30);
                                            testOrderReportDistribution.Rescheduled        = true;
                                            testOrderReportDistribution.RescheduledMessage = distributionResult.Message;

                                            this.m_ReportDistributionLogEntryCollection.AddEntry("ERROR", "Publish Next", testOrderReportDistribution.DistributionType, panelSetOrder.ReportNo, panelSetOrder.MasterAccessionNo,
                                                                                                 testOrderReportDistribution.PhysicianName, testOrderReportDistribution.ClientName, distributionResult.Message);

                                            System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage("*****@*****.**", "*****@*****.**", System.Windows.Forms.SystemInformation.UserName, distributionResult.Message);
                                            System.Net.Mail.SmtpClient  client  = new System.Net.Mail.SmtpClient("10.1.2.111");

                                            Uri uri = new Uri("http://tempuri.org/");
                                            System.Net.ICredentials      credentials = System.Net.CredentialCache.DefaultCredentials;
                                            System.Net.NetworkCredential credential  = credentials.GetCredential(uri, "Basic");

                                            client.Credentials = credential;
                                            client.Send(message);
                                        }
                                    }
                                }
                            }

                            panelSetOrder.Published            = true;
                            panelSetOrder.TimeLastPublished    = DateTime.Now;
                            panelSetOrder.ScheduledPublishTime = null;

                            Business.Persistence.DocumentGateway.Instance.Save();
                        }
                    }

                    processCount += 1;
                    if (processCount == maxProcessCount)
                    {
                        break;
                    }
                }
            }

            YellowstonePathology.Business.Persistence.DocumentGateway.Instance.Push(this);
        }
        public bool TryDelete(YellowstonePathology.Business.Test.PanelSetOrder panelSetOrder, YellowstonePathology.Business.Interface.ICaseDocument caseDocument,
                              YellowstonePathology.Business.OrderIdParser orderIdParser)
        {
            bool result = true;

            YellowstonePathology.Business.Rules.MethodResult methodResult = caseDocument.DeleteCaseFiles(orderIdParser);

            if (methodResult.Success == false)
            {
                this.DelayPublishAndDistribution(15, "Not able to delete files prior to publishing.", panelSetOrder);

                this.m_ReportDistributionLogEntryCollection.AddEntry("ERROR", "Publish Next", null, panelSetOrder.ReportNo, panelSetOrder.MasterAccessionNo,
                                                                     null, null, "Not able to delete files prior to publishing.");

                System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage("*****@*****.**", "*****@*****.**", System.Windows.Forms.SystemInformation.UserName, "Not able to delete files prior to publishing: " + panelSetOrder.ReportNo);
                System.Net.Mail.SmtpClient  client  = new System.Net.Mail.SmtpClient("10.1.2.111");

                Uri uri = new Uri("http://tempuri.org/");
                System.Net.ICredentials      credentials = System.Net.CredentialCache.DefaultCredentials;
                System.Net.NetworkCredential credential  = credentials.GetCredential(uri, "Basic");

                client.Credentials = credential;
                client.Send(message);

                result = false;
            }

            return(result);
        }