private void HandleFlowMarker(DataTable dataTable)
 {
     foreach (Test.PanelSetOrder panelSetOrder in this.m_AccessionOrder.PanelSetOrderCollection)
     {
         if (panelSetOrder is Test.LLP.PanelSetOrderLeukemiaLymphoma)
         {
             Test.LLP.PanelSetOrderLeukemiaLymphoma llpPanelSetOrder = (Test.LLP.PanelSetOrderLeukemiaLymphoma)panelSetOrder;
             llpPanelSetOrder.FlowMarkerCollection.Sync(dataTable, llpPanelSetOrder.ReportNo);
             llpPanelSetOrder.FlowMarkerCollection.SetCellPopulationsOfInterest();
             llpPanelSetOrder.FlowMarkerCollection.SetFirstMarkerPanelIfExists();
         }
     }
 }
        public void SetFlowCptCodes(Test.AccessionOrder accessionOrder, string reportNo)
        {
            Test.LLP.PanelSetOrderLeukemiaLymphoma panelSetOrder = (Test.LLP.PanelSetOrderLeukemiaLymphoma)accessionOrder.PanelSetOrderCollection.GetPanelSetOrder(reportNo);

            string   primaryInsurance   = accessionOrder.PrimaryInsurance;
            string   secondaryInsurance = accessionOrder.SecondaryInsurance;
            string   patientType        = accessionOrder.PatientType;
            int      clientId           = accessionOrder.ClientId;
            string   masterAccessionNo  = accessionOrder.MasterAccessionNo;
            string   specimenOrderId    = accessionOrder.SpecimenOrderCollection[0].SpecimenOrderId;
            int      panelSetId         = panelSetOrder.PanelSetId;
            DateTime?dateOfService      = accessionOrder.CollectionDate;
            bool     noCharge           = panelSetOrder.NoCharge;
            string   professionalComponentFacilityid = panelSetOrder.ProfessionalComponentFacilityId;
            string   technicalComponentFacilityid    = panelSetOrder.TechnicalComponentFacilityId;

            switch (panelSetOrder.PanelSetId)
            {
            case 1:
                this.AddFlowCptCodeIfNotExist(reportNo, "88184", 1, primaryInsurance, secondaryInsurance, patientType,
                                              clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);

                int markerCount = panelSetOrder.FlowMarkerCollection.CountOfUsedMarkers();

                this.AddFlowCptCodeIfNotExist(reportNo, "88185", markerCount - 1, primaryInsurance, secondaryInsurance, patientType,
                                              clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);

                if (markerCount >= 2 && markerCount <= 8)
                {
                    this.AddFlowCptCodeIfNotExist(reportNo, "88187", 1, primaryInsurance, secondaryInsurance, patientType,
                                                  clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);
                }

                if (markerCount >= 9 && markerCount <= 15)
                {
                    this.AddFlowCptCodeIfNotExist(reportNo, "88188", 1, primaryInsurance, secondaryInsurance, patientType,
                                                  clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);
                }

                if (markerCount >= 16)
                {
                    this.AddFlowCptCodeIfNotExist(reportNo, "88189", 1, primaryInsurance, secondaryInsurance, patientType,
                                                  clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);
                }
                break;

            case 4:
                this.AddFlowCptCodeIfNotExist(reportNo, "86023", 2, primaryInsurance, secondaryInsurance, patientType,
                                              clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);
                break;

            case 5:
                this.AddFlowCptCodeIfNotExist(reportNo, "85055", 1, primaryInsurance, secondaryInsurance, patientType,
                                              clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);
                break;

            case 7:
                this.AddFlowCptCodeIfNotExist(reportNo, "86356", 1, primaryInsurance, secondaryInsurance, patientType,
                                              clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);
                break;

            case 12:
                this.AddFlowCptCodeIfNotExist(reportNo, "86367", 1, primaryInsurance, secondaryInsurance, patientType,
                                              clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);
                break;

            case 13:
                this.AddFlowCptCodeIfNotExist(reportNo, "86023", 2, primaryInsurance, secondaryInsurance, patientType,
                                              clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);

                this.AddFlowCptCodeIfNotExist(reportNo, "85055", 1, primaryInsurance, secondaryInsurance, patientType,
                                              clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);
                break;

            case 14:
                this.AddFlowCptCodeIfNotExist(reportNo, "88182", 1, primaryInsurance, secondaryInsurance, patientType,
                                              clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);
                break;

            case 15:
                this.AddFlowCptCodeIfNotExist(reportNo, "86361", 1, primaryInsurance, secondaryInsurance, patientType,
                                              clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);
                break;

            case 16:
                this.AddFlowCptCodeIfNotExist(reportNo, "86812", 1, primaryInsurance, secondaryInsurance, patientType,
                                              clientId, masterAccessionNo, specimenOrderId, panelSetId, dateOfService, noCharge, professionalComponentFacilityid, technicalComponentFacilityid);
                break;
            }
        }
        public override void SetPanelSetOrderCPTCodes()
        {
            if (this.IsOkToSet() == true)
            {
                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.CptCodeDefinition.CPT88184 cpt88184   = new YellowstonePathology.Business.Billing.Model.CptCodeDefinition.CPT88184();
                    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;
                    this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.Add(panelSetOrderCPTCode88184);

                    int markerCount = panelSetOrder.FlowMarkerCollection.CountOfUsedMarkers();

                    YellowstonePathology.Business.Billing.Model.CptCodeDefinition.CPT88185 cpt88185   = new YellowstonePathology.Business.Billing.Model.CptCodeDefinition.CPT88185();
                    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;
                    this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.Add(panelSetOrderCPTCode88185);

                    if (markerCount >= 2 && markerCount <= 8)
                    {
                        YellowstonePathology.Business.Billing.Model.CptCodeDefinition.CPT88187 cpt88187   = new YellowstonePathology.Business.Billing.Model.CptCodeDefinition.CPT88187();
                        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;
                        this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.Add(panelSetOrderCPTCode88187);
                    }
                    else if (markerCount >= 9 && markerCount <= 15)
                    {
                        YellowstonePathology.Business.Billing.Model.CptCodeDefinition.CPT88188 cpt88188   = new YellowstonePathology.Business.Billing.Model.CptCodeDefinition.CPT88188();
                        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;
                        this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.Add(panelSetOrderCPTCode88188);
                    }
                    else if (markerCount >= 16)
                    {
                        YellowstonePathology.Business.Billing.Model.CptCodeDefinition.CPT88189 cpt88189   = new YellowstonePathology.Business.Billing.Model.CptCodeDefinition.CPT88189();
                        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;
                        this.m_PanelSetOrder.PanelSetOrderCPTCodeCollection.Add(panelSetOrderCPTCode88189);
                    }
                }
            }
        }
Esempio n. 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();
            }
        }