diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs index a8f6fd4c5..391ac2022 100644 --- a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs +++ b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs @@ -215,6 +215,33 @@ namespace IRaCIS.Core.Application.Service CriterionType = g.Key.CriterionType, }).ToList(); + + // 获取所有符合条件的医生ID + var allDoctorIds = _enrollRepository + .Where(x => x.TrialId == inQuery.TrialId + && x.EnrollStatus >= EnrollStatus.ConfirmIntoGroup) + .WhereIf(inQuery.DoctorUserIdList.Count > 0, + t => inQuery.DoctorUserIdList.Contains(t.DoctorUserId)) + .Select(x => x.DoctorUserId) + .Distinct() + .ToList(); + + // 补全缺失的医生记录 + var missingDoctors = allDoctorIds + .Except(list.Select(r => r.DoctorUserId)) + .Select(doctorId => new DoctorTaskStat() + { + DoctorUserId = doctorId, + PendingCount = 0, + TotalCount = 0, + ComplectedCount = 0, + TrialReadingCriterionId = inQuery.TrialReadingCriterionId, + + }) + .ToList(); + + list.AddRange(missingDoctors); + return list; }