Ejemplo n.º 1
0
        private IList <PlatformQuantifyMenu> GetListOfPQM(IList <MorbidityTest> list)
        {
            IList <PlatformQuantifyMenu> listofPQM = new List <PlatformQuantifyMenu>();

            foreach (MorbidityTest mt in list)
            {
                PlatformQuantifyMenu pqm = new PlatformQuantifyMenu(mt.Instrument.Id);
                foreach (QuantifyMenu qm in mt.QuantifyMenus)
                {
                    if (qm.TestTypeToEnum == TestTypeEnum.Test)
                    {
                        pqm.SetQuantifyMenuId(TestTypeEnum.Test, qm.Id);
                    }
                    else if (qm.TestTypeToEnum == TestTypeEnum.PerDay)
                    {
                        pqm.SetQuantifyMenuId(TestTypeEnum.PerDay, qm.Id);
                    }
                    else if (qm.TestTypeToEnum == TestTypeEnum.PerInstrument)
                    {
                        pqm.SetQuantifyMenuId(TestTypeEnum.PerInstrument, qm.Id);
                    }
                    else if (qm.TestTypeToEnum == TestTypeEnum.ControlTest)
                    {
                        pqm.SetQuantifyMenuId(qm.DurationToEnum, qm.Id);
                    }
                }
                listofPQM.Add(pqm);
            }
            return(listofPQM);
        }
Ejemplo n.º 2
0
        private void DoQuantification()
        {
            //DOES THIS SITE RECEIVE Chemistry SUPPLIES?
            if (ArtSite.ForecastViralLoad)
            {
                int    allHemQMid = 0;
                double value, allHemInsQty = 0;
                double referralValue;
                foreach (QuantifyMenu qm in _platformObject.GeneralQuantifyMenus)
                {
                    value         = 0;
                    referralValue = 0;

                    if (qm.Title == GeneralQuantifyMenuEnum.Total_Viral_Load_Tests.ToString())
                    {
                        value         = GetTotalVLTestForSite();
                        referralValue = GetTotalVLTestForReferral();
                    }
                    else if (qm.Title == GeneralQuantifyMenuEnum.Per_Instrument_All_Viral_Load_Instruments.ToString())
                    {
                        allHemQMid = qm.Id;
                    }
                    else if (qm.Title == GeneralQuantifyMenuEnum.Per_Day_All_Viral_Load_Instruments.ToString() && _vlPlatformTests.Count > 0)
                    {
                        value = ArtSite.Site.ViralLoadTestingDaysPerMonth * (PeriodInfo.NumberofBufferMonthsBeyondForecast + PeriodInfo.NumberofMonthsinBudgetPeriod);
                    }

                    if (value > 0)
                    {
                        QMenuWithValue qval = new QMenuWithValue();
                        qval.QuantifyMenuId   = qm.Id;
                        qval.SiteValue        = value;
                        qval.ReferalSiteValue = referralValue;
                        _listOfQMenuWithValue.Add(qval);
                    }
                }

                TestingDurationEnum[] tduration = LqtUtil.EnumToArray <TestingDurationEnum>();

                foreach (PlatformTestsAndControls cpt in _vlPlatformTests)
                {
                    allHemInsQty += cpt.Quantity;

                    PlatformQuantifyMenu pqm = (PlatformQuantifyMenu)_platformObject.GetPlatformQuantifyMenuByInsId(cpt.InstrumentId);
                    if (pqm != null)
                    {
                        QMenuWithValue qval = new QMenuWithValue();
                        qval.QuantifyMenuId   = pqm.GetQuantifyMenuId(TestTypeEnum.Test);
                        qval.SiteValue        = cpt.TotalSumOfTestOnInstrument();
                        qval.ReferalSiteValue = cpt.TotalSumOfSampleReferredTestOnInstrumanet();
                        _listOfQMenuWithValue.Add(qval);

                        qval = new QMenuWithValue();
                        qval.QuantifyMenuId   = pqm.GetQuantifyMenuId(TestTypeEnum.PerInstrument);
                        qval.SiteValue        = cpt.Quantity;
                        qval.ReferalSiteValue = 0;
                        _listOfQMenuWithValue.Add(qval);

                        qval = new QMenuWithValue();
                        qval.QuantifyMenuId   = pqm.GetQuantifyMenuId(TestTypeEnum.PerDay);
                        qval.SiteValue        = ArtSite.Site.CD4TestingDaysPerMonth * (PeriodInfo.NumberofBufferMonthsBeyondForecast + PeriodInfo.NumberofMonthsinBudgetPeriod);
                        qval.ReferalSiteValue = 0;
                        _listOfQMenuWithValue.Add(qval);

                        for (int i = 0; i < tduration.Length; i++)
                        {
                            qval = new QMenuWithValue();
                            qval.QuantifyMenuId = pqm.GetQuantifyMenuId(tduration[i]);
                            qval.SiteValue      = cpt.GetSumOfControlsByDuration(tduration[i]);
                            if (tduration[i] == TestingDurationEnum.TotalControl || tduration[i] == TestingDurationEnum.PerTest)
                            {
                                qval.ReferalSiteValue = cpt.SampleReferredTotalControls();
                            }
                            else
                            {
                                qval.ReferalSiteValue = 0;
                            }
                            _listOfQMenuWithValue.Add(qval);
                        }
                    }
                }

                //Per Instrument - All Chemistry Instruments
                QMenuWithValue qv = new QMenuWithValue();
                qv.QuantifyMenuId   = allHemQMid;
                qv.SiteValue        = allHemInsQty;
                qv.ReferalSiteValue = 0;
                _listOfQMenuWithValue.Add(qv);

                foreach (QMenuWithValue qm in _listOfQMenuWithValue)
                {
                    IList <QuantificationMetric> list = _platformObject.GetQuanMetricByQuanMenuId(qm.QuantifyMenuId);

                    foreach (QuantificationMetric r in list)
                    {
                        PrimeryQuantifyedReagent pqr = new PrimeryQuantifyedReagent();
                        pqr.ProductId = r.Product.Id;
                        pqr.UnitCost  = r.Product.GetActiveProductPrice(DateTime.Now).Price;
                        pqr.PackSize  = r.Product.GetActiveProductPrice(DateTime.Now).PackSize;
                        pqr.Unit      = r.Product.BasicUnit;

                        double testperpack   = r.Product.GetActiveProductPrice(DateTime.Now).PackSize / r.UsageRate;
                        double valueofmetric = r.CollectionSupplieAppliedTo == CollectionSupplieAppliedToEnum.Collection.ToString() ? qm.SiteValue : qm.TotalValue;
                        if (ArtSite.Site.ViralLoadRefSite > 0 && r.CollectionSupplieAppliedTo == CollectionSupplieAppliedToEnum.Testing.ToString())
                        {
                            valueofmetric = 0;
                        }
                        pqr.Value           = testperpack > 0 ? valueofmetric / testperpack : 0;
                        pqr.MinimumQuantity = r.Product.MinimumPackSize;
                        _lstPrimaryQuanReagents.AddPrimeryQR(pqr);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private IList<PlatformQuantifyMenu> GetListOfPQM(IList<MorbidityTest> list)
        {
            IList<PlatformQuantifyMenu> listofPQM = new List<PlatformQuantifyMenu>();

            foreach (MorbidityTest mt in list)
            {
                PlatformQuantifyMenu pqm = new PlatformQuantifyMenu(mt.Instrument.Id);
                foreach (QuantifyMenu qm in mt.QuantifyMenus)
                {
                    if (qm.TestTypeToEnum == TestTypeEnum.Test)
                        pqm.SetQuantifyMenuId(TestTypeEnum.Test, qm.Id);
                    else if (qm.TestTypeToEnum == TestTypeEnum.PerDay)
                        pqm.SetQuantifyMenuId(TestTypeEnum.PerDay, qm.Id);
                    else if (qm.TestTypeToEnum == TestTypeEnum.PerInstrument)
                        pqm.SetQuantifyMenuId(TestTypeEnum.PerInstrument, qm.Id);
                    else if (qm.TestTypeToEnum == TestTypeEnum.ControlTest)
                    {
                        pqm.SetQuantifyMenuId(qm.DurationToEnum, qm.Id);
                    }
                }
                listofPQM.Add(pqm);
            }
            return listofPQM;
        }