Merge branch 'Test_IRC_Net8' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing Details

IRC_NewDev
hang 2024-08-19 15:14:38 +08:00
commit 4187a568f8
2 changed files with 20 additions and 2 deletions

View File

@ -211,7 +211,9 @@ namespace IRaCIS.Core.Application.ViewModel
{
public bool? IsSelfAnalysis { get; set; }
public bool IsReReadingOrBackInfluenceAnalysis { get; set; }
public int ConsistentClinicalDataCount { get; set; } = 0;
public bool IsReReadingOrBackInfluenceAnalysis { get; set; }
}

View File

@ -32,6 +32,7 @@ namespace IRaCIS.Core.Application.Service
private readonly IRepository<TaskConsistentRule> _taskConsistentRuleRepository;
private readonly IRepository<VisitTask> _visitTaskRepository;
private readonly IRepository<ReadingConsistentClinicalData> _readingConsistentClinicalDataRepository;
private readonly IRepository<SubjectUser> _subjectUserRepository;
private readonly IRepository<Subject> _subjectRepository;
private readonly IRepository<Enroll> _enrollRepository;
@ -44,11 +45,14 @@ namespace IRaCIS.Core.Application.Service
private readonly IVisitTaskHelpeService _visitTaskCommonService;
public TaskConsistentRuleService(IRepository<VisitTask> visitTaskRepository, IRepository<Enroll> enrollRepository, IRepository<TaskConsistentRule> taskConsistentRuleRepository, IRepository<SubjectUser> subjectUserRepository, IRepository<Subject> subjectRepository, IDistributedLockProvider distributedLockProvider,
public TaskConsistentRuleService(IRepository<VisitTask> visitTaskRepository,
IRepository<ReadingConsistentClinicalData> readingConsistentClinicalDataRepository,
IRepository<Enroll> enrollRepository, IRepository<TaskConsistentRule> taskConsistentRuleRepository, IRepository<SubjectUser> subjectUserRepository, IRepository<Subject> subjectRepository, IDistributedLockProvider distributedLockProvider,
IRepository<Trial> trialRepository, IRepository<TrialSite> trialSiteRepository, IRepository<TrialVirtualSiteCodeUpdate> trialVirtualSiteCodeUpdateRepository, IVisitTaskHelpeService visitTaskCommonService)
{
_taskConsistentRuleRepository = taskConsistentRuleRepository;
_visitTaskRepository = visitTaskRepository;
this._readingConsistentClinicalDataRepository = readingConsistentClinicalDataRepository;
_subjectUserRepository = subjectUserRepository;
_subjectRepository = subjectRepository;
_enrollRepository = enrollRepository;
@ -117,6 +121,18 @@ namespace IRaCIS.Core.Application.Service
var defalutSortArray = new string[] { nameof(VisitTask.IsUrgent) + " desc", nameof(VisitTask.SubjectId), nameof(VisitTask.VisitTaskNum) };
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.Id)).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();
}
#endregion
var trialTaskConfig = _repository.Where<Trial>(t => t.Id == queryVisitTask.TrialId).Select(t => new { IsHaveDoubleReadCriterion = t.TrialReadingCriterionList.Any(t => t.IsSigned && t.IsConfirm && t.ReadingType == ReadingMethod.Double), t.VitrualSiteCode }).FirstOrDefault();