From c7f64ea0fe7ef4bca017d605d7ca9def49f94065 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Fri, 7 Feb 2025 12:27:53 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2=E4=BD=8D?=
=?UTF-8?q?=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IRaCIS.Core.Application/IRaCIS.Core.Application.xml | 4 +++-
IRaCIS.Core.Application/Service/Visit/PatientService.cs | 6 ++++--
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 2ce7c0965..07b59d310 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -18267,12 +18267,14 @@
-
+
拉取影像
+
+
diff --git a/IRaCIS.Core.Application/Service/Visit/PatientService.cs b/IRaCIS.Core.Application/Service/Visit/PatientService.cs
index a1e07941f..1d1319171 100644
--- a/IRaCIS.Core.Application/Service/Visit/PatientService.cs
+++ b/IRaCIS.Core.Application/Service/Visit/PatientService.cs
@@ -3159,6 +3159,8 @@ namespace IRaCIS.Application.Services
};
+ var latestInstanceList = await _scpInstanceRepository.Where(t => inCommand.StudyInstanceUIDList.Contains(t.StudyInstanceUid)).OrderByDescending(t => t.CreateTime).ToListAsync();
+
var task = Task.Run(async () =>
{
var client = DicomClientFactory.Create(find.IP, find.Port, false, hirClient.CalledAE, find.CalledAE);
@@ -3172,10 +3174,10 @@ namespace IRaCIS.Application.Services
var cmoveConfig = _basicSystemConfigConfig.CurrentValue;
var exsitStudyId = await _fusionCache.GetOrDefaultAsync(CacheKeys.CmoveStudyId(item), null);
- var latestInstance = await _scpInstanceRepository.Where(t => t.StudyInstanceUid == item).OrderByDescending(t => t.CreateTime).FirstOrDefaultAsync();
+ var latestInstance = latestInstanceList.Where(t => t.StudyInstanceUid == item).FirstOrDefault();
//缓存不存在当前检查,或者instance表最新的记录时间与当前时间之差超过1分钟(认为完成归档,可以重复拉取)
- if (exsitStudyId == null && (latestInstance == null || latestInstance.CreateTime.AddMinutes(cmoveConfig.CmoveInstanceIntervalMinutes) > DateTime.Now))
+ if (exsitStudyId == null && (latestInstance == null || latestInstance?.CreateTime.AddMinutes(cmoveConfig.CmoveInstanceIntervalMinutes) < DateTime.Now))
{
await _fusionCache.SetAsync(CacheKeys.CmoveStudyId(item), item, TimeSpan.FromMinutes(cmoveConfig.CmoveIntervalMinutes));