diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs index a38dbe7f5..2f223d2eb 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs @@ -649,6 +649,9 @@ namespace IRaCIS.Core.Application.ViewModel public class IRUnReadSubjectQuery : PageInput { + public string? PatientName { get; set; } + public string? PatientIdStr { get; set; } + public Guid TrialId { get; set; } public string SubjectCode { get; set; } diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index edff499d7..3dd59394d 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -1051,6 +1051,10 @@ public class VisitTaskService(IRepository _visitTaskRepository, .WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => (t.OriginalReReadingTask.Subject.Code.Contains(inQuery.SubjectCode) && t.OriginalReReadingTask.IsAnalysisCreate == false) || (t.OriginalReReadingTask.BlindSubjectCode.Contains(inQuery.SubjectCode) && t.OriginalReReadingTask.IsAnalysisCreate)) .WhereIf(inQuery.BeginAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime > inQuery.BeginAllocateDate) .WhereIf(inQuery.EndAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime < inQuery.EndAllocateDate!.Value.AddDays(1)) + + .WhereIf(!string.IsNullOrWhiteSpace(inQuery.PatientIdStr), t => t.OriginalReReadingTask.Subject.SubjectPatientList.Any(t => t.Patient.PatientIdStr.Contains(inQuery.PatientIdStr))) + .WhereIf(!string.IsNullOrWhiteSpace(inQuery.PatientName), t => t.OriginalReReadingTask.Subject.SubjectPatientList.Any(t => t.Patient.PatientName.Contains(inQuery.PatientName))) + .ProjectTo(_mapper.ConfigurationProvider); @@ -1136,6 +1140,8 @@ public class VisitTaskService(IRepository _visitTaskRepository, TrialId = trialId, TrialReadingCriterionId = trialReadingCriterionId, SubjectCode = inQuery.SubjectCode, + PatientIdStr=inQuery.PatientIdStr, + PatientName=inQuery.PatientName, PageIndex = inQuery.PageIndex, PageSize = inQuery.PageSize,