diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs index c36eb0f58..77e0a2737 100644 --- a/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs @@ -20,6 +20,7 @@ using IRaCIS.Core.Infrastructure.Extention; using System; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using NPOI.SS.Formula.Functions; +using IRaCIS.Core.Application.Service.Reading.Dto; namespace IRaCIS.Core.Application.Service { @@ -33,6 +34,7 @@ namespace IRaCIS.Core.Application.Service private readonly IRepository _taskConsistentRuleRepository; private readonly IRepository _visitTaskRepository; private readonly IRepository _readingConsistentClinicalDataRepository; + private readonly IReadingClinicalDataService _readingClinicalDataService; private readonly IRepository _subjectUserRepository; private readonly IRepository _subjectRepository; private readonly IRepository _enrollRepository; @@ -47,12 +49,14 @@ namespace IRaCIS.Core.Application.Service public TaskConsistentRuleService(IRepository visitTaskRepository, IRepository readingConsistentClinicalDataRepository, + IReadingClinicalDataService readingClinicalDataService, IRepository enrollRepository, IRepository taskConsistentRuleRepository, IRepository subjectUserRepository, IRepository subjectRepository, IDistributedLockProvider distributedLockProvider, IRepository trialRepository, IRepository trialSiteRepository, IRepository trialVirtualSiteCodeUpdateRepository, IVisitTaskHelpeService visitTaskCommonService) { _taskConsistentRuleRepository = taskConsistentRuleRepository; _visitTaskRepository = visitTaskRepository; this._readingConsistentClinicalDataRepository = readingConsistentClinicalDataRepository; + this._readingClinicalDataService = readingClinicalDataService; _subjectUserRepository = subjectUserRepository; _subjectRepository = subjectRepository; _enrollRepository = enrollRepository; @@ -122,15 +126,17 @@ namespace IRaCIS.Core.Application.Service var pageList = await visitTaskQueryable.ToPagedListAsync(queryVisitTask.PageIndex, queryVisitTask.PageSize, queryVisitTask.SortField, queryVisitTask.Asc, string.IsNullOrWhiteSpace(queryVisitTask.SortField), defalutSortArray); #region 统计一致性分析临床数据数量 - var readingIdList = pageList.CurrentPageData.Select(x => x.SouceReadModuleId).ToList(); - readingIdList.AddRange(pageList.CurrentPageData.Select(x => x.SourceSubjectVisitId).ToList()); - readingIdList = readingIdList.Where(x => x != null).ToList(); - - var readIds = await _readingConsistentClinicalDataRepository.Where(x => readingIdList.Contains(x.ReadingId)).Select(x => x.ReadingId).ToListAsync(); foreach (var item in pageList.CurrentPageData) { - item.ConsistentClinicalDataCount = readIds.Select(x => x == item.SouceReadModuleId).Count() + readIds.Select(x => x == item.SourceSubjectVisitId).Count(); + item.ConsistentClinicalDataCount = (await _readingClinicalDataService.GetClinicalDataList(new GetReadingOrTaskClinicalDataListInDto() + { + SubjectId = item.SubjectId, + TrialId = item.TrialId, + SelectIsSign = false, + IsGetAllConsistencyAnalysis = false, + VisitTaskId = item.Id, + })).Count(); } #endregion diff --git a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs index 521a9d843..24c4a39ad 100644 --- a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs @@ -31,5 +31,6 @@ namespace IRaCIS.Core.Application.Contracts Task DealVisiTaskClinicalDataSignedAsync(Guid trialId, Guid subjectId, Guid readingId, bool isVisit, Guid trialReadingCritrialId); Task SignConsistencyAnalysisReadingClinicalData(SignConsistencyAnalysisReadingClinicalDataInDto inDto); + } } \ No newline at end of file