From 68ac4c80afbd63fce39675d0ee0479241ba5d586 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 26 Aug 2025 14:07:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9scp=20=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E4=BC=A0=E8=BE=93=E8=AF=AD=E6=B3=95=E8=8E=B7=E5=8F=96=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRC.Core.SCP/Service/DicomArchiveService.cs | 2 +- IRaCIS.Core.Application/Service/Visit/PatientService.cs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/IRC.Core.SCP/Service/DicomArchiveService.cs b/IRC.Core.SCP/Service/DicomArchiveService.cs index 33dc4d612..73fe16d4a 100644 --- a/IRC.Core.SCP/Service/DicomArchiveService.cs +++ b/IRC.Core.SCP/Service/DicomArchiveService.cs @@ -264,7 +264,7 @@ namespace IRaCIS.Core.SCP.Service MediaStorageSOPClassUID = dataset.GetSingleValueOrDefault(DicomTag.MediaStorageSOPClassUID, string.Empty), TransferSyntaxUID = transferSyntaxUID, MediaStorageSOPInstanceUID = dataset.GetSingleValueOrDefault(DicomTag.MediaStorageSOPInstanceUID, string.Empty), - IsEncapsulated = DicomTransferSyntax.Lookup(DicomUID.Parse(dataset.GetSingleValueOrDefault(DicomTag.TransferSyntaxUID, string.Empty))).IsEncapsulated, + IsEncapsulated = isEncapsulated, InstanceNumber = dataset.GetSingleValueOrDefault(DicomTag.InstanceNumber, 1), InstanceTime = dataset.GetSingleValueOrDefault(DicomTag.ContentDate, string.Empty) == string.Empty ? null : dataset.GetSingleValue(DicomTag.ContentDate).Add(dataset.GetSingleValueOrDefault(DicomTag.ContentTime, string.Empty) == string.Empty ? TimeSpan.Zero : dataset.GetSingleValue(DicomTag.ContentTime).TimeOfDay), diff --git a/IRaCIS.Core.Application/Service/Visit/PatientService.cs b/IRaCIS.Core.Application/Service/Visit/PatientService.cs index 5c30f35e5..841f975e3 100644 --- a/IRaCIS.Core.Application/Service/Visit/PatientService.cs +++ b/IRaCIS.Core.Application/Service/Visit/PatientService.cs @@ -3623,6 +3623,9 @@ namespace IRaCIS.Application.Services var latestInstanceList = await _scpInstanceRepository.Where(t => inCommand.StudyInstanceUIDList.Contains(t.StudyInstanceUid)) .GroupBy(t => t.StudyInstanceUid).Select(g => g.OrderByDescending(t => t.CreateTime).FirstOrDefault()).ToListAsync(); + await _cmoveStudyRepository.AddAsync(new CmoveStudy() { CallingAE = hirClient.CalledAE, CalledAE = find.CalledAE, StudyInstanceUIDList = inCommand.StudyInstanceUIDList, HopitalGroupIdList = inCommand.HospitalGroupIdList }, true); + + var task = Task.Run(async () => { var client = DicomClientFactory.Create(find.IP, find.Port, false, hirClient.CalledAE, find.CalledAE); @@ -3666,8 +3669,6 @@ namespace IRaCIS.Application.Services if (cmoveRequestList.Count > 0) { - await _cmoveStudyRepository.AddAsync(new CmoveStudy() { CallingAE = hirClient.CalledAE, CalledAE = find.CalledAE, StudyInstanceUIDList = cmoveStudyUIdList, HopitalGroupIdList = inCommand.HospitalGroupIdList }, true); - await client.AddRequestsAsync(cmoveRequestList); await client.SendAsync(); }