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); } } }
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); } } }
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"); }
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(); } }