public override TestResult CreateActualTestResult(CustomerEventScreeningTestsEntity customerEventScreeningTestEntity)
        {
            var customerEventReadingEntities = customerEventScreeningTestEntity.CustomerEventReading.ToList();

            var testResult = new QualityMeasuresTestResult(customerEventScreeningTestEntity.CustomerEventScreeningTestId);

            var customerEventTestStandardFindingEntities = customerEventScreeningTestEntity.CustomerEventTestStandardFinding.ToList();
            var standardFindingTestReadingEntities       = customerEventScreeningTestEntity.StandardFindingTestReadingCollectionViaCustomerEventTestStandardFinding.ToList();

            if (customerEventTestStandardFindingEntities.Any())
            {
                var testResultService         = new TestResultService();
                var functionalAssessmentScore = testResultService.GetAllStandardFindings <int?>((int)TestType.QualityMeasures, (int)ReadingLabels.FunctionalAssessmentScore);
                var painAssessmentScore       = testResultService.GetAllStandardFindings <int?>((int)TestType.QualityMeasures, (int)ReadingLabels.PainAssessmentScore);

                customerEventTestStandardFindingEntities.ForEach(customerEventTestStandardFindingEntity =>
                {
                    var standardFindingTestReadingEntity = standardFindingTestReadingEntities.Find(entity => entity.StandardFindingTestReadingId == customerEventTestStandardFindingEntity.StandardFindingTestReadingId);
                    if (standardFindingTestReadingEntity == null)
                    {
                        return;
                    }

                    var finding = CreateFindingObject(customerEventTestStandardFindingEntity, functionalAssessmentScore, standardFindingTestReadingEntity, (int)ReadingLabels.FunctionalAssessmentScore);
                    if (finding != null)
                    {
                        testResult.FunctionalAssessmentScore = finding; return;
                    }

                    finding = CreateFindingObject(customerEventTestStandardFindingEntity, painAssessmentScore, standardFindingTestReadingEntity, (int)ReadingLabels.PainAssessmentScore);
                    if (finding != null)
                    {
                        testResult.PainAssessmentScore = finding; return;
                    }
                });
            }


            testResult.MemoryRecallScore = CreateResultReadingforNullableInt((int)ReadingLabels.MemoryRecallScore, customerEventReadingEntities);

            testResult.ClockPass = CreateResultReading((int)ReadingLabels.ClockPass, customerEventReadingEntities);
            testResult.ClockFail = CreateResultReading((int)ReadingLabels.ClockFail, customerEventReadingEntities);

            testResult.GaitPass = CreateResultReading((int)ReadingLabels.GaitPass, customerEventReadingEntities);
            testResult.GaitFail = CreateResultReading((int)ReadingLabels.GaitFail, customerEventReadingEntities);

            testResult.TechnicallyLimitedbutReadable = CreateResultReading((int)ReadingLabels.TechnicallyLimitedbutReadable, customerEventReadingEntities);
            testResult.RepeatStudy = CreateResultReading((int)ReadingLabels.RepeatStudy, customerEventReadingEntities);

            return(testResult);
        }
        public PcpResultExportModel SetQualityMeasuresData(PcpResultExportModel model, QualityMeasuresTestResult testResult, bool useBlankValue = false)
        {
            if (testResult.FunctionalAssessmentScore != null)
            {
                model.QualityMeasuresFunctionalAssessmentScore = testResult.FunctionalAssessmentScore.Label;
            }

            if (testResult.PainAssessmentScore != null)
            {
                model.QualityMeasuresPainAssessmentScore = testResult.PainAssessmentScore.Label;
            }

            if (testResult.MemoryRecallScore != null)
            {
                model.QualityMeasuresMemoryRecallScore = testResult.MemoryRecallScore.Reading.HasValue ? testResult.MemoryRecallScore.Reading.Value.ToString() : string.Empty;
            }

            if (testResult.ClockFail != null && testResult.ClockFail.Reading)
            {
                model.QualityMeasuresClock = "Fail";
            }

            if (testResult.ClockPass != null && testResult.ClockPass.Reading)
            {
                model.QualityMeasuresClock = "Pass";
            }

            if (testResult.GaitFail != null && testResult.GaitFail.Reading)
            {
                model.QualityMeasuresGait = "Fail";
            }

            if (testResult.GaitPass != null && testResult.GaitPass.Reading)
            {
                model.QualityMeasuresGait = "Pass";
            }


            model.QualityMeasuresUnabletoScreen = testResult.UnableScreenReason != null && testResult.UnableScreenReason.Count > 0 ? PcpResultExportHelper.YesString : (useBlankValue ? "" : PcpResultExportHelper.NoString);

            if ((testResult.ResultStatus != null && testResult.ResultStatus.SelfPresent) || (testResult.PhysicianInterpretation != null && testResult.PhysicianInterpretation.IsCritical))
            {
                model.QualityMeasuresCritical = PcpResultExportHelper.YesString;
            }
            else if (!useBlankValue)
            {
                model.QualityMeasuresCritical = PcpResultExportHelper.NoString;
            }

            if (testResult.PhysicianInterpretation != null)
            {
                model.QualityMeasuresPhysicianNotes = testResult.PhysicianInterpretation.Remarks;
            }

            return(model);
        }