private bool SaveOldTestResult(TestResult currentTestResult, long customerId, long eventId, ref TestResult synchronizedTestResult) { if (currentTestResult != null && currentTestResult.ResultStatus != null && currentTestResult.ResultStatus.StateNumber < (int)TestResultStateNumber.Evaluated) { TestResult existingTestResult = null; lock (CentralLocker.Locker) { existingTestResult = this.GetTestResults(customerId, eventId, currentTestResult.IsNewResultFlow); } // TODO: need to throw an exception that records are already being audited. Will not be updated. if (existingTestResult != null && existingTestResult.ResultStatus != null && existingTestResult.ResultStatus.StateNumber >= (int)TestResultStateNumber.PreAudit && !(existingTestResult.ResultStatus.StateNumber == (int)TestResultStateNumber.Evaluated && existingTestResult.ResultStatus.Status == TestResultStatus.Incomplete)) { return(true); } synchronizedTestResult = _testResultSynchronizationService.SynchronizeTestResult(existingTestResult, currentTestResult, currentTestResult.IsNewResultFlow); var compareToResultReadings = GetAllReadings((int)TestType.Liver); synchronizedTestResult = _testResultSynchronizationService.IsTestIncomplete(compareToResultReadings, synchronizedTestResult, currentTestResult.IsNewResultFlow); synchronizedTestResult = _testResultSynchronizationService.GetManualEntryUploadStatus(compareToResultReadings, synchronizedTestResult, currentTestResult.IsNewResultFlow); } else { synchronizedTestResult = currentTestResult; } return(false); }
private bool SaveOldTestResult(TestResult currentTestResult, long customerId, long eventId, ref TestResult synchronizedTestResult) { if (currentTestResult != null && currentTestResult.ResultStatus != null && currentTestResult.ResultStatus.StateNumber < (int)TestResultStateNumber.Evaluated) { TestResult existingTestResult = null; lock (CentralLocker.Locker) { existingTestResult = this.GetTestResults(customerId, eventId, currentTestResult.IsNewResultFlow); } //&& !(existingTestResult.ResultStatus.StateNumber == TestResultStateNumber.PreAudit && existingTestResult.ResultStatus.Status == TestResultStatus.Incomplete) if (existingTestResult != null && existingTestResult.ResultStatus != null && existingTestResult.ResultStatus.StateNumber > (int)TestResultStateNumber.PreAudit) { return(true); } synchronizedTestResult = _testResultSynchronizationService.SynchronizeTestResult(existingTestResult, currentTestResult, currentTestResult.IsNewResultFlow); var compareToResultReadings = GetAllReadings((int)TestType.DiabeticRetinopathy); synchronizedTestResult = _testResultSynchronizationService.IsTestIncomplete(compareToResultReadings, synchronizedTestResult, currentTestResult.IsNewResultFlow); synchronizedTestResult = _testResultSynchronizationService.GetManualEntryUploadStatus(compareToResultReadings, synchronizedTestResult, currentTestResult.IsNewResultFlow); } else { if (currentTestResult.ResultStatus.StateNumber == (int)TestResultStateNumber.Evaluated) { TestResult existingTestResult = null; lock (CentralLocker.Locker) { existingTestResult = GetTestResults(customerId, eventId, currentTestResult.IsNewResultFlow); } synchronizedTestResult = _testResultSynchronizationService.SynchronizeTestResult(existingTestResult, currentTestResult, currentTestResult.IsNewResultFlow); synchronizedTestResult = _testResultSynchronizationService.SynchronizePhysicianEvaluation(synchronizedTestResult, existingTestResult); } else { synchronizedTestResult = currentTestResult; } } return(false); }