From 78d0cffd3dc9ab54b214fdd77a621f5cc1f85c02 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 13 Mar 2024 17:42:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E9=85=8D=E9=98=85=E7=89=87=E4=BA=BA?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Allocation/DTO/VisitTaskViewModel.cs | 3 +++ .../Service/Allocation/VisitTaskService.cs | 12 ++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs index 8eabd79f7..c5c7be3f5 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs @@ -504,6 +504,9 @@ namespace IRaCIS.Core.Application.ViewModel public string SubjectCode { get; set; } = String.Empty; + public int? SubjectAllocateState { get; set; } + + public List ArmList { get; set; }=new List() { }; [NotDefault] public Guid TrialReadingCriterionId { get; set; } diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index 6e21bef2c..dd2b6cd8e 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -128,7 +128,7 @@ namespace IRaCIS.Core.Application.Service.Allocation /// /// [HttpPost] - public async Task<(PageOutput, object?)> GetSubjectAssignAndTaskStatList(SubjectAssignStatQuery querySubjectAssign) + public async Task>> GetSubjectAssignAndTaskStatList(SubjectAssignStatQuery querySubjectAssign) { var isAddtinoarlCriterion = await _trialReadingCriterionRepository.AnyAsync(t => t.Id == querySubjectAssign.TrialReadingCriterionId && t.IsAutoCreate == false); @@ -138,6 +138,14 @@ namespace IRaCIS.Core.Application.Service.Allocation .WhereIf(querySubjectAssign.SubjectId != null, t => t.Id == querySubjectAssign.SubjectId) .WhereIf(querySubjectAssign.DoctorUserId != null, t => t.SubjectDoctorList.Any(t => t.DoctorUserId == querySubjectAssign.DoctorUserId && t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId)) .WhereIf(!string.IsNullOrEmpty(querySubjectAssign.SubjectCode), t => t.Code.Contains(querySubjectAssign.SubjectCode)) + //未分配 + .WhereIf(querySubjectAssign.SubjectAllocateState == 0, t => !t.SubjectDoctorList.Any(t => t.AssignTime!=null && t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId)) + //已分配 + .WhereIf(querySubjectAssign.SubjectAllocateState == 1, t => t.SubjectDoctorList.Any(t => t.AssignTime != null && t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId)) + + .WhereIf(querySubjectAssign.ArmList.Count >0 , t => !querySubjectAssign.ArmList.Except(t.SubjectDoctorList.Where(t => t.AssignTime != null && t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId).Select(c => c.ArmEnum)).Any() ) + + .WhereIf(isAddtinoarlCriterion, t => t.SubjectCriteriaEvaluationList.Where(t => t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId).Any(t => t.IsJoinEvaluation)) @@ -150,7 +158,7 @@ namespace IRaCIS.Core.Application.Service.Allocation var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == querySubjectAssign.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder, x.ReadingType, x.IsArbitrationReading, x.IsOncologyReading, x.IsGlobalReading }).FirstOrDefaultAsync()).IfNullThrowException(); - return (pageList, criterionConfig); + return ResponseOutput.Ok (pageList, criterionConfig); } ///