public static PNHResult GetResult(PNHTestOrder pnhTestOrder, YellowstonePathology.Business.Test.AccessionOrder accessionOrder)
        {
            PNHResult result = new PNHResult();
            List<YellowstonePathology.Business.Test.AccessionOrder> accessionOrders = result.GetPreviousAccessions(accessionOrder.PatientId);

            result.SetTotals(pnhTestOrder);

            if (result.IsNegativeWithPreviousPositiveResult(accessionOrders, pnhTestOrder.MasterAccessionNo, pnhTestOrder.OrderDate.Value) == true)
            {
                result = new PNHNegativeWithPreviousPositiveResult();
            }
            else if (result.IsPersistentResult(accessionOrders, pnhTestOrder.MasterAccessionNo, pnhTestOrder.OrderDate.Value) == true)
            {
                result = new PNHPersistentPositiveResult();
            }
            else if (result.IsNegativeResult == true)
            {
                result = new PNHNegativeResult();
            }
            else if (result.IsSmallPositiveResult == true)
            {
                result = new PNHSmallPositiveResult();
            }
            else if (result.IsSignificantPositiveResult == true)
            {
                result = new PNHSignificantPositiveResult();
            }
            else if (result.IsGpiDeficientResult == true)
            {
                result = new PNHGpiDeficientResult();
            }
            result.SetTotals(pnhTestOrder);
            return result;
        }
Beispiel #2
0
        public static PNHResult GetResult(PNHTestOrder pnhTestOrder, YellowstonePathology.Business.Test.AccessionOrder accessionOrder)
        {
            PNHResult result = new PNHResult();
            List <YellowstonePathology.Business.Test.AccessionOrder> accessionOrders = result.GetPreviousAccessions(accessionOrder.PatientId);

            result.SetTotals(pnhTestOrder);

            if (result.IsNegativeWithPreviousPositiveResult(accessionOrders, pnhTestOrder.MasterAccessionNo, pnhTestOrder.OrderDate.Value) == true)
            {
                result = new PNHNegativeWithPreviousPositiveResult();
            }
            else if (result.IsPersistentResult(accessionOrders, pnhTestOrder.MasterAccessionNo, pnhTestOrder.OrderDate.Value) == true)
            {
                result = new PNHPersistentPositiveResult();
            }
            else if (result.IsNegativeResult == true)
            {
                result = new PNHNegativeResult();
            }
            else if (result.IsSmallPositiveResult == true)
            {
                result = new PNHSmallPositiveResult();
            }
            else if (result.IsSignificantPositiveResult == true)
            {
                result = new PNHSignificantPositiveResult();
            }
            else if (result.IsGpiDeficientResult == true)
            {
                result = new PNHGpiDeficientResult();
            }
            result.SetTotals(pnhTestOrder);
            return(result);
        }
 public override void SetResults(PNHTestOrder testOrder)
 {
     string result = this.m_Comment;
     result = result.Replace("GRANULOCYTETOTAL", this.GranulocytesTotal.ToString("F"));
     result = result.Replace("MONOCYTETOTAL", this.MonocytesTotal.ToString("F"));
     result = result.Replace("REDBLOODTOTAL", this.RedBloodTotal.ToString("F"));
     this.m_Comment = result;
     base.SetResults(testOrder);
 }
Beispiel #4
0
 public virtual void SetResults(PNHTestOrder testOrder)
 {
     testOrder.Result     = this.m_Result;
     testOrder.ResultCode = this.m_ResultCode;
     testOrder.Comment    = this.m_Comment;
     testOrder.Method     = this.m_Method;
     testOrder.References = this.m_References;
     testOrder.ASRComment = this.m_ASRComment;
 }
Beispiel #5
0
        public override void SetResults(PNHTestOrder testOrder)
        {
            string result = this.m_Comment;

            result         = result.Replace("GRANULOCYTETOTAL", this.GranulocytesTotal.ToString("F"));
            result         = result.Replace("MONOCYTETOTAL", this.MonocytesTotal.ToString("F"));
            result         = result.Replace("REDBLOODTOTAL", this.RedBloodTotal.ToString("F"));
            this.m_Comment = result;
            base.SetResults(testOrder);
        }
Beispiel #6
0
        public void SetTotals(PNHTestOrder pnhTestOrder)
        {
            this.m_cellLines[(int)PNHCellLineEnum.RBC].Type1 = Convert.ToDecimal(pnhTestOrder.TypeIRedBloodCells);
            this.m_cellLines[(int)PNHCellLineEnum.RBC].Type2 = Convert.ToDecimal(pnhTestOrder.TypeIIRedBloodCells);
            this.m_cellLines[(int)PNHCellLineEnum.RBC].Type3 = Convert.ToDecimal(pnhTestOrder.TypeIIIRedBloodCells);

            this.m_cellLines[(int)PNHCellLineEnum.GRAN].Type2 = Convert.ToDecimal(pnhTestOrder.TypeIIGranulocytes);
            this.m_cellLines[(int)PNHCellLineEnum.GRAN].Type3 = Convert.ToDecimal(pnhTestOrder.TypeIIIGranulocytes);

            this.m_cellLines[(int)PNHCellLineEnum.MONO].Type2 = Convert.ToDecimal(pnhTestOrder.TypeIIMonocytes);
            this.m_cellLines[(int)PNHCellLineEnum.MONO].Type3 = Convert.ToDecimal(pnhTestOrder.TypeIIIMonocytes);
        }
Beispiel #7
0
        private void NegativeToXml(XElement document, PNHTestOrder testOrder)
        {
            this.AddHeader(document, testOrder, "PNH, Highly Sensitive(FLAER)");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("Result: Negative (No evidence of paroxysmal nocturnal hemoglobinuria)", document, "F");
            this.AddNextObxElement("", document, "F");
            this.AddNextObxElement("Comment:", document, "F");
            this.HandleLongString("Flow cytometric analysis does not identify any evidence of a PNH clone, based on analysis of several different GPI-linked antibodies on 3 separate cell populations (red blood cells, monocytes and granulocytes).  These findings do not support the diagnosis of PNH.", document, "F");
            this.AddNextObxElement("", document, "F");

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

            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(testOrder.OrderedOn, testOrder.OrderedOnId);
            this.AddNextObxElement("Specimen Description: " + specimenOrder.Description, document, "F");
            this.AddNextObxElement("", 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("Method: ", document, "F");
            this.HandleLongString(testOrder.Method, document, "F");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("Result Data: ", document, "F");
            this.AddNextObxElement("RBC: No evidence of PNH Clone or GPI - linked antibodies", document, "F");
            this.AddNextObxElement("WBC - Granulocytes:	No evidence of PNH Clone or GPI - linked antibodies", document, "F");
            this.AddNextObxElement("WBC - Monocytes:	No evidence of PNH Clone or GPI - linked antibodies", document, "F");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("References: ", document, "F");
            this.HandleLongString(testOrder.ReportReferences, document, "F");
            this.AddNextObxElement("", document, "F");

            this.HandleLongString(testOrder.ASRComment, document, "F");
            this.AddNextObxElement("", document, "F");

            string locationPerformed = testOrder.GetLocationPerformedComment();

            this.HandleLongString(locationPerformed, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");
        }
Beispiel #8
0
        private void NegativeToXml(XElement document, PNHTestOrder testOrder)
        {
            this.AddHeader(document, testOrder, "PNH, Highly Sensitive(FLAER)");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("Result: Negative (No evidence of paroxysmal nocturnal hemoglobinuria)", document, "F");
            this.AddNextObxElement("", document, "F");
            this.AddNextObxElement("Comment:", document, "F");
            this.AddNextObxElement("Flow cytometric analysis does not identify any evidence of a PNH clone, based on analysis of several different GPI-linked antibodies on 3 separate cell populations (red blood cells, monocytes and granulocytes).  These findings do not support the diagnosis of PNH.", document, "F");
            this.AddNextObxElement("", document, "F");

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

            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(testOrder.OrderedOn, testOrder.OrderedOnId);
            this.AddNextObxElement("Specimen Description: " + specimenOrder.Description, document, "F");
            this.AddNextObxElement("", 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("Method: ", document, "F");
            this.HandleLongString(testOrder.Method, document, "F");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("Result Data: ", document, "F");
            this.AddNextObxElement("RBC: No evidence of PNH Clone or GPI - linked antibodies", document, "F");
            this.AddNextObxElement("WBC - Granulocytes:	No evidence of PNH Clone or GPI - linked antibodies", document, "F");
            this.AddNextObxElement("WBC - Monocytes:	No evidence of PNH Clone or GPI - linked antibodies", document, "F");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("References: ", document, "F");
            this.HandleLongString(testOrder.ReportReferences, document, "F");
            this.AddNextObxElement("", document, "F");

            this.HandleLongString(testOrder.ASRComment, document, "F");
            this.AddNextObxElement("", document, "F");

            string locationPerformed = testOrder.GetLocationPerformedComment();
            this.HandleLongString(locationPerformed, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");
        }
Beispiel #9
0
        public override void ToXml(XElement document)
        {
            PNHTestOrder testOrder = (PNHTestOrder)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(this.m_ReportNo);


            PNHNegativeResult pnhNegativeResult = new PNHNegativeResult();

            if (testOrder.ResultCode == pnhNegativeResult.ResultCode)
            {
                this.NegativeToXml(document, testOrder);
            }
            else
            {
                this.PositiveToXml(document, testOrder);
            }
        }
Beispiel #10
0
        public override void ToXml(XElement document)
        {
            PNHTestOrder testOrder = (PNHTestOrder)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(this.m_ReportNo);

            this.AddHeader(document, testOrder, "PNH, Highly Sensitive(FLAER)");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("Result: " + testOrder.Result, document, "F");
            this.AddNextObxElement("", document, "F");
            this.AddNextObxElement("Reference: Negative", document, "F");
            this.AddNextObxElement("", document, "F");

            if (string.IsNullOrEmpty(testOrder.Comment) == false)
            {
                this.AddNextObxElement("Comment: ", document, "F");
                this.AddNextObxElement(testOrder.Comment, document, "F");
                this.AddNextObxElement("", document, "F");
            }

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

            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(testOrder.OrderedOn, testOrder.OrderedOnId);
            this.AddNextObxElement("Specimen Description: " + specimenOrder.Description, document, "F");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("Method: ", document, "F");
            this.HandleLongString(testOrder.Method, document, "F");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("References: ", document, "F");
            this.HandleLongString(testOrder.References, document, "F");

            this.AddNextObxElement("", document, "F");
            this.HandleLongString(testOrder.ASRComment, document, "F");

            string locationPerformed = testOrder.GetLocationPerformedComment();

            this.HandleLongString(locationPerformed, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");
        }
Beispiel #11
0
        private void SetPreviousResults(XElement document, PNHTestOrder testOrder)
        {
            PNHResult pnhResult = new PNHResult();
            List <YellowstonePathology.Business.Test.AccessionOrder> accessionOrders = pnhResult.GetPreviousAccessions(this.m_AccessionOrder.PatientId);
            List <PNHTestOrder> pnhTestOrders = pnhResult.GetPreviousPanelSetOrders(accessionOrders, testOrder.MasterAccessionNo, testOrder.OrderDate.Value);

            for (int idx = 0; idx < pnhTestOrders.Count; idx++)
            {
                if (idx > 2)
                {
                    break;
                }

                pnhResult.SetTotals(pnhTestOrders[idx]);
                this.AddNextObxElement("Previous Result: " + pnhTestOrders[idx].FinalDate.Value.ToShortDateString(), document, "F");
                this.AddNextObxElement("RBC: " + pnhResult.RedBloodTotal.ToString("F") + "%", document, "F");
                this.AddNextObxElement("WBC-Granulocytes: " + pnhResult.GranulocytesTotal.ToString("F") + "%", document, "F");
                this.AddNextObxElement("WBC-Monocytes: " + pnhResult.MonocytesTotal.ToString("F") + "%", document, "F");
                this.AddNextObxElement("", document, "F");
            }
        }
Beispiel #12
0
        public override void ToXml(XElement document)
        {
            PNHTestOrder      testOrder         = (PNHTestOrder)this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(this.m_ReportNo);
            PNHNegativeResult pnhNegativeResult = new PNHNegativeResult();

            this.AddCompanyHeader(document);
            this.AddBlankNteElement(document);
            this.AddNextNteElement("PNH, Highly Sensitive(FLAER)", document);
            this.AddNextNteElement("Master Accession #: " + testOrder.MasterAccessionNo, document);
            this.AddNextNteElement("Report #: " + testOrder.ReportNo, document);
            this.AddBlankNteElement(document);

            if (testOrder.ResultCode == pnhNegativeResult.ResultCode)
            {
                this.NegativeToXml(document, testOrder);
            }
            else
            {
                this.PositiveToXml(document, testOrder);
            }
        }
Beispiel #13
0
        public override void Render()
        {
            PNHTestOrder testOrder = (PNHTestOrder)this.m_PanelSetOrder;

            if (string.IsNullOrEmpty(testOrder.ResultCode) == true)
            {
                System.Windows.MessageBox.Show("Unable to create report. Template is not selected");
                return;
            }

            PNHNegativeResult pnhNegativeResult = new PNHNegativeResult();

            if (testOrder.ResultCode == pnhNegativeResult.ResultCode)
            {
                this.m_TemplateName = @"\\CFileServer\Documents\ReportTemplates\XmlTemplates\PNHAnalysisNegative.8.xml";
            }
            else
            {
                this.m_TemplateName = @"\\CFileServer\Documents\ReportTemplates\XmlTemplates\PNHAnalysisPositive.8.xml";
            }


            this.OpenTemplate();

            //setting date of service to date only
            if (this.m_AccessionOrder.CollectionDate.HasValue)
            {
                this.ReplaceText("collection_date", this.m_AccessionOrder.CollectionDate.Value.ToShortDateString());
            }

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

            if (this.m_PanelSetOrder.Final)
            {
                this.ReplaceText("pathologist_signature", this.m_PanelSetOrder.Signature);
            }

            this.SetXmlNodeData("report_result", testOrder.Result);

            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(this.m_PanelSetOrder.OrderedOn, this.m_PanelSetOrder.OrderedOnId);
            this.SetXmlNodeData("specimen_description", specimenOrder.Description);

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

            this.SetXmlNodeData("date_time_collected", collectionDateTimeString);

            //Handle result type
            if (testOrder.ResultCode != pnhNegativeResult.ResultCode)
            {
                this.HandleResultMonitor(testOrder.ResultCode);
            }

            this.ReplaceText("report_comment", testOrder.Comment);
            this.ReplaceText("report_method", testOrder.Method);
            this.ReplaceText("report_references", testOrder.References);
            this.ReplaceText("asr_comment", testOrder.ASRComment);


            YellowstonePathology.Business.Document.AmendmentSection amendment = new YellowstonePathology.Business.Document.AmendmentSection();
            amendment.SetAmendment(m_PanelSetOrder.AmendmentCollection, this.m_ReportXml, this.m_NameSpaceManager, true);

            this.SaveReport();
        }
Beispiel #14
0
        private void PositiveToXml(XElement document, PNHTestOrder testOrder)
        {
            this.AddNextNteElement("Result: " + testOrder.Result, document);
            this.AddBlankNteElement(document);

            if (string.IsNullOrEmpty(testOrder.Comment) == false)
            {
                this.AddNextNteElement("Comment: ", document);
                this.AddNextNteElement(testOrder.Comment, document);
                this.AddBlankNteElement(document);
            }

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

            this.AddBlankNteElement(document);
            this.AddAmendments(document, testOrder);

            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(testOrder.OrderedOn, testOrder.OrderedOnId);
            this.AddNextNteElement("Specimen Description: " + specimenOrder.Description, document);
            this.AddBlankNteElement(document);

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

            this.AddNextNteElement("Method: ", document);
            this.HandleLongString(testOrder.Method, document);
            this.AddBlankNteElement(document);

            PNHResult pnhResult = new PNHResult();
            pnhResult.SetTotals(testOrder);
            this.AddNextNteElement("Result Data:)", document);
            this.AddNextNteElement("RBC(Total)", document);
            this.AddNextNteElement("PNH Clone (Type II + Type III):", document);
            this.AddNextNteElement("Type III (complete CD59 deficiency) = " + pnhResult.RedBloodCellsTypeIIIResult.ToString("F") + "%", document);
            this.AddNextNteElement("Type II (partial CD59 deficiency) = " + pnhResult.RedBloodCellsTypeIIResult.ToString("F") + "%", document);
            this.AddNextNteElement("Result: " + pnhResult.RedBloodTotal.ToString("F") + "%", document);
            this.AddNextNteElement("", document);
            this.AddNextNteElement("WBC - Granulocytes(Total)", document);
            this.AddNextNteElement("PNH Clone (Type II + Type III):", document);
            this.AddNextNteElement("TypeIII (complete FLAER/CD24 deficiency) = " + pnhResult.GranulocytesTypeIIIResult.ToString("F") + "%", document);
            if (pnhResult.GranulocytesTypeIIResult > 0.0m && pnhResult.GranulocytesTypeIIIResult > 0.0m)
            {
                this.AddNextNteElement("TypeII (partial FLAER/CD24 deficiency) = " + pnhResult.GranulocytesTypeIIResult.ToString("F") + "%", document);
            }

            this.AddNextNteElement("Result: " + pnhResult.GranulocytesTotal.ToString("F") + "%", document);
            this.AddNextNteElement("", document);
            this.AddNextNteElement("WBC-Monocytes (Total)", document);
            this.AddNextNteElement("TypeIII (complete FLAER/CD14 deficiency) = " + pnhResult.MonocytesTypeIIIResult.ToString("F") + "%", document);
            if (pnhResult.MonocytesTypeIIResult > 0.0m)
            {
                this.AddNextNteElement("TypeII (partial FLAER/CD14 deficiency) = " + pnhResult.MonocytesTypeIIResult.ToString("F") + "%", document);
            }

            this.AddNextNteElement("Result: " + pnhResult.MonocytesTotal.ToString("F") + "%", document);
            this.AddBlankNteElement(document);

            if (testOrder.ResultCode == PNHPersistentPositiveResult.PNHPersistentPositiveResultResultCode || testOrder.ResultCode == PNHNegativeWithPreviousPositiveResult.PNHNegativeWithPreviousPositiveResultResultCode)
            {
                string dateString = string.Empty;
                if (testOrder.FinalDate.HasValue)
                {
                    dateString = testOrder.FinalDate.Value.ToShortDateString();
                }

                this.AddNextNteElement("Current Result: " + dateString, document);
                this.AddNextNteElement("RBC: " + pnhResult.RedBloodTotal.ToString("F") + "%", document);
                this.AddNextNteElement("WBC-Granulocytes: " + pnhResult.GranulocytesTotal.ToString("F") + "%", document);
                this.AddNextNteElement("WBC-Monocytes: " + pnhResult.MonocytesTotal.ToString("F") + "%", document);
                this.AddBlankNteElement(document);

                this.SetPreviousResults(document, testOrder);
            }

            this.AddNextNteElement("References: ", document);
            this.HandleLongString(testOrder.ReportReferences, document);

            this.AddBlankNteElement(document);
            this.HandleLongString(testOrder.ASRComment, document);
            this.AddBlankNteElement(document);

            string locationPerformed = testOrder.GetLocationPerformedComment();
            this.HandleLongString(locationPerformed, document);
            this.AddBlankNteElement(document);
        }
Beispiel #15
0
        private void SetPreviousResults(XElement document, PNHTestOrder testOrder)
        {
            PNHResult pnhResult = new PNHResult();
            List<YellowstonePathology.Business.Test.AccessionOrder> accessionOrders = pnhResult.GetPreviousAccessions(this.m_AccessionOrder.PatientId);
            List<PNHTestOrder> pnhTestOrders = pnhResult.GetPreviousPanelSetOrders(accessionOrders, testOrder.MasterAccessionNo, testOrder.OrderDate.Value);

            for (int idx = 0; idx < pnhTestOrders.Count; idx++)
            {
                if (idx > 2) break;

                pnhResult.SetTotals(pnhTestOrders[idx]);
                this.AddNextNteElement("Previous Result: " + pnhTestOrders[idx].FinalDate.Value.ToShortDateString(), document);
                this.AddNextNteElement("RBC: " + pnhResult.RedBloodTotal.ToString("F") + "%", document);
                this.AddNextNteElement("WBC-Granulocytes: " + pnhResult.GranulocytesTotal.ToString("F") + "%", document);
                this.AddNextNteElement("WBC-Monocytes: " + pnhResult.MonocytesTotal.ToString("F") + "%", document);
                this.AddBlankNteElement(document);
            }
        }
Beispiel #16
0
        private void PositiveToXml(XElement document, PNHTestOrder testOrder)
        {
            this.AddHeader(document, testOrder, "PNH, Highly Sensitive(FLAER)");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("Result: " + testOrder.Result, document, "F");
            this.AddNextObxElement("", document, "F");

            if (string.IsNullOrEmpty(testOrder.Comment) == false)
            {
                this.AddNextObxElement("Comment: ", document, "F");
                this.HandleLongString(testOrder.Comment, document, "F");
                this.AddNextObxElement("", document, "F");
            }

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

            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(testOrder.OrderedOn, testOrder.OrderedOnId);
            this.AddNextObxElement("Specimen Description: " + specimenOrder.Description, document, "F");
            this.AddNextObxElement("", 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("Method: ", document, "F");
            this.HandleLongString(testOrder.Method, document, "F");
            this.AddNextObxElement("", document, "F");

            PNHResult pnhResult = new PNHResult();

            pnhResult.SetTotals(testOrder);
            this.AddNextObxElement("Result Data:)", document, "F");
            this.AddNextObxElement("RBC(Total)", document, "F");
            this.AddNextObxElement("PNH Clone (Type II + Type III):", document, "F");
            this.AddNextObxElement("Type III (complete CD59 deficiency) = " + pnhResult.RedBloodCellsTypeIIIResult.ToString("F") + "%", document, "F");
            this.AddNextObxElement("Type II (partial CD59 deficiency) = " + pnhResult.RedBloodCellsTypeIIResult.ToString("F") + "%", document, "F");
            this.AddNextObxElement("Result: " + pnhResult.RedBloodTotal.ToString("F") + "%", document, "F");
            this.AddNextObxElement("", document, "F");
            this.AddNextObxElement("WBC - Granulocytes(Total)", document, "F");
            this.AddNextObxElement("PNH Clone (Type II + Type III):", document, "F");
            this.AddNextObxElement("TypeIII (complete FLAER/CD24 deficiency) = " + pnhResult.GranulocytesTypeIIIResult.ToString("F") + "%", document, "F");
            if (pnhResult.GranulocytesTypeIIResult > 0.0m && pnhResult.GranulocytesTypeIIIResult > 0.0m)
            {
                this.AddNextObxElement("TypeII (partial FLAER/CD24 deficiency) = " + pnhResult.GranulocytesTypeIIResult.ToString("F") + "%", document, "F");
            }
            this.AddNextObxElement("Result: " + pnhResult.GranulocytesTotal.ToString("F") + "%", document, "F");
            this.AddNextObxElement("", document, "F");
            this.AddNextObxElement("WBC-Monocytes (Total)", document, "F");
            this.AddNextObxElement("TypeIII (complete FLAER/CD14 deficiency) = " + pnhResult.MonocytesTypeIIIResult.ToString("F") + "%", document, "F");
            if (pnhResult.MonocytesTypeIIResult > 0.0m)
            {
                this.AddNextObxElement("TypeII (partial FLAER/CD14 deficiency) = " + pnhResult.MonocytesTypeIIResult.ToString("F") + "%", document, "F");
            }
            this.AddNextObxElement("Result: " + pnhResult.MonocytesTotal.ToString("F") + "%", document, "F");
            this.AddNextObxElement("", document, "F");

            if (testOrder.ResultCode == PNHPersistentPositiveResult.PNHPersistentPositiveResultResultCode || testOrder.ResultCode == PNHNegativeWithPreviousPositiveResult.PNHNegativeWithPreviousPositiveResultResultCode)
            {
                string dateString = string.Empty;
                if (testOrder.FinalDate.HasValue)
                {
                    dateString = testOrder.FinalDate.Value.ToShortDateString();
                }
                this.AddNextObxElement("Current Result: " + dateString, document, "F");
                this.AddNextObxElement("RBC: " + pnhResult.RedBloodTotal.ToString("F") + "%", document, "F");
                this.AddNextObxElement("WBC-Granulocytes: " + pnhResult.GranulocytesTotal.ToString("F") + "%", document, "F");
                this.AddNextObxElement("WBC-Monocytes: " + pnhResult.MonocytesTotal.ToString("F") + "%", document, "F");
                this.AddNextObxElement("", document, "F");

                this.SetPreviousResults(document, testOrder);
            }


            this.AddNextObxElement("References: ", document, "F");
            this.HandleLongString(testOrder.ReportReferences, document, "F");

            this.AddNextObxElement("", document, "F");
            this.HandleLongString(testOrder.ASRComment, document, "F");
            this.AddNextObxElement("", document, "F");

            string locationPerformed = testOrder.GetLocationPerformedComment();

            this.HandleLongString(locationPerformed, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");
        }
Beispiel #17
0
 public virtual void SetResults(PNHTestOrder testOrder)
 {
     testOrder.Result = this.m_Result;
     testOrder.ResultCode = this.m_ResultCode;
     testOrder.Comment = this.m_Comment;
     testOrder.Method = this.m_Method;
     testOrder.References = this.m_References;
     testOrder.ASRComment = this.m_ASRComment;
 }
Beispiel #18
0
        public void SetTotals(PNHTestOrder pnhTestOrder)
        {
            this.m_cellLines[(int)PNHCellLineEnum.RBC].Type1 = Convert.ToDecimal(pnhTestOrder.TypeIRedBloodCells);
            this.m_cellLines[(int)PNHCellLineEnum.RBC].Type2 = Convert.ToDecimal(pnhTestOrder.TypeIIRedBloodCells);
            this.m_cellLines[(int)PNHCellLineEnum.RBC].Type3 = Convert.ToDecimal(pnhTestOrder.TypeIIIRedBloodCells);

            this.m_cellLines[(int)PNHCellLineEnum.GRAN].Type2 = Convert.ToDecimal(pnhTestOrder.TypeIIGranulocytes);
            this.m_cellLines[(int)PNHCellLineEnum.GRAN].Type3 = Convert.ToDecimal(pnhTestOrder.TypeIIIGranulocytes);

            this.m_cellLines[(int)PNHCellLineEnum.MONO].Type2 = Convert.ToDecimal(pnhTestOrder.TypeIIMonocytes);
            this.m_cellLines[(int)PNHCellLineEnum.MONO].Type3 = Convert.ToDecimal(pnhTestOrder.TypeIIIMonocytes);
        }