public void LoadPadTestResults(HtmlDocument doc, PADTestResult testResult, bool removeLongDescription, IEnumerable <CustomerScreeningEvaluatinPhysicianViewModel> physicians, IEnumerable <EventPhysicianTest> eventPhysicianTests, List <OrderedPair <long, string> > technicianIdNamePairs, IEnumerable <PhysicianEvaluation> eventCustomerPhysicianEvaluations, CustomerSkipReview customerSkipReview) { var incidentalFindings = _incidentalFindingRepository.GetAllIncidentalFinding((int)TestType.PAD); if (testResult != null) { var selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='pad-rpp-section']"); if (selectedNode != null && (testResult.UnableScreenReason == null || testResult.UnableScreenReason.Count == 0) && (testResult.TestNotPerformed == null || testResult.TestNotPerformed.TestNotPerformedReasonId <= 0) && (testResult.RepeatStudy == null || testResult.RepeatStudy.Reading == false)) { selectedNode.SetAttributeValue("style", "display:block;"); } selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='rpp-eus-pad-div']"); if (selectedNode != null) { selectedNode.SetAttributeValue("style", "display:block;"); } _resultPdfHelper.SetPhysicianSignature(doc, "pad-primaryEvalPhysicianSign", "pad-overreadEvalPhysicianSign", physicians, eventPhysicianTests, eventCustomerPhysicianEvaluations, customerSkipReview); var readings = new TestResultRepository().GetAllReadings((int)TestType.PAD); decimal?leftAbi = null; decimal?rightAbi = null; foreach (var resultReading in readings) { switch (resultReading.Label) { case ReadingLabels.LeftABI: if (testResult.LeftResultReadings != null) { _resultPdfHelper.SetInputBox(doc, "txtLeftAbi", testResult.LeftResultReadings.ABI); if (testResult.LeftResultReadings.ABI != null && testResult.LeftResultReadings.ABI.Reading.HasValue) { leftAbi = testResult.LeftResultReadings.ABI.Reading; selectedNode = doc.DocumentNode.SelectSingleNode("//span[@id='pad-at-a-glance-finding-left']"); if (selectedNode != null) { selectedNode.InnerHtml = testResult.LeftResultReadings.ABI.Reading.Value.ToString("0.00"); } } } break; case ReadingLabels.SystolicLArm: if (testResult.LeftResultReadings != null) { _resultPdfHelper.SetInputBox(doc, "txtSystolicLeftArm", testResult.LeftResultReadings.SystolicArm); } break; case ReadingLabels.SystolicLAnkle: if (testResult.LeftResultReadings != null) { _resultPdfHelper.SetInputBox(doc, "txtSystolicLeftAnkle", testResult.LeftResultReadings.SystolicAnkle); } break; case ReadingLabels.RightABI: if (testResult.RightResultReadings != null) { _resultPdfHelper.SetInputBox(doc, "txtRightAbi", testResult.RightResultReadings.ABI); if (testResult.RightResultReadings.ABI != null && testResult.RightResultReadings.ABI.Reading.HasValue) { rightAbi = testResult.RightResultReadings.ABI.Reading; selectedNode = doc.DocumentNode.SelectSingleNode("//span[@id='pad-at-a-glance-finding-right']"); if (selectedNode != null) { selectedNode.InnerHtml = testResult.RightResultReadings.ABI.Reading.Value.ToString("0.00"); } } } break; case ReadingLabels.SystolicRArm: if (testResult.RightResultReadings != null) { _resultPdfHelper.SetInputBox(doc, "txtSystolicRightArm", testResult.RightResultReadings.SystolicArm); } break; case ReadingLabels.SystolicRAnkle: if (testResult.RightResultReadings != null) { _resultPdfHelper.SetInputBox(doc, "txtSystolicRightAnkle", testResult.RightResultReadings.SystolicAnkle); } break; case ReadingLabels.SystolicHighestArm: _resultPdfHelper.SetInputBox(doc, "systolicHighestArm", testResult.SystolicHighestArm); break; case ReadingLabels.RepeatStudy: _resultPdfHelper.SetCheckBox(doc, "RepeatStudyPadInputCheck", testResult.RepeatStudy); break; case ReadingLabels.LeftUnabletoOcclude: if (testResult.LeftResultReadings != null) { _resultPdfHelper.SetCheckBox(doc, "leftunabletoocclude-checkbox", testResult.LeftResultReadings.UnabletoOcclude); } break; case ReadingLabels.RightUnabletoOcclude: if (testResult.RightResultReadings != null) { _resultPdfHelper.SetCheckBox(doc, "rightunabletoocclude-checkbox", testResult.RightResultReadings.UnabletoOcclude); } break; } } decimal?abi; long leftFindingId = 0; if (leftAbi != null) { leftFindingId = _testResultService.GetCalculatedStandardFinding(leftAbi.Value, (int)TestType.PAD, null); } long rightFindingId = 0; if (rightAbi != null) { rightFindingId = _testResultService.GetCalculatedStandardFinding(rightAbi.Value, (int)TestType.PAD, null); } var standardFindingList = _standardFindingRepository.GetAllStandardFindings <decimal>((int)TestType.PAD); long findingId = 0; if (leftFindingId == rightFindingId) { findingId = leftFindingId; } else if (leftFindingId > 0 && rightFindingId > 0) { var lf = standardFindingList.Where(f => f.Id == leftFindingId).Single(); var rf = standardFindingList.Where(f => f.Id == rightFindingId).Single(); findingId = lf.WorstCaseOrder > rf.WorstCaseOrder ? lf.Id : rf.Id; } else { findingId = leftFindingId > rightFindingId ? leftFindingId : rightFindingId; } if (findingId > 0 && findingId == leftFindingId) { abi = leftAbi; } else { abi = rightAbi; } _resultPdfHelper.SetInputBox(doc, "abi-pad-summary", new ResultReading <decimal?> { Reading = abi }); LoadPadFindings(doc, testResult.Finding, standardFindingList, findingId, true, (testResult.UnableScreenReason != null && testResult.UnableScreenReason.Count > 0 ? testResult.UnableScreenReason.First() : null)); _resultPdfHelper.SetTechnician(doc, testResult, "techPad", "technotespad", technicianIdNamePairs); _resultPdfHelper.SetIncidentalFindings(doc, incidentalFindings, testResult.IncidentalFindings, "padIncidentalFinding"); _resultPdfHelper.SetPhysicianRemarks(doc, testResult, "followUpPad", "criticalPad", "physicianRemarksPad"); _resultPdfHelper.SetUnableToScreenReasons(doc, TestType.PAD, "padUnableToScreen", testResult.UnableScreenReason); if (testResult.IncidentalFindings != null && testResult.IncidentalFindings.Count() > 0) { selectedNode = doc.DocumentNode.SelectSingleNode("//p[@id='incidentalfinding-description-pad']"); if (selectedNode != null) { selectedNode.SetAttributeValue("style", "display:block;"); } } if (testResult.Finding != null) { selectedNode = doc.DocumentNode.SelectSingleNode("//span[@id='pad-at-a-glance-result']"); if (selectedNode != null && testResult.ResultInterpretation.HasValue) { selectedNode.InnerHtml = ((ResultInterpretation)testResult.ResultInterpretation).ToString(); } selectedNode = doc.DocumentNode.SelectSingleNode("//img[@id='pad-at-a-glance-findingImage']"); if (selectedNode != null) { if (testResult.Finding.Label.ToLower() == PadNormal.ToLower()) { selectedNode.SetAttributeValue("src", StringforContentDirectory + "/NMMSV_N.png"); } else if (testResult.Finding.Label.ToLower() == PadMild.ToLower()) { selectedNode.SetAttributeValue("src", StringforContentDirectory + "/NMMSV_M.png"); } else if (testResult.Finding.Label.ToLower() == PadModerate.ToLower()) { selectedNode.SetAttributeValue("src", StringforContentDirectory + "/NMMSV_MD.png"); } else if (testResult.Finding.Label.ToLower() == PadSevere.ToLower()) { selectedNode.SetAttributeValue("src", StringforContentDirectory + "/NMMSV_S.png"); } else { selectedNode.SetAttributeValue("src", StringforContentDirectory + "/NoIndication_NMMSV.png"); } } } if (testResult.UnableScreenReason != null && testResult.UnableScreenReason.Count > 0) { selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='pad-at-a-glance-finding']"); if (selectedNode != null) { selectedNode.SetAttributeValue("style", "display:none;"); } selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='pad-at-a-glance-unabletoscreen']"); if (selectedNode != null) { selectedNode.SetAttributeValue("style", "display:block;"); } selectedNode = doc.DocumentNode.SelectSingleNode("//span[@id='pad-at-a-glance-result']"); if (selectedNode != null) { selectedNode.InnerHtml = "N/A"; } selectedNode = doc.DocumentNode.SelectSingleNode("//img[@id='pad-at-a-glance-findingImage']"); if (selectedNode != null) { selectedNode.SetAttributeValue("src", StringforContentDirectory + "/NoIndication_NMMSV.png"); } } selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='pad-longdescription-div']"); if (selectedNode != null) { selectedNode.SetAttributeValue("style", removeLongDescription ? "display:none" : "display:block"); } } else { LoadPadFindings(doc, null, null, 0, false); _resultPdfHelper.SetUnableToScreenReasons(doc, TestType.PAD, "padUnableToScreen", null); _resultPdfHelper.SetIncidentalFindings(doc, incidentalFindings, null, "padIncidentalFinding"); } }
public void PadOverlayResults(HtmlDocument doc, PADTestResult padTestResult) { var selectedNode = doc.DocumentNode.SelectSingleNode("//div[@id='AnkleBrachialIndexDiv']"); if (selectedNode != null) { selectedNode.SetAttributeValue("style", "display:block;"); } if (padTestResult != null) { var readings = new TestResultRepository().GetAllReadings((int)TestType.PAD); foreach (var resultReading in readings) { switch (resultReading.Label) { case ReadingLabels.LeftABI: if (padTestResult.LeftResultReadings != null) { _resultPdfHelper.SetInputBox(doc, "LeftAbi", padTestResult.LeftResultReadings.ABI); } break; case ReadingLabels.SystolicLArm: if (padTestResult.LeftResultReadings != null) { _resultPdfHelper.SetInputBox(doc, "leftArmSystolicPressure", padTestResult.LeftResultReadings.SystolicArm); } break; case ReadingLabels.SystolicLAnkle: if (padTestResult.LeftResultReadings != null) { _resultPdfHelper.SetInputBox(doc, "LeftAnkleSystolicPressure", padTestResult.LeftResultReadings.SystolicAnkle); } break; case ReadingLabels.RightABI: if (padTestResult.RightResultReadings != null) { _resultPdfHelper.SetInputBox(doc, "RightAbi", padTestResult.RightResultReadings.ABI); } break; case ReadingLabels.SystolicRArm: if (padTestResult.RightResultReadings != null) { _resultPdfHelper.SetInputBox(doc, "RightArmSystolicPressure", padTestResult.RightResultReadings.SystolicArm); } break; case ReadingLabels.SystolicRAnkle: if (padTestResult.RightResultReadings != null) { _resultPdfHelper.SetInputBox(doc, "RightAnkleSystolicPressure", padTestResult.RightResultReadings.SystolicAnkle); } break; } } } }
public TestResult Parse(DataRow dr) { _errorSummary = string.Empty; var testResult = new PADTestResult(); if (CheckifRowContainsAnyLreadingData(dr)) { testResult.LeftResultReadings = new PadTestReadings(); } if (CheckifRowContainsAnyRreadingData(dr)) { testResult.RightResultReadings = new PadTestReadings(); } SetBloodPressureValues(testResult, dr); if (testResult.LeftResultReadings == null && testResult.RightResultReadings == null && testResult.PressureReadings == null) { return(null); } long leftFindingId = 0; long rightFindingId = 0; try { if (!IsDataRowItemEmpty(dr[ColumnRAbi])) { decimal s; if (decimal.TryParse(dr[ColumnRAbi].ToString(), out s)) { testResult.RightResultReadings.ABI = new ResultReading <decimal?>(ReadingLabels.RightABI) { ReadingSource = ReadingSource.Automatic, Reading = s }; rightFindingId = _testResultService.GetCalculatedStandardFinding(testResult.RightResultReadings.ABI.Reading, (int)TestType.PAD, null); } } } catch (Exception ex) { _errorSummary += "Data extraction for Right ABI failed. "; _logger.Error("\n Data extraction for Right ABI failed! Error: " + ex.Message + "\n\t\t" + ex.StackTrace); } try { if (!IsDataRowItemEmpty(dr[ColumnRAnkleSystolic])) { int s; if (int.TryParse(dr[ColumnRAnkleSystolic].ToString(), out s)) { testResult.RightResultReadings.SystolicAnkle = new ResultReading <int?>(ReadingLabels.SystolicRAnkle) { ReadingSource = ReadingSource.Automatic, Reading = s }; } } } catch (Exception ex) { _errorSummary += "Data extraction for Right Ankle Systolic failed. "; _logger.Error("\n Data extraction for Right Ankle Systolic failed! Error: " + ex.Message + "\n\t\t" + ex.StackTrace); } try { if (!IsDataRowItemEmpty(dr[ColumnRArmSystolic])) { int s; if (int.TryParse(dr[ColumnRArmSystolic].ToString(), out s)) { testResult.RightResultReadings.SystolicArm = new ResultReading <int?>(ReadingLabels.SystolicRArm) { ReadingSource = ReadingSource.Automatic, Reading = s }; } } } catch (Exception ex) { _errorSummary += "Data extraction for Right Arm Systolic failed. "; _logger.Error("\n Data extraction for Right Arm Systolic failed! Error: " + ex.Message + "\n\t\t" + ex.StackTrace); } try { if (!IsDataRowItemEmpty(dr[ColumnLAbi])) { decimal s; if (decimal.TryParse(dr[ColumnLAbi].ToString(), out s)) { testResult.LeftResultReadings.ABI = new ResultReading <decimal?>(ReadingLabels.LeftABI) { ReadingSource = ReadingSource.Automatic, Reading = s }; leftFindingId = _testResultService.GetCalculatedStandardFinding(testResult.LeftResultReadings.ABI.Reading, (int)TestType.PAD, null); } } } catch (Exception ex) { _errorSummary += "Data extraction for Left ABI failed. "; _logger.Error("\n Data extraction for Left ABI failed! Error: " + ex.Message + "\n\t\t" + ex.StackTrace); } try { if (!IsDataRowItemEmpty(dr[ColumnLAnkleSystolic])) { int s; if (int.TryParse(dr[ColumnLAnkleSystolic].ToString(), out s)) { testResult.LeftResultReadings.SystolicAnkle = new ResultReading <int?>(ReadingLabels.SystolicLAnkle) { ReadingSource = ReadingSource.Automatic, Reading = s }; } } } catch (Exception ex) { _errorSummary += "Data extraction for Left Ankle Systolic failed. "; _logger.Error("\n Data extraction for Left Ankle Systolic failed! Error: " + ex.Message + "\n\t\t" + ex.StackTrace); } try { if (!IsDataRowItemEmpty(dr[ColumnLArmSystolic])) { int s = 0; if (int.TryParse(dr[ColumnLArmSystolic].ToString(), out s)) { testResult.LeftResultReadings.SystolicArm = new ResultReading <int?>(ReadingLabels.SystolicLArm) { ReadingSource = ReadingSource.Automatic, Reading = s }; } } } catch (Exception ex) { _errorSummary += "Data extraction for Left Arm Systolic failed. "; _logger.Error("\n Data extraction for Left Arm Systolic failed! Error: " + ex.Message + "\n\t\t" + ex.StackTrace); } testResult.Finding = GetPadFindingToConsider(leftFindingId, rightFindingId); return(testResult); }
public override TestResult CreateActualTestResult(CustomerEventScreeningTestsEntity customerEventScreeningTestsEntity) { var customerEventReadingEntities = customerEventScreeningTestsEntity.CustomerEventReading.ToList(); var testResult = new PADTestResult(customerEventScreeningTestsEntity.CustomerEventScreeningTestId) { LeftResultReadings = new PadTestReadings(), RightResultReadings = new PadTestReadings(), PressureReadings = new CardiovisionPressureReadings(), SystolicHighestArm = this.CreateResultReadingforNullableInt((int)ReadingLabels.SystolicHighestArm, customerEventReadingEntities), PencilDopplerUsed = this.CreateResultReading((int)ReadingLabels.PencilDopplerUsed, customerEventReadingEntities), RepeatStudy = this.CreateResultReading((int)ReadingLabels.RepeatStudy, customerEventReadingEntities) }; testResult.RightResultReadings.SystolicArm = CreateResultReadingforNullableInt((int)ReadingLabels.SystolicRArm, customerEventReadingEntities); testResult.RightResultReadings.SystolicAnkle = CreateResultReadingforNullableInt((int)ReadingLabels.SystolicRAnkle, customerEventReadingEntities); testResult.RightResultReadings.ABI = CreateResultReadingforNullableDecimal((int)ReadingLabels.RightABI, customerEventReadingEntities); testResult.RightResultReadings.UnabletoOcclude = this.CreateResultReading((int)ReadingLabels.RightUnabletoOcclude, customerEventReadingEntities); testResult.LeftResultReadings.SystolicArm = CreateResultReadingforNullableInt((int)ReadingLabels.SystolicLArm, customerEventReadingEntities); testResult.LeftResultReadings.SystolicAnkle = CreateResultReadingforNullableInt((int)ReadingLabels.SystolicLAnkle, customerEventReadingEntities); testResult.LeftResultReadings.ABI = CreateResultReadingforNullableDecimal((int)ReadingLabels.LeftABI, customerEventReadingEntities); testResult.LeftResultReadings.UnabletoOcclude = this.CreateResultReading((int)ReadingLabels.LeftUnabletoOcclude, customerEventReadingEntities); var standardFindings = new TestResultService().GetAllStandardFindings <decimal>((int)TestType.PAD); var standardFindingsLeftAbi = new TestResultService().GetAllStandardFindings <decimal>((int)TestType.PAD, (int)ReadingLabels.LeftABI); var standardFindingsRightAbi = new TestResultService().GetAllStandardFindings <decimal>((int)TestType.PAD, (int)ReadingLabels.RightABI); var testResultService = new TestResultService(); StandardFinding <decimal> leftResultFinding, rightResultFinding; leftResultFinding = rightResultFinding = null; if (standardFindings == null || standardFindings.Count < 1) { standardFindings = standardFindingsLeftAbi; } int findingId = 0; if (testResult.LeftResultReadings.ABI != null) { findingId = testResultService.GetCalculatedStandardFinding(testResult.LeftResultReadings.ABI.Reading, (int)TestType.PAD, standardFindingsLeftAbi != null && standardFindingsLeftAbi.Count() > 0 ? (int?)ReadingLabels.LeftABI : null); leftResultFinding = standardFindings.Where(f => f.Id == findingId).SingleOrDefault(); } if (testResult.RightResultReadings.ABI != null) { findingId = testResultService.GetCalculatedStandardFinding(testResult.RightResultReadings.ABI.Reading, (int)TestType.PAD, standardFindingsRightAbi != null && standardFindingsRightAbi.Count() > 0 ? (int?)ReadingLabels.RightABI : null); rightResultFinding = standardFindings.Where(f => f.Id == findingId).SingleOrDefault(); } if (standardFindingsLeftAbi == null || standardFindingsLeftAbi.Count() < 1) { var customerEventTestStandardFindingEntity = customerEventScreeningTestsEntity.CustomerEventTestStandardFinding.FirstOrDefault(); if (customerEventTestStandardFindingEntity != null) { var standardFindingTestReadingEntity = customerEventScreeningTestsEntity.StandardFindingTestReadingCollectionViaCustomerEventTestStandardFinding.LastOrDefault(); var standardFindingEntity = standardFindings.ToList().FindAll(standardFinding => standardFinding.Id == standardFindingTestReadingEntity.StandardFindingId).FirstOrDefault(); if (standardFindingEntity != null) { testResult.Finding = new StandardFinding <decimal>(standardFindingEntity.Id) { CustomerEventStandardFindingId = customerEventTestStandardFindingEntity.CustomerEventTestStandardFindingId, Label = standardFindingEntity.Label, MaxValue = Convert.ToInt32(standardFindingEntity.MaxValue), MinValue = Convert.ToInt32(standardFindingEntity.MinValue) }; } } else { testResult.Finding = GetFindingToConsider(leftResultFinding, rightResultFinding); if (testResult.Finding != null) { var standardFinding = standardFindings.Find(finding => finding.Id == testResult.Finding.Id); if (standardFinding != null) { testResult.Finding = standardFinding; } } } } else { var testReadingLAbiReading = customerEventReadingEntities.Where(customerEventReading => customerEventReading.TestReading.ReadingId == (int)ReadingLabels.LeftABI).SingleOrDefault(); var testReadingRAbiReading = customerEventReadingEntities.Where(customerEventReading => customerEventReading.TestReading.ReadingId == (int)ReadingLabels.RightABI).SingleOrDefault(); if (testReadingLAbiReading != null && testReadingLAbiReading.StandardFindingTestReadingId != null) { var standardFindingReadingEntity = customerEventScreeningTestsEntity.StandardFindingTestReadingCollectionViaCustomerEventReading.ToList().Find(stdFindingTestReading => stdFindingTestReading.TestId == (int)TestType.PAD && stdFindingTestReading.ReadingId == (int)ReadingLabels.LeftABI); if (standardFindingReadingEntity != null) { testResult.LeftResultReadings.Finding = new StandardFinding <decimal>(standardFindingReadingEntity.StandardFindingId); } } else if (leftResultFinding != null) { testResult.LeftResultReadings.Finding = leftResultFinding; } if (testResult.LeftResultReadings.Finding != null) { testResult.LeftResultReadings.Finding = standardFindings.Where(sf => sf.Id == testResult.LeftResultReadings.Finding.Id).SingleOrDefault(); } //----------------------------------------------------------------------------------- if (testReadingRAbiReading != null && testReadingRAbiReading.StandardFindingTestReadingId != null) { var standardFindingReadingEntity = customerEventScreeningTestsEntity.StandardFindingTestReadingCollectionViaCustomerEventReading.ToList().Find(stdFindingTestReading => stdFindingTestReading.TestId == (int)TestType.PAD && stdFindingTestReading.ReadingId == (int)ReadingLabels.RightABI); if (standardFindingReadingEntity != null) { testResult.RightResultReadings.Finding = new StandardFinding <decimal>(standardFindingReadingEntity.StandardFindingId); } } else if (rightResultFinding != null) { testResult.RightResultReadings.Finding = rightResultFinding; } if (testResult.RightResultReadings.Finding != null) { testResult.RightResultReadings.Finding = standardFindings.Where(sf => sf.Id == testResult.RightResultReadings.Finding.Id).SingleOrDefault(); } } return(testResult); }
private void SetBloodPressureValues(PADTestResult testResult, DataRow dr) { bool isRight = true; if (!IsDataRowItemEmpty(dr[ColumnArmPressure])) { if (dr[ColumnArmPressure].ToString().Trim().ToLower().Equals("left")) { isRight = false; } } if (!IsDataRowItemEmpty(dr[ColumnSystolic]) || !IsDataRowItemEmpty(dr[ColumnDiastolic])) { testResult.PressureReadings = new CardiovisionPressureReadings(); } try { if (!IsDataRowItemEmpty(dr[ColumnSystolic])) { int s = 0; if (int.TryParse(dr[ColumnSystolic].ToString(), out s)) { if (!isRight) { testResult.PressureReadings.SystolicLeftArm = new ResultReading <int?>(ReadingLabels.SystolicLeft) { ReadingSource = ReadingSource.Automatic, Reading = s }; } else { testResult.PressureReadings.SystolicRightArm = new ResultReading <int?>(ReadingLabels.SystolicRight) { ReadingSource = ReadingSource.Automatic, Reading = s }; } } } } catch (Exception ex) { _errorSummary += "Data extraction for BP Systolic failed. "; _logger.Error("\n Data extraction for BP Systolic failed! Error: " + ex.Message + "\n\t\t" + ex.StackTrace); } try { if (!IsDataRowItemEmpty(dr[ColumnDiastolic])) { int s = 0; if (int.TryParse(dr[ColumnDiastolic].ToString(), out s)) { if (!isRight) { testResult.PressureReadings.DiastolicLeftArm = new ResultReading <int?>(ReadingLabels.DiastolicLeft) { ReadingSource = ReadingSource.Automatic, Reading = s }; } else { testResult.PressureReadings.DiastolicRightArm = new ResultReading <int?>(ReadingLabels.DiastolicRight) { ReadingSource = ReadingSource.Automatic, Reading = s }; } } } } catch (Exception ex) { _errorSummary += "Data extraction for BP Systolic failed. "; _logger.Error("\n Data extraction for BP Systolic failed! Error: " + ex.Message + "\n\t\t" + ex.StackTrace); } }