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

IRC_NewDev
hang 2024-12-10 14:32:40 +08:00
parent 2d03635ec4
commit 57d9a8665d
1 changed files with 30 additions and 45 deletions

View File

@ -2414,17 +2414,17 @@ namespace IRaCIS.Core.Application.Service.Common
//、裁判量J所有完成阅片R1和R2均完成的阅片期里面触发裁判的阅片期数量
//2、总样本量QR1,R2均完成阅片的阅片期数量
// 有阅片期没有全局 和有阅片期有全局,主要变化点在于 t.ReadingCategory == ReadingCategory.Global 变成了 t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum)
// 有阅片期没有全局 和有阅片期有全局,主要变化点在于 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)
//找到阅片期已阅片完
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum))
.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.judgeReadingPeriodCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
//找到阅片期已阅片完
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum))
.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();
@ -2443,11 +2443,11 @@ namespace IRaCIS.Core.Application.Service.Common
FullName = g.Key.FullName,
//触发裁判的阅片期的数量 并且裁判要求做完
TotalJudgeCount = g.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == t.VisitTaskNum)
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)
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(),
@ -2463,16 +2463,20 @@ namespace IRaCIS.Core.Application.Service.Common
//1、裁判量M所有完成阅片病例 最后一个阅片期触发裁判的受试者数量;
//2、总样本量NR1,R2均完成阅片至少一个阅片期的受试者数量
exportInfo.SubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId).Where(t =>
t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingCategory == ReadingCategory.Global && t.ReadingTaskState == ReadingTaskState.HaveSigned)
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Any()
).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.ReadingCategory == ReadingCategory.Global)
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Any())
.Count();
//最后一个已完成的全局 没产生裁判 (之前有裁判),不算入裁判量
exportInfo.judgeSubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId).Where(t =>
t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingCategory == ReadingCategory.Global && t.ReadingTaskState == ReadingTaskState.HaveSigned)
.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.judgeSubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId)
.Where(t => t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
.Where(t => t.ReadingCategory == ReadingCategory.Global)
.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.DoctorSubjectStatList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
.GroupBy(t => new { t.DoctorUserId, t.DoctorUser.UserName, t.DoctorUser.FullName })
@ -2490,8 +2494,7 @@ namespace IRaCIS.Core.Application.Service.Common
// G-2 G-4 可能选择的是不同的医生,要以最后一次选择的为准
JudgeAgreeCount = g.Where(t => t.ReadingCategory == ReadingCategory.Global && t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
.Where(t => t.VisitTaskNum == g.Where(t => t.ReadingCategory == ReadingCategory.Global && t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned).Max(t => t.VisitTaskNum)
&& t.JudgeVisitTask.JudgeResultTaskId == t.Id
)
&& t.JudgeVisitTask.JudgeResultTaskId == t.Id)
.Select(t => t.SubjectId).Distinct().Count(),
}).ToList();
@ -2538,39 +2541,21 @@ namespace IRaCIS.Core.Application.Service.Common
else
{
exportInfo.SubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId).Where(t =>
t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Any(g => t.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == g.Key.VisitTaskNum))
).Count();
#region 测试
//var test = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId).Where(t =>
// t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
// //找到两个人完成的阅片期
// .GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Any(g => g.Count() == 2 && t.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == g.Key.VisitTaskNum))
// ).Select(t=>new
// {
// dd= t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
// //找到两个人完成的阅片期
// .GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2 && t.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == g.Key.VisitTaskNum))
// .Select(g=>new
// {
// g.Key.VisitTaskNum,
// List= g.ToList()
// }).ToList()
// }).ToList();
#endregion
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();
//最后一个已完成的全局 没产生裁判 (之前有裁判),不算入裁判量
exportInfo.judgeSubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId).Where(t =>
t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
//找到两个人完成的阅片期
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2 && t.ReadModuleList.Any(c => c.SubjectVisit.VisitNum + addReadingPeriodNum == g.Key.VisitTaskNum))
.Any(g => g.Any(t => t.JudgeVisitTaskId != null))
).Count();
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();
#region 按照受试者维度统计