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();