diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 4858ea708..98ab411b7 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -497,6 +497,46 @@ 状态 + + + Id + + + + + 受试者ID + + + + + 模块类型 + + + + + 模块名称 + + + + + 是否加急 + + + + + 访视ID + + + + + 状态 + + + + + 创建时间 + + 当前页索引 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs index d434af5c8..3bc46742c 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs @@ -51,9 +51,49 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } - public class GetReadModuleOutDto : ReadModule + public class GetReadModuleOutDto { + /// + /// Id + /// + public Guid? Id { get; set; } + + /// + /// 受试者ID + /// + public Guid? SubjectId { get; set; } + + /// + /// 模块类型 + /// + public ModuleTypeEnum ModuleType { get; set; } + + /// + /// 模块名称 + /// + public string ModuleName { get; set; } + + /// + /// 是否加急 + /// + public bool? IsUrgent { get; set; } + + /// + /// 访视ID + /// + public Guid? SubjectVisitId { get; set; } + + /// + /// 状态 + /// + public ReadModuleEnum? Status { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreateTime { get; set; } + public string SubjectCode { get; set; } public string SiteCode { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs b/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs index cfa939817..9e90e002b 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs @@ -22,6 +22,7 @@ namespace IRaCIS.Application.Services private readonly IRepository _subjectRepository; private readonly IRepository _readModuleRepository; + public ReadModuleService(IRepository subjectVisitRepository, IRepository subjectRepository, IRepository readModuleRepository @@ -62,9 +63,26 @@ namespace IRaCIS.Application.Services }).ToList() }); + var pageList = await subjectquery.ToPagedListAsync(dto.PageIndex, dto.PageSize, dto.SortField == null|| dto.SortField==string.Empty ? "SiteCode" : dto.SortField, dto.Asc); + var subjectisd = pageList.CurrentPageData.Select(x => x.SubjectId).ToList(); + + var readModules =await _readModuleRepository.Where(x => subjectisd.Contains(x.SubjectId)).ToListAsync(); + + pageList.CurrentPageData.ForEach(x => { + + x.Data.AddRange(readModules.Where(y => y.SubjectId == x.SubjectId).Select( + y => new GetReadModuleOutDto() + { + CreateTime = y.CreateTime, + Id = y.Id, + SubjectId=x.SubjectId, + + })); + }); + return (pageList, new { MaxLength = pageList.CurrentPageData.ToList().Max(x => x.Data.Count) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingPeriodSetService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingPeriodSetService.cs index de96b8af3..f7b7185d2 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingPeriodSetService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingPeriodSetService.cs @@ -74,7 +74,7 @@ namespace IRaCIS.Application.Services public async Task> GetReadingPeriodSetList(ReadingPeriodSetQuery query) { - var readquery =_readingPeriodSetRepository.AsQueryable() + var readquery =_readingPeriodSetRepository.AsQueryable().Include(x=>x.ReadingPeriodSites) .WhereIf(query.TrialId!=null,x=>x.TrialId==query.TrialId) .WhereIf(query.ReadingPeriodName != null, x => x.ReadingPeriodName.Contains(query.ReadingPeriodName)) .ProjectTo(_mapper.ConfigurationProvider); diff --git a/IRaCIS.Core.Domain/Reading/ReadingPeriodSet.cs b/IRaCIS.Core.Domain/Reading/ReadingPeriodSet.cs index 37de27a1c..be719d14b 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingPeriodSet.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingPeriodSet.cs @@ -66,6 +66,8 @@ namespace IRaCIS.Core.Domain.Models /// 备注 /// public string Remark { get; set; } + + public List ReadingPeriodSites { get; set; } = new List(); }