修改一版

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, SignTime = DateTime.Now,
JudgeResultImagePath = inDto.JudgeResultImagePath, 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(); var result = await _visitTaskRepository.SaveChangesAsync();
return ResponseOutput.Ok(result); return ResponseOutput.Ok(result);
} }
@ -1130,8 +1168,8 @@ namespace IRaCIS.Application.Services
break; break;
// 肿瘤学 // 肿瘤学
case ReadingCategory.Global: case ReadingCategory.Global:
var subjectId = await _readModuleRepository.Where(x => x.Id == taskInfo.SouceReadModuleId).Select(x => x.SubjectVisitId).FirstOrDefaultAsync(); var subjectVisitId = 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) needReadList=await _readModuleRepository.Where(x => x.SubjectVisitId == subjectVisitId && x.ModuleType==ModuleTypeEnum.Oncology)
.Select(x => new ReadingGenerataTaskDTO .Select(x => new ReadingGenerataTaskDTO
{ {
IsUrgent = x.IsUrgent ?? false, IsUrgent = x.IsUrgent ?? false,
@ -1141,7 +1179,12 @@ namespace IRaCIS.Application.Services
ReadModuleId = x.Id, ReadModuleId = x.Id,
ReadingCategory = typeChangeDic[x.ModuleType], ReadingCategory = typeChangeDic[x.ModuleType],
}).ToListAsync(); }).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() await _visitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand()
@ -1177,10 +1220,11 @@ namespace IRaCIS.Application.Services
var visitTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).AsNoTracking().FirstNotNullAsync(); 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=await _visitTaskRepository.Where(x=>x.ArmEnum== visitTask.ArmEnum&&x.TaskState==TaskState.Effect&&x.SourceSubjectVisitId== visitTask.SourceSubjectVisitId
visitTaskids.Add(visitTask.ConsistentAnalysisOriginalTaskId.Value); &&x.SouceReadModuleId==visitTask.SouceReadModuleId && x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState == ReadingTaskState.HaveSigned).Select(x => x.Id).ToListAsync();
} }
else else
{ {
@ -1188,7 +1232,7 @@ namespace IRaCIS.Application.Services
visitTaskids = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReadingCategory != ReadingCategory.Judge visitTaskids = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReadingCategory != ReadingCategory.Judge
&& x.TaskState== TaskState.Effect && x.TaskState== TaskState.Effect
&& x.IsAnalysisCreate==false && 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 { var trialInfo = await _trialRepository.Where(x => x.Id == visitTask.TrialId).Select(x=> new {