diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs index a33ca2c19..8c4bbd0ac 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs @@ -561,9 +561,11 @@ namespace IRaCIS.Application.Services typeChangeDic.Add(ModuleTypeEnum.Referee, ReadingCategory.Judge); typeChangeDic.Add(ModuleTypeEnum.Oncology, ReadingCategory.Oncology); #endregion - var taskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstOrDefaultAsync(); + var taskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync(); List needReadList = new List(); - if (!await _visitTaskRepository.AnyAsync(x => x.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId&&x.SouceReadModuleId== taskInfo.SouceReadModuleId && x.ReadingTaskState != ReadingTaskState.HaveSigned)) + if ((!await _visitTaskRepository.AnyAsync(x => x.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId&&x.SouceReadModuleId== taskInfo.SouceReadModuleId && x.ReadingTaskState != ReadingTaskState.HaveSigned)) + &&!taskInfo.IsAnalysisCreate + ) { // 任务类型 switch (taskInfo.ReadingCategory) @@ -630,10 +632,20 @@ namespace IRaCIS.Application.Services /// private async Task TriggerJudgeQuestion(Guid visitTaskId) { - + List visitTaskids = new List(); //x.ReReadingApplyState!=ReReadingApplyState.Agree 排除重阅的 - var visitTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstOrDefaultAsync(); - var visitTaskids = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned &&x.ReadingCategory!= ReadingCategory.Judge && x.ReReadingApplyState!=ReReadingApplyState.Agree && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).Select(x => x.Id).ToListAsync(); + var visitTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync(); + + if (visitTask.IsAnalysisCreate&& visitTask.ConsistentAnalysisOriginalTaskId!=null) + { + visitTaskids.Add(visitTask.Id); + visitTaskids.Add(visitTask.ConsistentAnalysisOriginalTaskId.Value); + } + else + { + visitTaskids = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReadingCategory != ReadingCategory.Judge && x.ReReadingApplyState != ReReadingApplyState.Agree && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).Select(x => x.Id).ToListAsync(); + } + if (visitTaskids.Count == 2) { @@ -713,10 +725,35 @@ namespace IRaCIS.Application.Services } if (noteEqual) { - await this.SaveJudgeTask(new SaveJudgeTaskDto() + if (visitTask.IsAnalysisCreate) { - VisitTaskIds = visitTaskids, - }); + await _visitTaskRepository.UpdatePartialFromQueryAsync(visitTaskId, x => new VisitTask() + { + IsAnalysisDiffToOriginalData = true + }); + await _visitTaskRepository.SaveChangesAsync(); + + } + else + { + await this.SaveJudgeTask(new SaveJudgeTaskDto() + { + VisitTaskIds = visitTaskids, + }); + } + + } + else + { + + if (visitTask.IsAnalysisCreate) + { + await _visitTaskRepository.UpdatePartialFromQueryAsync(visitTaskId, x => new VisitTask() + { + IsAnalysisDiffToOriginalData = false + }); + await _visitTaskRepository.SaveChangesAsync(); + } } } }