Test.EIImageViewer
parent
078fff447c
commit
700f6488aa
|
@ -143,6 +143,21 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
//每个访视 根据项目配置生成任务 双审生成两个
|
//每个访视 根据项目配置生成任务 双审生成两个
|
||||||
|
|
||||||
|
TaskUrgentType? taskUrgentType = null;
|
||||||
|
|
||||||
|
if (subjectVisit.PDState == PDStateEnum.PDProgress)
|
||||||
|
{
|
||||||
|
taskUrgentType = TaskUrgentType.PDProgress;
|
||||||
|
}
|
||||||
|
else if (subjectVisit.IsEnrollmentConfirm)
|
||||||
|
{
|
||||||
|
taskUrgentType = TaskUrgentType.EnrollmentConfirm;
|
||||||
|
}
|
||||||
|
else if (subjectVisit.IsUrgent)
|
||||||
|
{
|
||||||
|
taskUrgentType = TaskUrgentType.VisitUrgent;
|
||||||
|
}
|
||||||
|
|
||||||
if (trialReadingCriterionConfig.ReadingType == ReadingMethod.Double)
|
if (trialReadingCriterionConfig.ReadingType == ReadingMethod.Double)
|
||||||
{
|
{
|
||||||
//未防止脏数据 这里也多判断一次
|
//未防止脏数据 这里也多判断一次
|
||||||
|
@ -152,26 +167,13 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
VisitTask? task1 = null;
|
VisitTask? task1 = null;
|
||||||
VisitTask? task2 = null;
|
VisitTask? task2 = null;
|
||||||
|
|
||||||
if (!existCurrentVisitTaskList.Any(t => t.ArmEnum == Arm.DoubleReadingArm1))
|
if (!existCurrentVisitTaskList.Any(t => t.ArmEnum == Arm.DoubleReadingArm1))
|
||||||
{
|
{
|
||||||
currentMaxCodeInt = currentMaxCodeInt + 1;
|
currentMaxCodeInt = currentMaxCodeInt + 1;
|
||||||
|
|
||||||
|
|
||||||
TaskUrgentType? taskUrgentType = null;
|
|
||||||
|
|
||||||
if (subjectVisit.PDState == PDStateEnum.PDProgress)
|
|
||||||
{
|
|
||||||
taskUrgentType = TaskUrgentType.PDProgress;
|
|
||||||
}
|
|
||||||
else if (subjectVisit.IsEnrollmentConfirm)
|
|
||||||
{
|
|
||||||
taskUrgentType = TaskUrgentType.EnrollmentConfirm;
|
|
||||||
}
|
|
||||||
else if (subjectVisit.IsUrgent)
|
|
||||||
{
|
|
||||||
taskUrgentType = TaskUrgentType.VisitUrgent;
|
|
||||||
}
|
|
||||||
|
|
||||||
task1 = await _visitTaskRepository.AddAsync(new VisitTask()
|
task1 = await _visitTaskRepository.AddAsync(new VisitTask()
|
||||||
{
|
{
|
||||||
|
@ -208,6 +210,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
IsUrgent = subjectVisit.IsUrgent,
|
IsUrgent = subjectVisit.IsUrgent,
|
||||||
TaskBlindName = blindTaskName,
|
TaskBlindName = blindTaskName,
|
||||||
TaskName = subjectVisit.VisitName,
|
TaskName = subjectVisit.VisitName,
|
||||||
|
TaskUrgentType = taskUrgentType,
|
||||||
VisitTaskNum = subjectVisit.VisitNum,
|
VisitTaskNum = subjectVisit.VisitNum,
|
||||||
//CheckPassedTime = subjectVisit.CheckPassedTime,
|
//CheckPassedTime = subjectVisit.CheckPassedTime,
|
||||||
ArmEnum = Arm.DoubleReadingArm2,//特殊
|
ArmEnum = Arm.DoubleReadingArm2,//特殊
|
||||||
|
@ -261,6 +264,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
TaskBlindName = blindTaskName,
|
TaskBlindName = blindTaskName,
|
||||||
TaskName = subjectVisit.VisitName,
|
TaskName = subjectVisit.VisitName,
|
||||||
VisitTaskNum = subjectVisit.VisitNum,
|
VisitTaskNum = subjectVisit.VisitNum,
|
||||||
|
TaskUrgentType = taskUrgentType,
|
||||||
//CheckPassedTime = subjectVisit.CheckPassedTime,
|
//CheckPassedTime = subjectVisit.CheckPassedTime,
|
||||||
ArmEnum = Arm.SingleReadingArm, //特殊
|
ArmEnum = Arm.SingleReadingArm, //特殊
|
||||||
Code = currentMaxCodeInt + 1,
|
Code = currentMaxCodeInt + 1,
|
||||||
|
@ -435,7 +439,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
int currentMaxCodeInt = cacheMaxCodeInt > dbMaxCode ? cacheMaxCodeInt : dbMaxCode;
|
int currentMaxCodeInt = cacheMaxCodeInt > dbMaxCode ? cacheMaxCodeInt : dbMaxCode;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
switch (generateTaskCommand.ReadingCategory)
|
switch (generateTaskCommand.ReadingCategory)
|
||||||
|
@ -451,6 +455,29 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
foreach (var subjectVisit in subjectGroup.SubjectVisitList)
|
foreach (var subjectVisit in subjectGroup.SubjectVisitList)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
var subjectVisitInfo = await _subjectVisitRepository.Where(x => x.Id == subjectVisit.Id).Select(x => new
|
||||||
|
{
|
||||||
|
x.PDState,
|
||||||
|
x.IsEnrollmentConfirm,
|
||||||
|
x.IsUrgent,
|
||||||
|
}).FirstNotNullAsync();
|
||||||
|
|
||||||
|
TaskUrgentType? taskUrgentType = null;
|
||||||
|
|
||||||
|
if (subjectVisitInfo.PDState == PDStateEnum.PDProgress)
|
||||||
|
{
|
||||||
|
taskUrgentType = TaskUrgentType.PDProgress;
|
||||||
|
}
|
||||||
|
else if (subjectVisitInfo.IsEnrollmentConfirm)
|
||||||
|
{
|
||||||
|
taskUrgentType = TaskUrgentType.EnrollmentConfirm;
|
||||||
|
}
|
||||||
|
else if (subjectVisitInfo.IsUrgent)
|
||||||
|
{
|
||||||
|
taskUrgentType = TaskUrgentType.VisitUrgent;
|
||||||
|
}
|
||||||
|
|
||||||
var visitNumList = _subjectVisitRepository.Where(t => t.SubjectId == subjectGroup.SubjectId && t.IsLostVisit == false).OrderBy(t => t.VisitNum).Select(t => t.VisitNum).ToList();
|
var visitNumList = _subjectVisitRepository.Where(t => t.SubjectId == subjectGroup.SubjectId && t.IsLostVisit == false).OrderBy(t => t.VisitNum).Select(t => t.VisitNum).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
@ -507,6 +534,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
SubjectId = subjectVisit.SubjectId,
|
SubjectId = subjectVisit.SubjectId,
|
||||||
IsUrgent = subjectVisit.IsUrgent,
|
IsUrgent = subjectVisit.IsUrgent,
|
||||||
TaskBlindName = blindTaskName,
|
TaskBlindName = blindTaskName,
|
||||||
|
TaskUrgentType = taskUrgentType,
|
||||||
|
|
||||||
TaskName = subjectVisit.VisitName,
|
TaskName = subjectVisit.VisitName,
|
||||||
VisitTaskNum = subjectVisit.VisitNum,
|
VisitTaskNum = subjectVisit.VisitNum,
|
||||||
//CheckPassedTime = subjectVisit.CheckPassedTime,
|
//CheckPassedTime = subjectVisit.CheckPassedTime,
|
||||||
|
@ -532,6 +561,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
IsUrgent = subjectVisit.IsUrgent,
|
IsUrgent = subjectVisit.IsUrgent,
|
||||||
TaskBlindName = blindTaskName,
|
TaskBlindName = blindTaskName,
|
||||||
TaskName = subjectVisit.VisitName,
|
TaskName = subjectVisit.VisitName,
|
||||||
|
TaskUrgentType = taskUrgentType,
|
||||||
VisitTaskNum = subjectVisit.VisitNum,
|
VisitTaskNum = subjectVisit.VisitNum,
|
||||||
//CheckPassedTime = subjectVisit.CheckPassedTime,
|
//CheckPassedTime = subjectVisit.CheckPassedTime,
|
||||||
ArmEnum = Arm.DoubleReadingArm2,//特殊
|
ArmEnum = Arm.DoubleReadingArm2,//特殊
|
||||||
|
@ -814,6 +844,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
IsUrgent = subjectVisit.IsUrgent,
|
IsUrgent = subjectVisit.IsUrgent,
|
||||||
TaskBlindName = blindTaskName,
|
TaskBlindName = blindTaskName,
|
||||||
TaskName = subjectVisit.VisitName,
|
TaskName = subjectVisit.VisitName,
|
||||||
|
TaskUrgentType = taskUrgentType,
|
||||||
VisitTaskNum = subjectVisit.VisitNum,
|
VisitTaskNum = subjectVisit.VisitNum,
|
||||||
//CheckPassedTime = subjectVisit.CheckPassedTime,
|
//CheckPassedTime = subjectVisit.CheckPassedTime,
|
||||||
ArmEnum = Arm.SingleReadingArm, //特殊
|
ArmEnum = Arm.SingleReadingArm, //特殊
|
||||||
|
@ -935,7 +966,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
Code = currentMaxCodeInt + 1,
|
Code = currentMaxCodeInt + 1,
|
||||||
TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 1, nameof(VisitTask)),
|
TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 1, nameof(VisitTask)),
|
||||||
ReadingCategory = ReadingCategory.Visit,
|
ReadingCategory = ReadingCategory.Visit,
|
||||||
|
TaskUrgentType = latestTask.TaskUrgentType,
|
||||||
SourceSubjectVisitId = latestTask.SourceSubjectVisitId,
|
SourceSubjectVisitId = latestTask.SourceSubjectVisitId,
|
||||||
VisitTaskNum = latestTask.VisitTaskNum,
|
VisitTaskNum = latestTask.VisitTaskNum,
|
||||||
TaskBlindName = visitBlindConfig.BlindFollowUpPrefix + " " + visitNumList.IndexOf(latestTask.VisitTaskNum),
|
TaskBlindName = visitBlindConfig.BlindFollowUpPrefix + " " + visitNumList.IndexOf(latestTask.VisitTaskNum),
|
||||||
|
@ -1036,7 +1067,30 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
var reReadingVisitTask = generateTaskCommand.ReReadingTask;
|
var reReadingVisitTask = generateTaskCommand.ReReadingTask;
|
||||||
|
|
||||||
var subjectVisitUrgent = _subjectVisitRepository.Where(t => t.Id == reReadingVisitTask.SourceSubjectVisitId).Select(t=>t.IsUrgent).FirstOrDefault();
|
|
||||||
|
|
||||||
|
|
||||||
|
var subjectVisitUrgentInfo = await _subjectVisitRepository.Where(x => x.Id == reReadingVisitTask.SourceSubjectVisitId).Select(x => new
|
||||||
|
{
|
||||||
|
x.PDState,
|
||||||
|
x.IsEnrollmentConfirm,
|
||||||
|
x.IsUrgent,
|
||||||
|
}).FirstNotNullAsync();
|
||||||
|
|
||||||
|
TaskUrgentType? taskUrgent = null;
|
||||||
|
|
||||||
|
if (subjectVisitUrgentInfo.PDState == PDStateEnum.PDProgress)
|
||||||
|
{
|
||||||
|
taskUrgent = TaskUrgentType.PDProgress;
|
||||||
|
}
|
||||||
|
else if (subjectVisitUrgentInfo.IsEnrollmentConfirm)
|
||||||
|
{
|
||||||
|
taskUrgent = TaskUrgentType.EnrollmentConfirm;
|
||||||
|
}
|
||||||
|
else if (subjectVisitUrgentInfo.IsUrgent)
|
||||||
|
{
|
||||||
|
taskUrgent = TaskUrgentType.VisitUrgent;
|
||||||
|
}
|
||||||
|
|
||||||
var newTask = await _visitTaskRepository.AddAsync(new VisitTask()
|
var newTask = await _visitTaskRepository.AddAsync(new VisitTask()
|
||||||
{
|
{
|
||||||
|
@ -1047,7 +1101,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
TaskName = reReadingVisitTask.TaskName,
|
TaskName = reReadingVisitTask.TaskName,
|
||||||
TaskBlindName = reReadingVisitTask.TaskBlindName,
|
TaskBlindName = reReadingVisitTask.TaskBlindName,
|
||||||
|
|
||||||
IsUrgent = reReadingVisitTask.IsAnalysisCreate?false: subjectVisitUrgent,
|
IsUrgent = reReadingVisitTask.IsAnalysisCreate?false: subjectVisitUrgentInfo.IsUrgent,
|
||||||
|
TaskUrgentType = reReadingVisitTask.IsAnalysisCreate ? null : taskUrgent,
|
||||||
|
|
||||||
VisitTaskNum = reReadingVisitTask.VisitTaskNum,
|
VisitTaskNum = reReadingVisitTask.VisitTaskNum,
|
||||||
ReadingCategory = reReadingVisitTask.ReadingCategory,
|
ReadingCategory = reReadingVisitTask.ReadingCategory,
|
||||||
|
@ -1073,7 +1128,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
// AllocateTime = DateTime.Now,
|
// AllocateTime = DateTime.Now,
|
||||||
//DoctorUserId = reReadingVisitTask.DoctorUserId,
|
//DoctorUserId = reReadingVisitTask.DoctorUserId,
|
||||||
|
|
||||||
});;
|
});
|
||||||
|
|
||||||
generateTaskCommand.Action(newTask);
|
generateTaskCommand.Action(newTask);
|
||||||
|
|
||||||
|
@ -1264,6 +1319,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
// 需要添加全局任务再添加
|
// 需要添加全局任务再添加
|
||||||
if (originalTaskInfo.TrialReadingCriterion.IsGlobalReading)
|
if (originalTaskInfo.TrialReadingCriterion.IsGlobalReading)
|
||||||
{
|
{
|
||||||
|
var visitNumList = _subjectVisitRepository.Where(t => t.SubjectId == originalTaskInfo.SubjectId && t.IsLostVisit == false).OrderBy(t => t.VisitNum).Select(t => t.VisitNum).ToList();
|
||||||
foreach (var item in generateTaskCommand.ReadingGenerataTaskList)
|
foreach (var item in generateTaskCommand.ReadingGenerataTaskList)
|
||||||
{
|
{
|
||||||
item.VisitNum = originalTaskInfo.VisitTaskNum;
|
item.VisitNum = originalTaskInfo.VisitTaskNum;
|
||||||
|
@ -1275,14 +1331,15 @@ namespace IRaCIS.Core.Application.Service
|
||||||
VisitTaskNum = item.VisitNum + ReadingCommon.TaskNumDic[ReadingCategory.Global],
|
VisitTaskNum = item.VisitNum + ReadingCommon.TaskNumDic[ReadingCategory.Global],
|
||||||
TaskName = item.ReadingName,
|
TaskName = item.ReadingName,
|
||||||
ArmEnum = originalTaskInfo.ArmEnum,//特殊
|
ArmEnum = originalTaskInfo.ArmEnum,//特殊
|
||||||
|
TaskUrgentType= originalTaskInfo.TaskUrgentType,
|
||||||
|
TaskUrgentRemake= originalTaskInfo.TaskUrgentRemake,
|
||||||
DoctorUserId = originalTaskInfo.DoctorUserId,
|
DoctorUserId = originalTaskInfo.DoctorUserId,
|
||||||
AllocateTime = DateTime.Now,
|
AllocateTime = DateTime.Now,
|
||||||
TaskAllocationState = TaskAllocationState.Allocated,
|
TaskAllocationState = TaskAllocationState.Allocated,
|
||||||
SuggesteFinishedTime = DateTime.Now.AddDays(7),
|
SuggesteFinishedTime = DateTime.Now.AddDays(7),
|
||||||
|
|
||||||
Code = currentMaxCodeInt + 1,
|
Code = currentMaxCodeInt + 1,
|
||||||
TaskBlindName = "G-"+ item.VisitNum.ToString("0.##"),
|
TaskBlindName = "G-"+ visitNumList.IndexOf(originalTaskInfo.VisitTaskNum),
|
||||||
SouceReadModuleId = item.ReadModuleId,
|
SouceReadModuleId = item.ReadModuleId,
|
||||||
TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 1, nameof(VisitTask)),
|
TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 1, nameof(VisitTask)),
|
||||||
ReadingCategory = item.ReadingCategory,
|
ReadingCategory = item.ReadingCategory,
|
||||||
|
|
|
@ -46,18 +46,37 @@ namespace IRaCIS.Application.Services
|
||||||
public async Task<IResponseOutput> BatchSubmitGlobalReadingInfo(BatchSubmitGlobalReadingInfo inDto)
|
public async Task<IResponseOutput> BatchSubmitGlobalReadingInfo(BatchSubmitGlobalReadingInfo inDto)
|
||||||
{
|
{
|
||||||
await VerifyTaskIsSign(inDto.GlobalTaskId);
|
await VerifyTaskIsSign(inDto.GlobalTaskId);
|
||||||
|
|
||||||
|
var criterionType = await _visitTaskRepository.Where(x => x.Id == inDto.GlobalTaskId).Select(x => x.TrialReadingCriterion.CriterionType).FirstNotNullAsync();
|
||||||
foreach (var item in inDto.VisitTaskAnswerList)
|
foreach (var item in inDto.VisitTaskAnswerList)
|
||||||
{
|
{
|
||||||
foreach (var answer in item.AnswerList)
|
foreach (var answer in item.AnswerList)
|
||||||
{
|
{
|
||||||
await _readingGlobalTaskInfoRepository.BatchDeleteNoTrackingAsync(x => x.GlobalTaskId == inDto.GlobalTaskId && x.TaskId == item.VisitTaskId && x.GlobalAnswerType == answer.GlobalAnswerType && x.QuestionId == answer.QuestionId);
|
await _readingGlobalTaskInfoRepository.BatchDeleteNoTrackingAsync(x => x.GlobalTaskId == inDto.GlobalTaskId && x.TaskId == item.VisitTaskId && x.GlobalAnswerType == answer.GlobalAnswerType && x.QuestionId == answer.QuestionId);
|
||||||
await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == item.VisitTaskId && x.ReadingQuestionTrialId == answer.QuestionId
|
|
||||||
&& x.Answer != answer.Answer && answer.Answer != string.Empty&& answer.Answer!=null
|
|
||||||
, x => new ReadingTaskQuestionAnswer()
|
if (criterionType == CriterionType.PCWG3)
|
||||||
{
|
{
|
||||||
GlobalChangeAnswer = answer.Answer,
|
await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == item.VisitTaskId && x.ReadingQuestionTrialId == answer.QuestionId
|
||||||
IsGlobalChange=true,
|
&& x.Answer != answer.Answer && answer.Answer != string.Empty && answer.Answer != null
|
||||||
});
|
, x => new ReadingTaskQuestionAnswer()
|
||||||
|
{
|
||||||
|
Answer= answer.Answer,
|
||||||
|
GlobalChangeAnswer = answer.Answer,
|
||||||
|
IsGlobalChange = true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == item.VisitTaskId && x.ReadingQuestionTrialId == answer.QuestionId
|
||||||
|
&& x.Answer != answer.Answer && answer.Answer != string.Empty && answer.Answer != null
|
||||||
|
, x => new ReadingTaskQuestionAnswer()
|
||||||
|
{
|
||||||
|
GlobalChangeAnswer = answer.Answer,
|
||||||
|
IsGlobalChange = true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var answers= inDto.VisitTaskAnswerList.SelectMany(x => x.AnswerList.Select(y => new ReadingGlobalTaskInfo()
|
var answers= inDto.VisitTaskAnswerList.SelectMany(x => x.AnswerList.Select(y => new ReadingGlobalTaskInfo()
|
||||||
|
@ -308,6 +327,10 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
List<GetGlobalQuestionType> questionTypes = new List<GetGlobalQuestionType>()
|
||||||
|
{
|
||||||
|
};
|
||||||
if (criterionType != CriterionType.PCWG3)
|
if (criterionType != CriterionType.PCWG3)
|
||||||
{
|
{
|
||||||
x.AgreeOrNot = new List<GlobalQuestionInfo>()
|
x.AgreeOrNot = new List<GlobalQuestionInfo>()
|
||||||
|
@ -322,6 +345,8 @@ namespace IRaCIS.Application.Services
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
questionTypes.Add(new GetGlobalQuestionType() { GlobalAnswerType = GlobalAnswerType.UpdateType, QuestionName = "评估更新类型" });
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -331,14 +356,8 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
List<GetGlobalQuestionType> questionTypes = new List<GetGlobalQuestionType>()
|
|
||||||
{
|
|
||||||
};
|
|
||||||
if(criterionType!= CriterionType.PCWG3)
|
|
||||||
{
|
|
||||||
questionTypes.Add(new GetGlobalQuestionType() { GlobalAnswerType = GlobalAnswerType.UpdateType, QuestionName = "评估更新类型" });
|
|
||||||
|
|
||||||
}
|
|
||||||
questionTypes.Add(new GetGlobalQuestionType() { GlobalAnswerType = GlobalAnswerType.Reason, QuestionName = "全局阅片备注" });
|
questionTypes.Add(new GetGlobalQuestionType() { GlobalAnswerType = GlobalAnswerType.Reason, QuestionName = "全局阅片备注" });
|
||||||
foreach (var item in questionTypes)
|
foreach (var item in questionTypes)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue