Ejemplo n.º 1
0
        public HcpCarotidTestResult MapXmlToDomainObject(string filePathtoXml)
        {
            var testResult = new HcpCarotidTestResult();
            var xDoc       = XDocument.Load(filePathtoXml);

            testResult.LeftResultReadings  = GetHcpCarotidTestReadings(xDoc, SideToCheckLeft);
            testResult.RightResultReadings = GetHcpCarotidTestReadings(xDoc, SideToCheckRight);

            if (testResult.LeftResultReadings != null)
            {
                if (testResult.LeftResultReadings.ICAEDV != null)
                {
                    testResult.LeftResultReadings.ICAEDV.Label = ReadingLabels.LICAEDV;
                }

                if (testResult.LeftResultReadings.ICAPSV != null)
                {
                    testResult.LeftResultReadings.ICAPSV.Label = ReadingLabels.LICAPSV;
                }
            }

            if (testResult.RightResultReadings != null)
            {
                if (testResult.RightResultReadings.ICAEDV != null)
                {
                    testResult.RightResultReadings.ICAEDV.Label = ReadingLabels.RICAEDV;
                }

                if (testResult.RightResultReadings.ICAPSV != null)
                {
                    testResult.RightResultReadings.ICAPSV.Label = ReadingLabels.RICAPSV;
                }
            }

            bool isExceptionCaused;

            testResult.ResultImages = _mediaHelper.GetMediaforTest(Directory.GetParent(filePathtoXml).Parent.FullName, _mediaLocation, TestType.HCPCarotid.ToString(), out isExceptionCaused).ToList();

            if (isExceptionCaused)
            {
                _errorSummary += "Media Extraction Failed. ";
            }

            return(testResult);
        }
        public override TestResult CreateActualTestResult(CustomerEventScreeningTestsEntity customerEventScreeningTestsEntity)
        {
            var customerEventReadingEntities = customerEventScreeningTestsEntity.CustomerEventReading.ToList();

            var testResult = new HcpCarotidTestResult(customerEventScreeningTestsEntity.CustomerEventScreeningTestId)
            {
                LeftResultReadings  = new HcpCarotidTestReadings(),
                RightResultReadings = new HcpCarotidTestReadings()
            };

            var standardFindingEntities = customerEventScreeningTestsEntity.StandardFindingTestReadingCollectionViaCustomerEventTestStandardFinding.ToList();

            if (standardFindingEntities.Count > 0)
            {
                var customerEventStandardFindingEntities = customerEventScreeningTestsEntity.CustomerEventTestStandardFinding.ToList();

                var leftFindingEntity   = standardFindingEntities.Find(entity => entity.ReadingId.Value == (int)ReadingLabels.Left);
                var rightFindingEntity  = standardFindingEntities.Find(entity => entity.ReadingId.Value == (int)ReadingLabels.Right);
                var velocityFindingLica = standardFindingEntities.Find(entity => entity.ReadingId == (int)ReadingLabels.LICAPSV);
                var velocityFindingRica = standardFindingEntities.Find(entity => entity.ReadingId == (int)ReadingLabels.RICAPSV);

                if (leftFindingEntity != null)
                {
                    testResult.LeftResultReadings.Finding = new TestResultService().GetAllStandardFindings <decimal>((int)TestType.HCPCarotid, (int)ReadingLabels.Left).
                                                            FirstOrDefault(standardFinding => standardFinding.Id == leftFindingEntity.StandardFindingId);

                    if (testResult.LeftResultReadings.Finding != null)
                    {
                        testResult.LeftResultReadings.Finding.CustomerEventStandardFindingId = customerEventStandardFindingEntities.Find(standardFindingEntity =>
                                                                                                                                         standardFindingEntity.StandardFindingTestReadingId == leftFindingEntity.StandardFindingTestReadingId).CustomerEventTestStandardFindingId;
                    }
                }

                if (rightFindingEntity != null)
                {
                    testResult.RightResultReadings.Finding = new TestResultService().GetAllStandardFindings <decimal>((int)TestType.HCPCarotid, (int)ReadingLabels.Right).
                                                             FirstOrDefault(standardFinding => standardFinding.Id == rightFindingEntity.StandardFindingId);

                    if (testResult.RightResultReadings.Finding != null)
                    {
                        testResult.RightResultReadings.Finding.CustomerEventStandardFindingId = customerEventStandardFindingEntities.Find(standardFindingEntity =>
                                                                                                                                          standardFindingEntity.StandardFindingTestReadingId == rightFindingEntity.StandardFindingTestReadingId).CustomerEventTestStandardFindingId;
                    }
                }

                if (velocityFindingLica != null)
                {
                    testResult.LowVelocityLica = new TestResultService().GetAllStandardFindings <int>((int)TestType.HCPCarotid, (int)ReadingLabels.LICAPSV).
                                                 Find(standardFinding => standardFinding.Id == velocityFindingLica.StandardFindingId);

                    testResult.LowVelocityLica.CustomerEventStandardFindingId = customerEventStandardFindingEntities.Find(standardFindingEntity =>
                                                                                                                          standardFindingEntity.StandardFindingTestReadingId == velocityFindingLica.StandardFindingTestReadingId).CustomerEventTestStandardFindingId;
                }
                if (velocityFindingRica != null)
                {
                    testResult.LowVelocityRica = new TestResultService().GetAllStandardFindings <int>((int)TestType.HCPCarotid, (int)ReadingLabels.RICAPSV).
                                                 Find(standardFinding => standardFinding.Id == velocityFindingRica.StandardFindingId);

                    testResult.LowVelocityRica.CustomerEventStandardFindingId = customerEventStandardFindingEntities.Find(standardFindingEntity =>
                                                                                                                          standardFindingEntity.StandardFindingTestReadingId == velocityFindingRica.StandardFindingTestReadingId).CustomerEventTestStandardFindingId;
                }
            }

            testResult.LeftResultReadings.ICAPSV = CreateResultReadingforNullableDecimal((int)ReadingLabels.LICAPSV, customerEventReadingEntities);
            testResult.LeftResultReadings.ICAEDV = CreateResultReadingforNullableDecimal((int)ReadingLabels.LICAEDV, customerEventReadingEntities);
            testResult.LeftResultReadings.CCAPSV = CreateResultReadingforNullableDecimal((int)ReadingLabels.LCCAPSV, customerEventReadingEntities);

            testResult.RightResultReadings.ICAPSV = CreateResultReadingforNullableDecimal((int)ReadingLabels.RICAPSV, customerEventReadingEntities);
            testResult.RightResultReadings.ICAEDV = CreateResultReadingforNullableDecimal((int)ReadingLabels.RICAEDV, customerEventReadingEntities);
            testResult.RightResultReadings.CCAPSV = CreateResultReadingforNullableDecimal((int)ReadingLabels.RCCAPSV, customerEventReadingEntities);

            testResult.VelocityElevatedOnRight = CreateResultReading((int)ReadingLabels.VelocityElevatedOnRight, customerEventReadingEntities);
            testResult.VelocityElevatedOnLeft  = CreateResultReading((int)ReadingLabels.VelocityElevatedOnLeft, customerEventReadingEntities);

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

            var testImages           = customerEventScreeningTestsEntity.TestMedia.ToList();
            var fileEntityCollection = customerEventScreeningTestsEntity.FileCollectionViaTestMedia.ToList();

            if (testImages.Count > 0)
            {
                var resultImages = new List <ResultMedia>();
                testImages.ForEach(testMedia => resultImages.Add(new ResultMedia(testMedia.MediaId)
                {
                    File          = GetFileObjectfromEntity(testMedia.FileId, fileEntityCollection),
                    Thumbnail     = testMedia.ThumbnailFileId != null ? new File(testMedia.ThumbnailFileId.Value) : null,
                    ReadingSource = testMedia.IsManual ? ReadingSource.Manual : ReadingSource.Automatic
                }));

                testResult.ResultImages = resultImages;
            }
            return(testResult);
        }