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; }
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); }
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); }