修改裁判标记设置方法
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
86692d220a
commit
eb77fcfa2f
|
@ -1551,154 +1551,125 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
|
|
||||||
var addReadingPeriodNum = isGlobalReading ? ReadingCommon.TaskNumDic[ReadingCategory.Global] : 0;
|
var addReadingPeriodNum = isGlobalReading ? ReadingCommon.TaskNumDic[ReadingCategory.Global] : 0;
|
||||||
|
|
||||||
if (subjectJudgeList.Count > 0)
|
|
||||||
{
|
|
||||||
|
|
||||||
//访视的标记先都默认为null
|
//已完成的全局数量
|
||||||
|
var finishedGlobalCount = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode && t.ReadingCategory == ReadingCategory.Global)
|
||||||
|
.GroupBy(t => t.VisitTaskNum).Where(g => g.Count() == 2).Select(g => g.Key).Count();
|
||||||
|
|
||||||
|
|
||||||
|
visitItem.IsJudgeSelect = null;
|
||||||
visitItem.IsTrigerJudge = null;
|
visitItem.IsTrigerJudge = null;
|
||||||
visitItem.IsJudgeSelect = null;
|
|
||||||
|
|
||||||
|
if (finishedGlobalCount != 0)
|
||||||
var maxFinishedJudge = subjectJudgeList.Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned).OrderByDescending(t => t.VisitTaskNum).FirstOrDefault();
|
|
||||||
|
|
||||||
var maxNotFinishedJudge = subjectJudgeList.Where(t => t.ReadingTaskState != ReadingTaskState.HaveSigned).OrderByDescending(t => t.VisitTaskNum).FirstOrDefault();
|
|
||||||
|
|
||||||
//找到<= 完成最大访视任务号最近的阅片期号
|
|
||||||
var latestFinishedReadingPeriodTaskNum = subjectReadingPeriondVisitNumList.Select(t => t + addReadingPeriodNum).Where(t => t <= subjectMaxFinishedTaskNum).Max();
|
|
||||||
|
|
||||||
|
|
||||||
//n个裁判任务都未完成
|
|
||||||
if (maxFinishedJudge == null && maxNotFinishedJudge != null)
|
|
||||||
{
|
{
|
||||||
if (visitItem.VisitTaskNum < maxNotFinishedJudge.VisitTaskNum)
|
//最大的全局是否产生裁判
|
||||||
|
|
||||||
|
var subjectMaxFinishedGlobalTaskNum = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode && t.ReadingCategory == ReadingCategory.Global)
|
||||||
|
.GroupBy(t => t.VisitTaskNum).Where(g => g.Count() == 2).Select(g => g.Key).DefaultIfEmpty().Max();
|
||||||
|
|
||||||
|
//最大的完成的全局是否产生裁判
|
||||||
|
if (subjectJudgeList.Any(t => t.VisitTaskNum == (subjectMaxFinishedGlobalTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Judge])))
|
||||||
{
|
{
|
||||||
visitItem.IsTrigerJudge = false;
|
|
||||||
visitItem.IsJudgeSelect = null;
|
var maxJudge = subjectJudgeList.FirstOrDefault(t => t.VisitTaskNum == (subjectMaxFinishedGlobalTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Judge]));
|
||||||
}
|
|
||||||
//大于当前未完成的全局裁判 后续可能有已完成的未产生裁判的全局 设置默认选择R1
|
//最大裁判完成了
|
||||||
else if (visitItem.VisitTaskNum <= latestFinishedReadingPeriodTaskNum)
|
if (maxJudge.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
{
|
{
|
||||||
//不存在裁判 将R1设置
|
if (visitItem.VisitTaskNum < maxJudge.VisitTaskNum)
|
||||||
if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
|
{
|
||||||
|
//触发裁判
|
||||||
|
visitItem.IsTrigerJudge = true;
|
||||||
|
|
||||||
|
if (visitItem.ArmEnum == maxJudge.JudgeArmEnum)
|
||||||
{
|
{
|
||||||
visitItem.IsJudgeSelect = true;
|
visitItem.IsJudgeSelect = true;
|
||||||
visitItem.IsTrigerJudge = false;
|
visitItem.JudgeNote = maxJudge.JudgeNote;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
//裁判没选择的人设置为false
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
visitItem.IsJudgeSelect = false;
|
visitItem.IsJudgeSelect = false;
|
||||||
visitItem.IsTrigerJudge = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
visitItem.IsTrigerJudge = null;
|
//后续访视 未知 默认都是null
|
||||||
visitItem.IsJudgeSelect = null;
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//找到当前未阅最大裁判之前的已完成的最大裁判任务
|
||||||
|
var maxFinishedJudge = subjectJudgeList.Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned).OrderByDescending(t => t.VisitTaskNum).FirstOrDefault();
|
||||||
|
|
||||||
|
if (maxFinishedJudge == null)
|
||||||
|
{
|
||||||
|
// 为空 裁判选择标记默认就是null 不用处理
|
||||||
|
|
||||||
|
if (visitItem.VisitTaskNum < maxJudge.VisitTaskNum)
|
||||||
|
{
|
||||||
|
visitItem.IsTrigerJudge = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//n个全局裁判都完成了,那么以最后一次裁判选择的为准
|
else
|
||||||
else if (maxFinishedJudge != null && maxNotFinishedJudge == null)
|
|
||||||
{
|
{
|
||||||
if (visitItem.ArmEnum == maxFinishedJudge.JudgeArmEnum && visitItem.VisitTaskNum < maxFinishedJudge.VisitTaskNum)
|
if (visitItem.VisitTaskNum < maxFinishedJudge.VisitTaskNum)
|
||||||
|
{
|
||||||
|
visitItem.IsTrigerJudge = true;
|
||||||
|
|
||||||
|
if (visitItem.ArmEnum == maxFinishedJudge.JudgeArmEnum)
|
||||||
{
|
{
|
||||||
visitItem.IsJudgeSelect = true;
|
visitItem.IsJudgeSelect = true;
|
||||||
visitItem.JudgeNote = maxFinishedJudge.JudgeNote;
|
visitItem.JudgeNote = maxFinishedJudge.JudgeNote;
|
||||||
}
|
}
|
||||||
//裁判没选择的人设置为false
|
//裁判没选择的人设置为false
|
||||||
else if (visitItem.VisitTaskNum < maxFinishedJudge.VisitTaskNum)
|
|
||||||
{
|
|
||||||
visitItem.IsJudgeSelect = false;
|
|
||||||
}
|
|
||||||
//裁判都完成的后续 可能有已完成全局,但是没有产生裁判
|
|
||||||
else if (visitItem.VisitTaskNum <= latestFinishedReadingPeriodTaskNum)
|
|
||||||
{
|
|
||||||
//不存在裁判 将R1设置
|
|
||||||
if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
|
|
||||||
{
|
|
||||||
visitItem.IsJudgeSelect = true;
|
|
||||||
visitItem.IsTrigerJudge = false;
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
visitItem.IsJudgeSelect = false;
|
visitItem.IsJudgeSelect = false;
|
||||||
visitItem.IsTrigerJudge = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (visitItem.VisitTaskNum > maxFinishedJudge.VisitTaskNum && visitItem.VisitTaskNum < maxJudge.VisitTaskNum)
|
||||||
{
|
{
|
||||||
visitItem.IsTrigerJudge = null;
|
//完成裁判 和未完成裁判之间的 裁判选择标记默认是null
|
||||||
visitItem.IsJudgeSelect = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//n个完成 m个未完成
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//两个都不为null 肯定是不同的裁判
|
|
||||||
|
|
||||||
//在未完成裁判之后的
|
|
||||||
if (visitItem.VisitTaskNum > maxNotFinishedJudge.VisitTaskNum)
|
|
||||||
{
|
|
||||||
visitItem.IsTrigerJudge = null;
|
|
||||||
visitItem.IsJudgeSelect = null;
|
|
||||||
}
|
|
||||||
//完成裁判之后的 ,和未完成裁判之前的
|
|
||||||
else if (visitItem.VisitTaskNum < maxNotFinishedJudge.VisitTaskNum && visitItem.VisitTaskNum > maxFinishedJudge.VisitTaskNum)
|
|
||||||
{
|
|
||||||
visitItem.IsTrigerJudge = true;
|
visitItem.IsTrigerJudge = true;
|
||||||
visitItem.IsJudgeSelect = null;
|
|
||||||
}
|
|
||||||
else if (visitItem.ArmEnum == maxFinishedJudge.JudgeArmEnum && visitItem.VisitTaskNum < maxFinishedJudge.VisitTaskNum)
|
|
||||||
{
|
|
||||||
visitItem.IsJudgeSelect = true;
|
|
||||||
visitItem.JudgeNote = maxFinishedJudge.JudgeNote;
|
|
||||||
}
|
|
||||||
else if (visitItem.VisitTaskNum < maxFinishedJudge.VisitTaskNum)
|
|
||||||
{
|
|
||||||
visitItem.IsJudgeSelect = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
//在未完成全局裁判之后的访视 未知 默认都是null
|
||||||
//没有产生裁判 有可能一个人没做完,也有可能做完了没产生裁判
|
|
||||||
//两个人都做了(1、两个人都阅片完,确实没产生,2、两个人都阅片完,还没到阅片期,没产生裁判)
|
|
||||||
|
|
||||||
//默认都设置为null 仅仅处理 阅片期读完了没产生裁判 裁判选择标记需要设置的访视
|
|
||||||
visitItem.IsJudgeSelect = null;
|
|
||||||
visitItem.IsTrigerJudge = null;
|
|
||||||
|
|
||||||
|
|
||||||
if (subjectReadingPeriondVisitNumList != null && subjectReadingPeriondVisitNumList.Count() > 0)
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
var minReadingPeriodTaskNum = subjectReadingPeriondVisitNumList.Min() + addReadingPeriodNum;
|
//最大的完成的全局未产生裁判
|
||||||
|
|
||||||
//有阅片期读完了 肯定要读到最小阅片期号后面
|
if (visitItem.VisitTaskNum < subjectMaxFinishedGlobalTaskNum)
|
||||||
|
|
||||||
if (subjectMaxFinishedTaskNum >= minReadingPeriodTaskNum)
|
|
||||||
{
|
{
|
||||||
//找到<= 完成最大访视任务号最近的阅片期号
|
visitItem.IsTrigerJudge = false;
|
||||||
var latestFinishedReadingPeriodTaskNum = subjectReadingPeriondVisitNumList.Select(t => t + addReadingPeriodNum).Where(t => t <= subjectMaxFinishedTaskNum).Max();
|
|
||||||
|
|
||||||
//小于已完成的阅片期的访视 设置触发裁判标志为否 并设置默认的裁判选择标记 (两个人肯定做完了)
|
|
||||||
if (visitItem.VisitTaskNum <= latestFinishedReadingPeriodTaskNum)
|
|
||||||
{
|
|
||||||
|
|
||||||
//不存在裁判 将R1设置
|
|
||||||
if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
|
if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
|
||||||
{
|
{
|
||||||
visitItem.IsJudgeSelect = true;
|
visitItem.IsJudgeSelect = true;
|
||||||
visitItem.IsTrigerJudge = false;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
visitItem.IsJudgeSelect = false;
|
visitItem.IsJudgeSelect = false;
|
||||||
visitItem.IsTrigerJudge = false;
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//未产生裁判的全局之后的访视 两个标记都是null (后续可能还有全局,但是全局两个人没做完)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1706,13 +1677,9 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2452,7 +2419,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
|
|
||||||
// G-2 G-4 可能选择的是不同的医生,要以最后一次选择的为准
|
// G-2 G-4 可能选择的是不同的医生,要以最后一次选择的为准
|
||||||
JudgeAgreeCount = g.Where(t => t.ReadingCategory == ReadingCategory.Global && t.JudgeVisitTaskId != null
|
JudgeAgreeCount = g.Where(t => t.ReadingCategory == ReadingCategory.Global && t.JudgeVisitTaskId != null
|
||||||
&& t.JudgeVisitTask.JudgeResultTaskId == t.Id && t.VisitTaskNum== g.Where(t => t.ReadingCategory == ReadingCategory.Global && t.JudgeVisitTaskId != null).Max(t => t.VisitTaskNum))
|
&& t.JudgeVisitTask.JudgeResultTaskId == t.Id && t.VisitTaskNum == g.Where(t => t.ReadingCategory == ReadingCategory.Global && t.JudgeVisitTaskId != null).Max(t => t.VisitTaskNum))
|
||||||
.Select(t => t.SubjectId).Distinct().Count(),
|
.Select(t => t.SubjectId).Distinct().Count(),
|
||||||
|
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
Loading…
Reference in New Issue