예제 #1
0
        private void SetFinding(ImtTestResult testResult)
        {
            if (testResult == null || (testResult.QimtLeft == null && testResult.QimtRight == null) || testResult.ExpectedQimt == null)
            {
                return;
            }

            int qimtData = 0;

            if (testResult.QimtRight != null && testResult.QimtLeft != null)
            {
                qimtData = testResult.QimtLeft.Reading > testResult.QimtRight.Reading ? testResult.QimtLeft.Reading : testResult.QimtRight.Reading;
            }
            else
            {
                qimtData = testResult.QimtRight == null ? testResult.QimtLeft.Reading : testResult.QimtRight.Reading;
            }

            var expectedQimt = testResult.ExpectedQimt.Reading;

            var standardFindingList = _standardFindingRepository.GetAllStandardFindings <int>((int)TestType.IMT);

            if (standardFindingList == null)
            {
                return;
            }

            var normalFinding   = standardFindingList.Where(sfl => sfl.Label.ToLower().Trim().Equals("normal")).FirstOrDefault();
            var abnormalFinding = standardFindingList.Where(sfl => sfl.Label.ToLower().Trim().Equals("abnormal")).FirstOrDefault();

            testResult.Finding = qimtData <= expectedQimt ? normalFinding : abnormalFinding;
        }
예제 #2
0
        public override TestResult CreateActualTestResult(CustomerEventScreeningTestsEntity customerEventScreeningTestEntity)
        {
            var customerEventReadingEntities = customerEventScreeningTestEntity.CustomerEventReading.ToList();
            var testResult = new ImtTestResult(customerEventScreeningTestEntity.CustomerEventScreeningTestId);

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

            if (customerEventTestStandardFindingEntities.Count() > 0)
            {
                var testResultService = new TestResultService();
                var standardFindings  = testResultService.GetAllStandardFindings <int?>((int)TestType.IMT);

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

                    var finding = CreateFindingObject(customerEventTestStandardFindingEntity, standardFindings, standardFindingTestReadingEntity, null);
                    if (finding != null)
                    {
                        testResult.Finding = finding; return;
                    }
                });
            }

            testResult.VascularAge  = CreateResultReadingforInt((int)ReadingLabels.VascularAge, customerEventReadingEntities);
            testResult.QimtLeft     = CreateResultReadingforInt((int)ReadingLabels.QimtLeft, customerEventReadingEntities);
            testResult.QimtRight    = CreateResultReadingforInt((int)ReadingLabels.QimtRight, customerEventReadingEntities);
            testResult.ExpectedQimt = CreateResultReadingforInt((int)ReadingLabels.ExpectedQimt, customerEventReadingEntities);

            var testMediaCollection  = customerEventScreeningTestEntity.TestMedia.ToList();
            var fileEntityCollection = customerEventScreeningTestEntity.FileCollectionViaTestMedia.ToList();

            if (testMediaCollection.Count > 0)
            {
                var resultMedia = new List <ResultMedia>();
                testMediaCollection.ForEach(testMedia => resultMedia.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.ResultMedia = resultMedia;
            }
            return(testResult);
        }
예제 #3
0
        public TestResult Parse()
        {
            bool isExceptionCaused;
            var  resultImages = _mediaHelper.GetMediaforTest(Directory.GetParent(_pathToReportXmlFile).Parent.FullName, _mediaLocation, TestType.IMT.ToString(), out isExceptionCaused);
            var  testResult   = new ImtTestResult();

            var xDoc      = XDocument.Load(_pathToReportXmlFile);
            var svgImages = _mediaHelper.GetSvgImages(Path.GetDirectoryName(_pathToReportXmlFile), TestType.IMT.ToString(), _mediaLocation);

            if (resultImages == null)
            {
                resultImages = svgImages;
            }
            else if (svgImages != null && svgImages.Any())
            {
                resultImages = resultImages.Concat(svgImages);
            }

            var leftQimt     = GetValuefromXmlDoc(xDoc, StringLeft);
            var rightQimt    = GetValuefromXmlDoc(xDoc, StringRight);
            var expectedQimt = GetValuefromXmlDocforSpecificNode(xDoc);

            if (leftQimt != null)
            {
                testResult.QimtLeft = new ResultReading <int> {
                    Reading = leftQimt.Value, ReadingSource = ReadingSource.Automatic, Label = ReadingLabels.QimtLeft
                }
            }
            ;
            if (rightQimt != null)
            {
                testResult.QimtRight = new ResultReading <int> {
                    Reading = rightQimt.Value, ReadingSource = ReadingSource.Automatic, Label = ReadingLabels.QimtRight
                }
            }
            ;
            if (expectedQimt != null)
            {
                testResult.ExpectedQimt = new ResultReading <int> {
                    Reading = expectedQimt.Value, ReadingSource = ReadingSource.Automatic, Label = ReadingLabels.ExpectedQimt
                }
            }
            ;

            SetFinding(testResult);

            if (resultImages != null && resultImages.Count() > 0)
            {
                testResult.ResultMedia = resultImages;
            }
            else if (leftQimt == null && rightQimt == null && expectedQimt == null)
            {
                testResult = null;
            }

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

            return(testResult);
        }