uat-标注-14

Test_IRC_Net8
hang 2025-11-26 17:44:52 +08:00
parent 6705cf0fc0
commit 139438133d
3 changed files with 40 additions and 8 deletions

View File

@ -4,6 +4,7 @@
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//-------------------------------------------------------------------- //--------------------------------------------------------------------
using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Filter;
using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Domain.Share;
using Medallion.Threading; using Medallion.Threading;
@ -34,7 +35,8 @@ namespace IRaCIS.Core.Application.Contracts
[FromQuery] Guid? nonedicomStudyId, [FromQuery] Guid? nonedicomStudyId,
[FromQuery] bool isFilterZip, [FromQuery] bool isFilterZip,
[FromQuery] Guid? visitTaskId, [FromQuery] Guid? visitTaskId,
[FromQuery] bool isReading) [FromQuery] bool isReading,
[FromQuery] bool? isImageSegmentLabel)
{ {
var qcAuditState = await _subjectVisitRepository.Where(s => s.Id == subjectVisitId).Select(t => t.AuditState).FirstOrDefaultAsync(); var qcAuditState = await _subjectVisitRepository.Where(s => s.Id == subjectVisitId).Select(t => t.AuditState).FirstOrDefaultAsync();
@ -47,21 +49,39 @@ namespace IRaCIS.Core.Application.Contracts
IQueryable<NoneDicomStudyView> noneDicomStudyQueryable = default; IQueryable<NoneDicomStudyView> noneDicomStudyQueryable = default;
if (visitTaskId == null || visitTaskId == Guid.Empty) if (visitTaskId == null || visitTaskId == Guid.Empty)
{ {
//质控过程中,需要忽略过滤质控设置删除的检查,以及设置删除的文件,质控通过后才 if (visitTaskId == null)
noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => t.SubjectVisitId == subjectVisitId, ignoreQueryFilters: isViewDelete) {
.WhereIf(nonedicomStudyId != null, t => t.Id == nonedicomStudyId)
.WhereIf(isReading, t => t.IsReading && t.IsDeleted == false) //质控过程中,需要忽略过滤质控设置删除的检查,以及设置删除的文件,质控通过后才
noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => t.SubjectVisitId == subjectVisitId, ignoreQueryFilters: isViewDelete)
.WhereIf(nonedicomStudyId != null, t => t.Id == nonedicomStudyId)
.WhereIf(isReading, t => t.IsReading && t.IsDeleted == false)
.ProjectTo<NoneDicomStudyView>(_mapper.ConfigurationProvider, new { isFilterZip = isFilterZip, isReading = isReading });
}
else
{
//靶段标注上传后查看影像
noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => true, ignoreQueryFilters: isViewDelete)
.WhereIf(isReading, t => t.IsReading && t.IsDeleted == false)
.WhereIf(nonedicomStudyId != null, t => t.Id == nonedicomStudyId)
.ProjectTo<ImageLabelNoneDicomStudyView>(_mapper.ConfigurationProvider, new { isFilterZip = isFilterZip, isReading = isReading });
}
.ProjectTo<NoneDicomStudyView>(_mapper.ConfigurationProvider, new { isFilterZip = isFilterZip, isReading = isReading });
} }
else else
{ {
var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Select(t => new { t.BlindSubjectCode, t.TrialReadingCriterionId, t.TrialReadingCriterion.CriterionType, t.TrialReadingCriterion.IsImageFilter, t.TrialReadingCriterion.CriterionModalitys }).FirstNotNullAsync(); var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Select(t => new { t.BlindSubjectCode, t.TrialReadingCriterionId, t.TrialReadingCriterion.CriterionType, t.TrialReadingCriterion.IsImageFilter, t.TrialReadingCriterion.CriterionModalitys }).FirstNotNullAsync();
if (taskinfo.CriterionType == CriterionType.IVUS || taskinfo.CriterionType == CriterionType.OCT) if (taskinfo.CriterionType == CriterionType.IVUS || taskinfo.CriterionType == CriterionType.OCT && isImageSegmentLabel == true)
{ {
//后处理原始影像预览
noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => true, ignoreQueryFilters: isViewDelete)
.WhereIf(isReading, t => t.IsReading && t.IsDeleted == false)
.WhereIf(nonedicomStudyId != null, t => t.Id == nonedicomStudyId)
.ProjectTo<ImageLabelNoneDicomStudyView>(_mapper.ConfigurationProvider, new { isFilterZip = isFilterZip, visiTaskId = visitTaskId, isReading = isReading });
} }
else else
{ {

View File

@ -31,6 +31,11 @@ namespace IRaCIS.Core.Application.Contracts
{ {
} }
public class ImageLabelNoneDicomStudyView : NoneDicomStudyView
{
}
///<summary>NoneDicomStudyQuery 列表查询参数模型</summary> ///<summary>NoneDicomStudyQuery 列表查询参数模型</summary>
public class NoneDicomStudyQuery public class NoneDicomStudyQuery
{ {

View File

@ -755,6 +755,13 @@ namespace IRaCIS.Core.Application.Service
.OrderBy(t => t.CreateTime).ThenBy(t => t.FileName))) .OrderBy(t => t.CreateTime).ThenBy(t => t.FileName)))
.ForMember(d => d.CodeView, u => u.MapFrom(s => s.StudyCode)); .ForMember(d => d.CodeView, u => u.MapFrom(s => s.StudyCode));
CreateMap<NoneDicomStudy, ImageLabelNoneDicomStudyView>()
.ForMember(d => d.NoneDicomStudyFileList, u => u.MapFrom(s =>
s.ImageLabelNoneDicomFileList.Where(t => isFilterZip ? !t.FileType.Contains(StaticData.FileType.Zip) : true)
.Where(t => isReading ? t.IsReading && t.IsDeleted == false : true)
.OrderBy(t => t.CreateTime).ThenBy(t => t.FileName)))
.ForMember(d => d.CodeView, u => u.MapFrom(s => s.StudyCode));
CreateMap<SubjectVisitImageBackRecord, ImageBackViewModel>() CreateMap<SubjectVisitImageBackRecord, ImageBackViewModel>()
.ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.SubjectVisit.Subject.Code)) .ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.SubjectVisit.Subject.Code))