修改临时提交
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-12-10 15:00:53 +08:00
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
} }