diff --git a/IRaCIS.Core.Application/Service/Common/TrialImageDownloadService.cs b/IRaCIS.Core.Application/Service/Common/TrialImageDownloadService.cs index dab64d426..ef8607b24 100644 --- a/IRaCIS.Core.Application/Service/Common/TrialImageDownloadService.cs +++ b/IRaCIS.Core.Application/Service/Common/TrialImageDownloadService.cs @@ -157,6 +157,7 @@ namespace IRaCIS.Core.Application.Service public class DownloadJob { + public bool IsZip { get; set; } public string Name { get; set; } @@ -367,7 +368,7 @@ namespace IRaCIS.Core.Application.Service foreach (var noneDicomStudy in visitItem.NoneDicomStudyList) { - string studyNoneDicomFolderPath = Path.Combine(trialFolderPath, $"{visitItem.SubjectCode}_{visitItem.VisitName}", $"{noneDicomStudy.StudyCode}_{noneDicomStudy.ImageDate.ToString("yyyy-MM-dd")}_{noneDicomStudy.Modality}"); + string studyNoneDicomFolderPath = Path.Combine(trialFolderPath, $"{visitItem.SubjectCode}_{visitItem.VisitName.Trim()}", $"{noneDicomStudy.StudyCode}_{noneDicomStudy.ImageDate.ToString("yyyy-MM-dd")}_{noneDicomStudy.Modality}"); Directory.CreateDirectory(studyNoneDicomFolderPath); @@ -376,7 +377,7 @@ namespace IRaCIS.Core.Application.Service string destinationPath = Path.Combine(studyNoneDicomFolderPath, Path.GetFileName(file.FileName)); //加入到下载任务里 - downloadJobs.Add(new DownloadJob() { Name = $"{visitItem.SubjectCode}_{visitItem.VisitNum}_{visitItem.VisitName}_NoneDICOM_{destinationPath}", Action = () => _oSSService.DownLoadFromOSSAsync(HttpUtility.UrlDecode(file.Path), destinationPath) }); + downloadJobs.Add(new DownloadJob() { Name = $"{visitItem.SubjectCode}_{visitItem.VisitNum}_{visitItem.VisitName.Trim()}_NoneDICOM_{destinationPath}", Action = () => _oSSService.DownLoadFromOSSAsync(HttpUtility.UrlDecode(file.Path), destinationPath) }); //下载到当前目录 //await _oSSService.DownLoadFromOSSAsync(HttpUtility.UrlDecode(file.Path), destinationPath); @@ -391,6 +392,8 @@ namespace IRaCIS.Core.Application.Service { Name = $"{visitItem.SubjectCode}_{visitItem.VisitName.Trim()}_Zip", + IsZip = true, + Action = async () => { string zipPath = visitFolderPath + ".zip"; @@ -403,7 +406,7 @@ namespace IRaCIS.Core.Application.Service ZipFile.CreateFromDirectory( visitFolderPath, zipPath, - CompressionLevel.Fastest, + CompressionLevel.NoCompression, false); Directory.Delete(visitFolderPath, true); @@ -439,7 +442,18 @@ namespace IRaCIS.Core.Application.Service { try { - await job.Action(); + if (job.IsZip == false) + { + await job.Action(); + + } + else + { + _ = Task.Run(async () => + { + await job.Action(); + }); + } } catch (Exception ex) {