コード例 #1
0
        private void OrderTheReport()
        {
            YellowstonePathology.Business.User.SystemIdentity systemIdentity = YellowstonePathology.Business.User.SystemIdentity.Instance;
            YellowstonePathology.Business.PanelSet.Model.FlowCytometry.PanelSetFlowCytometry panelSetFlowCytometry = null;

            switch (this.m_PanelSet.PanelSetId)
            {
            case 20:     //LLP
                panelSetFlowCytometry = (YellowstonePathology.Business.Test.LLP.LeukemiaLymphomaTest) this.m_PanelSet;
                break;

            case 21:     //TPP
                panelSetFlowCytometry = (YellowstonePathology.Business.Test.ThrombocytopeniaProfile.ThrombocytopeniaProfileTest) this.m_PanelSet;
                break;

            case 22:     //PAA
                panelSetFlowCytometry = (YellowstonePathology.Business.Test.PlateletAssociatedAntibodies.PlateletAssociatedAntibodiesTest) this.m_PanelSet;
                break;

            case 23:     //RTIC
                panelSetFlowCytometry = (YellowstonePathology.Business.Test.ReticulatedPlateletAnalysis.ReticulatedPlateletAnalysisTest) this.m_PanelSet;
                break;

            case 24:     //Stem Cell
                panelSetFlowCytometry = (YellowstonePathology.Business.Test.StemCellEnumeration.StemCellEnumerationTest) this.m_PanelSet;
                break;

            case 28:     //Fetal Hemoglobin
                panelSetFlowCytometry = (YellowstonePathology.Business.Test.FetalHemoglobin.FetalHemoglobinTest) this.m_PanelSet;
                break;
            }

            string reportNo         = null;
            bool   newStyleReportNo = this.m_AccessionOrder.UseNewStyleReportNo();

            if (newStyleReportNo == true)
            {
                reportNo = YellowstonePathology.Business.OrderIdParser.GetNextReportNo(this.m_AccessionOrder.PanelSetOrderCollection, panelSetFlowCytometry, this.m_AccessionOrder.MasterAccessionNo);
            }
            else
            {
                reportNo = YellowstonePathology.Business.Gateway.AccessionOrderGateway.NextReportNo(this.m_PanelSet.PanelSetId, this.m_AccessionOrder.MasterAccessionNo);
            }

            string objectId = MongoDB.Bson.ObjectId.GenerateNewId().ToString();

            YellowstonePathology.Business.Test.LLP.PanelSetOrderLeukemiaLymphoma panelSetOrderLeukemiaLymphoma = new Business.Test.LLP.PanelSetOrderLeukemiaLymphoma(this.m_AccessionOrder.MasterAccessionNo, reportNo, objectId, panelSetFlowCytometry, this.m_SpecimenOrder, true);
            this.m_AccessionOrder.PanelSetOrderCollection.Add(panelSetOrderLeukemiaLymphoma);
            this.m_AddedPanelSetOrder = panelSetOrderLeukemiaLymphoma;

            if (this.m_AccessionOrder.ClientId != 0 && this.m_AccessionOrder.PhysicianId != 0)
            {
                YellowstonePathology.Business.Client.PhysicianClientDistributionCollection physicianClientDistributionCollection = YellowstonePathology.Business.Gateway.ReportDistributionGateway.GetPhysicianClientDistributionCollection(this.m_AccessionOrder.PhysicianId, this.m_AccessionOrder.ClientId);
                foreach (YellowstonePathology.Business.Client.PhysicianClientDistribution physicianClientDistribution in physicianClientDistributionCollection)
                {
                    physicianClientDistribution.SetDistribution(panelSetOrderLeukemiaLymphoma, this.m_AccessionOrder);
                }
            }
        }
コード例 #2
0
        private void OrderTheReport()
        {
            YellowstonePathology.Business.User.SystemIdentity systemIdentity = YellowstonePathology.Business.User.SystemIdentity.Instance;
            YellowstonePathology.Business.PanelSet.Model.FlowCytometry.PanelSetFlowCytometry panelSetFlowCytometry = null;

            switch (this.m_PanelSet.PanelSetId)
            {
                case 20: //LLP
                    panelSetFlowCytometry = (YellowstonePathology.Business.Test.LLP.LeukemiaLymphomaTest)this.m_PanelSet;
                    break;
                case 21: //TPP
                    panelSetFlowCytometry = (YellowstonePathology.Business.Test.ThrombocytopeniaProfile.ThrombocytopeniaProfileTest)this.m_PanelSet;
                    break;
                case 22: //PAA
                    panelSetFlowCytometry = (YellowstonePathology.Business.Test.PlateletAssociatedAntibodies.PlateletAssociatedAntibodiesTest)this.m_PanelSet;
                    break;
                case 23: //RTIC
                    panelSetFlowCytometry = (YellowstonePathology.Business.Test.ReticulatedPlateletAnalysis.ReticulatedPlateletAnalysisTest)this.m_PanelSet;
                    break;
                case 24: //Stem Cell
                    panelSetFlowCytometry = (YellowstonePathology.Business.Test.StemCellEnumeration.StemCellEnumerationTest)this.m_PanelSet;
                    break;
                case 28: //Fetal Hemoglobin
                    panelSetFlowCytometry = (YellowstonePathology.Business.Test.FetalHemoglobin.FetalHemoglobinTest)this.m_PanelSet;
                    break;
            }

            string reportNo = null;
            bool newStyleReportNo = this.m_AccessionOrder.UseNewStyleReportNo();
            if (newStyleReportNo == true)
            {
                reportNo = YellowstonePathology.Business.OrderIdParser.GetNextReportNo(this.m_AccessionOrder.PanelSetOrderCollection, panelSetFlowCytometry, this.m_AccessionOrder.MasterAccessionNo);
            }
            else
            {
                reportNo = YellowstonePathology.Business.Gateway.AccessionOrderGateway.NextReportNo(this.m_PanelSet.PanelSetId, this.m_AccessionOrder.MasterAccessionNo);
            }

            string objectId = MongoDB.Bson.ObjectId.GenerateNewId().ToString();
            YellowstonePathology.Business.Test.LLP.PanelSetOrderLeukemiaLymphoma panelSetOrderLeukemiaLymphoma = new Business.Test.LLP.PanelSetOrderLeukemiaLymphoma(this.m_AccessionOrder.MasterAccessionNo, reportNo, objectId, panelSetFlowCytometry, this.m_SpecimenOrder, true);
            this.m_AccessionOrder.PanelSetOrderCollection.Add(panelSetOrderLeukemiaLymphoma);
            this.m_AddedPanelSetOrder = panelSetOrderLeukemiaLymphoma;

            if (this.m_AccessionOrder.ClientId != 0 && this.m_AccessionOrder.PhysicianId != 0)
            {
                YellowstonePathology.Business.Client.Model.PhysicianClientDistributionList physicianClientDistributionCollection = YellowstonePathology.Business.Gateway.ReportDistributionGateway.GetPhysicianClientDistributionCollection(this.m_AccessionOrder.PhysicianId, this.m_AccessionOrder.ClientId);
                foreach (YellowstonePathology.Business.Client.Model.PhysicianClientDistributionListItem physicianClientDistribution in physicianClientDistributionCollection)
                {
                    physicianClientDistribution.SetDistribution(panelSetOrderLeukemiaLymphoma, this.m_AccessionOrder);
                }
            }
        }
コード例 #3
0
        public override void ToXml(XElement document)
        {
            Business.Test.LLP.PanelSetOrderLeukemiaLymphoma testOrder = (LLP.PanelSetOrderLeukemiaLymphoma) this.m_AccessionOrder.PanelSetOrderCollection.GetPanelSetOrder(this.m_ReportNo);

            this.AddHeader(document, testOrder, "Platelet Associated Antibodies, Direct");

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

            foreach (Flow.FlowMarkerItem marker in testOrder.FlowMarkerCollection)
            {
                this.AddNextObxElement("Test", document, "F");
                this.AddNextObxElement(marker.Name, document, "F");

                this.AddNextObxElement("Result", document, "F");
                this.AddNextObxElement(marker.Result, document, "F");

                foreach (YellowstonePathology.Business.Flow.FlowMarkerPanelListItem panelItem in this.m_PanelList)
                {
                    if (panelItem.MarkerName == marker.Name)
                    {
                        this.AddNextObxElement("Reference", document, "F");
                        this.AddNextObxElement(panelItem.Reference, document, "F");
                        break;
                    }
                }
            }

            this.AddAmendments(document);

            this.AddNextObxElement("", document, "F");
            this.AddAmendments(document);

            this.AddNextObxElement("Specimen Information:", document, "F");
            YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrder(testOrder.OrderedOn, testOrder.OrderedOnId);
            this.AddNextObxElement("Specimen Description: " + specimenOrder.Description, document, "F");
            string collectionDateTimeString = YellowstonePathology.Business.Helper.DateTimeExtensions.CombineDateAndTime(specimenOrder.CollectionDate, specimenOrder.CollectionTime);

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

            this.AddNextObxElement("", document, "F");
            this.AddNextObxElement("Interpretation:", document, "F");
            string interpretation = "* Negative:  IgG and/or IgM values are not elevated.  There is no indication that immune mechanisms are involved in the thrombocytopenia.  Other etiologies should be considered." + Environment.NewLine +
                                    "* Weakly Positive: The moderately elevated IgG and / or IgM value suggests that immune mechanisms could be involved in the thrombocytopenia.  Other etiologies should also be considered." + Environment.NewLine +
                                    "* Positive: The elevated IgG and/ or IgM value suggests that immune mechanisms are involved in the thrombocytopenia." + Environment.NewLine +
                                    "* Strongly Positive: The IgG and / or IgM value is greatly elevated and indicates that immune mechanisms are involved in the thrombocytopenia.";

            this.HandleLongString(interpretation, document, "F");
            this.AddNextObxElement("", document, "F");

            this.AddNextObxElement("Method:", document, "F");
            string method = "Qualitative Flow Cytometry";

            this.HandleLongString(method, document, "F");
            this.AddNextObxElement("", document, "F");

            string asrStatement = "Tests utilizing Analytic Specific Reagents (ASR's) were developed and performance characteristics determined by Yellowstone Pathology Institute, Inc.  They have not been cleared or approved by the U.S. Food and Drug Administration.  The FDA has determined that such clearance or approval is not necessary.  ASR's may be used for clinical purposes and should not be regarded as investigational or for research.  This laboratory is certified under the Clinical Laboratory Improvement Amendments of 1988 (CLIA-88) as qualified to perform high complexity clinical laboratory testing.";

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

            string locationPerformed = testOrder.GetLocationPerformedComment();

            this.AddNextObxElement(locationPerformed, document, "F");
            this.AddNextObxElement(string.Empty, document, "F");
        }
コード例 #4
0
        public override void SetPanelSetOrderCPTCodes()
        {
            Business.Test.LLP.PanelSetOrderLeukemiaLymphoma panelSetOrderLeukemiaLymphoma = (Business.Test.LLP.PanelSetOrderLeukemiaLymphoma) this.PanelSetOrder;

            if (panelSetOrderLeukemiaLymphoma.FlowMarkerCollection.Count > 0)
            {
                if (this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.Exists("88184", 1) == false)
                {
                    YellowstonePathology.Business.Specimen.Model.SpecimenOrder specimenOrder = this.m_AccessionOrder.SpecimenOrderCollection.GetSpecimenOrderByOrderTarget(this.m_PanelSetOrder.OrderedOnId);
                    Test.LLP.PanelSetOrderLeukemiaLymphoma panelSetOrder = (Test.LLP.PanelSetOrderLeukemiaLymphoma) this.m_PanelSetOrder;

                    YellowstonePathology.Business.Billing.Model.CptCode     cpt88184 = Store.AppDataStore.Instance.CPTCodeCollection.GetClone("88184", null);
                    YellowstonePathology.Business.Test.PanelSetOrderCPTCode panelSetOrderCPTCode88184 = this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.GetNextItem(this.m_PanelSetOrder.ReportNo);
                    panelSetOrderCPTCode88184.Quantity            = 1;
                    panelSetOrderCPTCode88184.CPTCode             = cpt88184.Code;
                    panelSetOrderCPTCode88184.CodeType            = cpt88184.CodeType.ToString();
                    panelSetOrderCPTCode88184.CodeableDescription = "Specimen " + specimenOrder.SpecimenNumber + ": " + "Flow Markers";
                    panelSetOrderCPTCode88184.CodeableType        = "FlowMarkers";
                    panelSetOrderCPTCode88184.EntryType           = YellowstonePathology.Business.Billing.Model.PanelSetOrderCPTCodeEntryType.SystemGenerated;
                    panelSetOrderCPTCode88184.SpecimenOrderId     = specimenOrder.SpecimenOrderId;
                    panelSetOrderCPTCode88184.ClientId            = this.m_AccessionOrder.ClientId;
                    panelSetOrderCPTCode88184.MedicalRecord       = this.m_AccessionOrder.SvhMedicalRecord;
                    panelSetOrderCPTCode88184.Account             = this.m_AccessionOrder.SvhAccount;

                    this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.Add(panelSetOrderCPTCode88184);

                    int markerCount = panelSetOrder.FlowMarkerCollection.CountOfBillableMarkers();

                    YellowstonePathology.Business.Billing.Model.CptCode     cpt88185 = Store.AppDataStore.Instance.CPTCodeCollection.GetClone("88185", null);
                    YellowstonePathology.Business.Test.PanelSetOrderCPTCode panelSetOrderCPTCode88185 = this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.GetNextItem(this.m_PanelSetOrder.ReportNo);
                    panelSetOrderCPTCode88185.Quantity            = markerCount - 1;
                    panelSetOrderCPTCode88185.CPTCode             = cpt88185.Code;
                    panelSetOrderCPTCode88185.CodeType            = cpt88185.CodeType.ToString();
                    panelSetOrderCPTCode88185.CodeableDescription = "Specimen " + specimenOrder.SpecimenNumber + ": " + "Flow Markers";
                    panelSetOrderCPTCode88185.CodeableType        = "FlowMarkers";
                    panelSetOrderCPTCode88185.EntryType           = YellowstonePathology.Business.Billing.Model.PanelSetOrderCPTCodeEntryType.SystemGenerated;
                    panelSetOrderCPTCode88185.SpecimenOrderId     = specimenOrder.SpecimenOrderId;
                    panelSetOrderCPTCode88185.ClientId            = this.m_AccessionOrder.ClientId;
                    panelSetOrderCPTCode88185.MedicalRecord       = this.m_AccessionOrder.SvhMedicalRecord;
                    panelSetOrderCPTCode88185.Account             = this.m_AccessionOrder.SvhAccount;

                    this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.Add(panelSetOrderCPTCode88185);

                    if (markerCount >= 2 && markerCount <= 8)
                    {
                        YellowstonePathology.Business.Billing.Model.CptCode     cpt88187 = Store.AppDataStore.Instance.CPTCodeCollection.GetClone("88187", null);
                        YellowstonePathology.Business.Test.PanelSetOrderCPTCode panelSetOrderCPTCode88187 = this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.GetNextItem(this.m_PanelSetOrder.ReportNo);
                        panelSetOrderCPTCode88187.Quantity            = 1;
                        panelSetOrderCPTCode88187.CPTCode             = cpt88187.Code;
                        panelSetOrderCPTCode88187.CodeType            = cpt88187.CodeType.ToString();
                        panelSetOrderCPTCode88187.CodeableDescription = "Specimen " + specimenOrder.SpecimenNumber + ": " + "Leukemia Lymphoma";
                        panelSetOrderCPTCode88187.CodeableType        = "Leukemia Lymphoma";
                        panelSetOrderCPTCode88187.EntryType           = YellowstonePathology.Business.Billing.Model.PanelSetOrderCPTCodeEntryType.SystemGenerated;
                        panelSetOrderCPTCode88187.SpecimenOrderId     = specimenOrder.SpecimenOrderId;
                        panelSetOrderCPTCode88187.ClientId            = this.m_AccessionOrder.ClientId;
                        panelSetOrderCPTCode88187.MedicalRecord       = this.m_AccessionOrder.SvhMedicalRecord;
                        panelSetOrderCPTCode88187.Account             = this.m_AccessionOrder.SvhAccount;
                        this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.Add(panelSetOrderCPTCode88187);
                    }
                    else if (markerCount >= 9 && markerCount <= 15)
                    {
                        YellowstonePathology.Business.Billing.Model.CptCode     cpt88188 = Store.AppDataStore.Instance.CPTCodeCollection.GetClone("88188", null);
                        YellowstonePathology.Business.Test.PanelSetOrderCPTCode panelSetOrderCPTCode88188 = this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.GetNextItem(this.m_PanelSetOrder.ReportNo);
                        panelSetOrderCPTCode88188.Quantity            = 1;
                        panelSetOrderCPTCode88188.CPTCode             = cpt88188.Code;
                        panelSetOrderCPTCode88188.CodeType            = cpt88188.CodeType.ToString();
                        panelSetOrderCPTCode88188.CodeableDescription = "Specimen " + specimenOrder.SpecimenNumber + ": " + "Leukemia Lymphoma";
                        panelSetOrderCPTCode88188.CodeableType        = "Leukemia Lymphoma";
                        panelSetOrderCPTCode88188.EntryType           = YellowstonePathology.Business.Billing.Model.PanelSetOrderCPTCodeEntryType.SystemGenerated;
                        panelSetOrderCPTCode88188.SpecimenOrderId     = specimenOrder.SpecimenOrderId;
                        panelSetOrderCPTCode88188.ClientId            = this.m_AccessionOrder.ClientId;
                        panelSetOrderCPTCode88188.MedicalRecord       = this.m_AccessionOrder.SvhMedicalRecord;
                        panelSetOrderCPTCode88188.Account             = this.m_AccessionOrder.SvhAccount;
                        this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.Add(panelSetOrderCPTCode88188);
                    }
                    else if (markerCount >= 16)
                    {
                        YellowstonePathology.Business.Billing.Model.CptCode     cpt88189 = Store.AppDataStore.Instance.CPTCodeCollection.GetClone("88189", null);
                        YellowstonePathology.Business.Test.PanelSetOrderCPTCode panelSetOrderCPTCode88189 = this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.GetNextItem(this.m_PanelSetOrder.ReportNo);
                        panelSetOrderCPTCode88189.Quantity            = 1;
                        panelSetOrderCPTCode88189.CPTCode             = cpt88189.Code;
                        panelSetOrderCPTCode88189.CodeType            = cpt88189.CodeType.ToString();
                        panelSetOrderCPTCode88189.CodeableDescription = "Specimen " + specimenOrder.SpecimenNumber + ": " + "Leukemia Lymphoma";
                        panelSetOrderCPTCode88189.CodeableType        = "Leukemia Lymphoma";
                        panelSetOrderCPTCode88189.EntryType           = YellowstonePathology.Business.Billing.Model.PanelSetOrderCPTCodeEntryType.SystemGenerated;
                        panelSetOrderCPTCode88189.SpecimenOrderId     = specimenOrder.SpecimenOrderId;
                        panelSetOrderCPTCode88189.ClientId            = this.m_AccessionOrder.ClientId;
                        panelSetOrderCPTCode88189.MedicalRecord       = this.m_AccessionOrder.SvhMedicalRecord;
                        panelSetOrderCPTCode88189.Account             = this.m_AccessionOrder.SvhAccount;
                        this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.Add(panelSetOrderCPTCode88189);
                    }
                }
                this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.UpdateCodeType();
            }
        }