有传输语法的才生成DIR 文件
continuous-integration/drone/push Build is passing Details

Test_IRC_Net8
hang 2025-08-08 09:50:29 +08:00
parent 2ebf61220c
commit 44156a2e34
2 changed files with 82 additions and 54 deletions

View File

@ -231,6 +231,27 @@ namespace IRaCIS.Core.Application.Service
}
///// <summary>
///// 下载影像 维护dir信息 并回传到OSS
///// </summary>
///// <param name="trialId"></param>
///// <returns></returns>
//[HttpGet]
//[AllowAnonymous]
//public async Task<IResponseOutput> DownloadAndUploadTrialData(Guid trialId, [FromServices] IRepository<DicomInstance> _instanceRepository,
// [FromServices] IRepository<DicomStudy> _studyRepository,
// [FromServices] IRepository<DicomSeries> _seriesRepository)
//{
// var list = await _instanceRepository.Where(t => t.TrialId == trialId)
// .Select(t => new { t.SeriesId, t.StudyId, t.Id, t.Path }).ToListAsync();
// foreach (var item in list)
// {
// }
//}
}
}

View File

@ -784,7 +784,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
#region DIR处理导出文件名并将对应关系上传到OSS里面存储
//有传输语法值的导出 才生成DIR
if (_subjectVisitRepository.Any(t => t.Id == inQuery.SubjectVisitId && t.StudyList.SelectMany(t => t.InstanceList).Any(c => c.TransferSytaxUID != string.Empty)))
{
var list = _subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId).SelectMany(t => t.StudyList)
.Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false)
.SelectMany(t => t.InstanceList)
@ -833,7 +835,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
await _dicomStudyRepository.BatchUpdateNoTrackingAsync(t => t.Id == item.Key.DicomStudyId, u => new DicomStudy() { StudyDIRPath = $"/{ossFolder}/DICOMDIR" });
}
}
#endregion
@ -1070,6 +1072,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
#region 在下载前先处理DIR文件
//有传输语法值的导出 才生成DIR
if (_subjectVisitRepository.Any(t => t.SubjectId == inQuery.SubjectId && t.StudyList.SelectMany(t => t.InstanceList).Any(c => c.TransferSytaxUID != string.Empty)))
{
var list = _subjectRepository.Where(t => t.Id == inQuery.SubjectId).SelectMany(t => t.SubjectVisitList.Where(t => subjectVisitIdList.Contains(t.Id))).SelectMany(t => t.StudyList)
.Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false)
.Where(t => info.IsImageFilter ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true)
@ -1122,6 +1127,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
await _dicomStudyRepository.BatchUpdateNoTrackingAsync(t => t.Id == item.Key.DicomStudyId, u => new DicomStudy() { StudyDIRPath = $"/{ossFolder}/DICOMDIR" });
}
}
#endregion
var query = from sv in _subjectRepository.Where(t => t.Id == inQuery.SubjectId).SelectMany(t => t.SubjectVisitList.Where(t => subjectVisitIdList.Contains(t.Id)))