public HER2AmplificationByISHResult GetResultFromIndication(HER2AmplificationByISHTestOrder testOrder)
 {
     HER2AmplificationByISHResult result = null;
     if (testOrder.Indicator == HER2AmplificationByISHIndicatorCollection.BreastIndication) result = new HER2AmplificationByISHBreastResult();
     else if (testOrder.Indicator == HER2AmplificationByISHIndicatorCollection.GastricIndication) result = new HER2AmplificationByISHGastricAdenocarcinomaResult();
     return result;
 }
Ejemplo n.º 2
0
        public HER2AmplificationResult(PanelSetOrderCollection panelSetOrderCollection, HER2AmplificationByISHTestOrder panelSetOrder)
        {
            Her2AmplificationByIHC.Her2AmplificationByIHCTest     her2AmplificationByIHCTest   = new Her2AmplificationByIHC.Her2AmplificationByIHCTest();
            HER2AmplificationRecount.HER2AmplificationRecountTest her2AmplificationRecountTest = new HER2AmplificationRecount.HER2AmplificationRecountTest();

            this.m_HER2AmplificationByISHTestOrder = panelSetOrder;
            this.m_Indicator = this.m_HER2AmplificationByISHTestOrder.Indicator;
            this.m_AverageHer2Chr17SignalAsDouble = this.m_HER2AmplificationByISHTestOrder.AverageHer2Chr17SignalAsDouble;
            this.m_AverageHer2NeuSignal           = this.m_HER2AmplificationByISHTestOrder.AverageHer2NeuSignal;

            if (this.m_HER2AmplificationByISHTestOrder.Final == true)
            {
                if (this.m_HER2AmplificationByISHTestOrder.Result == HER2AmplificationResultEnum.Equivocal.ToString())
                {
                    this.m_IsHer2AmplificationByIHCRequired = true;
                }
            }
            if (panelSetOrderCollection.Exists(her2AmplificationByIHCTest.PanelSetId) == true)
            {
                this.m_IsHer2AmplificationByIHCOrdered     = true;
                this.m_PanelSetOrderHer2AmplificationByIHC = (Her2AmplificationByIHC.PanelSetOrderHer2AmplificationByIHC)panelSetOrderCollection.GetPanelSetOrder(her2AmplificationByIHCTest.PanelSetId);
                if (this.m_PanelSetOrderHer2AmplificationByIHC.Final == true)
                {
                    if (this.m_PanelSetOrderHer2AmplificationByIHC.Score == "2+")
                    {
                        this.m_IsHER2AmplificationRecountRequired = true;
                    }
                }
            }
            if (panelSetOrderCollection.Exists(her2AmplificationRecountTest.PanelSetId) == true)
            {
                this.m_IsHER2AmplificationRecountOrdered = true;
                this.m_HER2AmplificationRecountTestOrder = (HER2AmplificationRecount.HER2AmplificationRecountTestOrder)panelSetOrderCollection.GetPanelSetOrder(her2AmplificationRecountTest.PanelSetId);
            }
        }
        public override void ToXml(XElement document)
        {
            HER2AmplificationByISHTestOrder panelSetOrder = (HER2AmplificationByISHTestOrder)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(this.m_ReportNo);

            this.AddCompanyHeader(document);
            this.AddBlankNteElement(document);

            this.AddNextNteElement("HER2 Gene Amplification", document);
            this.AddNextNteElement("Master Accession #: " + panelSetOrder.MasterAccessionNo, document);
            this.AddNextNteElement("Report #: " + panelSetOrder.ReportNo, document);
            this.AddBlankNteElement(document);

            if (this.m_AccessionOrder.AccessionDate < DateTime.Parse("1/1/2014") == true)
            {
                this.ASCOPre2014ToXml(document, panelSetOrder);
            }
            else if (this.m_AccessionOrder.AccessionDate >= DateTime.Parse("1/1/2014") == true)
            {
                if (panelSetOrder.Indicator == "Breast")
                {
                    this.ASCOCAP2018(document, panelSetOrder);
                }
                else if (panelSetOrder.Indicator == "Gastric")
                {
                    this.GastricToXml(document, panelSetOrder);
                }
            }
        }
Ejemplo n.º 4
0
        public override void SetResults(HER2AmplificationByISHTestOrder testOrder)
        {
            this.m_ResultComment     = null;
            this.m_ResultDescription = "Ratio = " + testOrder.Her2Chr17Ratio;

            this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*RATIO*", testOrder.Her2Chr17Ratio.Value.ToString());
            this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*CELLSCOUNTED*", testOrder.CellsCounted.ToString());
            if (testOrder.AverageHer2NeuSignal.HasValue == true)
            {
                this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*HER2COPY*", testOrder.AverageHer2NeuSignal.Value.ToString());
            }

            Nullable <double> her2Chr17Ratio = testOrder.AverageHer2Chr17SignalAsDouble;

            if (her2Chr17Ratio.HasValue)
            {
                if (her2Chr17Ratio < 2.0)
                {
                    if (testOrder.AverageHer2NeuSignal >= 6)
                    {
                        this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*HER2STATUS*", PositiveResult);
                        this.m_Result     = PositiveResult;
                        this.m_ResultCode = PositiveResultCode;
                    }
                    else if (testOrder.AverageHer2NeuSignal >= 4 && testOrder.AverageHer2NeuSignal < 6)
                    {
                        this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*HER2STATUS*", EquivocalResult);
                        this.m_Result     = EquivocalResult;
                        this.m_ResultCode = EquivocalResultCode;
                    }
                    else if (testOrder.AverageHer2NeuSignal < 4)
                    {
                        this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*HER2STATUS*", NegativeResult);
                        this.m_Result     = NegativeResult;
                        this.m_ResultCode = NegativeResultCode;
                    }
                }
                else if (her2Chr17Ratio >= 2.0)
                {
                    this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*HER2STATUS*", PositiveResult);
                    this.m_Result     = PositiveResult;
                    this.m_ResultCode = PositiveResultCode;
                }
            }
            else
            {
                this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*HER2STATUS*", IndeterminateResult);
                this.m_Result     = IndeterminateResult;
                this.m_ResultCode = IndeterminateResultCode;
            }

            if (testOrder.Her2byIHCOrder == 1)
            {
                this.m_InterpretiveComment += Environment.NewLine + Environment.NewLine + m_InterpretiveCommentP4IHCOrder;
            }

            base.SetResults(testOrder);
        }
 public static void AcceptResults(HER2AmplificationByISHTestOrder testOrder, YellowstonePathology.Business.User.SystemIdentity systemIdentity)
 {
     testOrder.Accept();
     if (testOrder.PanelOrderCollection.GetUnacceptedPanelCount() > 0)
     {
         YellowstonePathology.Business.Test.PanelOrder panelOrder = testOrder.PanelOrderCollection.GetUnacceptedPanelOrder();
         panelOrder.AcceptResults();
     }
 }
 public static void UnacceptResults(HER2AmplificationByISHTestOrder testOrder)
 {
     testOrder.Unaccept();
     if (testOrder.PanelOrderCollection.GetAcceptedPanelCount() > 0)
     {
         YellowstonePathology.Business.Test.PanelOrder panelOrder = testOrder.PanelOrderCollection.GetLastAcceptedPanelOrder();
         panelOrder.UnacceptResults();
     }
 }
 public static void AcceptResults(HER2AmplificationByISHTestOrder testOrder, YellowstonePathology.Business.User.SystemIdentity systemIdentity)
 {
     testOrder.Accept();
     if (testOrder.PanelOrderCollection.GetUnacceptedPanelCount() > 0)
     {
         YellowstonePathology.Business.Test.PanelOrder panelOrder = testOrder.PanelOrderCollection.GetUnacceptedPanelOrder();
         panelOrder.AcceptResults();
     }
 }
 public static void UnacceptResults(HER2AmplificationByISHTestOrder testOrder)
 {
     testOrder.Unaccept();
     if (testOrder.PanelOrderCollection.GetAcceptedPanelCount() > 0)
     {
         YellowstonePathology.Business.Test.PanelOrder panelOrder = testOrder.PanelOrderCollection.GetLastAcceptedPanelOrder();
         panelOrder.UnacceptResults();
     }
 }
        public override void SetResults(HER2AmplificationByISHTestOrder testOrder)
        {
            this.m_ResultComment = null;
            this.m_ResultDescription = "Ratio = " + testOrder.Her2Chr17Ratio;

            this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*RATIO*", testOrder.Her2Chr17Ratio.Value.ToString());
            this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*CELLSCOUNTED*", testOrder.CellsCounted.ToString());
            if (testOrder.AverageHer2NeuSignal.HasValue == true) this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*HER2COPY*", testOrder.AverageHer2NeuSignal.Value.ToString());

            Nullable<double> her2Chr17Ratio = testOrder.AverageHer2Chr17SignalAsDouble;
            if (her2Chr17Ratio.HasValue)
            {
                if (her2Chr17Ratio < 2.0)
                {
                    if (testOrder.AverageHer2NeuSignal >= 6)
                    {
                        this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*HER2STATUS*", PositiveResult);
                        this.m_Result = PositiveResult;
                        this.m_ResultCode = PositiveResultCode;
                    }
                    else if (testOrder.AverageHer2NeuSignal >= 4 && testOrder.AverageHer2NeuSignal < 6)
                    {
                        this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*HER2STATUS*", EquivocalResult);
                        this.m_Result = EquivocalResult;
                        this.m_ResultCode = EquivocalResultCode;
                    }
                    else if (testOrder.AverageHer2NeuSignal < 4)
                    {
                        this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*HER2STATUS*", NegativeResult);
                        this.m_Result = NegativeResult;
                        this.m_ResultCode = NegativeResultCode;
                    }
                }
                else if (her2Chr17Ratio >= 2.0)
                {
                    this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*HER2STATUS*", PositiveResult);
                    this.m_Result = PositiveResult;
                    this.m_ResultCode = PositiveResultCode;
                }
            }
            else
            {
                this.m_InterpretiveComment = this.m_InterpretiveComment.Replace("*HER2STATUS*", IndeterminateResult);
                this.m_Result = IndeterminateResult;
                this.m_ResultCode = IndeterminateResultCode;
            }

            if (testOrder.Her2byIHCOrder == 1)
            {
                this.m_InterpretiveComment += Environment.NewLine + Environment.NewLine + m_InterpretiveCommentP4IHCOrder;
            }

            base.SetResults(testOrder);
        }
Ejemplo n.º 10
0
        public override void ToXml(XElement document)
        {
            HER2AmplificationByISHTestOrder panelSetOrder = (HER2AmplificationByISHTestOrder)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(this.m_ReportNo);

            this.AddCompanyHeader(document);
            this.AddBlankNteElement(document);

            this.AddNextNteElement("HER2 Gene Amplification", document);
            this.AddNextNteElement("Master Accession #: " + panelSetOrder.MasterAccessionNo, document);
            this.AddNextNteElement("Report #: " + panelSetOrder.ReportNo, document);
            this.AddBlankNteElement(document);

            this.AddNextNteElement("HER2: " + panelSetOrder.Result, document);
            this.AddNextNteElement("Ratio: " + panelSetOrder.Her2Chr17Ratio, document);

            if (panelSetOrder.ResultComment != string.Empty)
            {
                this.AddNextNteElement("Comment: " + panelSetOrder.ResultComment, document);
                this.AddBlankNteElement(document);
            }

            this.AddNextNteElement("Number of invasive tumor cells counted: " + panelSetOrder.CellsCounted.ToString(), document);
            this.AddNextNteElement("Number of observers: " + panelSetOrder.NumberOfObservers.ToString(), document);
            this.AddNextNteElement("HER2 average copy number per nucleus: " + panelSetOrder.AverageHer2NeuSignal, document);
            this.AddNextNteElement("Chr17 average copy number per nucleus: " + panelSetOrder.AverageChr17Signal, document);
            this.AddNextNteElement("Ratio of average HER2/Chr17 signals: " + panelSetOrder.Her2Chr17Ratio, document);
            this.AddBlankNteElement(document);

            this.AddNextNteElement("Interpretation: ", document);
            this.HandleLongString(panelSetOrder.InterpretiveComment, document);
            this.AddBlankNteElement(document);

            this.AddNextNteElement("Method: ", document);
            string method = System.Security.SecurityElement.Escape("This test was performed using a molecular method, In Situ Hybridization (ISH) with the US FDA approved Inform HER2 DNA probe kit, modified to report results according to ASCO/CAP guidelines. The test was performed on paraffin embedded tissue in compliance with ASCO/CAP guidelines.  Probes used include a locus specific probe for HER2 and an internal hybridization control probe for the centromeric region of chromosome 17 (Chr17).");

            this.AddNextNteElement(method, document);
            this.AddBlankNteElement(document);

            this.AddNextNteElement("References: ", document);
            this.AddNextNteElement(panelSetOrder.ReportReference, document);
            this.AddBlankNteElement(document);

            foreach (YellowstonePathology.Business.Amendment.Model.Amendment amendment in panelSetOrder.AmendmentCollection)
            {
                this.AddNextNteElement(amendment.AmendmentType + ": " + amendment.AmendmentDate.Value.ToString("MM/dd/yyyy"), document);
                this.HandleLongString(amendment.Text, document);
                if (amendment.RequirePathologistSignature == true)
                {
                    this.AddNextNteElement("Signature: " + amendment.PathologistSignature, document);
                }
                this.AddNextNteElement("", document);
            }
        }
        public override void ToXml(XElement document)
        {
            HER2AmplificationByISHTestOrder panelSetOrder = (HER2AmplificationByISHTestOrder)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(this.m_ReportNo);

            if (panelSetOrder.Indicator == "Breast")
            {
                this.BreastToXml(document, panelSetOrder);
            }
            else if (panelSetOrder.Indicator == "Gastric")
            {
                this.GastricToXml(document, panelSetOrder);
            }
        }
        public HER2AmplificationByISHResult GetResultFromIndication(HER2AmplificationByISHTestOrder testOrder)
        {
            HER2AmplificationByISHResult result = null;

            if (testOrder.Indicator == HER2AmplificationByISHIndicatorCollection.BreastIndication)
            {
                result = new HER2AmplificationByISHBreastResult();
            }
            else if (testOrder.Indicator == HER2AmplificationByISHIndicatorCollection.GastricIndication)
            {
                result = new HER2AmplificationByISHGastricAdenocarcinomaResult();
            }
            return(result);
        }
Ejemplo n.º 13
0
        public override void ToXml(XElement document)
        {
            HER2AmplificationByISHTestOrder panelSetOrder = (HER2AmplificationByISHTestOrder)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(this.m_ReportNo);

            if (this.m_AccessionOrder.AccessionDate < DateTime.Parse("1/1/2014") == true)
            {
                this.ASCOPre2014ToXml(document, panelSetOrder);
            }
            else if (this.m_AccessionOrder.AccessionDate >= DateTime.Parse("1/1/2014") == true)
            {
                if (panelSetOrder.Indicator == "Breast")
                {
                    this.ASCOCAP2018(document, panelSetOrder);
                }
                else if (panelSetOrder.Indicator == "Gastric")
                {
                    this.GastricToXml(document, panelSetOrder);
                }
            }
        }
        public virtual void SetResults(HER2AmplificationByISHTestOrder testOrder)
        {
            if (testOrder.GeneticHeterogeneity == HER2AmplificationByISHGeneticHeterogeneityCollection.GeneticHeterogeneityPresentInCells)
            {
                this.m_InterpretiveComment += Environment.NewLine + Environment.NewLine +
                    "However, this tumor exhibits genetic heterogeneity in HER2 gene amplification in scattered individual cells.  The " +
                    "clinical significance and potential clinical benefit of trastuzumab is uncertain when " +
                    testOrder.Indicator.ToLower() +
                    "carcinoma demonstrates genetic heterogeneity." + Environment.NewLine + Environment.NewLine;
                this.m_ResultComment = "This tumor exhibits genetic heterogeneity in HER2 gene amplification in scattered individual cells.  The clinical " +
                    "significance and potential clinical benefit of trastuzumab is uncertain when " +
                    testOrder.Indicator.ToLower() +
                    " carcinoma demonstrates genetic heterogeneity";
            }
            else if (testOrder.GeneticHeterogeneity == HER2AmplificationByISHGeneticHeterogeneityCollection.GeneticHeterogeneityPresentInClusters)
            {
                this.m_InterpretiveComment += Environment.NewLine + Environment.NewLine +
                    "However, this tumor exhibits genetic heterogeneity in HER2 gene amplification in small cell clusters. The HER2/Chr17 " +
                    "ratio in the clusters is " +
                    testOrder.Her2Chr17ClusterRatio +
                    ".  The clinical significance and potential clinical benefit of trastuzumab is uncertain when " +
                    testOrder.Indicator.ToLower() +
                    " carcinoma demonstrates genetic heterogeneity." + Environment.NewLine + Environment.NewLine;
                this.m_ResultComment = "This tumor exhibits genetic heterogeneity in HER2 gene amplification in small cell clusters.  The clinical significance " +
                    "and potential clinical benefit of trastuzumab is uncertain when " +
                    testOrder.Indicator.ToLower() +
                    " carcinoma demonstrates genetic heterogeneity.";
            }

            testOrder.Result = this.m_Result;
            testOrder.ResultCode = this.m_ResultCode;
            testOrder.ResultComment = this.m_ResultComment;
            testOrder.InterpretiveComment = this.m_InterpretiveComment.TrimEnd();
            testOrder.ResultDescription = this.m_ResultDescription;
            testOrder.CommentLabel = null;
            testOrder.Method = this.m_Method;
            testOrder.ReportReference = this.m_ReportReference;
            testOrder.ASRComment = this.m_ASRComment;
            testOrder.NoCharge = false;
        }
        public virtual void SetResults(HER2AmplificationByISHTestOrder testOrder)
        {
            if (testOrder.GeneticHeterogeneity == HER2AmplificationByISHGeneticHeterogeneityCollection.GeneticHeterogeneityPresentInCells)
            {
                this.m_InterpretiveComment += Environment.NewLine + Environment.NewLine +
                                              "However, this tumor exhibits genetic heterogeneity in HER2 gene amplification in scattered individual cells.  The " +
                                              "clinical significance and potential clinical benefit of trastuzumab is uncertain when " +
                                              testOrder.Indicator.ToLower() +
                                              "carcinoma demonstrates genetic heterogeneity." + Environment.NewLine + Environment.NewLine;
                this.m_ResultComment = "This tumor exhibits genetic heterogeneity in HER2 gene amplification in scattered individual cells.  The clinical " +
                                       "significance and potential clinical benefit of trastuzumab is uncertain when " +
                                       testOrder.Indicator.ToLower() +
                                       " carcinoma demonstrates genetic heterogeneity";
            }
            else if (testOrder.GeneticHeterogeneity == HER2AmplificationByISHGeneticHeterogeneityCollection.GeneticHeterogeneityPresentInClusters)
            {
                this.m_InterpretiveComment += Environment.NewLine + Environment.NewLine +
                                              "However, this tumor exhibits genetic heterogeneity in HER2 gene amplification in small cell clusters. The HER2/Chr17 " +
                                              "ratio in the clusters is " +
                                              testOrder.Her2Chr17ClusterRatio +
                                              ".  The clinical significance and potential clinical benefit of trastuzumab is uncertain when " +
                                              testOrder.Indicator.ToLower() +
                                              " carcinoma demonstrates genetic heterogeneity." + Environment.NewLine + Environment.NewLine;
                this.m_ResultComment = "This tumor exhibits genetic heterogeneity in HER2 gene amplification in small cell clusters.  The clinical significance " +
                                       "and potential clinical benefit of trastuzumab is uncertain when " +
                                       testOrder.Indicator.ToLower() +
                                       " carcinoma demonstrates genetic heterogeneity.";
            }

            testOrder.Result              = this.m_Result;
            testOrder.ResultCode          = this.m_ResultCode;
            testOrder.ResultComment       = this.m_ResultComment;
            testOrder.InterpretiveComment = this.m_InterpretiveComment.TrimEnd();
            testOrder.ResultDescription   = this.m_ResultDescription;
            testOrder.CommentLabel        = null;
            testOrder.Method              = this.m_Method;
            testOrder.ReportReference     = this.m_ReportReference;
            testOrder.ASRComment          = this.m_ASRComment;
            testOrder.NoCharge            = false;
        }
        public override void Render()
        {
            HER2AmplificationByISHTestOrder panelSetOrderHer2ByIsh = (HER2AmplificationByISHTestOrder)this.m_PanelSetOrder;

            if (panelSetOrderHer2ByIsh.Indicator.ToUpper() == "BREAST")
            {
                if (this.m_AccessionOrder.AccessionDate >= DateTime.Parse("1/1/2014") == true)
                {
                    this.m_TemplateName = @"\\CFileServer\Documents\ReportTemplates\XmlTemplates\HER2AmplificationByISH.Breast.8.xml";
                }
                else
                {
                    this.m_TemplateName = @"\\CFileServer\Documents\ReportTemplates\XmlTemplates\HER2AmplificationByISH.ASCOPre2014.7.xml";
                }
            }
            else if (panelSetOrderHer2ByIsh.Indicator.ToUpper() == "GASTRIC")
            {
                if (this.m_AccessionOrder.AccessionDate >= DateTime.Parse("1/1/2014") == true)
                {
                    this.m_TemplateName = @"\\CFileServer\Documents\ReportTemplates\XmlTemplates\HER2AmplificationByISH.Gastric.7.xml";
                }
                else
                {
                    this.m_TemplateName = @"\\CFileServer\Documents\ReportTemplates\XmlTemplates\HER2AmplificationByISH.ASCOPre2014.7.xml";
                }
            }

            base.OpenTemplate();

            this.SetDemographicsV2();
            this.SetReportDistribution();
            this.SetCaseHistory();

            if (this.m_AccessionOrder.OrderCancelled == false)
            {
                YellowstonePathology.Business.Document.AmendmentSection amendmentSection = new YellowstonePathology.Business.Document.AmendmentSection();
                amendmentSection.SetAmendment(m_PanelSetOrder.AmendmentCollection, this.m_ReportXml, this.m_NameSpaceManager, true);

                YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(this.m_PanelSetOrder.OrderedOn, this.m_PanelSetOrder.OrderedOnId);
                string collectionDateTimeString = YellowstonePathology.Business.Helper.DateTimeExtensions.CombineDateAndTime(specimenOrder.CollectionDate, specimenOrder.CollectionTime);

                this.SetXmlNodeData("date_time_collected", collectionDateTimeString);
                this.SetXmlNodeData("test_result", panelSetOrderHer2ByIsh.Result);

                if (panelSetOrderHer2ByIsh.Her2Chr17Ratio.HasValue == true)
                {
                    this.SetXmlNodeData("test_ratio", "Ratio = " + panelSetOrderHer2ByIsh.Her2Chr17Ratio);
                }
                else
                {
                    this.DeleteRow("test_ratio");
                }

                if (panelSetOrderHer2ByIsh.AverageHer2NeuSignal.HasValue == true)
                {
                    this.SetXmlNodeData("averageher2_copynumber", "Average HER2 Copy Number = " + panelSetOrderHer2ByIsh.AverageHer2NeuSignal.Value.ToString());
                }
                else
                {
                    this.DeleteRow("averageher2_copynumber");
                }

                this.SetXmlNodeData("final_date", YellowstonePathology.Business.BaseData.GetShortDateString(this.m_PanelSetOrder.FinalDate));

                if (string.IsNullOrEmpty(panelSetOrderHer2ByIsh.ResultComment) == false)
                {
                    this.SetXmlNodeData("result_comment", panelSetOrderHer2ByIsh.ResultComment);
                }
                else
                {
                    this.DeleteRow("result_comment");
                }

                this.SetXmlNodeData("cell_cnt", panelSetOrderHer2ByIsh.CellsCounted.ToString());
                this.SetXmlNodeData("obs_cnt", panelSetOrderHer2ByIsh.NumberOfObservers.ToString());

                if (panelSetOrderHer2ByIsh.AverageHer2NeuSignal.HasValue == true)
                {
                    this.SetXmlNodeData("avg_her", panelSetOrderHer2ByIsh.AverageHer2NeuSignal.Value.ToString());
                }
                else
                {
                    this.SetXmlNodeData("avg_her", "Unable to calculate");
                }

                this.SetXmlNodeData("avg_chr", panelSetOrderHer2ByIsh.AverageChr17Signal);

                if (panelSetOrderHer2ByIsh.Her2Chr17Ratio.HasValue == true)
                {
                    this.SetXmlNodeData("tst_ratio", panelSetOrderHer2ByIsh.Her2Chr17Ratio.Value.ToString());
                }
                else
                {
                    this.SetXmlNodeData("tst_ratio", "Unable to calculate");
                }

                XmlNode tableNode = this.m_ReportXml.SelectSingleNode("descendant::w:tbl[w:tr/w:tc/w:p/w:r/w:t='report_interpretation']", this.m_NameSpaceManager);


                if (panelSetOrderHer2ByIsh.InterpretiveComment != null)
                {
                    this.SetXMLNodeParagraphDataNode(tableNode, "report_interpretation", panelSetOrderHer2ByIsh.InterpretiveComment);
                }
                else
                {
                    this.SetXMLNodeParagraphDataNode(tableNode, "report_interpretation", string.Empty);
                }

                YellowstonePathology.Business.Test.AliquotOrder aliquotOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetAliquotOrder(this.m_PanelSetOrder.OrderedOnId);
                string blockDescription = string.Empty;
                if (aliquotOrder != null)
                {
                    blockDescription = " - Block " + aliquotOrder.Label;
                }

                SetXmlNodeData("specimen_type", specimenOrder.Description + blockDescription);
                SetXmlNodeData("specimen_fixation", specimenOrder.LabFixation);
                SetXmlNodeData("time_to_fixation", specimenOrder.TimeToFixationHourString);

                this.SetXmlNodeData("report_reference", panelSetOrderHer2ByIsh.ReportReference);
                SetXmlNodeData("duration_of_fixation", specimenOrder.FixationDurationString);

                this.SetXmlNodeData("fixation_comment", specimenOrder.FixationComment);

                SetXmlNodeData("report_method", panelSetOrderHer2ByIsh.Method);
                SetXmlNodeData("asr_comment", panelSetOrderHer2ByIsh.ASRComment);
                SetXmlNodeData("sample_adequacy", panelSetOrderHer2ByIsh.SampleAdequacy);
                SetXmlNodeData("date_time_collected", collectionDateTimeString);
                SetXmlNodeData("report_distribution", "No Distribution Selected");

                this.SetXmlNodeData("pathologist_signature", this.m_PanelSetOrder.Signature);
            }
            else
            {
                this.SetXmlNodeData("result_comment", panelSetOrderHer2ByIsh.ResultComment);
                this.SetXmlNodeData("final_date", YellowstonePathology.Business.BaseData.GetShortDateString(this.m_PanelSetOrder.FinalDate));
            }

            this.SaveReport();
        }
        public void ASCOPre2014ToXml(XElement document, HER2AmplificationByISHTestOrder panelSetOrder)
        {
            this.AddHeader(document, panelSetOrder, "HER2 Gene Amplification");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("HER2: " + panelSetOrder.Result, document, "F");
            this.AddNextObxElement("Ratio: " + panelSetOrder.AverageHer2Chr17Signal, document, "F");
            this.AddNextObxElement("Reference Range: Negative < 2, Positive >= 2", document, "F");

            if (string.IsNullOrEmpty(panelSetOrder.ResultComment) != true)
            {
                this.HandleLongString("Comment: " + panelSetOrder.ResultComment, document, "F");
            }
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("Pathologist: " + panelSetOrder.Signature, document, "F");
            if (panelSetOrder.FinalTime.HasValue == true)
            {
                this.AddNextObxElement("E-signed " + panelSetOrder.FinalTime.Value.ToString("MM/dd/yyyy HH:mm"), document, "F");
            }
            this.AddNextObxElement(string.Empty, document, "F");
            this.AddAmendments(document);

            this.AddNextObxElement("Number of invasive tumor cells counted: " + panelSetOrder.CellsCounted.ToString(), document, "F");
            this.AddNextObxElement("Number of observers: " + panelSetOrder.NumberOfObservers.ToString(), document, "F");
            if (panelSetOrder.AverageHer2NeuSignal.HasValue == true)
            {
                this.AddNextObxElement("HER2 average copy number per nucleus: " + panelSetOrder.AverageHer2NeuSignal.Value.ToString(), document, "F");
            }
            this.AddNextObxElement("Chr17 average copy number per nucleus: " + panelSetOrder.AverageChr17Signal, document, "F");
            this.AddNextObxElement("Ratio of average HER2/Chr17 signals: " + panelSetOrder.AverageHer2Chr17Signal, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(panelSetOrder.OrderedOn, panelSetOrder.OrderedOnId);
            YellowstonePathology.Business.Test.AliquotOrder aliquotOrder = (YellowstonePathology.Business.Test.AliquotOrder)this.m_AccessionOrder.SpecimenOrderCollection.GetOrderTarget(panelSetOrder.OrderedOnId);
            string blockDescription = string.Empty;
            if (aliquotOrder != null)
            {
                blockDescription = " - Block " + aliquotOrder.Label;
            }

            this.AddNextObxElement("Specimen site and type: " + specimenOrder.Description + blockDescription, document, "F");
            this.AddNextObxElement("Specimen fixation type: " + specimenOrder.LabFixation, document, "F");
            this.AddNextObxElement("Time to fixation: " + specimenOrder.TimeToFixationHourString, document, "F");
            this.AddNextObxElement("Duration of fixation: " + specimenOrder.FixationDurationString, document, "F");
            this.AddNextObxElement("Sample adequacy: " + panelSetOrder.SampleAdequacy, document, "F");

            string collectionDateTimeString = YellowstonePathology.Business.Helper.DateTimeExtensions.CombineDateAndTime(specimenOrder.CollectionDate, specimenOrder.CollectionTime);
            this.AddNextObxElement("Collection Date/Time: " + collectionDateTimeString, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("Interpretation: ", document, "F");
            this.HandleLongString(panelSetOrder.InterpretiveComment, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            if (string.IsNullOrEmpty(specimenOrder.FixationComment) == false)
            {
                this.HandleLongString("Fixation Comment:" + specimenOrder.FixationComment, document, "F");
                this.AddNextObxElement(string.Empty, document, "F");
            }

            this.AddNextObxElement("Method: ", document, "F");
            this.HandleLongString(panelSetOrder.Method, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("References: ", document, "F");
            this.HandleLongString(panelSetOrder.ReportReference, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement(panelSetOrder.ASRComment, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            string locationPerformed = panelSetOrder.GetLocationPerformedComment();
            this.AddNextObxElement(locationPerformed, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");
        }
        public void BreastToXml(XElement document, HER2AmplificationByISHTestOrder panelSetOrder)
        {
            string referenceRange = "Based on 2013 CAP/ASCO guidelines, a case is considered POSITIVE when the HER2 to Chr17 ratio is >=2.0 with any average " +
                "HER2 copy number or when the HER2 to Chr17 ratio is <2.0 with an average HER2 copy number >=6.0 signals/nucleus, " +
                "EQUIVOCAL when the HER2 to Chr17 ratio is <2.0 with an average HER2 copy number >=4.0 and <6.0 signals/cell, and " +
                "NEGATIVE when the HER2 to Chr17 ratio is <2.0 with an average HER2 copy number < 4.0 signals/cell.";

            this.AddHeader(document, panelSetOrder, "HER2 Gene Amplification");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("HER2: " + panelSetOrder.Result, document, "F");
            this.AddNextObxElement("Ratio: " + panelSetOrder.Her2Chr17Ratio, document, "F");
            this.AddNextObxElement("Average HER2 Copy Number = " + panelSetOrder.AverageHer2NeuSignal, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");
            this.AddNextObxElement("Reference Range: " + referenceRange, document, "F");

            if (string.IsNullOrEmpty(panelSetOrder.ResultComment) != true)
            {
                this.HandleLongString("Comment: " + panelSetOrder.ResultComment, document, "F");
            }
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("Pathologist: " + panelSetOrder.Signature, document, "F");
            if (panelSetOrder.FinalTime.HasValue == true)
            {
                this.AddNextObxElement("E-signed " + panelSetOrder.FinalTime.Value.ToString("MM/dd/yyyy HH:mm"), document, "F");
            }
            this.AddNextObxElement(string.Empty, document, "F");
            this.AddAmendments(document);

            this.AddNextObxElement("Number of invasive tumor cells counted: " + panelSetOrder.CellsCounted.ToString(), document, "F");
            this.AddNextObxElement("Number of observers: " + panelSetOrder.NumberOfObservers.ToString(), document, "F");
            this.AddNextObxElement("HER2 average copy number per nucleus: " + panelSetOrder.AverageHer2NeuSignal, document, "F");
            this.AddNextObxElement("Chr17 average copy number per nucleus: " + panelSetOrder.AverageChr17Signal, document, "F");
            this.AddNextObxElement("Ratio of average HER2/Chr17 signals: " + panelSetOrder.Her2Chr17Ratio, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(panelSetOrder.OrderedOn, panelSetOrder.OrderedOnId);
            YellowstonePathology.Business.Test.AliquotOrder aliquotOrder = (YellowstonePathology.Business.Test.AliquotOrder)this.m_AccessionOrder.SpecimenOrderCollection.GetOrderTarget(panelSetOrder.OrderedOnId);
            string specimenDescriptionString = specimenOrder.Description + " - " + aliquotOrder.Label;

            this.AddNextObxElement("Specimen Description: " + specimenDescriptionString, document, "F");

            this.AddNextObxElement("Fixation Type: " + specimenOrder.LabFixation, document, "F");
            this.AddNextObxElement("Time to fixation: " + specimenOrder.TimeToFixationHourString, document, "F");

            this.AddNextObxElement("Fixation Duration: " + specimenOrder.FixationDurationString, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("Interpretation: ", document, "F");
            this.HandleLongString(panelSetOrder.InterpretiveComment, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("Method: ", document, "F");
            this.HandleLongString(panelSetOrder.Method, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("References: ", document, "F");
            this.HandleLongString(panelSetOrder.ReportReference, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            foreach (YellowstonePathology.Business.Amendment.Model.Amendment amendment in panelSetOrder.AmendmentCollection)
            {
                this.AddNextObxElement(amendment.AmendmentType + ": " + amendment.AmendmentDate.Value.ToString("MM/dd/yyyy"), document, "C");
                this.HandleLongString(amendment.Text, document, "C");
                if (amendment.RequirePathologistSignature == true)
                {
                    this.AddNextObxElement("Signature: " + amendment.PathologistSignature, document, "C");
                }
                this.AddNextObxElement("", document, "C");
            }

            this.HandleLongString(panelSetOrder.ASRComment, document, "F");

            string locationPerformed = panelSetOrder.GetLocationPerformedComment();
            this.AddNextObxElement(locationPerformed, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");
        }
 public HER2AmplificationResultGastric(PanelSetOrderCollection panelSetOrderCollection, HER2AmplificationByISHTestOrder panelSetOrder) : base(panelSetOrderCollection, panelSetOrder)
 {
     this.m_InterpretiveComment = "Human epidermal growth factor receptor 2 gene (HER2) is amplified in up to 25% of gastric cancers, " +
                                  "particularly those that arise at the gastroesophageal junction.  Amplification of the HER2 gene in gastric tumors is associated with " +
                                  "a worse prognosis and is also predictive of response to chemotherapeutic agents.  Dual in situ hybridization (ISH) studies for HER2 " +
                                  "amplification were performed on the submitted sample, in accordance with ASCO/CAP guidelines." + Environment.NewLine + Environment.NewLine +
                                  "For this patient, the HER2:Chr17 ratio was *RATIO*. A total of *CELLSCOUNTED* nuclei were examined. Therefore, HER2 status is *HER2STATUS*.";
     this.m_ReportReference = "Gravalos, C. et al., HER2 in gastric cancer: a new prognostic factor and a novel therapeutic target. Ann " +
                              "Oncology 2008, 19:1523-1529.";
 }
        private void BreastToXml(XElement document, HER2AmplificationByISHTestOrder panelSetOrder)
        {
            string referenceRange = "Based on 2013 CAP/ASCO guidelines, a case is considered POSITIVE when the HER2 to Chr17 ratio is >=2.0 with any average " +
                                    "HER2 copy number or when the HER2 to Chr17 ratio is <2.0 with an average HER2 copy number >=6.0 signals/nucleus, " +
                                    "EQUIVOCAL when the HER2 to Chr17 ratio is <2.0 with an average HER2 copy number >=4.0 and <6.0 signals/cell, and " +
                                    "NEGATIVE when the HER2 to Chr17 ratio is <2.0 with an average HER2 copy number < 4.0 signals/cell.";

            this.AddNextNteElement("HER2: " + panelSetOrder.Result, document);
            this.AddNextNteElement("Ratio: " + panelSetOrder.AverageHer2Chr17Signal, document);
            this.AddNextNteElement("Average HER2 Copy Number = " + panelSetOrder.AverageHer2NeuSignal.Value.ToString(), document);
            this.AddBlankNteElement(document);

            if (panelSetOrder.ResultComment != string.Empty)
            {
                this.AddNextNteElement("Comment: " + panelSetOrder.ResultComment, document);
                this.AddBlankNteElement(document);
            }

            this.AddNextNteElement("Pathologist: " + panelSetOrder.Signature, document);
            if (panelSetOrder.FinalTime.HasValue == true)
            {
                this.AddNextNteElement("E-signed " + panelSetOrder.FinalTime.Value.ToString("MM/dd/yyyy HH:mm"), document);
            }
            this.AddBlankNteElement(document);
            this.AddAmendments(document, panelSetOrder, this.m_AccessionOrder);

            this.AddNextNteElement("Number of invasive tumor cells counted: " + panelSetOrder.CellsCounted.ToString(), document);
            this.AddNextNteElement("Number of observers: " + panelSetOrder.NumberOfObservers.ToString(), document);
            if (panelSetOrder.AverageHer2NeuSignal.HasValue == true)
            {
                this.AddNextNteElement("HER2 average copy number per nucleus: " + panelSetOrder.AverageHer2NeuSignal, document);
            }
            this.AddNextNteElement("Chr17 average copy number per nucleus: " + panelSetOrder.AverageChr17Signal, document);
            this.AddNextNteElement("Ratio of average HER2/Chr17 signals: " + panelSetOrder.AverageHer2Chr17Signal, document);
            this.AddBlankNteElement(document);

            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(panelSetOrder.OrderedOn, panelSetOrder.OrderedOnId);
            YellowstonePathology.Business.Test.AliquotOrder            aliquotOrder  = (YellowstonePathology.Business.Test.AliquotOrder) this.m_AccessionOrder.SpecimenOrderCollection.GetOrderTarget(panelSetOrder.OrderedOnId);
            string blockDescription = string.Empty;

            if (aliquotOrder != null)
            {
                blockDescription = " - Block " + aliquotOrder.Label;
            }

            this.AddNextNteElement("Specimen site and type: " + specimenOrder.Description + blockDescription, document);
            this.AddNextNteElement("Specimen fixation type: " + specimenOrder.LabFixation, document);
            this.AddNextNteElement("Time to fixation: " + specimenOrder.TimeToFixationHourString, document);
            this.AddNextNteElement("Duration of fixation: " + specimenOrder.FixationDurationString, document);
            this.AddNextNteElement("Sample adequacy: " + panelSetOrder.SampleAdequacy, document);

            string collectionDateTimeString = YellowstonePathology.Business.Helper.DateTimeExtensions.CombineDateAndTime(specimenOrder.CollectionDate, specimenOrder.CollectionTime);

            this.AddNextNteElement("Collection Date/Time: " + collectionDateTimeString, document);
            this.AddBlankNteElement(document);

            this.AddNextNteElement("Interpretation: ", document);
            this.HandleLongString(panelSetOrder.InterpretiveComment, document);
            this.AddBlankNteElement(document);

            this.AddNextNteElement("Reference Range: " + referenceRange, document);
            this.AddBlankNteElement(document);

            if (string.IsNullOrEmpty(specimenOrder.FixationComment) == false)
            {
                this.HandleLongString("Fixation Comment:" + specimenOrder.FixationComment, document);
                this.AddBlankNteElement(document);
            }

            this.AddNextNteElement("Method: ", document);
            string method = panelSetOrder.Method;

            if (string.IsNullOrEmpty(method) == true)
            {
                method = System.Security.SecurityElement.Escape("This test was performed using a molecular method, In Situ Hybridization (ISH) with the US FDA approved Inform HER2 DNA probe kit, modified to report results according to ASCO/CAP guidelines. The test was performed on paraffin embedded tissue in compliance with ASCO/CAP guidelines.  Probes used include a locus specific probe for HER2 and an internal hybridization control probe for the centromeric region of chromosome 17 (Chr17).");
            }
            this.AddNextNteElement(method, document);
            this.AddBlankNteElement(document);

            this.AddNextNteElement("References: ", document);
            this.AddNextNteElement(panelSetOrder.ReportReference, document);
            this.AddBlankNteElement(document);

            this.AddNextNteElement(panelSetOrder.ASRComment, document);
            this.AddBlankNteElement(document);

            string locationPerformed = panelSetOrder.GetLocationPerformedComment();

            this.AddNextNteElement(locationPerformed, document);
            this.AddBlankNteElement(document);
        }
Ejemplo n.º 21
0
        public void BreastToXml(XElement document, HER2AmplificationByISHTestOrder panelSetOrder)
        {
            string referenceRange = "Based on 2013 CAP/ASCO guidelines, a case is considered POSITIVE when the HER2 to Chr17 ratio is >=2.0 with any average " +
                                    "HER2 copy number or when the HER2 to Chr17 ratio is <2.0 with an average HER2 copy number >=6.0 signals/nucleus, " +
                                    "EQUIVOCAL when the HER2 to Chr17 ratio is <2.0 with an average HER2 copy number >=4.0 and <6.0 signals/cell, and " +
                                    "NEGATIVE when the HER2 to Chr17 ratio is <2.0 with an average HER2 copy number < 4.0 signals/cell.";

            this.AddHeader(document, panelSetOrder, "HER2 Gene Amplification");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("HER2: " + panelSetOrder.Result, document, "F");
            this.AddNextObxElement("Ratio: " + panelSetOrder.AverageHer2Chr17Signal, document, "F");
            this.AddNextObxElement("Average HER2 Copy Number = " + panelSetOrder.AverageHer2NeuSignal.Value.ToString(), document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            if (string.IsNullOrEmpty(panelSetOrder.ResultComment) != true)
            {
                this.HandleLongString("Comment: " + panelSetOrder.ResultComment, document, "F");
                this.AddNextObxElement(string.Empty, document, "F");
            }

            this.AddNextObxElement("Pathologist: " + panelSetOrder.Signature, document, "F");
            if (panelSetOrder.FinalTime.HasValue == true)
            {
                this.AddNextObxElement("E-signed " + panelSetOrder.FinalTime.Value.ToString("MM/dd/yyyy HH:mm"), document, "F");
            }
            this.AddNextObxElement(string.Empty, document, "F");
            this.AddAmendments(document);

            this.AddNextObxElement("Number of invasive tumor cells counted: " + panelSetOrder.CellsCounted.ToString(), document, "F");
            this.AddNextObxElement("Number of observers: " + panelSetOrder.NumberOfObservers.ToString(), document, "F");
            if (panelSetOrder.AverageHer2NeuSignal.HasValue == true)
            {
                this.AddNextObxElement("HER2 average copy number: " + panelSetOrder.AverageHer2NeuSignal.Value.ToString(), document, "F");
            }
            this.AddNextObxElement("Chr17 average copy number: " + panelSetOrder.AverageChr17Signal, document, "F");
            this.AddNextObxElement("Ratio of average HER2/Chr17 signals: " + panelSetOrder.AverageHer2Chr17Signal, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(panelSetOrder.OrderedOn, panelSetOrder.OrderedOnId);
            YellowstonePathology.Business.Test.AliquotOrder            aliquotOrder  = (YellowstonePathology.Business.Test.AliquotOrder) this.m_AccessionOrder.SpecimenOrderCollection.GetOrderTarget(panelSetOrder.OrderedOnId);
            string blockDescription = string.Empty;

            if (aliquotOrder != null)
            {
                blockDescription = " - Block " + aliquotOrder.Label;
            }

            this.AddNextObxElement("Specimen site and type: " + specimenOrder.Description + blockDescription, document, "F");
            this.AddNextObxElement("Specimen fixation type: " + specimenOrder.LabFixation, document, "F");
            this.AddNextObxElement("Time to fixation: " + specimenOrder.TimeToFixationHourString, document, "F");
            this.AddNextObxElement("Duration of fixation: " + specimenOrder.FixationDurationString, document, "F");
            this.AddNextObxElement("Sample adequacy: " + panelSetOrder.SampleAdequacy, document, "F");

            string collectionDateTimeString = YellowstonePathology.Business.Helper.DateTimeExtensions.CombineDateAndTime(specimenOrder.CollectionDate, specimenOrder.CollectionTime);

            this.AddNextObxElement("Collection Date/Time: " + collectionDateTimeString, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("Interpretation: ", document, "F");
            this.HandleLongString(panelSetOrder.InterpretiveComment, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("Reference Range: " + referenceRange, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            if (string.IsNullOrEmpty(specimenOrder.FixationComment) == false)
            {
                this.HandleLongString("Fixation Comment:" + specimenOrder.FixationComment, document, "F");
                this.AddNextObxElement(string.Empty, document, "F");
            }

            this.AddNextObxElement("Method: ", document, "F");
            this.HandleLongString(panelSetOrder.Method, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("References: ", document, "F");
            this.HandleLongString(panelSetOrder.ReportReference, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            this.HandleLongString(panelSetOrder.ASRComment, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            string locationPerformed = panelSetOrder.GetLocationPerformedComment();

            this.AddNextObxElement(locationPerformed, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");
        }
Ejemplo n.º 22
0
 public HER2AmplificationResultGroup5Breast(PanelSetOrderCollection panelSetOrderCollection, HER2AmplificationByISHTestOrder panelSetOrder) : base(panelSetOrderCollection, panelSetOrder)
 {
 }
Ejemplo n.º 23
0
 public HER2AmplificationResultBreast(PanelSetOrderCollection panelSetOrderCollection, HER2AmplificationByISHTestOrder panelSetOrder) : base(panelSetOrderCollection, panelSetOrder)
 {
     this.m_ReportReference = "Wolff AC, Hammond MEH, Hicks DG, et al. Recommendations for Human Epidermal Growth Factor Receptor 2 Testing in " +
                              "Breast Cancer. Arch Pathol Lab Med. doi: 10.5858/arpa.2013-0953-SA.";
 }
        private void ASCOPre2014ToXml(XElement document, HER2AmplificationByISHTestOrder panelSetOrder)
        {
            this.AddNextNteElement("HER2: " + panelSetOrder.Result, document);
            this.AddNextNteElement("Ratio: " + panelSetOrder.AverageHer2Chr17Signal, document);
            this.AddNextNteElement("Reference Range: Negative < 2, Positive >= 2", document);

            if (panelSetOrder.ResultComment != string.Empty)
            {
                this.AddNextNteElement("Comment: " + panelSetOrder.ResultComment, document);
                this.AddBlankNteElement(document);
            }

            this.AddNextNteElement("Pathologist: " + panelSetOrder.Signature, document);
            if (panelSetOrder.FinalTime.HasValue == true)
            {
                this.AddNextNteElement("E-signed " + panelSetOrder.FinalTime.Value.ToString("MM/dd/yyyy HH:mm"), document);
            }
            this.AddBlankNteElement(document);
            this.AddAmendments(document, panelSetOrder);

            this.AddNextNteElement("Number of invasive tumor cells counted: " + panelSetOrder.CellsCounted.ToString(), document);
            this.AddNextNteElement("Number of observers: " + panelSetOrder.NumberOfObservers.ToString(), document);
            this.AddNextNteElement("HER2 average copy number per nucleus: " + panelSetOrder.AverageHer2NeuSignal.Value.ToString(), document);
            this.AddNextNteElement("Chr17 average copy number per nucleus: " + panelSetOrder.AverageChr17Signal, document);
            this.AddNextNteElement("Ratio of average HER2/Chr17 signals: " + panelSetOrder.Her2Chr17Ratio, document);
            this.AddBlankNteElement(document);

            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(panelSetOrder.OrderedOn, panelSetOrder.OrderedOnId);
            YellowstonePathology.Business.Test.AliquotOrder aliquotOrder = (YellowstonePathology.Business.Test.AliquotOrder)this.m_AccessionOrder.SpecimenOrderCollection.GetOrderTarget(panelSetOrder.OrderedOnId);
            string blockDescription = string.Empty;
            if (aliquotOrder != null)
            {
                blockDescription = " - Block " + aliquotOrder.Label;
            }

            this.AddNextNteElement("Specimen site and type: " + specimenOrder.Description + blockDescription, document);
            this.AddNextNteElement("Specimen fixation type: " + specimenOrder.LabFixation, document);
            this.AddNextNteElement("Time to fixation: " + specimenOrder.TimeToFixationHourString, document);
            this.AddNextNteElement("Duration of fixation: " + specimenOrder.FixationDurationString, document);
            this.AddNextNteElement("Sample adequacy: " + panelSetOrder.SampleAdequacy, document);

            string collectionDateTimeString = YellowstonePathology.Business.Helper.DateTimeExtensions.CombineDateAndTime(specimenOrder.CollectionDate, specimenOrder.CollectionTime);
            this.AddNextNteElement("Collection Date/Time: " + collectionDateTimeString, document);
            this.AddBlankNteElement(document);

            this.AddNextNteElement("Interpretation: ", document);
            this.HandleLongString(panelSetOrder.InterpretiveComment, document);
            this.AddBlankNteElement(document);

            if (string.IsNullOrEmpty(specimenOrder.FixationComment) == false)
            {
                this.HandleLongString("Fixation Comment:" + specimenOrder.FixationComment, document);
                this.AddBlankNteElement(document);
            }

            this.AddNextNteElement("Method: ", document);
            string method = panelSetOrder.Method;
            if (string.IsNullOrEmpty(method) == true)
            {
                method = System.Security.SecurityElement.Escape("This test was performed using a molecular method, In Situ Hybridization (ISH) with the US FDA approved Inform HER2 DNA probe kit, modified to report results according to ASCO/CAP guidelines. The test was performed on paraffin embedded tissue in compliance with ASCO/CAP guidelines.  Probes used include a locus specific probe for HER2 and an internal hybridization control probe for the centromeric region of chromosome 17 (Chr17).");
            }
            this.AddNextNteElement(method, document);
            this.AddBlankNteElement(document);

            this.AddNextNteElement("References: ", document);
            this.AddNextNteElement(panelSetOrder.ReportReference, document);
            this.AddBlankNteElement(document);

            this.AddNextNteElement(panelSetOrder.ASRComment, document);
            this.AddBlankNteElement(document);

            string locationPerformed = panelSetOrder.GetLocationPerformedComment();
            this.AddNextNteElement(locationPerformed, document);
            this.AddBlankNteElement(document);
        }
 public HER2AmplificationResultCollection(PanelSetOrderCollection panelSetOrderCollection, HER2AmplificationByISHTestOrder panelSetOrder)
 {
     this.Add(new HER2AmplificationResultGroup1Breast(panelSetOrderCollection, panelSetOrder));
     this.Add(new HER2AmplificationResultGroup2Breast(panelSetOrderCollection, panelSetOrder));
     this.Add(new HER2AmplificationResultGroup3Breast(panelSetOrderCollection, panelSetOrder));
     this.Add(new HER2AmplificationResultGroup4Breast(panelSetOrderCollection, panelSetOrder));
     this.Add(new HER2AmplificationResultGroup5Breast(panelSetOrderCollection, panelSetOrder));
     this.Add(new HER2AmplificationResultGastric(panelSetOrderCollection, panelSetOrder));
 }
        public void GastricToXml(XElement document, HER2AmplificationByISHTestOrder panelSetOrder)
        {
            this.AddHeader(document, panelSetOrder, "HER2 Gene Amplification");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("HER2: " + panelSetOrder.Result, document, "F");
            this.AddNextObxElement("Ratio: " + panelSetOrder.Her2Chr17Ratio, document, "F");
            this.AddNextObxElement("Reference Range: Negative < 2, Positive >= 2", document, "F");

            if (string.IsNullOrEmpty(panelSetOrder.ResultComment) != true)
            {
                this.HandleLongString("Comment: " + panelSetOrder.ResultComment, document, "F");
            }
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("Pathologist: " + panelSetOrder.Signature, document, "F");
            if (panelSetOrder.FinalTime.HasValue == true)
            {
                this.AddNextObxElement("E-signed " + panelSetOrder.FinalTime.Value.ToString("MM/dd/yyyy HH:mm"), document, "F");
            }
            this.AddNextObxElement(string.Empty, document, "F");
            this.AddAmendments(document);

            this.AddNextObxElement("Number of invasive tumor cells counted: " + panelSetOrder.CellsCounted.ToString(), document, "F");
            this.AddNextObxElement("Number of observers: " + panelSetOrder.NumberOfObservers.ToString(), document, "F");
            this.AddNextObxElement("HER2 average copy number per nucleus: " + panelSetOrder.AverageHer2NeuSignal, document, "F");
            this.AddNextObxElement("Chr17 average copy number per nucleus: " + panelSetOrder.AverageChr17Signal, document, "F");
            this.AddNextObxElement("Ratio of average HER2/Chr17 signals: " + panelSetOrder.Her2Chr17Ratio, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(panelSetOrder.OrderedOn, panelSetOrder.OrderedOnId);
            YellowstonePathology.Business.Test.AliquotOrder            aliquotOrder  = (YellowstonePathology.Business.Test.AliquotOrder) this.m_AccessionOrder.SpecimenOrderCollection.GetOrderTarget(panelSetOrder.OrderedOnId);
            string specimenDescriptionString = specimenOrder.Description + " - " + aliquotOrder.Label;

            this.AddNextObxElement("Specimen Description: " + specimenDescriptionString, document, "F");

            this.AddNextObxElement("Fixation Type: " + specimenOrder.LabFixation, document, "F");
            this.AddNextObxElement("Time to fixation: " + specimenOrder.TimeToFixationHourString, document, "F");
            this.AddNextObxElement("Fixation Duration: " + specimenOrder.FixationDurationString, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("Interpretation: ", document, "F");
            this.HandleLongString(panelSetOrder.InterpretiveComment, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("Method: ", document, "F");
            this.HandleLongString(panelSetOrder.Method, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            this.AddNextObxElement("References: ", document, "F");
            this.HandleLongString(panelSetOrder.ReportReference, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");

            foreach (YellowstonePathology.Business.Amendment.Model.Amendment amendment in panelSetOrder.AmendmentCollection)
            {
                this.AddNextObxElement(amendment.AmendmentType + ": " + amendment.AmendmentDate.Value.ToString("MM/dd/yyyy"), document, "C");
                this.HandleLongString(amendment.Text, document, "C");
                if (amendment.RequirePathologistSignature == true)
                {
                    this.AddNextObxElement("Signature: " + amendment.PathologistSignature, document, "C");
                }
                this.AddNextObxElement("", document, "C");
            }

            this.AddNextObxElement(panelSetOrder.ASRComment, document, "F");

            string locationPerformed = panelSetOrder.GetLocationPerformedComment();

            this.AddNextObxElement(locationPerformed, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");
        }