From 111d5509bcd5dc96485b7e96184d8c6ddecfe3da Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 9 Jun 2026 15:05:19 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=8C=BB=E7=94=9F=E9=98=85=E7=89=87?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1+=E5=8F=97=E8=AF=95=E8=80=85=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Visit/DTO/ClinicalStudySubjects.cs | 1 + .../Service/Visit/_MapConfig.cs | 1 + .../WorkLoad/DTO/DoctorWorkLoadViewModel.cs | 14 +++++++++- .../Service/WorkLoad/DoctorWorkloadService.cs | 26 +++++++++++++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/Visit/DTO/ClinicalStudySubjects.cs b/IRaCIS.Core.Application/Service/Visit/DTO/ClinicalStudySubjects.cs index c1c3a6153..be61e63a5 100644 --- a/IRaCIS.Core.Application/Service/Visit/DTO/ClinicalStudySubjects.cs +++ b/IRaCIS.Core.Application/Service/Visit/DTO/ClinicalStudySubjects.cs @@ -90,6 +90,7 @@ namespace IRaCIS.Application.Contracts public class SubjectQueryView : SubjectCommand { + public bool IsHaveTaskFinished { get; set; } public DateTime? OutEnrollmentTime { get; set; } public DateTime? VisitOverTime { get; set; } diff --git a/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs b/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs index 68307f231..70ba7081a 100644 --- a/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs @@ -39,6 +39,7 @@ namespace IRaCIS.Core.Application.Service .ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.TrialSite.TrialSiteCode)) .ForMember(d => d.LatestBlindName, u => u.MapFrom(s => s.LatestSubjectVisit.BlindName)) .ForMember(d => d.LatestVisitName, u => u.MapFrom(s => s.LatestSubjectVisit.VisitName)) + .ForMember(d => d.IsHaveTaskFinished, u => u.MapFrom(s => s.SubjectVisitTaskList.Any(t => t.TaskState == TaskState.Effect && t.ReadingTaskState == ReadingTaskState.HaveSigned))) //.ForMember(d => d.FinalSubjectVisitId, u => u.MapFrom(s => s.SubjectVisitList.Where(t => t.IsFinalVisit).Select(c => (Guid?)c.Id).FirstOrDefault())) diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs b/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs index 48ea5892f..710cd6362 100644 --- a/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs +++ b/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs @@ -177,6 +177,17 @@ namespace IRaCIS.Application.Contracts public bool IsEnable { get; set; } } + public class TrialReadingStatQuery + { + [NotDefault] + public Guid TrialId { get; set; } + + + [NotDefault] + public Guid TrialReadingCriterionId { get; set; } + + public List DoctorUserIdList { get; set; } = new List(); + } public class WorkLoadDoctorQueryDTO : PageInput { @@ -212,7 +223,7 @@ namespace IRaCIS.Application.Contracts public class WorkLoadAndTrainingDTO { - + public Guid? DoctorUserId { get; set; } public Guid DoctorId { get; set; }/*=Guid.Empty;*/ public string Code { get; set; } = String.Empty; public string FirstName { get; set; } = String.Empty; @@ -356,6 +367,7 @@ namespace IRaCIS.Application.Contracts public class DoctorTaskStat { + public Guid? DoctorUserId { get; set; } public CriterionType? CriterionType { get; set; } public Guid TrialReadingCriterionId { get; set; } diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs index 3858fad57..5134924f9 100644 --- a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs +++ b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs @@ -193,6 +193,30 @@ namespace IRaCIS.Core.Application.Service return ResponseOutput.Result(success2); } + /// + /// 获取项目阅片统计 + /// + /// + public async Task> GetDoctorUserTrialReadingStat(TrialReadingStatQuery inQuery) + { + var list = _enrollRepository.Where(x => x.TrialId == inQuery.TrialId && x.EnrollStatus >= EnrollStatus.ConfirmIntoGroup) + .WhereIf(inQuery.DoctorUserIdList.Count > 0, t => inQuery.DoctorUserIdList.Contains(t.DoctorUserId)) + .SelectMany(t => t.DoctorUser.VisitTaskList.Where(t => t.TrialReadingCriterion.IsConfirm && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) + .Where(x => x.TaskState == TaskState.Effect && x.TrialId == inQuery.TrialId)) + .GroupBy(x => new { x.TrialReadingCriterionId, x.TrialReadingCriterion.CriterionType, x.DoctorUserId }) + .Select(g => new DoctorTaskStat() + { + DoctorUserId = g.Key.DoctorUserId, + PendingCount = g.Count(x => x.ReadingTaskState != ReadingTaskState.HaveSigned), + TotalCount = g.Count(), + ComplectedCount = g.Count(x => x.ReadingTaskState == ReadingTaskState.HaveSigned), + TrialReadingCriterionId = g.Key.TrialReadingCriterionId, + CriterionType = g.Key.CriterionType, + }).ToList(); + + return list; + } + /// /// 获取某个项目入组的医生工作量统计列表 /// @@ -254,6 +278,8 @@ namespace IRaCIS.Core.Application.Service //}).ToList(), + DoctorUserId = intoGroup.DoctorUserId, + DoctorId = doctor.Id, Code = doctor.ReviewerCode, FirstName = doctor.FirstName, From 8e77d2e3edf463058148bdea4af1e1ba740a74ea Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 9 Jun 2026 15:05:46 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=AF=B7=E6=B1=82=E6=94=B9=E4=B8=BApost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/WorkLoad/DoctorWorkloadService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs index 5134924f9..a8f6fd4c5 100644 --- a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs +++ b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs @@ -197,6 +197,7 @@ namespace IRaCIS.Core.Application.Service /// 获取项目阅片统计 /// /// + [HttpPost] public async Task> GetDoctorUserTrialReadingStat(TrialReadingStatQuery inQuery) { var list = _enrollRepository.Where(x => x.TrialId == inQuery.TrialId && x.EnrollStatus >= EnrollStatus.ConfirmIntoGroup) From 7599e06b9d0cf59fa60555f23dbdb77587468da4 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 9 Jun 2026 15:19:51 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E9=87=8D=E6=96=B0=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 5607ec6b0..df6badcbf 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -9736,6 +9736,11 @@ 融合的病灶 + + + 任务Id + + 任务Id @@ -14824,6 +14829,13 @@ + + + 获取标记信息 + + + + 获取手册 @@ -16059,6 +16071,12 @@ + + + 获取项目阅片统计 + + + 获取某个项目入组的医生工作量统计列表 @@ -17492,17 +17510,17 @@ - ���� + 质疑 - һ���Ժ˲� + 一致性核查 - ���� + 复制