修改临时提交
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
57d9a8665d
commit
a8b614e2a5
|
@ -2409,19 +2409,33 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
|
|
||||||
var addReadingPeriodNum = criterion.IsGlobalReading ? ReadingCommon.TaskNumDic[ReadingCategory.Global] : 0;
|
var addReadingPeriodNum = criterion.IsGlobalReading ? ReadingCommon.TaskNumDic[ReadingCategory.Global] : 0;
|
||||||
|
|
||||||
#region 按照阅片期维度统计 有全局任务 和无全局任务统一
|
#region 阅片期可以统一部分
|
||||||
|
|
||||||
//、裁判量J:所有完成阅片(R1和R2均完成)的阅片期里面触发裁判的阅片期数量;
|
|
||||||
//2、总样本量Q:R1,R2均完成阅片的阅片期数量;
|
|
||||||
|
|
||||||
// 有阅片期没有全局 和有阅片期有全局,主要变化点在于 t.ReadingCategory == ReadingCategory.Global 变成了 t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId==trialReadingCriterionId)
|
|
||||||
|
|
||||||
exportInfo.ReadingPeriodCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
exportInfo.ReadingPeriodCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
//找到阅片期已阅片完
|
//找到阅片期已阅片完
|
||||||
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId == trialReadingCriterionId))
|
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId == trialReadingCriterionId))
|
||||||
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum })
|
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum })
|
||||||
.Where(g => g.Count() == 2).Select(g => g.Key.VisitTaskNum).Distinct().Count();
|
.Where(g => g.Count() == 2).Select(g => g.Key.VisitTaskNum).Distinct().Count();
|
||||||
|
|
||||||
|
exportInfo.SubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId)
|
||||||
|
.Where(t => t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
//找到两个人完成的阅片期
|
||||||
|
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId == trialReadingCriterionId))
|
||||||
|
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Any())
|
||||||
|
.Count();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
#region 统一有问题部分
|
||||||
|
|
||||||
|
//最后一个已完成的全局 没产生裁判 (之前有裁判),不算入裁判量
|
||||||
|
exportInfo.judgeSubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId)
|
||||||
|
.Where(t => t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId == trialReadingCriterionId))
|
||||||
|
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2 && g.Key.VisitTaskNum == g.Max(t => t.VisitTaskNum))
|
||||||
|
.Any(g => g.Any(t => t.JudgeVisitTaskId != null)))
|
||||||
|
.Count();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
exportInfo.judgeReadingPeriodCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
exportInfo.judgeReadingPeriodCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
//找到阅片期已阅片完
|
//找到阅片期已阅片完
|
||||||
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId == trialReadingCriterionId))
|
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId == trialReadingCriterionId))
|
||||||
|
@ -2429,31 +2443,6 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
//裁判不要求做完
|
//裁判不要求做完
|
||||||
.Where(g => g.Count() == 2 && g.Any(c => c.JudgeVisitTaskId != null)).Select(g => g.Key.VisitTaskNum).Distinct().Count();
|
.Where(g => g.Count() == 2 && g.Any(c => c.JudgeVisitTaskId != null)).Select(g => g.Key.VisitTaskNum).Distinct().Count();
|
||||||
|
|
||||||
//3、裁判认同数J:触发裁判的阅片期中,阅片人被裁判认同的阅片期数量;
|
|
||||||
//4、总裁判数Q:阅片人完成阅片的阅片期中,触发裁判的阅片期数量;
|
|
||||||
|
|
||||||
exportInfo.DoctorPeriodStatList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
|
||||||
.GroupBy(t => new { t.DoctorUserId, t.DoctorUser.UserName, t.DoctorUser.FullName })
|
|
||||||
//有全局裁判
|
|
||||||
//.Where(g => g.Any(t => t.ReadingCategory == ReadingCategory.Global && t.JudgeVisitTaskId != null))
|
|
||||||
.Select(g => new DoctorJudgeRatio()
|
|
||||||
{
|
|
||||||
DoctorUserId = g.Key.DoctorUserId,
|
|
||||||
UserName = g.Key.UserName,
|
|
||||||
FullName = g.Key.FullName,
|
|
||||||
|
|
||||||
//触发裁判的阅片期的数量 并且裁判要求做完
|
|
||||||
TotalJudgeCount = g.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId == trialReadingCriterionId)
|
|
||||||
&& t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
|
||||||
.Select(t => t.VisitTaskNum).Distinct().Count(),
|
|
||||||
|
|
||||||
JudgeAgreeCount = g.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId == trialReadingCriterionId)
|
|
||||||
&& t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned
|
|
||||||
&& t.JudgeVisitTask.JudgeResultTaskId == t.Id)
|
|
||||||
.Select(t => t.VisitTaskNum).Distinct().Count(),
|
|
||||||
|
|
||||||
}).ToList();
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
if (criterion.IsGlobalReading)
|
if (criterion.IsGlobalReading)
|
||||||
|
@ -2470,7 +2459,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Any())
|
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Any())
|
||||||
.Count();
|
.Count();
|
||||||
|
|
||||||
//最后一个已完成的全局 没产生裁判 (之前有裁判),不算入裁判量
|
//最后一个已完成的全局 没产生裁判 (之前有裁判),不计入裁判量
|
||||||
exportInfo.judgeSubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId)
|
exportInfo.judgeSubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId)
|
||||||
.Where(t => t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
.Where(t => t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
.Where(t => t.ReadingCategory == ReadingCategory.Global)
|
.Where(t => t.ReadingCategory == ReadingCategory.Global)
|
||||||
|
@ -2502,45 +2491,54 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 按照阅片期维度统计 暂时废弃
|
#region 按照阅片期维度统计 暂时废弃
|
||||||
////、裁判量J:所有完成阅片(R1和R2均完成)的阅片期里面触发裁判的阅片期数量;
|
//、裁判量J:所有完成阅片(R1和R2均完成)的阅片期里面触发裁判的阅片期数量;
|
||||||
////2、总样本量Q:R1,R2均完成阅片的阅片期数量;
|
//2、总样本量Q:R1,R2均完成阅片的阅片期数量;
|
||||||
|
|
||||||
//exportInfo.ReadingPeriodCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingCategory == ReadingCategory.Global && t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
exportInfo.ReadingPeriodCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
// .GroupBy(t => new { t.SubjectId, t.SouceReadModuleId })
|
//找到阅片期已阅片完
|
||||||
// .Where(g => g.Count() == 2).Select(g => g.Key.SouceReadModuleId).Distinct().Count();
|
.Where(t => t.ReadingCategory == ReadingCategory.Global)
|
||||||
|
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum })
|
||||||
|
.Where(g => g.Count() == 2).Select(g => g.Key.VisitTaskNum).Distinct().Count();
|
||||||
|
|
||||||
//exportInfo.judgeReadingPeriodCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingCategory == ReadingCategory.Global && t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
exportInfo.judgeReadingPeriodCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingCategory == ReadingCategory.Global && t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
// .GroupBy(t => new { t.SubjectId, t.SouceReadModuleId })
|
.GroupBy(t => new { t.SubjectId, t.SouceReadModuleId })
|
||||||
// //裁判不要求做完
|
//裁判不要求做完
|
||||||
// .Where(g => g.Count() == 2 && g.Any(c => c.JudgeVisitTaskId != null)).Select(g => g.Key.SouceReadModuleId).Distinct().Count();
|
.Where(g => g.Count() == 2 && g.Any(c => c.JudgeVisitTaskId != null)).Select(g => g.Key.SouceReadModuleId).Distinct().Count();
|
||||||
|
|
||||||
////3、裁判认同数J:触发裁判的阅片期中,阅片人被裁判认同的阅片期数量;
|
//3、裁判认同数J:触发裁判的阅片期中,阅片人被裁判认同的阅片期数量;
|
||||||
////4、总裁判数Q:阅片人完成阅片的阅片期中,触发裁判的阅片期数量;
|
//4、总裁判数Q:阅片人完成阅片的阅片期中,触发裁判的阅片期数量;
|
||||||
|
|
||||||
//exportInfo.DoctorPeriodStatList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
exportInfo.DoctorPeriodStatList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
// .GroupBy(t => new { t.DoctorUserId, t.DoctorUser.UserName, t.DoctorUser.FullName })
|
.GroupBy(t => new { t.DoctorUserId, t.DoctorUser.UserName, t.DoctorUser.FullName })
|
||||||
// //有全局裁判
|
//有全局裁判
|
||||||
// //.Where(g => g.Any(t => t.ReadingCategory == ReadingCategory.Global && t.JudgeVisitTaskId != null))
|
//.Where(g => g.Any(t => t.ReadingCategory == ReadingCategory.Global && t.JudgeVisitTaskId != null))
|
||||||
// .Select(g => new DoctorJudgeRatio()
|
.Select(g => new DoctorJudgeRatio()
|
||||||
// {
|
{
|
||||||
// DoctorUserId = g.Key.DoctorUserId,
|
DoctorUserId = g.Key.DoctorUserId,
|
||||||
// UserName = g.Key.UserName,
|
UserName = g.Key.UserName,
|
||||||
// FullName = g.Key.FullName,
|
FullName = g.Key.FullName,
|
||||||
|
|
||||||
// //触发裁判的阅片期的数量 并且裁判要求做完
|
//触发裁判的阅片期的数量 并且裁判要求做完
|
||||||
// TotalJudgeCount = g.Where(t => t.ReadingCategory == ReadingCategory.Global && t.SouceReadModuleId != null && t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned).Select(t => t.SouceReadModuleId).Distinct().Count(),
|
TotalJudgeCount = g.Where(t => t.ReadingCategory == ReadingCategory.Global && t.SouceReadModuleId != null && t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned).Select(t => t.SouceReadModuleId).Distinct().Count(),
|
||||||
|
|
||||||
// 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.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
&& t.JudgeVisitTask.JudgeResultTaskId == t.Id && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
// .Select(t => t.SouceReadModuleId).Distinct().Count(),
|
.Select(t => t.SouceReadModuleId).Distinct().Count(),
|
||||||
|
|
||||||
// }).ToList();
|
}).ToList();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#region 阅片期可以统一部分
|
||||||
|
exportInfo.ReadingPeriodCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
//找到阅片期已阅片完
|
||||||
|
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId == trialReadingCriterionId))
|
||||||
|
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum })
|
||||||
|
.Where(g => g.Count() == 2).Select(g => g.Key.VisitTaskNum).Distinct().Count();
|
||||||
|
|
||||||
exportInfo.SubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId)
|
exportInfo.SubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId)
|
||||||
.Where(t => t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
.Where(t => t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
//找到两个人完成的阅片期
|
//找到两个人完成的阅片期
|
||||||
|
@ -2548,6 +2546,9 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Any())
|
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Any())
|
||||||
.Count();
|
.Count();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 统一有问题部分
|
||||||
|
|
||||||
//最后一个已完成的全局 没产生裁判 (之前有裁判),不算入裁判量
|
//最后一个已完成的全局 没产生裁判 (之前有裁判),不算入裁判量
|
||||||
exportInfo.judgeSubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId)
|
exportInfo.judgeSubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId)
|
||||||
|
@ -2557,6 +2558,17 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
.Any(g => g.Any(t => t.JudgeVisitTaskId != null)))
|
.Any(g => g.Any(t => t.JudgeVisitTaskId != null)))
|
||||||
.Count();
|
.Count();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
exportInfo.judgeReadingPeriodCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
//找到阅片期已阅片完
|
||||||
|
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId == trialReadingCriterionId))
|
||||||
|
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum })
|
||||||
|
//裁判不要求做完
|
||||||
|
.Where(g => g.Count() == 2 && g.Any(c => c.JudgeVisitTaskId != null)).Select(g => g.Key.VisitTaskNum).Distinct().Count();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region 按照受试者维度统计
|
#region 按照受试者维度统计
|
||||||
|
|
||||||
|
|
||||||
|
@ -2583,6 +2595,41 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region 按照阅片期维度统计 有全局任务 和无全局任务统一
|
||||||
|
|
||||||
|
//、裁判量J:所有完成阅片(R1和R2均完成)的阅片期里面触发裁判的阅片期数量;
|
||||||
|
//2、总样本量Q:R1,R2均完成阅片的阅片期数量;
|
||||||
|
|
||||||
|
// 有阅片期没有全局 和有阅片期有全局,主要变化点在于 t.ReadingCategory == ReadingCategory.Global 变成了 t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId==trialReadingCriterionId)
|
||||||
|
|
||||||
|
|
||||||
|
//3、裁判认同数J:触发裁判的阅片期中,阅片人被裁判认同的阅片期数量;
|
||||||
|
//4、总裁判数Q:阅片人完成阅片的阅片期中,触发裁判的阅片期数量;
|
||||||
|
|
||||||
|
exportInfo.DoctorPeriodStatList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
.GroupBy(t => new { t.DoctorUserId, t.DoctorUser.UserName, t.DoctorUser.FullName })
|
||||||
|
//有全局裁判
|
||||||
|
//.Where(g => g.Any(t => t.ReadingCategory == ReadingCategory.Global && t.JudgeVisitTaskId != null))
|
||||||
|
.Select(g => new DoctorJudgeRatio()
|
||||||
|
{
|
||||||
|
DoctorUserId = g.Key.DoctorUserId,
|
||||||
|
UserName = g.Key.UserName,
|
||||||
|
FullName = g.Key.FullName,
|
||||||
|
|
||||||
|
//触发裁判的阅片期的数量 并且裁判要求做完
|
||||||
|
TotalJudgeCount = g.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId == trialReadingCriterionId)
|
||||||
|
&& t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
.Select(t => t.VisitTaskNum).Distinct().Count(),
|
||||||
|
|
||||||
|
JudgeAgreeCount = g.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum && t.TrialReadingCriterionId == trialReadingCriterionId)
|
||||||
|
&& t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned
|
||||||
|
&& t.JudgeVisitTask.JudgeResultTaskId == t.Id)
|
||||||
|
.Select(t => t.VisitTaskNum).Distinct().Count(),
|
||||||
|
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue