原始影像检查过滤

IRC_NewDev
hang 2024-09-27 16:16:09 +08:00
parent 416a94e302
commit 171b8bac34
5 changed files with 32 additions and 18 deletions

View File

@ -15328,13 +15328,14 @@
<member name="M:IRaCIS.Core.Application.Services.TrialMaintenanceService.DeleteTrialSite(System.Guid)"> <member name="M:IRaCIS.Core.Application.Services.TrialMaintenanceService.DeleteTrialSite(System.Guid)">
<summary>删除 项目 下某一site </summary> <summary>删除 项目 下某一site </summary>
</member> </member>
<member name="M:IRaCIS.Core.Application.Services.SubjectVisitService.GetVisitStudyList(System.Guid,System.Guid,System.Int32)"> <member name="M:IRaCIS.Core.Application.Services.SubjectVisitService.GetVisitStudyList(System.Guid,System.Guid,System.Int32,System.Nullable{System.Guid})">
<summary> <summary>
获取访视下的Dicom 检查信息 分所有的, 阅片的 不阅片 isReading : 0 查询所有 1 查询仅仅阅片的 获取访视下的Dicom 检查信息 分所有的, 阅片的 不阅片 isReading : 0 查询所有 1 查询仅仅阅片的
</summary> </summary>
<param name="trialId"></param> <param name="trialId"></param>
<param name="sujectVisitId"></param> <param name="sujectVisitId"></param>
<param name="isReading"></param> <param name="isReading"></param>
<param name="visitTaskId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Services.SubjectVisitService.GetDicomSeriesInfo(IRaCIS.Core.Application.Contracts.GetDicomSeriesInfoInDto)"> <member name="M:IRaCIS.Core.Application.Services.SubjectVisitService.GetDicomSeriesInfo(IRaCIS.Core.Application.Contracts.GetDicomSeriesInfoInDto)">

View File

@ -6,7 +6,7 @@ namespace IRaCIS.Core.Application.Interfaces
{ {
Task<IResponseOutput<string>> AddOrUpdateSV(SubjectVisitCommand svCommand); Task<IResponseOutput<string>> AddOrUpdateSV(SubjectVisitCommand svCommand);
Task<IResponseOutput> DeleteSV(Guid id); Task<IResponseOutput> DeleteSV(Guid id);
Task<List<VisitStudyDTO>> GetVisitStudyList(Guid trialId, Guid sujectVisitId, int isReading); Task<List<VisitStudyDTO>> GetVisitStudyList(Guid trialId, Guid sujectVisitId, int isReading,Guid? visitTaskId);
Task<IResponseOutput> SetSVExecuted(Guid subjectVisitId); Task<IResponseOutput> SetSVExecuted(Guid subjectVisitId);
Task<IResponseOutput> SetSubjectVisitUrgent(Guid subjectVisitId, bool isUrgent); Task<IResponseOutput> SetSubjectVisitUrgent(Guid subjectVisitId, bool isUrgent);

View File

@ -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.Contracts.Dicom.DTO;
using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Filter;
using IRaCIS.Core.Application.Interfaces; using IRaCIS.Core.Application.Interfaces;
@ -207,19 +208,34 @@ namespace IRaCIS.Core.Application.Services
/// <param name="trialId"></param> /// <param name="trialId"></param>
/// <param name="sujectVisitId"></param> /// <param name="sujectVisitId"></param>
/// <param name="isReading"></param> /// <param name="isReading"></param>
/// <param name="visitTaskId"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet, Route("{trialId:guid}/{sujectVisitId:guid}/{isReading}")] [HttpGet, Route("{trialId:guid}/{sujectVisitId:guid}/{isReading}")]
[AllowAnonymous] [AllowAnonymous]
public async Task<List<VisitStudyDTO>> GetVisitStudyList(Guid trialId, Guid sujectVisitId, int isReading) public async Task<List<VisitStudyDTO>> 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, var info = await _visitTaskRepository.Where(t => t.Id == visitTaskId)
Modalities = k.Modalities, .Select(t => new { t.TrialReadingCriterion.IsImageFilter, t.TrialReadingCriterion.CriterionModalitys }).FirstNotNullAsync();
//SeriesCount = k.SeriesCount, isImageFilter = info.IsImageFilter;
StudyCode = k.StudyCode, criterionModalitys = info.CriterionModalitys;
StudyId = k.Id }
}).ToListAsync();
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 studyIds = studyList.Select(t => t.StudyId).ToList();
var instanceList = await _dicomInstanceRepository.Where(t => studyIds.Contains(t.StudyId)) var instanceList = await _dicomInstanceRepository.Where(t => studyIds.Contains(t.StudyId))

View File

@ -117,7 +117,7 @@ namespace IRaCIS.Core.Application.Triggers
await _subjectVisitRepository.AddRangeAsync(svList); await _subjectVisitRepository.AddRangeAsync(svList);
await _subjectVisitRepository.SaveChangesAsync(); //await _subjectVisitRepository.SaveChangesAsync();
} }

View File

@ -28,10 +28,9 @@ public class AuditEntityInterceptor(IUserInfo _userInfo,
public override ValueTask<InterceptionResult<int>> SavingChangesAsync(DbContextEventData eventData, public override ValueTask<InterceptionResult<int>> SavingChangesAsync(DbContextEventData eventData,
InterceptionResult<int> result, CancellationToken cancellationToken = default) InterceptionResult<int> result, CancellationToken cancellationToken = default)
{ {
//领域命令 同一个事务提交的一些逻辑类似Trigger 保存事务之前执行的一些逻辑) ////领域命令 同一个事务提交的一些逻辑类似Trigger 保存事务之前执行的一些逻辑)
eventData.Context.AddDomainCommands(); //eventData.Context.AddDomainCommands();
//DispatchDomainCommands(eventData.Context).GetAwaiter().GetResult();
DispatchDomainCommands(eventData.Context).GetAwaiter().GetResult();
//领域事件 //领域事件
eventData.Context.AddDomainEvents(); eventData.Context.AddDomainEvents();
@ -46,8 +45,6 @@ public class AuditEntityInterceptor(IUserInfo _userInfo,
} }
public override InterceptionResult<int> SavingChanges(DbContextEventData eventData, InterceptionResult<int> result) public override InterceptionResult<int> SavingChanges(DbContextEventData eventData, InterceptionResult<int> result)
{ {
//领域命令 同一个事务提交的一些逻辑类似Trigger 保存事务之前执行的一些逻辑)
eventData.Context.AddDomainCommands();
//领域事件 //领域事件
eventData.Context.AddDomainEvents(); eventData.Context.AddDomainEvents();