From 7fa043793eb966e2f4d54baa7106187c7084b7d3 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Sun, 4 Jan 2026 11:36:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=8B=E8=BD=BD=E5=BD=B1?= =?UTF-8?q?=E5=83=8F=E5=A4=84=E7=90=86sr=20ot=20=20=E5=A4=9A=E5=B8=A7?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/UploadDownLoadController.cs | 39 +++++++++++++++---- 1 file changed, 32 insertions(+), 7 deletions(-) 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