diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index 1bdee1ecf..e0631276c 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -2370,8 +2370,8 @@ namespace IRaCIS.Core.Application.Service.Common //2、完成阅片的病例数Q:R1,R2均完成阅片的访视数; exportInfo.VisitCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState == ReadingTaskState.HaveSigned) - .GroupBy(t => new { t.SubjectId, t.VisitTaskNum }) - .Where(g => g.Count() == 2).Select(g => g.Key.VisitTaskNum).Distinct().Count(); + .GroupBy(t => new { t.SubjectId,t.SourceSubjectVisitId }) + .Where(g => g.Count() == 2).Select(g => g.Key.SourceSubjectVisitId).Distinct().Count(); //裁判不需要完成阅片 exportInfo.JudgeVisitCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingCategory == ReadingCategory.Judge).Count(); @@ -2489,16 +2489,22 @@ namespace IRaCIS.Core.Application.Service.Common FullName = g.Key.FullName, //最后一个阅片期触发裁判 且裁判已阅 - TotalJudgeCount = g.Where(t => t.ReadingCategory == ReadingCategory.Global) + TotalJudgeCount = g + .Where(t => t.ReadingCategory == ReadingCategory.Global) .Where(t => 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)) + .Where(t => t.VisitTaskNum == g.Where(t => t.ReadingCategory == ReadingCategory.Global) + .Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) + .Max(t => t.VisitTaskNum)) .Select(t => t.SubjectId).Distinct().Count(), // G-2 G-4 可能选择的是不同的医生,要以最后一次选择的为准 - JudgeAgreeCount = g.Where(t => t.ReadingCategory == ReadingCategory.Global) + JudgeAgreeCount = g + .Where(t => t.ReadingCategory == ReadingCategory.Global) .Where(t => 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) + .Where(t => t.VisitTaskNum == g.Where(t => t.ReadingCategory == ReadingCategory.Global) + .Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) + .Max(t => t.VisitTaskNum)) + .Where(t=>t.JudgeVisitTask.JudgeResultTaskId == t.Id) .Select(t => t.SubjectId).Distinct().Count(), }).ToList(); @@ -2515,25 +2521,33 @@ namespace IRaCIS.Core.Application.Service.Common exportInfo.DoctorSubjectStatList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned) - .GroupBy(t => new { t.DoctorUserId, t.DoctorUser.UserName, t.DoctorUser.FullName }) - .Select(g => new DoctorJudgeRatio() - { - DoctorUserId = g.Key.DoctorUserId, - UserName = g.Key.UserName, - FullName = g.Key.FullName, + .GroupBy(t => new { t.DoctorUserId, t.DoctorUser.UserName, t.DoctorUser.FullName }) + .Select(g => new DoctorJudgeRatio() + { + DoctorUserId = g.Key.DoctorUserId, + UserName = g.Key.UserName, + FullName = g.Key.FullName, - //最后一个阅片期触发裁判 且裁判已阅 - TotalJudgeCount = 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)) - .Select(t => t.SubjectId).Distinct().Count(), + //最后一个阅片期触发裁判 且裁判已阅 + TotalJudgeCount = g + .Where(t => t.ReadingCategory == ReadingCategory.Global) + .Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) + .Where(t => t.VisitTaskNum == g.Where(t => t.ReadingCategory == ReadingCategory.Global) + .Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) + .Max(t => t.VisitTaskNum)) + .Select(t => t.SubjectId).Distinct().Count(), - // G-2 G-4 可能选择的是不同的医生,要以最后一次选择的为准 - JudgeAgreeCount = g.Where(t => t.ReadingCategory == ReadingCategory.Global && t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned - && t.JudgeVisitTask.JudgeResultTaskId == t.Id - && t.VisitTaskNum == g.Where(t => t.ReadingCategory == ReadingCategory.Global && t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned).Max(t => t.VisitTaskNum)) - .Select(t => t.SubjectId).Distinct().Count(), + // G-2 G-4 可能选择的是不同的医生,要以最后一次选择的为准 + JudgeAgreeCount = g + .Where(t => t.ReadingCategory == ReadingCategory.Global) + .Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) + .Where(t => t.VisitTaskNum == g.Where(t => t.ReadingCategory == ReadingCategory.Global) + .Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) + .Max(t => t.VisitTaskNum)) + .Where(t => t.JudgeVisitTask.JudgeResultTaskId == t.Id) + .Select(t => t.SubjectId).Distinct().Count(), - }).ToList(); + }).ToList(); #endregion