From 590a85cc208bf9a71f0e95a237b7c6ac111b83d4 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 28 Jul 2022 17:38:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/ReadingImageTaskService.cs | 58 ++++++++++++++++--- 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs index 5283efe37..f3333e810 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs @@ -1007,6 +1007,44 @@ namespace IRaCIS.Application.Services SignTime = DateTime.Now, JudgeResultImagePath = inDto.JudgeResultImagePath, }); + + // 需要判断是否添加肿瘤学任务 + var taskInfo = await _visitTaskRepository.Where(x => x.JudgeVisitTaskId == inDto.VisitTaskId).FirstNotNullAsync(); + if (taskInfo.ReadingCategory == ReadingCategory.Global) + { + if (taskInfo.SouceReadModuleId == null) + { + throw new BusinessValidationFailedException($"当前裁判的全局任务的SouceId为null"); + } + + var visitId = await _readModuleRepository.Where(x => x.Id == taskInfo.SouceReadModuleId).Select(x => x.SubjectVisitId).FirstOrDefaultAsync(); + + // 肿瘤学信息 + List needReadList = await _readModuleRepository.Where(x => x.SubjectVisitId == visitId && x.ModuleType == ModuleTypeEnum.Oncology) + .Select(x => new ReadingGenerataTaskDTO + { + IsUrgent = x.IsUrgent ?? false, + SubjectId = x.SubjectId, + ReadingName = x.ModuleName, + VisitNum = x.VisitNum, + ReadModuleId = x.Id, + ReadingCategory = ReadingCategory.Oncology, + }).ToListAsync(); + + await _visitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand() + { + + ReadingCategory = GenerateTaskCategory.Oncology, + TrialId = taskInfo.TrialId, + ReadingGenerataTaskList = needReadList + }); + + + + + } + + var result = await _visitTaskRepository.SaveChangesAsync(); return ResponseOutput.Ok(result); } @@ -1130,8 +1168,8 @@ namespace IRaCIS.Application.Services break; // 肿瘤学 case ReadingCategory.Global: - var subjectId = await _readModuleRepository.Where(x => x.Id == taskInfo.SouceReadModuleId).Select(x => x.SubjectVisitId).FirstOrDefaultAsync(); - needReadList=await _readModuleRepository.Where(x => x.SubjectVisitId == subjectId&&x.ModuleType==ModuleTypeEnum.Oncology) + var subjectVisitId = await _readModuleRepository.Where(x => x.Id == taskInfo.SouceReadModuleId).Select(x => x.SubjectVisitId).FirstOrDefaultAsync(); + needReadList=await _readModuleRepository.Where(x => x.SubjectVisitId == subjectVisitId && x.ModuleType==ModuleTypeEnum.Oncology) .Select(x => new ReadingGenerataTaskDTO { IsUrgent = x.IsUrgent ?? false, @@ -1141,7 +1179,12 @@ namespace IRaCIS.Application.Services ReadModuleId = x.Id, ReadingCategory = typeChangeDic[x.ModuleType], }).ToListAsync(); - if (taskInfo.JudgeVisitTaskId == null) + + var readingType=await _trialRepository.Where(x => x.Id == taskInfo.TrialId).Select(x => x.ReadingType).FirstOrDefaultAsync(); + + if (taskInfo.JudgeVisitTaskId == null&&(await _visitTaskRepository.Where(x=>x.TaskState==TaskState.Effect&&x.ReadingCategory==ReadingCategory.Global + &&x.ReadingTaskState==ReadingTaskState.HaveSigned + ).CountAsync()== (int)readingType)) { // 有裁判要等裁判完成之后才进行添加 await _visitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand() @@ -1177,10 +1220,11 @@ namespace IRaCIS.Application.Services var visitTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).AsNoTracking().FirstNotNullAsync(); // 判断是否是一致性核查产生 - if (visitTask.IsAnalysisCreate&& visitTask.ConsistentAnalysisOriginalTaskId!=null) + if (visitTask.IsAnalysisCreate) { - visitTaskids.Add(visitTask.Id); - visitTaskids.Add(visitTask.ConsistentAnalysisOriginalTaskId.Value); + visitTaskids=await _visitTaskRepository.Where(x=>x.ArmEnum== visitTask.ArmEnum&&x.TaskState==TaskState.Effect&&x.SourceSubjectVisitId== visitTask.SourceSubjectVisitId + &&x.SouceReadModuleId==visitTask.SouceReadModuleId && x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState == ReadingTaskState.HaveSigned).Select(x => x.Id).ToListAsync(); + } else { @@ -1188,7 +1232,7 @@ namespace IRaCIS.Application.Services visitTaskids = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReadingCategory != ReadingCategory.Judge && x.TaskState== TaskState.Effect && x.IsAnalysisCreate==false - && x.ReReadingApplyState != ReReadingApplyState.Agree && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).Select(x => x.Id).ToListAsync(); + && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).Select(x => x.Id).ToListAsync(); } var trialInfo = await _trialRepository.Where(x => x.Id == visitTask.TrialId).Select(x=> new {