diff --git a/IRC.Core.SCP/Service/CStoreSCPService.cs b/IRC.Core.SCP/Service/CStoreSCPService.cs index c173a9caa..a4f599084 100644 --- a/IRC.Core.SCP/Service/CStoreSCPService.cs +++ b/IRC.Core.SCP/Service/CStoreSCPService.cs @@ -47,6 +47,8 @@ namespace IRaCIS.Core.SCP.Service private List _SCPStudyIdList { get; set; } = new List(); + private List _StudyInstanceUIdList { get; set; } = new List(); + private SCPImageUpload _upload { get; set; } public HospitalGroup CurrentHospitalGroup { get; set; } @@ -167,7 +169,7 @@ namespace IRaCIS.Core.SCP.Service var _SCPImageUploadRepository = _serviceProvider.GetService>(); _upload.EndTime = DateTime.Now; - _upload.StudyCount = _SCPStudyIdList.Count; + _upload.StudyCount = _StudyInstanceUIdList.Count; //可能是测试echo 导致记录了 await _SCPImageUploadRepository.AddAsync(_upload, _upload.FileCount > 0 ? true : false); @@ -254,23 +256,6 @@ namespace IRaCIS.Core.SCP.Service public async Task OnCStoreRequestAsync(DicomCStoreRequest request) { - #region 测试接收课题组信息 这里无法获取 - - //var privateTag = new DicomTag(0x9999, 0x1001); - //var groupIdsJsonStr = request.Dataset.GetSingleValueOrDefault(privateTag, string.Empty); - - //if (!string.IsNullOrEmpty(groupIdsJsonStr)) - //{ - // var projectGroupIds = JsonConvert.DeserializeObject>(groupIdsJsonStr); - - // Log.Logger.Information("收到课题组信息: " + string.Join(", ", projectGroupIds)); - - //} - #endregion - - - - string studyInstanceUid = request.Dataset.GetSingleValueOrDefault(DicomTag.StudyInstanceUID, string.Empty); string seriesInstanceUid = request.Dataset.GetSingleValueOrDefault(DicomTag.SeriesInstanceUID, string.Empty); @@ -283,6 +268,11 @@ namespace IRaCIS.Core.SCP.Service return new DicomCStoreResponse(request, DicomStatus.Success); } + if (!_StudyInstanceUIdList.Contains(studyInstanceUid)) + { + _StudyInstanceUIdList.Add(studyInstanceUid); + } + Guid seriesId = IdentifierHelper.CreateGuid(studyInstanceUid, seriesInstanceUid); Guid instanceId = IdentifierHelper.CreateGuid(studyInstanceUid, seriesInstanceUid, sopInstanceUid); diff --git a/IRC.Core.SCP/Service/DicomArchiveService.cs b/IRC.Core.SCP/Service/DicomArchiveService.cs index c17f2eac4..ced8e195d 100644 --- a/IRC.Core.SCP/Service/DicomArchiveService.cs +++ b/IRC.Core.SCP/Service/DicomArchiveService.cs @@ -219,9 +219,12 @@ namespace IRaCIS.Core.SCP.Service findStudy.DicomStudyDate = dataset.GetSingleValueOrDefault(DicomTag.StudyDate, string.Empty); findStudy.DicomStudyTime = dataset.GetSingleValueOrDefault(DicomTag.StudyTime, string.Empty); findStudy.CalledAE = calledAE; + findStudy.CallingAE = callingAE; findStudy.PatientName = dataset.GetSingleValueOrDefault(DicomTag.PatientName, string.Empty); findStudy.PatientSex = dataset.GetSingleValueOrDefault(DicomTag.PatientSex, string.Empty); findStudy.PatientAge = dataset.GetSingleValueOrDefault(DicomTag.PatientAge, string.Empty); + + await _patientRepository.BatchUpdateNoTrackingAsync(t => t.Id == findStudy.PatientId, u => new SCPPatient() { LatestPushTime = DateTime.Now }); }