修改影像后处理nonedicom 切换问题
continuous-integration/drone/push Build is passing Details

IRC_NewDev
hang 2024-09-10 17:11:43 +08:00
parent e12935d9aa
commit 2aa63a6132
2 changed files with 18 additions and 10 deletions

View File

@ -186,8 +186,11 @@ namespace IRaCIS.Core.Application.Contracts
public class GetReadingVisitStudyListIndto public class GetReadingVisitStudyListIndto
{ {
[NotDefault]
public Guid TrialId { get; set; } public Guid TrialId { get; set; }
[NotDefault]
public Guid SujectVisitId { get; set; } public Guid SujectVisitId { get; set; }
[NotDefault]
public Guid VisitTaskId { get; set; } public Guid VisitTaskId { get; set; }
} }

View File

@ -37,7 +37,7 @@ namespace IRaCIS.Core.Application.Services
IRepository<ReadingQuestionCriterionTrial> _trialReadingCriterionRepository IRepository<ReadingQuestionCriterionTrial> _trialReadingCriterionRepository
) : BaseService, ISubjectVisitService ) : BaseService, ISubjectVisitService
{ {
[HttpPost] [HttpPost]
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
@ -541,7 +541,7 @@ namespace IRaCIS.Core.Application.Services
SeriesId = x.SeriesId, SeriesId = x.SeriesId,
StudyId = x.StudyId, StudyId = x.StudyId,
InstanceId = x.InstanceId, InstanceId = x.InstanceId,
NumberOfFrames=x.NumberOfFrames, NumberOfFrames = x.NumberOfFrames,
}).ToListAsync(); }).ToListAsync();
@ -594,20 +594,20 @@ namespace IRaCIS.Core.Application.Services
HtmlPath = k.HtmlPath, HtmlPath = k.HtmlPath,
Path = k.Path, Path = k.Path,
InstanceNumber = k.InstanceNumber, InstanceNumber = k.InstanceNumber,
StudyId= k.StudyId, StudyId = k.StudyId,
SeriesId= k.SeriesId, SeriesId = k.SeriesId,
}).ToListAsync(); }).ToListAsync();
item.InstanceInfoList.ForEach(x => item.InstanceInfoList.ForEach(x =>
{ {
var keyFramesList = rowInfoList.Where(y => y.InstanceId == x.Id&&y.NumberOfFrames!=0).Select(y => y.NumberOfFrames).Distinct().ToList(); var keyFramesList = rowInfoList.Where(y => y.InstanceId == x.Id && y.NumberOfFrames != 0).Select(y => y.NumberOfFrames).Distinct().ToList();
if (keyFramesList.Count() > 0) if (keyFramesList.Count() > 0)
{ {
x.KeyFramesList = keyFramesList; x.KeyFramesList = keyFramesList;
} }
var item = rowInfoList.FirstOrDefault(y => y.InstanceId == x.Id); var item = rowInfoList.FirstOrDefault(y => y.InstanceId == x.Id);
if (item != null) if (item != null)
{ {
@ -632,7 +632,7 @@ namespace IRaCIS.Core.Application.Services
studyList.Insert(0,thisVisitTaskStudy); studyList.Insert(0, thisVisitTaskStudy);
} }
@ -658,7 +658,7 @@ namespace IRaCIS.Core.Application.Services
#region 非Dicom 检查查询 #region 非Dicom 检查查询
var noDicomList = await _noneDicomStudyRepository.Where(x => x.TrialId == indto.TrialId && x.SubjectVisitId == indto.SujectVisitId && x.NoneDicomFileList.Any(t => !t.FileType.Contains(StaticData.FileType.Zip))) var noDicomList = await _noneDicomStudyRepository.Where(x => x.TrialId == indto.TrialId && x.SubjectVisitId == indto.SujectVisitId && x.NoneDicomFileList.Any(t => !t.FileType.Contains(StaticData.FileType.Zip)))
.WhereIf(taskInfo.IsImageFilter == true, t => taskInfo.CriterionModalitys.Contains(t.Modality) ).ToListAsync(); .WhereIf(taskInfo.IsImageFilter == true, t => taskInfo.CriterionModalitys.Contains(t.Modality)).ToListAsync();
List<VisitStudyDTO> noDicomStudyList = noDicomList.Select(x => new VisitStudyDTO() List<VisitStudyDTO> noDicomStudyList = noDicomList.Select(x => new VisitStudyDTO()
@ -672,11 +672,14 @@ namespace IRaCIS.Core.Application.Services
}).ToList(); }).ToList();
var isExistTaskNoneDicomFile = _noneDicomStudyFileRepository.Any(t => t.OriginNoneDicomStudyId == indto.VisitTaskId);
foreach (var item in noDicomStudyList) foreach (var item in noDicomStudyList)
{ {
var nodicom = noDicomList.Where(x => x.Id == item.StudyId).First(); var nodicom = noDicomList.Where(x => x.Id == item.StudyId).First();
var instanceCount = await _noneDicomStudyFileRepository.Where(x => x.NoneDicomStudyId == item.StudyId).CountAsync(); var instanceCount = await _noneDicomStudyFileRepository.WhereIf(isExistTaskNoneDicomFile,x=>x.OriginNoneDicomStudyId== item.StudyId)
.WhereIf(isExistTaskNoneDicomFile==false, x=>x.NoneDicomStudyId == item.StudyId).CountAsync();
if (instanceCount == 0) if (instanceCount == 0)
{ {
@ -697,7 +700,9 @@ namespace IRaCIS.Core.Application.Services
SubjectVisitId=nodicom.SubjectVisitId, SubjectVisitId=nodicom.SubjectVisitId,
SubjectId=nodicom.SubjectId, SubjectId=nodicom.SubjectId,
SeriesNumber=1, SeriesNumber=1,
NoneDicomFileFirstFile=await _noneDicomStudyFileRepository.Where(x=>x.NoneDicomStudyId==item.StudyId && !x.FileType.Contains(StaticData.FileType.Zip)).Select(x=>x.Path).FirstOrDefaultAsync(), NoneDicomFileFirstFile=await _noneDicomStudyFileRepository.WhereIf(isExistTaskNoneDicomFile,x=>x.OriginNoneDicomStudyId== item.StudyId)
.WhereIf(isExistTaskNoneDicomFile==false, x=>x.NoneDicomStudyId == item.StudyId)
.Where(x=> !x.FileType.Contains(StaticData.FileType.Zip)).Select(x=>x.Path).FirstOrDefaultAsync(),
} }
}; };