diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 71f0abd1a..8764b8353 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -15328,13 +15328,14 @@ 删除 项目 下某一site - + 获取访视下的Dicom 检查信息 分所有的, 阅片的 不阅片 isReading : 0 查询所有 1 查询仅仅阅片的 + diff --git a/IRaCIS.Core.Application/Service/Visit/Interface/ISubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/Interface/ISubjectVisitService.cs index 91e782963..e950d5d0e 100644 --- a/IRaCIS.Core.Application/Service/Visit/Interface/ISubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/Interface/ISubjectVisitService.cs @@ -6,7 +6,7 @@ namespace IRaCIS.Core.Application.Interfaces { Task> AddOrUpdateSV(SubjectVisitCommand svCommand); Task DeleteSV(Guid id); - Task> GetVisitStudyList(Guid trialId, Guid sujectVisitId, int isReading); + Task> GetVisitStudyList(Guid trialId, Guid sujectVisitId, int isReading,Guid? visitTaskId); Task SetSVExecuted(Guid subjectVisitId); Task SetSubjectVisitUrgent(Guid subjectVisitId, bool isUrgent); diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs index 3f7638f92..97e63a161 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs @@ -1,4 +1,5 @@ -using IRaCIS.Core.Application.Contracts; +using DocumentFormat.OpenXml.EMMA; +using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Contracts.Dicom.DTO; using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Interfaces; @@ -207,19 +208,34 @@ namespace IRaCIS.Core.Application.Services /// /// /// + /// /// [HttpGet, Route("{trialId:guid}/{sujectVisitId:guid}/{isReading}")] [AllowAnonymous] - public async Task> GetVisitStudyList(Guid trialId, Guid sujectVisitId, int isReading) + public async Task> GetVisitStudyList(Guid trialId, Guid sujectVisitId, int isReading, [FromQuery] Guid? visitTaskId) { - var studyList = await _dicomStudyRepository.Where(t => t.TrialId == trialId && t.SubjectVisitId == sujectVisitId).Select(k => new VisitStudyDTO() + var isImageFilter = false; + var criterionModalitys = ""; + if (visitTaskId != null) { - InstanceCount = k.InstanceCount, - Modalities = k.Modalities, - //SeriesCount = k.SeriesCount, - StudyCode = k.StudyCode, - StudyId = k.Id - }).ToListAsync(); + var info = await _visitTaskRepository.Where(t => t.Id == visitTaskId) + .Select(t => new { t.TrialReadingCriterion.IsImageFilter, t.TrialReadingCriterion.CriterionModalitys }).FirstNotNullAsync(); + isImageFilter = info.IsImageFilter; + criterionModalitys = info.CriterionModalitys; + } + + + + var studyList = await _dicomStudyRepository.Where(t => t.TrialId == trialId && t.SubjectVisitId == sujectVisitId) + .Where(t => isImageFilter ? ("|" + criterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true) + .Select(k => new VisitStudyDTO() + { + InstanceCount = k.InstanceCount, + Modalities = k.Modalities, + //SeriesCount = k.SeriesCount, + StudyCode = k.StudyCode, + StudyId = k.Id + }).ToListAsync(); var studyIds = studyList.Select(t => t.StudyId).ToList(); var instanceList = await _dicomInstanceRepository.Where(t => studyIds.Contains(t.StudyId)) diff --git a/IRaCIS.Core.Application/Triggers/SubjectTrigger.cs b/IRaCIS.Core.Application/Triggers/SubjectTrigger.cs index 37e338a1c..0f936accf 100644 --- a/IRaCIS.Core.Application/Triggers/SubjectTrigger.cs +++ b/IRaCIS.Core.Application/Triggers/SubjectTrigger.cs @@ -117,7 +117,7 @@ namespace IRaCIS.Core.Application.Triggers await _subjectVisitRepository.AddRangeAsync(svList); - await _subjectVisitRepository.SaveChangesAsync(); + //await _subjectVisitRepository.SaveChangesAsync(); } diff --git a/IRaCIS.Core.Infra.EFCore/Interceptor/AuditEntityInterceptor.cs b/IRaCIS.Core.Infra.EFCore/Interceptor/AuditEntityInterceptor.cs index 1b6b389c3..750e96ae8 100644 --- a/IRaCIS.Core.Infra.EFCore/Interceptor/AuditEntityInterceptor.cs +++ b/IRaCIS.Core.Infra.EFCore/Interceptor/AuditEntityInterceptor.cs @@ -28,10 +28,9 @@ public class AuditEntityInterceptor(IUserInfo _userInfo, public override ValueTask> SavingChangesAsync(DbContextEventData eventData, InterceptionResult result, CancellationToken cancellationToken = default) { - //领域命令 (同一个事务提交的一些逻辑,类似Trigger 保存事务之前执行的一些逻辑) - eventData.Context.AddDomainCommands(); - - DispatchDomainCommands(eventData.Context).GetAwaiter().GetResult(); + ////领域命令 (同一个事务提交的一些逻辑,类似Trigger 保存事务之前执行的一些逻辑) + //eventData.Context.AddDomainCommands(); + //DispatchDomainCommands(eventData.Context).GetAwaiter().GetResult(); //领域事件 eventData.Context.AddDomainEvents(); @@ -46,8 +45,6 @@ public class AuditEntityInterceptor(IUserInfo _userInfo, } public override InterceptionResult SavingChanges(DbContextEventData eventData, InterceptionResult result) { - //领域命令 (同一个事务提交的一些逻辑,类似Trigger 保存事务之前执行的一些逻辑) - eventData.Context.AddDomainCommands(); //领域事件 eventData.Context.AddDomainEvents();