From 95fe063706167fc92716356a9bfd8db5b7888530 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 17 Sep 2025 16:41:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BD=92=E6=A1=A3=E5=B1=9E?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRC.Core.SCP/Service/CStoreSCPService.cs | 2 +- IRC.Core.SCP/Service/DicomArchiveService.cs | 13 ++++++++----- .../Service/Interface/IDicomArchiveService.cs | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/IRC.Core.SCP/Service/CStoreSCPService.cs b/IRC.Core.SCP/Service/CStoreSCPService.cs index 950b45946..8504fac36 100644 --- a/IRC.Core.SCP/Service/CStoreSCPService.cs +++ b/IRC.Core.SCP/Service/CStoreSCPService.cs @@ -400,7 +400,7 @@ namespace IRaCIS.Core.SCP.Service { try { - var scpStudyId = await dicomArchiveService.ArchiveDicomFileAsync(request.Dataset, storeRelativePath, Association.CallingAE, Association.CalledAE, fileSize); + var scpStudyId = await dicomArchiveService.ArchiveDicomFileAsync(request.File , storeRelativePath, Association.CallingAE, Association.CalledAE, fileSize); var series = await _seriesRepository.FirstOrDefaultAsync(t => t.Id == seriesId); diff --git a/IRC.Core.SCP/Service/DicomArchiveService.cs b/IRC.Core.SCP/Service/DicomArchiveService.cs index 4624041d6..0bef300d3 100644 --- a/IRC.Core.SCP/Service/DicomArchiveService.cs +++ b/IRC.Core.SCP/Service/DicomArchiveService.cs @@ -52,8 +52,11 @@ namespace IRaCIS.Core.SCP.Service /// /// /// - public async Task ArchiveDicomFileAsync(DicomDataset dataset, string fileRelativePath, string callingAE, string calledAE, long fileSize) + public async Task ArchiveDicomFileAsync(DicomFile dicomFile, string fileRelativePath, string callingAE, string calledAE, long fileSize) { + var dataset = dicomFile.Dataset; + + string studyInstanceUid = dataset.GetString(DicomTag.StudyInstanceUID); string seriesInstanceUid = dataset.GetString(DicomTag.SeriesInstanceUID); string sopInstanceUid = dataset.GetString(DicomTag.SOPInstanceUID); @@ -272,10 +275,10 @@ namespace IRaCIS.Core.SCP.Service { findSerice.DicomSeriesDate = dataset.GetSingleValueOrDefault(DicomTag.SeriesDate, string.Empty); findSerice.DicomSeriesTime = dataset.GetSingleValueOrDefault(DicomTag.SeriesTime, string.Empty); - findSerice.UpdateTime=DateTime.Now; + findSerice.UpdateTime = DateTime.Now; } - var transferSyntaxUID = dataset.GetSingleValueOrDefault(DicomTag.TransferSyntaxUID, string.Empty); + var transferSyntaxUID = dicomFile.FileMetaInfo.GetSingleValueOrDefault(DicomTag.TransferSyntaxUID, string.Empty); var isEncapsulated = false; if (transferSyntaxUID.IsNotNullOrEmpty()) @@ -296,9 +299,9 @@ namespace IRaCIS.Core.SCP.Service SopInstanceUid = sopInstanceUid, SOPClassUID = dataset.GetSingleValueOrDefault(DicomTag.SOPClassUID, string.Empty), - MediaStorageSOPClassUID = dataset.GetSingleValueOrDefault(DicomTag.MediaStorageSOPClassUID, string.Empty), + MediaStorageSOPClassUID = dicomFile.FileMetaInfo.GetSingleValueOrDefault(DicomTag.MediaStorageSOPClassUID, string.Empty), TransferSyntaxUID = transferSyntaxUID, - MediaStorageSOPInstanceUID = dataset.GetSingleValueOrDefault(DicomTag.MediaStorageSOPInstanceUID, string.Empty), + MediaStorageSOPInstanceUID = dicomFile.FileMetaInfo.GetSingleValueOrDefault(DicomTag.MediaStorageSOPInstanceUID, string.Empty), IsEncapsulated = isEncapsulated, InstanceNumber = dataset.GetSingleValueOrDefault(DicomTag.InstanceNumber, 1), diff --git a/IRC.Core.SCP/Service/Interface/IDicomArchiveService.cs b/IRC.Core.SCP/Service/Interface/IDicomArchiveService.cs index 031dcbd89..ac772b7ea 100644 --- a/IRC.Core.SCP/Service/Interface/IDicomArchiveService.cs +++ b/IRC.Core.SCP/Service/Interface/IDicomArchiveService.cs @@ -5,7 +5,7 @@ namespace IRaCIS.Core.SCP.Service { public interface IDicomArchiveService { - Task ArchiveDicomFileAsync(DicomDataset dicomDataset,string fileRelativePath,string callingAE,string calledAE,long fileSize); + Task ArchiveDicomFileAsync(DicomFile dicomFile,string fileRelativePath,string callingAE,string calledAE,long fileSize); } }