增加有阅片期 无全局触发PD
This commit is contained in:
@@ -237,6 +237,8 @@ namespace IRaCIS.Core.Application.Service
|
||||
//单双中
|
||||
t.TrialReadingCriterion.ReadingType,
|
||||
|
||||
t.TrialReadingCriterion.IsGlobalReading,
|
||||
|
||||
t.TrialReadingCriterion.CriterionType,
|
||||
//有序与否
|
||||
t.TrialReadingCriterion.IsReadingTaskViewInOrder,
|
||||
@@ -369,7 +371,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
|
||||
//仲裁在访视上 就没有全局阅片 没有阅片期
|
||||
if (taskInfo.ArbitrationRule == ArbitrationRule.Visit)
|
||||
if (taskInfo.ArbitrationRule == ArbitrationRule.Visit || (taskInfo.ArbitrationRule == ArbitrationRule.Reading && taskInfo.IsGlobalReading == false))
|
||||
{
|
||||
//找到 访视,裁判 所有有效任务(不可能有全局的) 访视和裁判任务的SourceSubjectVisitId 一样
|
||||
var taskList = await _visitTaskRepository.Where(t => t.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId && t.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId && t.IsAnalysisCreate == false && t.TaskState == TaskState.Effect &&
|
||||
@@ -406,8 +408,8 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
|
||||
}
|
||||
//仲裁在阅片期
|
||||
else if (taskInfo.ArbitrationRule == ArbitrationRule.Reading)
|
||||
//仲裁在阅片期 并且有阅片期
|
||||
else if (taskInfo.ArbitrationRule == ArbitrationRule.Reading && taskInfo.IsGlobalReading)
|
||||
{
|
||||
//是访视任务 不可能是裁判任务(访视上不会生成裁判),也不会是全局任务(全局任务 SourceSubjectVisitId=null )
|
||||
if (taskInfo.SourceSubjectVisitId != null)
|
||||
@@ -868,13 +870,14 @@ namespace IRaCIS.Core.Application.Service
|
||||
var currentLatestPdVisitId = pdSubjectVisitIdList.Last();
|
||||
//标准配置
|
||||
var trialReadingCriterionConfig = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == trialReadingCriterionId).Select(t => new
|
||||
{ TrialReadingCriterionId = t.Id, t.ReadingType, t.IsReadingTaskViewInOrder, t.CriterionType, t.ArbitrationRule }).FirstNotNullAsync();
|
||||
{ TrialReadingCriterionId = t.Id, t.ReadingType, t.IsReadingTaskViewInOrder, t.CriterionType, t.ArbitrationRule, t.IsGlobalReading }).FirstNotNullAsync();
|
||||
|
||||
// 项目双重
|
||||
if (trialReadingCriterionConfig.ReadingType == ReadingMethod.Double && trialReadingCriterionConfig.IsReadingTaskViewInOrder == ReadingOrder.InOrder)
|
||||
{
|
||||
//仲裁在访视上面
|
||||
if (trialReadingCriterionConfig.ArbitrationRule == ArbitrationRule.Visit)
|
||||
//仲裁在访视上面 或者有阅片期 但是没有全局任务
|
||||
if (trialReadingCriterionConfig.ArbitrationRule == ArbitrationRule.Visit ||
|
||||
(trialReadingCriterionConfig.ArbitrationRule == ArbitrationRule.Reading && trialReadingCriterionConfig.IsGlobalReading == false))
|
||||
{
|
||||
//在两位阅片人读完访视后,如果有裁判者等裁判读完,如果无裁判则等第二个人的读完
|
||||
|
||||
@@ -910,8 +913,8 @@ namespace IRaCIS.Core.Application.Service
|
||||
}
|
||||
|
||||
}
|
||||
//仲裁在阅片期上
|
||||
else if (trialReadingCriterionConfig.ArbitrationRule == ArbitrationRule.Reading)
|
||||
//仲裁在阅片期上 并且有全局任务
|
||||
else if (trialReadingCriterionConfig.ArbitrationRule == ArbitrationRule.Reading && trialReadingCriterionConfig.IsGlobalReading)
|
||||
{
|
||||
var existReadModule = await _readModuleRepository.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.SubjectVisitId == currentLatestPdVisitId && t.ReadingSetType == ReadingSetType.ImageReading)
|
||||
.FirstOrDefaultAsync();
|
||||
@@ -923,6 +926,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
var taskList = await _visitTaskRepository.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.IsAnalysisCreate == false && t.TaskState == TaskState.Effect && t.SouceReadModuleId == existReadModule.Id
|
||||
&& (t.ReadingCategory == ReadingCategory.Global || t.ReadingCategory == ReadingCategory.Judge)).ToListAsync();
|
||||
|
||||
@@ -1285,23 +1289,23 @@ x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.LesionNumber && x.Readi
|
||||
|
||||
case CriterionType.PCWG3:
|
||||
var questionAnsewer = await _readingGlobalTaskInfoRepository.Where(t => t.TaskId == visitTaskId && t.TrialReadingQuestion.QuestionType == QuestionType.SiteVisitForTumorEvaluation).FirstOrDefaultAsync();
|
||||
if (questionAnsewer != null&& questionAnsewer.Answer.IsNotNullOrEmpty())
|
||||
if (questionAnsewer != null && questionAnsewer.Answer.IsNotNullOrEmpty())
|
||||
{
|
||||
answer = questionAnsewer.Answer;
|
||||
}
|
||||
else
|
||||
{
|
||||
var visittaskList=await _visitTaskRepository.Where(t => t.Id == visitTaskId ).Select(x=>x.RelatedVisitTaskIdList).FirstOrDefaultAsync();
|
||||
var visittaskList = await _visitTaskRepository.Where(t => t.Id == visitTaskId).Select(x => x.RelatedVisitTaskIdList).FirstOrDefaultAsync();
|
||||
|
||||
var task = await _visitTaskRepository.Where(x => visittaskList.Contains(x.Id) && x.ReadingCategory == ReadingCategory.Visit).OrderByDescending(x => x.VisitTaskNum).FirstOrDefaultAsync();
|
||||
if (task != null)
|
||||
{
|
||||
answer= await _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == task.Id && t.ReadingQuestionTrial.QuestionType == QuestionType.SiteVisitForTumorEvaluation)
|
||||
answer = await _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == task.Id && t.ReadingQuestionTrial.QuestionType == QuestionType.SiteVisitForTumorEvaluation)
|
||||
.Select(t => t.Answer).FirstOrDefaultAsync();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user