修改一版

Uat_Study
he 2022-07-28 17:38:23 +08:00
parent a8872841e1
commit 590a85cc20
1 changed files with 51 additions and 7 deletions

View File

@ -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<ReadingGenerataTaskDTO> 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 {