diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs index 4533649ff..b53f43913 100644 --- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs +++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs @@ -1057,7 +1057,7 @@ namespace IRaCIS.Core.API.Controllers Log.Logger.Warning($"处理文件{study.StudyCode}DIR失败: {ex.Message}"); continue; } - + // ---------- IMAGE FILES ---------- foreach (var series in study.SeriesList) @@ -1085,7 +1085,7 @@ namespace IRaCIS.Core.API.Controllers { #region 将多帧合并为一帧 - + try { @@ -1125,7 +1125,20 @@ namespace IRaCIS.Core.API.Controllers catch (Exception ex) { - Log.Logger.Warning($"处理多帧合并{instance.Path}失败: {ex.Message}"); + Log.Logger.Warning($"处理多帧合并{instance.Path}失败,以原始文件下载: {ex.Message}"); + + try + { + await using var source2 = await _oSSService.GetStreamFromOSSAsync(instance.Path); + + await source2.CopyToAsync(entryStream, 32 * 1024, abortToken); + } + catch (Exception ex2) + { + + Log.Logger.Warning($"原始文件下载{instance.Path}失败: {ex2.Message}"); + } + } #endregion @@ -1176,7 +1189,7 @@ namespace IRaCIS.Core.API.Controllers // ✅ HttpConnection.ContentLengthReadStream 已知问题 Log.Logger.Warning($"Stream aborted: {ex.Message}"); } - catch (Exception ex) + catch (Exception ex) { // ✅ HttpConnection.ContentLengthReadStream 已知问题 Log.Logger.Warning($"异常: {ex.Message}"); @@ -1771,7 +1784,7 @@ namespace IRaCIS.Core.API.Controllers // 获取 Pixel Data 标签 var pixelData = DicomPixelData.Create(dicomFile.Dataset); - + //获取像素是否为封装形式 var syntax = dicomFile.Dataset.InternalTransferSyntax; @@ -1804,7 +1817,7 @@ namespace IRaCIS.Core.API.Controllers Log.Logger.Warning($"处理多帧合并{instance.Path}失败: {ex.Message}"); } - + #endregion await dicomFile.SaveAsync(entryStream); @@ -1857,7 +1870,7 @@ namespace IRaCIS.Core.API.Controllers public async Task VisitImageDownload([FromServices] IPatientService _patientService, [FromServices] IOSSService _oSSService, [FromServices] IHubContext _downLoadHub, [FromServices] IRepository _trialRepository, - [FromQuery] VisitImageDownloadCommand inCommand) + [FromQuery] VisitImageDownloadCommand inCommand) { var rusult = await _patientService.GetDownloadSubjectVisitStudyInfo(inCommand); @@ -2030,6 +2043,18 @@ namespace IRaCIS.Core.API.Controllers { Log.Logger.Warning($"处理多帧合并{instance.Path}失败: {ex.Message}"); + + try + { + await using var source2 = await _oSSService.GetStreamFromOSSAsync(instance.Path); + + await source2.CopyToAsync(entryStream, 32 * 1024, abortToken); + } + catch (Exception ex2) + { + + Log.Logger.Warning($"原始文件下载{instance.Path}失败: {ex2.Message}"); + } } #endregion