From 828bd38eab92ca292e760449dd95bae0feeef073 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 11 Dec 2024 08:57:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=E5=BA=9F=E5=BC=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Common/ExcelExportService.cs | 74 +++++++------------ 1 file changed, 28 insertions(+), 46 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index 8a203774a..50bece4b2 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -2443,9 +2443,34 @@ namespace IRaCIS.Core.Application.Service.Common // .Any(g => g.OrderByDescending(c => c.VisitTaskNum).FirstOrDefault().JudgeVisitTaskId != null) // ) // .Count(); + + //exportInfo.DoctorSubjectStatList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned) + // //筛选全局 已完成的任务 + // .Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId)) + // .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.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // .Where(t => t.VisitTaskNum == g.Where(c => c.SubjectId == t.SubjectId && c.JudgeVisitTaskId != null && c.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // .Max(t => t.VisitTaskNum)) + // .Select(t => t.SubjectId).Distinct().Count(), + + // // G-2 G-4 可能选择的是不同的医生,要以最后一次选择的为准 + // JudgeAgreeCount = g.Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // .Where(t => t.VisitTaskNum == g.Where(c => c.SubjectId == t.SubjectId && c.JudgeVisitTaskId != null && c.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // .Max(t => t.VisitTaskNum)) + // .Where(t => t.JudgeVisitTask.JudgeResultTaskId == t.Id) + // .Select(t => t.SubjectId).Distinct().Count(), + + // }).ToList(); #endregion - // subject(G1 产生裁判 G2 不产生裁判 那么该患者不计入总量) + // subject(G1 产生裁判 G2 不产生裁判 那么该患者不计入总量) var subjectReadingPeriodList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned) .Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId)) .GroupBy(t => new { t.SubjectId, t.VisitTaskNum, t.JudgeVisitTaskId }) @@ -2483,24 +2508,11 @@ namespace IRaCIS.Core.Application.Service.Common }) .ToList(); - var cc = subjectReadingPeriodDoctorList.GroupBy(x => x.SubjectId) // 按 SubjectId 分组 - - .Where(g => g.OrderByDescending(x => x.VisitTaskNum).First().GlobalList.Any(c => c.JudgeVisitTaskId != null)) - - .ToList(); - - var kk = subjectReadingPeriodDoctorList.GroupBy(x => x.SubjectId) // 按 SubjectId 分组 - - .Where(g => g.OrderByDescending(x => x.VisitTaskNum).First().GlobalList.Any(c => c.JudgeVisitTaskId != null)) - .Select(g => g.Where(c => c.GlobalList.Any(k => k.JudgeTaskState == ReadingTaskState.HaveSigned)).OrderByDescending(c=>c.VisitTaskNum).FirstOrDefault()) - - .ToList(); //找到最大完成裁判的阅片期 - - // 每个subject 仅仅留最后一个全局 + var filteredList = subjectReadingPeriodDoctorList.GroupBy(x => x.SubjectId) // 按 SubjectId 分组 //最后一个全局没有产生裁判的subject要过滤掉 过滤后 .Where(g=>g.OrderByDescending(x=>x.VisitTaskNum).First().GlobalList.Any(c=>c.JudgeVisitTaskId != null)) - //找到最大完成裁判的阅片期 + //找到最大完成裁判的阅片期 // 每个subject 仅仅留最后一个全局 .Select(g => g.Where(c => c.GlobalList.Any(k => k.JudgeTaskState == ReadingTaskState.HaveSigned)).OrderByDescending(c => c.VisitTaskNum).First()) .SelectMany(t => t.GlobalList.Select(u => new { @@ -2527,36 +2539,6 @@ namespace IRaCIS.Core.Application.Service.Common }).ToList(); - - - - - //exportInfo.DoctorSubjectStatList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned) - // //筛选全局 已完成的任务 - // .Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId)) - // .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.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) - // .Where(t => t.VisitTaskNum == g.Where(c => c.SubjectId == t.SubjectId && c.JudgeVisitTaskId != null && c.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) - // .Max(t => t.VisitTaskNum)) - // .Select(t => t.SubjectId).Distinct().Count(), - - // // G-2 G-4 可能选择的是不同的医生,要以最后一次选择的为准 - // JudgeAgreeCount = g.Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) - // .Where(t => t.VisitTaskNum == g.Where(c => c.SubjectId == t.SubjectId && c.JudgeVisitTaskId != null && c.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned) - // .Max(t => t.VisitTaskNum)) - // .Where(t => t.JudgeVisitTask.JudgeResultTaskId == t.Id) - // .Select(t => t.SubjectId).Distinct().Count(), - - // }).ToList(); - - #endregion #region 阅片期部分