diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 71f0abd1a..794eb3962 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 查询仅仅阅片的
+
@@ -16111,16 +16112,6 @@
-
-
- 维护 IsFrontTaskNeedSignButNotSign 字段 另外附加评估结果
-
-
-
-
- 维护 IsFrontTaskNeedSignButNotSign 字段 另外附加评估结果
-
-
因为可能先一致性核查通过,生成其他标准的任务了,新签名的标准也需要产生任务
@@ -16131,6 +16122,16 @@
因为可能先一致性核查通过,生成其他标准的任务了,新签名的标准也需要产生任务
+
+
+ 维护 IsFrontTaskNeedSignButNotSign 字段 另外附加评估结果
+
+
+
+
+ 维护 IsFrontTaskNeedSignButNotSign 字段 另外附加评估结果
+
+
因为维护状态先后顺序导致 裁判任务关联的 任务上的JudgeVisitTaskId==nulll 在这里需要重新设置下
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/BeforeSaveTrigger/TrialCriterionSignTrigger.cs b/IRaCIS.Core.Application/Triggers/AfterSaveTrigger/TrialCriterionSignTrigger.cs
similarity index 79%
rename from IRaCIS.Core.Application/Triggers/BeforeSaveTrigger/TrialCriterionSignTrigger.cs
rename to IRaCIS.Core.Application/Triggers/AfterSaveTrigger/TrialCriterionSignTrigger.cs
index 693232369..f81f3f5f6 100644
--- a/IRaCIS.Core.Application/Triggers/BeforeSaveTrigger/TrialCriterionSignTrigger.cs
+++ b/IRaCIS.Core.Application/Triggers/AfterSaveTrigger/TrialCriterionSignTrigger.cs
@@ -6,12 +6,9 @@ namespace IRaCIS.Core.Application.Triggers
/// 因为可能先一致性核查通过,生成其他标准的任务了,新签名的标准也需要产生任务
///
public class TrialCriterionSignTrigger(
- IVisitTaskHelpeService _visitTaskHelpeService) : IBeforeSaveTrigger
+ IVisitTaskHelpeService _visitTaskHelpeService) : IAfterSaveTrigger
{
-
-
-
- public async Task BeforeSave(ITriggerContext context, CancellationToken cancellationToken)
+ public async Task AfterSave(ITriggerContext context, CancellationToken cancellationToken)
{
var trialCriterion = context.Entity;
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.Application/Triggers/使用说明 b/IRaCIS.Core.Application/Triggers/使用说明
new file mode 100644
index 000000000..b8930b505
--- /dev/null
+++ b/IRaCIS.Core.Application/Triggers/使用说明
@@ -0,0 +1,7 @@
+github Ŀַ:https://github.com/koenbeuk/EntityFrameworkCore.Triggered
+
+Trigger ʹһΪ IBeforeSaveTrigger IAfterSaveTrigger
+
+IBeforeSaveTrigger ֮ǰ Ȼ治Ҫύﷴ
+
+IAfterSaveTrigger ֮Ҫά ƬڣҪҵĺСڸֵӣ
\ No newline at end of file
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();