private CompoundResultReading <T> GetResultReading <T>(T reading, ReadingLabels label, int?readingForFinding, TestType type, ref string errorSummary) { try { var resultReading = new CompoundResultReading <T> { Label = label, ReadingSource = ReadingSource.Automatic, Reading = reading }; if (readingForFinding != null) { resultReading.Finding = new StandardFinding <T>(_testResultService.GetCalculatedStandardFinding(readingForFinding, (int)type, (int)label)); } return(resultReading); } catch (Exception ex) { string message = string.Format("Exception while extracting value for {0}. Message: {1} ", label.ToString(), ex.Message); _logger.Error(message); errorSummary += message; } return(null); }
private CompoundResultReading <decimal?> CreateTestReadingforaDecimalValue(CustomerEventReadingEntity testReadingEntity, int readingId, List <StandardFindingTestReadingEntity> standardFindingTestReadingEntities, decimal?value) { StandardFindingTestReadingEntity standardFindingTestReading = null; if (testReadingEntity.StandardFindingTestReadingId != null) { standardFindingTestReading = standardFindingTestReadingEntities.Find(standardFindingTestReadingEntity => (standardFindingTestReadingEntity.ReadingId == readingId) && (testReadingEntity.StandardFindingTestReadingId == standardFindingTestReadingEntity.StandardFindingTestReadingId) ); } var testReading = new CompoundResultReading <decimal?>(testReadingEntity.CustomerEventReadingId) { Label = (ReadingLabels)readingId, Reading = value, ReadingSource = testReadingEntity.IsManual ? ReadingSource.Manual : ReadingSource.Automatic, RecorderMetaData = new DataRecorderMetaData { DataRecorderCreator = new OrganizationRoleUser(testReadingEntity.CreatedByOrgRoleUserId), DateCreated = testReadingEntity.CreatedOn, DataRecorderModifier = testReadingEntity.UpdatedByOrgRoleUserId.HasValue ? new OrganizationRoleUser(testReadingEntity.UpdatedByOrgRoleUserId.Value) : null, DateModified = testReadingEntity.UpdatedOn } }; decimal testReadingValue = 0; var allFindings = new TestResultService().GetAllStandardFindings <decimal?>((int)TestType.Hemoglobin, readingId); if (testReadingEntity.Value != null && decimal.TryParse(testReadingEntity.Value, out testReadingValue)) { var findings = (new TestResultService()).GetMultipleCalculatedStandardFinding(decimal.Round(testReadingValue, 1), (int)TestType.Hemoglobin, readingId); var finding = findings.FirstOrDefault(); if (findings.Count() == 1) { testReading.Finding = new StandardFinding <decimal?>(Convert.ToInt64(testReadingEntity.StandardFindingTestReadingId == null ? finding : standardFindingTestReading.StandardFindingId)); } else if (findings.Count() > 1) { var avFindings = allFindings.FindAll(f => f.Label.ToLower().IndexOf(_toCheckFor) == 0); finding = findings.FirstOrDefault(f => avFindings.Select(av => av.Id).Contains(f)); testReading.Finding = new StandardFinding <decimal?>(Convert.ToInt64(testReadingEntity.StandardFindingTestReadingId == null ? finding : standardFindingTestReading.StandardFindingId)); } } else if (testReadingEntity.StandardFindingTestReadingId != null) { testReading.Finding = new StandardFinding <decimal?>(standardFindingTestReading.StandardFindingId); } if (testReading.Finding != null) { testReading.Finding = allFindings.Find(standardFinding => standardFinding.Id == testReading.Finding.Id); } return(testReading); }
protected bool IsIncompleteReading <T>(CompoundResultReading <T> testResultReading) { if (testResultReading != null && testResultReading.Finding != null && testResultReading.Reading != null) { return(false); } return(true); }
private static CompoundResultReading <decimal?> CreateTestReadingforaDecimalValue(CustomerEventReadingEntity testReadingEntity, int readingId, List <StandardFindingTestReadingEntity> standardFindingTestReadingEntities, decimal?value) { StandardFindingTestReadingEntity standardFindingTestReading = null; if (testReadingEntity.StandardFindingTestReadingId != null) { standardFindingTestReading = standardFindingTestReadingEntities.Find(standardFindingTestReadingEntity => (standardFindingTestReadingEntity.ReadingId == readingId) && (testReadingEntity.StandardFindingTestReadingId == standardFindingTestReadingEntity.StandardFindingTestReadingId)); } var testReading = new CompoundResultReading <decimal?>(testReadingEntity.CustomerEventReadingId) { Label = (ReadingLabels)readingId, Reading = value, ReadingSource = testReadingEntity.IsManual ? ReadingSource.Manual : ReadingSource.Automatic, RecorderMetaData = new DataRecorderMetaData { DataRecorderCreator = new OrganizationRoleUser(testReadingEntity.CreatedByOrgRoleUserId), DateCreated = testReadingEntity.CreatedOn, DataRecorderModifier = testReadingEntity.UpdatedByOrgRoleUserId.HasValue ? new OrganizationRoleUser(testReadingEntity.UpdatedByOrgRoleUserId.Value) : null, DateModified = testReadingEntity.UpdatedOn } }; if (value != null) { testReading.Finding = new StandardFinding <decimal?>(Convert.ToInt64(testReadingEntity.StandardFindingTestReadingId == null ? (new TestResultService()).GetCalculatedStandardFinding(decimal.Round(value.Value, 1), (int)TestType.Lipid, readingId) : standardFindingTestReading.StandardFindingId)); } else if (testReadingEntity.StandardFindingTestReadingId != null) { testReading.Finding = new StandardFinding <decimal?>(standardFindingTestReading.StandardFindingId); } if (testReading.Finding != null) { testReading.Finding = new TestResultService().GetAllStandardFindings <decimal?>((int)TestType.Lipid, readingId).Find(standardFinding => standardFinding.Id == testReading.Finding.Id); } return(testReading); }
private CompoundResultReading <string> GetResultReadingHdl(string reading, int?readingForFinding, long customerId, TestType type, ref string errorSummary) { try { var resultReading = new CompoundResultReading <string> { Label = ReadingLabels.HDL, ReadingSource = ReadingSource.Automatic, Reading = reading }; string gender = string.Empty; var customer = _customerRepository.GetCustomer(customerId); if (customer.Gender == Gender.Male) { gender = Gender.Male.ToString(); } else if (customer.Gender == Gender.Female) { gender = Gender.Female.ToString(); } if (readingForFinding != null && !string.IsNullOrEmpty(gender)) { var findings = _testResultService.GetAllStandardFindings <int?>((int)type, (int)ReadingLabels.HDL); var specificFindings = findings.Where(x => x.Label.ToLower().StartsWith(gender.ToLower())).ToList(); resultReading.Finding = new StandardFinding <string>(_testResultService.GetCalculatedStandardFinding(readingForFinding, (int)type, (int)ReadingLabels.HDL, specificFindings)); } return(resultReading); } catch (Exception ex) { string message = string.Format("Exception while extracting value for {0}. Message: {1} ", ReadingLabels.HDL, ex.Message); _logger.Error(message); errorSummary += message; } return(null); }
protected CompoundResultReading <T> SynchronizeResultReading <T>(CompoundResultReading <T> currentReading, CompoundResultReading <T> newReading, DataRecorderMetaData dataRecorderMetaData) { if (currentReading == null && newReading == null) { return(null); } if (currentReading == null) { if (newReading.Reading == null && newReading.Finding == null) { newReading = null; } else { newReading.RecorderMetaData = new DataRecorderMetaData { DataRecorderCreator = dataRecorderMetaData.DataRecorderCreator, DateCreated = dataRecorderMetaData.DateCreated }; } return(newReading); } if (newReading != null) { newReading.Id = currentReading.Id; if (currentReading.Reading.Equals(newReading.Reading)) { if (currentReading.Finding != null && newReading.Finding != null && currentReading.Finding.Id == newReading.Finding.Id) { return(currentReading); } if (currentReading.Finding == null && newReading.Finding == null) { return(currentReading); } } if (currentReading.ReadingSource == ReadingSource.Manual && newReading.ReadingSource == ReadingSource.Automatic) { return(currentReading); } if (newReading.ReadingSource == ReadingSource.Manual && newReading.Reading == null && newReading.Finding == null) { return(null); } if (currentReading.ReadingSource == ReadingSource.Automatic && newReading.ReadingSource == ReadingSource.Automatic) { if (newReading.Reading == null && currentReading.Reading != null) { return(currentReading); } } newReading.RecorderMetaData = new DataRecorderMetaData { DataRecorderCreator = currentReading.RecorderMetaData.DataRecorderCreator, DateCreated = currentReading.RecorderMetaData.DateCreated, DataRecorderModifier = dataRecorderMetaData.DataRecorderCreator, DateModified = dataRecorderMetaData.DateCreated }; } else { if (currentReading.ReadingSource == ReadingSource.Manual && NewReadingSource == ReadingSource.Automatic) { return(currentReading); } } return(newReading); }