diff --git a/IRC.Core.SCP/Service/CStoreSCPService.cs b/IRC.Core.SCP/Service/CStoreSCPService.cs index 81eefde97..96d2557d7 100644 --- a/IRC.Core.SCP/Service/CStoreSCPService.cs +++ b/IRC.Core.SCP/Service/CStoreSCPService.cs @@ -55,6 +55,8 @@ namespace IRaCIS.Core.SCP.Service private List HospitalGroupIdList { get; set; } + private bool _releasedNormally = false; + private static readonly DicomTransferSyntax[] _acceptedTransferSyntaxes = new DicomTransferSyntax[] { @@ -157,6 +159,7 @@ namespace IRaCIS.Core.SCP.Service { var _distributedLockProvider = _serviceProvider.GetService(); + var @lock = _distributedLockProvider.CreateLock($"{_upload.CallingAE}"); using (await @lock.AcquireAsync()) @@ -166,6 +169,8 @@ namespace IRaCIS.Core.SCP.Service await AddUploadLogAsync(); + _releasedNormally = true; + } await SendAssociationReleaseResponseAsync(); @@ -251,8 +256,20 @@ namespace IRaCIS.Core.SCP.Service //奇怪的bug 上传的时候,用王捷修改的影像,会关闭,重新连接,导致检查id 丢失,然后状态不一致 if (exception == null) { - //将检查设置为传输结束 - await _studyRepository.BatchUpdateNoTrackingAsync(t => _SCPStudyIdList.Contains(t.Id), u => new SCPStudy() { IsUploadFinished = true, IsUploadFaild = false }); + //客户端断网,恢复后,也是没有异常的,估计是超时走了关闭 + + if (_releasedNormally == true) + { + //将检查设置为传输结束 + await _studyRepository.BatchUpdateNoTrackingAsync(t => _SCPStudyIdList.Contains(t.Id), u => new SCPStudy() { IsUploadFinished = true, IsUploadFaild = false }); + } + else + { + await _studyRepository.BatchUpdateNoTrackingAsync(t => _SCPStudyIdList.Contains(t.Id), u => new SCPStudy() { IsUploadFinished = true, IsUploadFaild = true }); + + //记录日志 + await AddUploadLogAsync(); + } } else