public override string ToResultString(AccessionOrder accessionOrder)
        {
            StringBuilder result = new StringBuilder();

            result.AppendLine("Interpretation:");
            result.AppendLine(this.m_Interpretation);
            result.AppendLine();

            result.AppendLine("Comment:");
            result.AppendLine(this.m_Comment);
            result.AppendLine();

            YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest       jak2V617FTest    = new YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest();
            YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214Test jak2Exon1214Test = new YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214Test();
            if (accessionOrder.PanelSetOrderCollection.Exists(jak2V617FTest.PanelSetId) == true)
            {
                result.AppendLine("JAK2 V617F");
                YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTestOrder jak2V617FTestOrder = (YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTestOrder)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(jak2V617FTest.PanelSetId);
                result.AppendLine(jak2V617FTestOrder.ToResultString(accessionOrder));
                result.AppendLine();
            }

            if (accessionOrder.PanelSetOrderCollection.Exists(jak2Exon1214Test.PanelSetId) == true)
            {
                result.AppendLine("JAK2 Exon 1214");
                YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214TestOrder jak2Exon1214TestOrder = (YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214TestOrder)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(jak2Exon1214Test.PanelSetId);
                result.AppendLine(jak2Exon1214TestOrder.ToResultString(accessionOrder));
                result.AppendLine();
            }

            return(result.ToString());
        }
예제 #2
0
        public override AuditResult IsOkToSetResults(AccessionOrder accessionOrder, PanelSetOrderLynchSyndromeEvaluation panelSetOrderLynchSyndromeEvaluation)
        {
            AuditResult result = base.IsOkToSetResults(accessionOrder, panelSetOrderLynchSyndromeEvaluation);

            Rules.MethodResult brafResult = null;
            if (result.Status == Audit.Model.AuditStatusEnum.OK)
            {
                brafResult = this.HasFinalBRAFResult(accessionOrder, panelSetOrderLynchSyndromeEvaluation);
                if (brafResult.Success == false)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = brafResult.Message;
                }
            }

            if (result.Status == Audit.Model.AuditStatusEnum.OK)
            {
                if (brafResult.Message == TestResult.NotDetected)
                {
                    Rules.MethodResult methResult = this.HasFinalMethResult(accessionOrder, panelSetOrderLynchSyndromeEvaluation);
                    if (methResult.Success == false)
                    {
                        result.Status  = AuditStatusEnum.Failure;
                        result.Message = methResult.Message;
                    }
                }
            }
            return(result);
        }
        public MPNStandardReflexResult(AccessionOrder accessionOrder)
        {
            this.m_AccessionOrder = accessionOrder;

            YellowstonePathology.Business.Test.MPNStandardReflex.MPNStandardReflexTest panelSetMPNStandardReflex = new YellowstonePathology.Business.Test.MPNStandardReflex.MPNStandardReflexTest();
            this.m_PanelSetOrderMPNStandardReflex = (YellowstonePathology.Business.Test.MPNStandardReflex.PanelSetOrderMPNStandardReflex)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(panelSetMPNStandardReflex.PanelSetId);
            YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest panelSetJAK2V617F = new YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest();
            YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214Test panelSetExon1214 = new YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214Test();

            this.m_PanelSetOrderJAK2V617F = (YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTestOrder)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(panelSetJAK2V617F.PanelSetId);
            this.m_PanelSetOrderJAK2Exon1214 = (YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214TestOrder)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(panelSetExon1214.PanelSetId);

            this.m_SpecimenOrder =  this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(this.m_PanelSetOrderMPNStandardReflex.OrderedOn, this.m_PanelSetOrderMPNStandardReflex.OrderedOnId);
            this.m_JAK2V617FResult = this.m_PanelSetOrderJAK2V617F.Result;

            this.m_Comment = this.m_PanelSetOrderJAK2V617F.Comment;

            if (this.m_AccessionOrder.PanelSetOrderCollection.Exists(panelSetExon1214.PanelSetId) == true)
            {
                this.m_HasJAK2Exon1214 = true;
                this.m_JAK2Exon1214Result = this.m_PanelSetOrderJAK2Exon1214.Result;
            }
            else
            {
                this.m_HasJAK2Exon1214 = false;
                this.m_JAK2Exon1214Result = "Not Performed";
            }

            this.SetInterpretation();
            this.SetMethod();
            this.m_References = References;
        }
예제 #4
0
        public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToFinalize(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                HER2AmplificationByISH.HER2AmplificationByISHTest ishTest = new HER2AmplificationByISH.HER2AmplificationByISHTest();
                if (accessionOrder.PanelSetOrderCollection.Exists(ishTest.PanelSetId, this.m_OrderedOnId, true) == true)
                {
                    HER2AmplificationByISH.HER2AmplificationByISHTestOrder ishTestOrder = (HER2AmplificationByISH.HER2AmplificationByISHTestOrder)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(ishTest.PanelSetId, this.m_OrderedOnId, true);
                    if (ishTestOrder.Final == true)
                    {
                        if (this.m_Score.Contains("2+") == true)
                        {
                            HER2AmplificationRecount.HER2AmplificationRecountTest test = new HER2AmplificationRecount.HER2AmplificationRecountTest();
                            if (accessionOrder.PanelSetOrderCollection.Exists(test.PanelSetId, this.m_OrderedOnId, true) == false)
                            {
                                result.Status  = AuditStatusEnum.Warning;
                                result.Message = "This test will be finalized but not distributed as a " + test.PanelSetName + " is needed to determine the actual result and will be ordered.";
                            }
                        }
                    }
                }
            }

            return(result);
        }
예제 #5
0
        public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
        {
            Audit.Model.PathologistSignoutAuditCollection pathologistSignoutAuditCollection = new PathologistSignoutAuditCollection(accessionOrder);
            AuditResult auditResult = pathologistSignoutAuditCollection.Run2();

            return(auditResult);
        }
        private void AreTestResultsPresent(AccessionOrder accessionOrder, Audit.Model.AuditResult result)
        {
            if (string.IsNullOrEmpty(this.m_JAK2V617FResult) == true)
            {
                result.Status   = Audit.Model.AuditStatusEnum.Failure;
                result.Message += NotFilledMessage("JAK2V617FResult");
            }

            if (string.IsNullOrEmpty(this.m_JAK2Exon1214Result) == true)
            {
                result.Status   = Audit.Model.AuditStatusEnum.Failure;
                result.Message += NotFilledMessage("JAK2Exon1214Result");
            }

            if (string.IsNullOrEmpty(this.m_MPLResult) == true)
            {
                result.Status   = Audit.Model.AuditStatusEnum.Failure;
                result.Message += NotFilledMessage("MPLResult");
            }

            if (string.IsNullOrEmpty(this.m_CalreticulinMutationAnalysisResult) == true)
            {
                result.Status   = Audit.Model.AuditStatusEnum.Failure;
                result.Message += NotFilledMessage("CalreticulinMutationAnalysisResult");
            }
        }
예제 #7
0
        public override string ToResultString(AccessionOrder accessionOrder)
        {
            StringBuilder result = new StringBuilder();

            result.AppendLine("Interpretation:");
            result.AppendLine(this.m_Interpretation);
            result.AppendLine();

            result.AppendLine("Comment:");
            result.AppendLine(this.m_Comment);
            result.AppendLine();

            result.AppendLine("JAK2 V617F");
            result.AppendLine(this.m_JAK2V617FResult);
            result.AppendLine();

            result.AppendLine("JAK2 Exon 1214");
            result.AppendLine(this.m_JAK2Exon1214Result);
            result.AppendLine();

            result.AppendLine("MPL");
            result.AppendLine(this.m_MPLResult);
            result.AppendLine();

            return(result.ToString());
        }
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_HbFPercent) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Hb-F percent" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_FetalBleed) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Fetal Bleed" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_RhImmuneGlobulin) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Rh Immune Globulin";
                }
            }

            if (result.Status == AuditStatusEnum.Failure)
            {
                result.Message = "Unable to accept as the following result/s are not set: " + Environment.NewLine + result.Message;
            }

            return(result);
        }
예제 #9
0
        public override void OrderInitialTests(AccessionOrder accessionOrder, YellowstonePathology.Business.Interface.IOrderTarget orderTarget)
        {
            YellowstonePathology.Business.Test.HER2AmplificationByISH.HER2AmplificationByISHTest her2AmplificationByISHTest = new YellowstonePathology.Business.Test.HER2AmplificationByISH.HER2AmplificationByISHTest();
            YellowstonePathology.Business.Test.TestOrderInfo            testOrderInfo         = new TestOrderInfo(her2AmplificationByISHTest, orderTarget, true);
            YellowstonePathology.Business.Visitor.OrderTestOrderVisitor orderTestOrderVisitor = new Visitor.OrderTestOrderVisitor(testOrderInfo);
            accessionOrder.TakeATrip(orderTestOrderVisitor);

            bool hasSurgical = accessionOrder.PanelSetOrderCollection.Exists(13);

            if (hasSurgical == true)
            {
                string surgicalReportNo = accessionOrder.PanelSetOrderCollection.GetSurgical().ReportNo;
                YellowstonePathology.Business.Test.AliquotOrder aliquotOrder = (YellowstonePathology.Business.Test.AliquotOrder)orderTarget;

                YellowstonePathology.Business.Test.Model.EstrogenReceptorSemiquant er = new YellowstonePathology.Business.Test.Model.EstrogenReceptorSemiquant();
                YellowstonePathology.Business.Visitor.OrderTestVisitor             orderERTestVisitor = new Visitor.OrderTestVisitor(surgicalReportNo, er, er.OrderComment, null, false, aliquotOrder, false, false, accessionOrder.TaskOrderCollection);
                accessionOrder.TakeATrip(orderERTestVisitor);

                YellowstonePathology.Business.Test.Model.ProgesteroneReceptorSemiquant pr = new YellowstonePathology.Business.Test.Model.ProgesteroneReceptorSemiquant();
                YellowstonePathology.Business.Visitor.OrderTestVisitor orderPRTestVisitor = new Visitor.OrderTestVisitor(surgicalReportNo, pr, pr.OrderComment, null, false, aliquotOrder, false, false, accessionOrder.TaskOrderCollection);
                accessionOrder.TakeATrip(orderPRTestVisitor);
            }
            else
            {
                YellowstonePathology.Business.Test.ErPrSemiQuantitative.ErPrSemiQuantitativeTest erPrSemiQuantitativeTest = new YellowstonePathology.Business.Test.ErPrSemiQuantitative.ErPrSemiQuantitativeTest();
                YellowstonePathology.Business.Test.TestOrderInfo            testOrderInfoERPR         = new TestOrderInfo(erPrSemiQuantitativeTest, orderTarget, true);
                YellowstonePathology.Business.Visitor.OrderTestOrderVisitor orderTestOrderVisitorERPR = new Visitor.OrderTestOrderVisitor(testOrderInfoERPR);
                accessionOrder.TakeATrip(orderTestOrderVisitorERPR);
            }
        }
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_AntiPlateletAntibodyIgG) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Anti - Platelet Antibody - IgG" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_AntiPlateletAntibodyIgM) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Anti-Platelet Antibody - IgM" + Environment.NewLine;
                }
            }

            if (result.Status == AuditStatusEnum.Failure)
            {
                result.Message = "Unable to accept as the following result/s are not set: " + Environment.NewLine + result.Message;
            }

            return(result);
        }
예제 #11
0
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_StemCellEnumeration) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Stem Cell Enumeration" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_Viability) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Viability" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_WBCCount) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "WBC Count" + Environment.NewLine;
                }

                if (result.Status == AuditStatusEnum.Failure)
                {
                    result.Message = "Unable to accept as the following result/s are not set: " + Environment.NewLine + result.Message;
                }
            }
            return(result);
        }
예제 #12
0
        public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
        {
            YellowstonePathology.Business.Audit.Model.AuditResult result = new AuditResult();
            if (this.Final == true)
            {
                result.Status  = AuditStatusEnum.Failure;
                result.Message = "This case cannot be finalized because it is already finalized.";
            }
            else
            {
                Audit.Model.DistributionNotSetAudit distributionNotSetAudit = new Audit.Model.DistributionNotSetAudit(this);
                distributionNotSetAudit.Run();
                if (distributionNotSetAudit.Status == Audit.Model.AuditStatusEnum.Failure)
                {
                    result.Status  = AuditStatusEnum.Failure;;
                    result.Message = distributionNotSetAudit.Message.ToString();
                }

                if (result.Status == AuditStatusEnum.OK)
                {
                    YellowstonePathology.Business.Audit.Model.ComprehensiveColonCancerProfileFinalAudit comprehensiveColonCancerProfileFinalAudit = new ComprehensiveColonCancerProfileFinalAudit(accessionOrder);
                    comprehensiveColonCancerProfileFinalAudit.Run();
                    result.Status  = comprehensiveColonCancerProfileFinalAudit.Status;
                    result.Message = comprehensiveColonCancerProfileFinalAudit.Message.ToString();
                }
            }
            return(result);
        }
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_CD34Percentage) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "CD34 Percentage" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_CD34Absolute) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "CD34 Absolute" + Environment.NewLine;
                }
                if (string.IsNullOrEmpty(this.m_WBCCount) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "WBC Count" + Environment.NewLine;
                }

                if (result.Status == AuditStatusEnum.Failure)
                {
                    result.Message = "Unable to accept as the following result/s are not set: " + Environment.NewLine + result.Message;
                }
            }
            return(result);
        }
예제 #14
0
        public override void OrderInitialTests(AccessionOrder accessionOrder, YellowstonePathology.Business.Interface.IOrderTarget orderTarget)
        {
            YellowstonePathology.Business.Test.HER2AmplificationByISH.HER2AmplificationByISHTest her2AmplificationByISHTest = new YellowstonePathology.Business.Test.HER2AmplificationByISH.HER2AmplificationByISHTest();
            YellowstonePathology.Business.Test.TestOrderInfo testOrderInfo = new TestOrderInfo(her2AmplificationByISHTest, orderTarget, true);
            YellowstonePathology.Business.Visitor.OrderTestOrderVisitor orderTestOrderVisitor = new Visitor.OrderTestOrderVisitor(testOrderInfo);
            accessionOrder.TakeATrip(orderTestOrderVisitor);

            bool hasSurgical = accessionOrder.PanelSetOrderCollection.Exists(13);
            if (hasSurgical == true)
            {
                string surgicalReportNo = accessionOrder.PanelSetOrderCollection.GetSurgical().ReportNo;
                YellowstonePathology.Business.Test.AliquotOrder aliquotOrder = (YellowstonePathology.Business.Test.AliquotOrder)orderTarget;

                YellowstonePathology.Business.Test.Model.EstrogenReceptorSemiquant er = new YellowstonePathology.Business.Test.Model.EstrogenReceptorSemiquant();
                YellowstonePathology.Business.Visitor.OrderTestVisitor orderERTestVisitor = new Visitor.OrderTestVisitor(surgicalReportNo, er, er.OrderComment, null, false, aliquotOrder, false, false, accessionOrder.TaskOrderCollection);
                accessionOrder.TakeATrip(orderERTestVisitor);

                YellowstonePathology.Business.Test.Model.ProgesteroneReceptorSemiquant pr = new YellowstonePathology.Business.Test.Model.ProgesteroneReceptorSemiquant();
                YellowstonePathology.Business.Visitor.OrderTestVisitor orderPRTestVisitor = new Visitor.OrderTestVisitor(surgicalReportNo, pr, pr.OrderComment, null, false, aliquotOrder, false, false, accessionOrder.TaskOrderCollection);
                accessionOrder.TakeATrip(orderPRTestVisitor);
            }
            else
            {
                YellowstonePathology.Business.Test.ErPrSemiQuantitative.ErPrSemiQuantitativeTest erPrSemiQuantitativeTest = new YellowstonePathology.Business.Test.ErPrSemiQuantitative.ErPrSemiQuantitativeTest();
                YellowstonePathology.Business.Test.TestOrderInfo testOrderInfoERPR = new TestOrderInfo(erPrSemiQuantitativeTest, orderTarget, true);
                YellowstonePathology.Business.Visitor.OrderTestOrderVisitor orderTestOrderVisitorERPR = new Visitor.OrderTestOrderVisitor(testOrderInfoERPR);
                accessionOrder.TakeATrip(orderTestOrderVisitorERPR);
            }
        }
        public override string BuildResultText(SpecimenOrder specimenOrder, AccessionOrder accessionOrder, YellowstonePathology.Business.User.SystemIdentity systemIdentity)
        {
            string result = base.BuildResultText(specimenOrder, accessionOrder, systemIdentity);

            result = this.ReplaceCassetteLabel(result, specimenOrder);
            return(result);
        }
예제 #16
0
        public override Audit.Model.AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            Audit.Model.AuditResult result = base.IsOkToAccept(accessionOrder);
            if (result.Status == Audit.Model.AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.Result) == true)
                {
                    result.Status  = Audit.Model.AuditStatusEnum.Failure;
                    result.Message = UnableToAccept;
                }
            }

            if (result.Status == Audit.Model.AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_TumorNucleiPercentage) == true)
                {
                    result.Status  = Audit.Model.AuditStatusEnum.Failure;
                    result.Message = "The results cannot be accepted because the Tumor Nuclei Percentage has no value.";
                }
            }

            if (result.Status == Audit.Model.AuditStatusEnum.OK)
            {
                this.DoesFinalSummaryResultMatch(accessionOrder, this.m_Result, result);
                if (result.Status == Audit.Model.AuditStatusEnum.Warning)
                {
                    result.Message += AskAccept;
                }
            }

            return(result);
        }
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.Indicator) == true)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "The result may not be accepted because the indication is not set.";
                }
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.Result) == true)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "The result may not be accepted because the result is not set.";
                }
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (this.m_NumberOfObservers == 0)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "The result may not be accepted because the Number of Observers must be greater than 0.";
                }
            }
            return(result);
        }
        public override string BuildResultText(SpecimenOrder specimenOrder, AccessionOrder accessionOrder, YellowstonePathology.Business.User.SystemIdentity systemIdentity)
        {
            string result = base.BuildResultText(specimenOrder, accessionOrder, systemIdentity);

            result = this.ReplaceRepresentativeSections(this.m_Text, specimenOrder);
            return(result);
        }
예제 #19
0
        public MPNStandardReflexResult(AccessionOrder accessionOrder)
        {
            this.m_AccessionOrder = accessionOrder;

            YellowstonePathology.Business.Test.MPNStandardReflex.MPNStandardReflexTest panelSetMPNStandardReflex = new YellowstonePathology.Business.Test.MPNStandardReflex.MPNStandardReflexTest();
            this.m_PanelSetOrderMPNStandardReflex = (YellowstonePathology.Business.Test.MPNStandardReflex.PanelSetOrderMPNStandardReflex) this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(panelSetMPNStandardReflex.PanelSetId);
            YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest       panelSetJAK2V617F = new YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest();
            YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214Test panelSetExon1214  = new YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214Test();

            this.m_PanelSetOrderJAK2V617F    = (YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTestOrder) this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(panelSetJAK2V617F.PanelSetId);
            this.m_PanelSetOrderJAK2Exon1214 = (YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214TestOrder) this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(panelSetExon1214.PanelSetId);

            this.m_SpecimenOrder   = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(this.m_PanelSetOrderMPNStandardReflex.OrderedOn, this.m_PanelSetOrderMPNStandardReflex.OrderedOnId);
            this.m_JAK2V617FResult = this.m_PanelSetOrderJAK2V617F.Result;

            this.m_Comment = this.m_PanelSetOrderJAK2V617F.Comment;

            if (this.m_AccessionOrder.PanelSetOrderCollection.Exists(panelSetExon1214.PanelSetId) == true)
            {
                this.m_HasJAK2Exon1214    = true;
                this.m_JAK2Exon1214Result = this.m_PanelSetOrderJAK2Exon1214.Result;
            }
            else
            {
                this.m_HasJAK2Exon1214    = false;
                this.m_JAK2Exon1214Result = "Not Performed";
            }

            this.SetInterpretation();
            this.SetMethod();
            this.m_References = References;
        }
예제 #20
0
        public override Audit.Model.AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            Audit.Model.AuditResult result = base.IsOkToAccept(accessionOrder);
            if (result.Status == Audit.Model.AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.TumorNucleiPercentage) == true)
                {
                    result.Status  = Audit.Model.AuditStatusEnum.Failure;
                    result.Message = "The results cannot be accepted because the Tumor Nuclei Percentage has no value.";
                }
            }

            if (result.Status == Audit.Model.AuditStatusEnum.OK)
            {
                this.AreComponentTestOrdersAccepted(accessionOrder, result);
            }

            if (result.Status == Audit.Model.AuditStatusEnum.OK)
            {
                this.AreTestResultsPresent(accessionOrder, result);
            }

            if (result.Status == Audit.Model.AuditStatusEnum.OK)
            {
                this.DoComponentTestResultsMatchPreviousResults(accessionOrder, this, result);
                if (result.Status == Audit.Model.AuditStatusEnum.Warning)
                {
                    result.Message += AskAccept;
                }
            }

            return(result);
        }
 public override FinalizeTestResult Finish(AccessionOrder accessionOrder)
 {
     if (this.m_Result == HER2AmplificationResultEnum.Equivocal.ToString())
     {
         this.m_Distribute = false;
     }
     return(base.Finish(accessionOrder));
 }
        public void SetResults(AccessionOrder accessionOrder)
        {
            HER2AmplificationResultCollection her2AmplificationResultCollection = new HER2AmplificationResultCollection(accessionOrder.PanelSetOrderCollection, this);
            HER2AmplificationResult           her2AmplificationResult           = her2AmplificationResultCollection.FindMatch();

            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = accessionOrder.SpecimenOrderCollection.GetSpecimenOrder(this.OrderedOn, this.OrderedOnId);
            her2AmplificationResult.SetISHResults(specimenOrder);
        }
예제 #23
0
 public override void SetResults(AccessionOrder accessionOrder, YellowstonePathology.Business.Test.LynchSyndrome.PanelSetOrderLynchSyndromeEvaluation panelSetOrderLynchSyndromEvaluation)
 {
     panelSetOrderLynchSyndromEvaluation.Interpretation = this.m_Interpretation;
     panelSetOrderLynchSyndromEvaluation.Comment = this.m_Comment;
     panelSetOrderLynchSyndromEvaluation.BRAFIsIndicated = this.m_BRAFIsIndicated;
     panelSetOrderLynchSyndromEvaluation.Method = "IHC: " + IHCMethod;
     panelSetOrderLynchSyndromEvaluation.ReportReferences = "IHC: " + LSEGYNReferences;
 }
예제 #24
0
 public override void SetResults(AccessionOrder accessionOrder, YellowstonePathology.Business.Test.LynchSyndrome.PanelSetOrderLynchSyndromeEvaluation panelSetOrderLynchSyndromEvaluation)
 {
     panelSetOrderLynchSyndromEvaluation.Interpretation  = this.m_Interpretation;
     panelSetOrderLynchSyndromEvaluation.Comment         = this.m_Comment;
     panelSetOrderLynchSyndromEvaluation.BRAFIsIndicated = this.m_BRAFIsIndicated;
     panelSetOrderLynchSyndromEvaluation.Method          = "IHC: " + IHCMethod;
     panelSetOrderLynchSyndromEvaluation.References      = "IHC: " + LSEGYNReferences;
 }
예제 #25
0
 public override void OrderInitialTests(AccessionOrder accessionOrder, YellowstonePathology.Business.Interface.IOrderTarget orderTarget)
 {
     YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest panelSetJAK2V617F = new YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest();
     if (accessionOrder.PanelSetOrderCollection.Exists(panelSetJAK2V617F.PanelSetId) == false)
     {
         YellowstonePathology.Business.Test.TestOrderInfo            testOrderInfo         = new TestOrderInfo(panelSetJAK2V617F, orderTarget, false);
         YellowstonePathology.Business.Visitor.OrderTestOrderVisitor orderTestOrderVisitor = new Visitor.OrderTestOrderVisitor(testOrderInfo);
         accessionOrder.TakeATrip(orderTestOrderVisitor);
     }
 }
예제 #26
0
 public override void OrderInitialTests(AccessionOrder accessionOrder, YellowstonePathology.Business.Interface.IOrderTarget orderTarget)
 {
     YellowstonePathology.Business.Test.LynchSyndrome.LynchSyndromeIHCPanelTest lynchSyndromeIHCPanelTest = new YellowstonePathology.Business.Test.LynchSyndrome.LynchSyndromeIHCPanelTest();
     if (accessionOrder.PanelSetOrderCollection.Exists(lynchSyndromeIHCPanelTest.PanelSetId, this.m_OrderedOnId, true) == false)
     {
         YellowstonePathology.Business.Test.TestOrderInfo            testOrderInfo         = new TestOrderInfo(lynchSyndromeIHCPanelTest, orderTarget, false);
         YellowstonePathology.Business.Visitor.OrderTestOrderVisitor orderTestOrderVisitor = new Visitor.OrderTestOrderVisitor(testOrderInfo);
         accessionOrder.TakeATrip(orderTestOrderVisitor);
     }
 }
        public override Audit.Model.AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            Audit.Model.AuditResult result = base.IsOkToAccept(accessionOrder);
            if (result.Status == Audit.Model.AuditStatusEnum.OK)
            {
                this.AreTestResultsPresent(accessionOrder, result);
            }

            return(result);
        }
예제 #28
0
        private void DoesFinalSummaryResultMatch(AccessionOrder accessionOrder, string result, Audit.Model.AuditResult auditResult)
        {
            Business.Test.EGFRToALKReflexAnalysis.EGFRToALKReflexAnalysisTest egfrToALKReflexAnalysisTest = new EGFRToALKReflexAnalysis.EGFRToALKReflexAnalysisTest();

            if (accessionOrder.PanelSetOrderCollection.Exists(egfrToALKReflexAnalysisTest.PanelSetId) == true)
            {
                Business.Test.EGFRToALKReflexAnalysis.EGFRToALKReflexAnalysisTestOrder egfrToALKReflexAnalysisTestOrder = (EGFRToALKReflexAnalysis.EGFRToALKReflexAnalysisTestOrder)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(egfrToALKReflexAnalysisTest.PanelSetId);
                egfrToALKReflexAnalysisTestOrder.DoesROS1ByFISHResultMatch(result, auditResult);
            }
        }
예제 #29
0
        private bool HasICD10Codes(AccessionOrder accessionOrder)
        {
            bool result = false;

            YellowstonePathology.Business.Billing.Model.ICD9BillingCodeCollection icd9BillingCodeCollection = accessionOrder.ICD9BillingCodeCollection.GetReportCollection(this.ReportNo);
            if (icd9BillingCodeCollection.Count > 0)
            {
                result = true;
            }
            return(result);
        }
예제 #30
0
        public override void SetResults(AccessionOrder accessionOrder, YellowstonePathology.Business.Test.LynchSyndrome.PanelSetOrderLynchSyndromeEvaluation panelSetOrderLynchSyndromEvaluation)
        {
            YellowstonePathology.Business.Test.LynchSyndrome.MLH1MethylationAnalysisTest          panelSetMLH1 = new YellowstonePathology.Business.Test.LynchSyndrome.MLH1MethylationAnalysisTest();
            YellowstonePathology.Business.Test.LynchSyndrome.PanelSetOrderMLH1MethylationAnalysis panelSetOrderMLH1MethylationAnalysis = (YellowstonePathology.Business.Test.LynchSyndrome.PanelSetOrderMLH1MethylationAnalysis)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(panelSetMLH1.PanelSetId, panelSetOrderLynchSyndromEvaluation.OrderedOnId, true);

            panelSetOrderLynchSyndromEvaluation.Interpretation  = this.m_Interpretation;
            panelSetOrderLynchSyndromEvaluation.Comment         = this.m_Comment;
            panelSetOrderLynchSyndromEvaluation.BRAFIsIndicated = this.m_BRAFIsIndicated;
            panelSetOrderLynchSyndromEvaluation.Method          = "IHC: " + IHCMethod + Environment.NewLine + Environment.NewLine + "MLH1: " + panelSetOrderMLH1MethylationAnalysis.Method;
            panelSetOrderLynchSyndromEvaluation.References      = "IHC: " + LSEGYNReferences + Environment.NewLine + Environment.NewLine + "MLH1: " + panelSetOrderMLH1MethylationAnalysis.References;
        }
예제 #31
0
        public override void SetResults(AccessionOrder accessionOrder, YellowstonePathology.Business.Test.LynchSyndrome.PanelSetOrderLynchSyndromeEvaluation panelSetOrderLynchSyndromEvaluation)
        {
            YellowstonePathology.Business.Test.LynchSyndrome.MLH1MethylationAnalysisTest panelSetMLH1 = new YellowstonePathology.Business.Test.LynchSyndrome.MLH1MethylationAnalysisTest();
            YellowstonePathology.Business.Test.LynchSyndrome.PanelSetOrderMLH1MethylationAnalysis panelSetOrderMLH1MethylationAnalysis = (YellowstonePathology.Business.Test.LynchSyndrome.PanelSetOrderMLH1MethylationAnalysis)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(panelSetMLH1.PanelSetId, panelSetOrderLynchSyndromEvaluation.OrderedOnId, true);

            panelSetOrderLynchSyndromEvaluation.Interpretation = this.m_Interpretation;
            panelSetOrderLynchSyndromEvaluation.Comment = this.m_Comment;
            panelSetOrderLynchSyndromEvaluation.BRAFIsIndicated = this.m_BRAFIsIndicated;
            panelSetOrderLynchSyndromEvaluation.Method = "IHC: " + IHCMethod + Environment.NewLine + Environment.NewLine + "MLH1: " + panelSetOrderMLH1MethylationAnalysis.Method;
            panelSetOrderLynchSyndromEvaluation.ReportReferences = "IHC: " + LSEGYNReferences + Environment.NewLine + Environment.NewLine + "MLH1: " + panelSetOrderMLH1MethylationAnalysis.ReportReferences;
        }
예제 #32
0
        public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
        {
            AuditResult result = new AuditResult();

            result.Status = AuditStatusEnum.OK;
            Rules.MethodResult methodResult = base.IsOkToFinalize();
            if (methodResult.Success == false)
            {
                result.Status  = AuditStatusEnum.Failure;
                result.Message = methodResult.Message;
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (this.m_CellsCounted == 0)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "Unable to final as Total Cells Counted is not set.";
                }
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (this.m_Her2SignalsCounted == 0)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "Unable to final as HER2 Signals Counted is not set.";
                }
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                if (this.m_Chr17SignalsCounted == 0)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "Unable to final as Chr17 Signals Counted is not set.";
                }
            }

            if (result.Status == AuditStatusEnum.OK)
            {
                HER2AnalysisSummary.HER2AnalysisSummaryTest test = new HER2AnalysisSummary.HER2AnalysisSummaryTest();
                if (accessionOrder.PanelSetOrderCollection.Exists(test.PanelSetId, this.m_OrderedOnId, true) == false)
                {
                    result.Status  = AuditStatusEnum.Failure;
                    result.Message = "Unable to finalize as a " + test.PanelSetName + " is required.";
                }
            }

            return(result);
        }
예제 #33
0
        public override Audit.Model.AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            Audit.Model.AuditResult result = base.IsOkToAccept(accessionOrder);
            if (result.Status == Audit.Model.AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.Result) == true)
                {
                    result.Status  = Audit.Model.AuditStatusEnum.Failure;
                    result.Message = UnableToAccept;
                }
            }

            return(result);
        }
예제 #34
0
        public override AuditResult IsOkToAccept(AccessionOrder accessionOrder)
        {
            AuditResult result = base.IsOkToAccept(accessionOrder);

            if (result.Status == AuditStatusEnum.OK)
            {
                if (string.IsNullOrEmpty(this.m_HbFResult) == true)
                {
                    result.Status   = AuditStatusEnum.Failure;
                    result.Message += "Unable to accept as the Hb-F result is not set: ";
                }
            }
            return(result);
        }
 public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
 {
     YellowstonePathology.Business.Audit.Model.AuditResult result = new AuditResult();
     if (this.Final == true)
     {
         result.Status = AuditStatusEnum.Failure;
         result.Message = "This case cannot be finalized because it is already finalized.";
     }
     else
     {
         YellowstonePathology.Business.Audit.Model.ComprehensiveColonCancerProfileFinalAudit comprehensiveColonCancerProfileFinalAudit = new ComprehensiveColonCancerProfileFinalAudit(accessionOrder);
         comprehensiveColonCancerProfileFinalAudit.Run();
         result.Status = comprehensiveColonCancerProfileFinalAudit.Status;
         result.Message = comprehensiveColonCancerProfileFinalAudit.Message.ToString();
     }
     return result;
 }
예제 #36
0
        public override string ToResultString(AccessionOrder accessionOrder)
        {
            StringBuilder result = new StringBuilder();
            result.AppendLine("Her2 By Ish");
            YellowstonePathology.Business.Test.HER2AmplificationByISH.HER2AmplificationByISHTest her2AmplificationByISHTest = new YellowstonePathology.Business.Test.HER2AmplificationByISH.HER2AmplificationByISHTest();
            if (accessionOrder.PanelSetOrderCollection.Exists(her2AmplificationByISHTest.PanelSetId) == true)
            {
                YellowstonePathology.Business.Test.HER2AmplificationByISH.HER2AmplificationByISHTestOrder panelSetOrderHer2ByIsh = (YellowstonePathology.Business.Test.HER2AmplificationByISH.HER2AmplificationByISHTestOrder)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(her2AmplificationByISHTest.PanelSetId);
                result.AppendLine(panelSetOrderHer2ByIsh.ToResultString(accessionOrder));
            }
            result.AppendLine();

            YellowstonePathology.Business.Test.Surgical.SurgicalTest panelSetSurgical = new YellowstonePathology.Business.Test.Surgical.SurgicalTest();
            if(accessionOrder.PanelSetOrderCollection.Exists(panelSetSurgical.PanelSetId) == true)
            {
                result.Append("Estrogen/Progesterone Receptor, Semi-Quantitative - Estrogen Receptor : ");
                YellowstonePathology.Business.Test.Surgical.SurgicalTestOrder panelSetOrderSurgical = (YellowstonePathology.Business.Test.Surgical.SurgicalTestOrder)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(panelSetSurgical.PanelSetId);
                YellowstonePathology.Business.Test.Model.EstrogenReceptorSemiquant er = new YellowstonePathology.Business.Test.Model.EstrogenReceptorSemiquant();
                YellowstonePathology.Business.Test.Model.ProgesteroneReceptorSemiquant pr = new YellowstonePathology.Business.Test.Model.ProgesteroneReceptorSemiquant();
                YellowstonePathology.Business.Test.Model.TestOrderCollection testOrders = panelSetOrderSurgical.GetTestOrders();
                if(testOrders.Exists(er.TestId) == true)
                {
                    YellowstonePathology.Business.Test.Model.TestOrder testOrder = testOrders.GetTestOrder(er.TestId);
                    YellowstonePathology.Business.SpecialStain.StainResultItem stainResultItem = panelSetOrderSurgical.GetStainResult(testOrder.TestOrderId);
                    result.AppendLine(stainResultItem.Result);
                }
                if(testOrders.Exists(pr.TestId) == true)
                {
                    YellowstonePathology.Business.Test.Model.TestOrder testOrder = testOrders.GetTestOrder(pr.TestId);
                    YellowstonePathology.Business.SpecialStain.StainResultItem stainResultItem = panelSetOrderSurgical.GetStainResult(testOrder.TestOrderId);
                    result.AppendLine("Progesterone Receptor : " + stainResultItem.Result);
                }
            }
            else
            {
                YellowstonePathology.Business.Test.ErPrSemiQuantitative.ErPrSemiQuantitativeTest erPrSemiQuantitativeTest = new YellowstonePathology.Business.Test.ErPrSemiQuantitative.ErPrSemiQuantitativeTest();
                if (accessionOrder.PanelSetOrderCollection.Exists(erPrSemiQuantitativeTest.PanelSetId) == true)
                {
                    YellowstonePathology.Business.Test.ErPrSemiQuantitative.ErPrSemiQuantitativeTestOrder panelSetOrderErPrSemiQuantitative = (YellowstonePathology.Business.Test.ErPrSemiQuantitative.ErPrSemiQuantitativeTestOrder)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(erPrSemiQuantitativeTest.PanelSetId);
                    result.AppendLine(panelSetOrderErPrSemiQuantitative.ToResultString(accessionOrder));
                }
            }
            result.AppendLine();
            return result.ToString();
        }
        public MPNExtendedReflexResult(AccessionOrder accessionOrder)
        {
            this.m_AccessionOrder = accessionOrder;

            YellowstonePathology.Business.Test.MPNExtendedReflex.MPNExtendedReflexTest panelSetMPNExtendedReflex = new YellowstonePathology.Business.Test.MPNExtendedReflex.MPNExtendedReflexTest();
            this.m_PanelSetOrderMPNExtendedReflex = (YellowstonePathology.Business.Test.MPNExtendedReflex.PanelSetOrderMPNExtendedReflex)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(panelSetMPNExtendedReflex.PanelSetId);

            this.m_SpecimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(this.m_PanelSetOrderMPNExtendedReflex.OrderedOn, this.m_PanelSetOrderMPNExtendedReflex.OrderedOnId);

            this.m_PanelSetJAK2V617F = new YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest();
            this.m_PanelSetCalreticulinMutationAnalysis = new YellowstonePathology.Business.Test.CalreticulinMutationAnalysis.CalreticulinMutationAnalysisTest();
            this.m_PanelSetMPL = new YellowstonePathology.Business.Test.MPL.MPLTest();

            this.m_PanelSetOrderJAK2V617F = (YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTestOrder)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(this.m_PanelSetJAK2V617F.PanelSetId);

            this.m_HasCALR = this.m_AccessionOrder.PanelSetOrderCollection.Exists(this.m_PanelSetCalreticulinMutationAnalysis.PanelSetId);
            if (this.m_HasCALR == true)
            {
                this.m_PanelSetOrderCalreticulinMutationAnalysis = (YellowstonePathology.Business.Test.CalreticulinMutationAnalysis.CalreticulinMutationAnalysisTestOrder)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(this.m_PanelSetCalreticulinMutationAnalysis.PanelSetId);
            }

            this.m_HasMPL = this.m_AccessionOrder.PanelSetOrderCollection.Exists(this.m_PanelSetMPL.PanelSetId);
            if (this.m_HasMPL == true)
            {
                this.m_PanelSetOrderMPL = (YellowstonePathology.Business.Test.MPL.PanelSetOrderMPL)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(this.m_PanelSetMPL.PanelSetId);
            }

            this.m_AuditCollection = new Audit.Model.AuditCollection();
            this.m_JAK2V617FResult = new MPNExtendedReflexJAK2Result(this.m_PanelSetOrderJAK2V617F);
            this.m_AuditCollection.Add(this.m_JAK2V617FResult);

            this.m_CALRResult = new MPNExtendedReflexCALRResult(this.m_AccessionOrder);
            this.m_AuditCollection.Add(this.m_CALRResult);

            this.m_MPLResult = new MPNExtendedReflexMPLResult(this.m_AccessionOrder);
            this.m_AuditCollection.Add(this.m_MPLResult);

            this.SetInterpretation();
            this.SetMethod();
            this.SetComment();
            this.m_References = References;
        }
        protected override void CheckResults(AccessionOrder accessionOrder, object clone)
        {
            PanelSetOrderLynchSyndromeEvaluation panelSetToCheck = (PanelSetOrderLynchSyndromeEvaluation)clone;
            YellowstonePathology.Business.Test.LynchSyndrome.LSEResult cloneLSEResult = null;
            YellowstonePathology.Business.Test.LynchSyndrome.LSEResult lseResult = YellowstonePathology.Business.Test.LynchSyndrome.LSEResult.GetResult(accessionOrder, panelSetToCheck);
            YellowstonePathology.Business.Test.LynchSyndrome.LSEResult accessionLSEResult = YellowstonePathology.Business.Test.LynchSyndrome.LSEResultCollection.GetResult(lseResult, panelSetToCheck.LynchSyndromeEvaluationType);

            if (accessionLSEResult == null)
            {
                cloneLSEResult = lseResult;
            }
            else
            {
                cloneLSEResult = accessionLSEResult;
            }

            cloneLSEResult.SetResults(accessionOrder, panelSetToCheck);
        }
 public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
 {
     AuditResult auditResult = base.IsOkToFinalize(accessionOrder);
     if (auditResult.Status == AuditStatusEnum.OK)
     {
         YellowstonePathology.Business.Rules.MethodResult methodResult = this.IsOkToFinalize();
         if(methodResult.Success == false)
         {
             auditResult.Status = AuditStatusEnum.Failure;
             auditResult.Message = methodResult.Message;
         }
     }
     return auditResult;
 }
예제 #40
0
 public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
 {
     Audit.Model.PathologistSignoutAuditCollection pathologistSignoutAuditCollection = new PathologistSignoutAuditCollection(accessionOrder);
     AuditResult auditResult = pathologistSignoutAuditCollection.Run2();
     return auditResult;
 }
 protected override void CheckResults(AccessionOrder accessionOrder, object clone)
 {
     EGFRToALKReflexAnalysisTestOrder testOrderToCheck = (EGFRToALKReflexAnalysisTestOrder)clone;
     testOrderToCheck.SetResults(accessionOrder);
 }
        public override string ToResultString(AccessionOrder accessionOrder)
        {
            StringBuilder result = new StringBuilder();
            result.AppendLine("Interpretation:");
            result.AppendLine(this.m_Interpretation);
            result.AppendLine();

            result.AppendLine("Comment:");
            result.AppendLine(this.m_Comment);
            result.AppendLine();

            YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest jak2V617FTest = new YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest();
            YellowstonePathology.Business.Test.CalreticulinMutationAnalysis.CalreticulinMutationAnalysisTest calreticulinMutationAnalysisTest = new YellowstonePathology.Business.Test.CalreticulinMutationAnalysis.CalreticulinMutationAnalysisTest();
            YellowstonePathology.Business.Test.MPL.MPLTest mplTest = new YellowstonePathology.Business.Test.MPL.MPLTest();
            if(accessionOrder.PanelSetOrderCollection.Exists(jak2V617FTest.PanelSetId) == true)
            {
                result.AppendLine("JAK2 V617F");
                YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTestOrder jak2V617FTestOrder = (YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTestOrder)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(jak2V617FTest.PanelSetId);
                result.AppendLine(jak2V617FTestOrder.ToResultString(accessionOrder));
                result.AppendLine();
            }

            if (accessionOrder.PanelSetOrderCollection.Exists(calreticulinMutationAnalysisTest.PanelSetId) == true)
            {
                result.AppendLine("Calreticulin Mutation Analysis");
                YellowstonePathology.Business.Test.CalreticulinMutationAnalysis.CalreticulinMutationAnalysisTestOrder calreticulinMutationAnalysisTestOrder = (YellowstonePathology.Business.Test.CalreticulinMutationAnalysis.CalreticulinMutationAnalysisTestOrder)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(calreticulinMutationAnalysisTest.PanelSetId);
                result.AppendLine(calreticulinMutationAnalysisTestOrder.ToResultString(accessionOrder));
                result.AppendLine();
            }

            if (accessionOrder.PanelSetOrderCollection.Exists(mplTest.PanelSetId) == true)
            {
                result.AppendLine("MPL");
                YellowstonePathology.Business.Test.MPL.PanelSetOrderMPL mplTestOrder = (YellowstonePathology.Business.Test.MPL.PanelSetOrderMPL)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(mplTest.PanelSetId);
                result.AppendLine(mplTestOrder.ToResultString(accessionOrder));
                result.AppendLine();
            }

            return result.ToString();
        }
 public override void OrderInitialTests(AccessionOrder accessionOrder, YellowstonePathology.Business.Interface.IOrderTarget orderTarget)
 {
     YellowstonePathology.Business.Test.LynchSyndrome.LynchSyndromeIHCPanelTest lynchSyndromeIHCPanelTest = new YellowstonePathology.Business.Test.LynchSyndrome.LynchSyndromeIHCPanelTest();
     YellowstonePathology.Business.Test.TestOrderInfo testOrderInfo = new TestOrderInfo(lynchSyndromeIHCPanelTest, orderTarget, false);
     YellowstonePathology.Business.Visitor.OrderTestOrderVisitor orderTestOrderVisitor = new Visitor.OrderTestOrderVisitor(testOrderInfo);
     accessionOrder.TakeATrip(orderTestOrderVisitor);
 }
 public override AuditResult IsOkToFinalize(AccessionOrder accessionOrder)
 {
     AuditResult result = base.IsOkToFinalize(accessionOrder);
     if(result.Status == AuditStatusEnum.OK)
     {
         if (this.m_TechFinal == false)
         {
             result.Status = AuditStatusEnum.Failure;
             result.Message = ("This case cannot be finaled because it has not been Tech finaled.");
         }
         else if (this.FlowMarkerCollection.HasQuestionMarks() == true)
         {
             result.Status = AuditStatusEnum.Failure;
             result.Message = ("Question marks ??? were found in the markers.");
         }
     }
     return result;
 }
 public override void OrderInitialTests(AccessionOrder accessionOrder, YellowstonePathology.Business.Interface.IOrderTarget orderTarget)
 {
     YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest panelSetJAK2V617F = new YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest();
     if (accessionOrder.PanelSetOrderCollection.Exists(panelSetJAK2V617F.PanelSetId) == false)
     {
         YellowstonePathology.Business.Test.TestOrderInfo testOrderInfo = new TestOrderInfo(panelSetJAK2V617F, orderTarget, false);
         YellowstonePathology.Business.Visitor.OrderTestOrderVisitor orderTestOrderVisitor = new Visitor.OrderTestOrderVisitor(testOrderInfo);
         accessionOrder.TakeATrip(orderTestOrderVisitor);
     }
 }
        public override string ToResultString(AccessionOrder accessionOrder)
        {
            StringBuilder result = new StringBuilder();
            result.AppendLine("Interpretation:");
            result.AppendLine(this.m_Interpretation);
            result.AppendLine();

            result.AppendLine("Comment:");
            result.AppendLine(this.m_Comment);
            result.AppendLine();

            YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest jak2V617FTest = new YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTest();
            YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214Test jak2Exon1214Test = new YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214Test();
            if (accessionOrder.PanelSetOrderCollection.Exists(jak2V617FTest.PanelSetId) == true)
            {
                result.AppendLine("JAK2 V617F");
                YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTestOrder jak2V617FTestOrder = (YellowstonePathology.Business.Test.JAK2V617F.JAK2V617FTestOrder)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(jak2V617FTest.PanelSetId);
                result.AppendLine(jak2V617FTestOrder.ToResultString(accessionOrder));
                result.AppendLine();
            }

            if (accessionOrder.PanelSetOrderCollection.Exists(jak2Exon1214Test.PanelSetId) == true)
            {
                result.AppendLine("JAK2 Exon 1214");
                YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214TestOrder jak2Exon1214TestOrder = (YellowstonePathology.Business.Test.JAK2Exon1214.JAK2Exon1214TestOrder)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(jak2Exon1214Test.PanelSetId);
                result.AppendLine(jak2Exon1214TestOrder.ToResultString(accessionOrder));
                result.AppendLine();
            }

            return result.ToString();
        }