diff --git a/IRC.Core.SCP/Service/CStoreSCPService.cs b/IRC.Core.SCP/Service/CStoreSCPService.cs index aecfd90cc..06300b430 100644 --- a/IRC.Core.SCP/Service/CStoreSCPService.cs +++ b/IRC.Core.SCP/Service/CStoreSCPService.cs @@ -22,6 +22,7 @@ using SharpCompress.Common; using SixLabors.ImageSharp.Formats.Jpeg; using IRaCIS.Core.Infrastructure; using IRaCIS.Core.Infrastructure.Extention; +using Newtonsoft.Json; namespace IRaCIS.Core.SCP.Service { @@ -229,6 +230,17 @@ namespace IRaCIS.Core.SCP.Service public async Task OnCStoreRequestAsync(DicomCStoreRequest request) { + #region 测试接收课题组信息 + + var privateTag = new DicomTag(0x9999, 0x1001, "PRJGROUPS"); + var groupIdsJson = request.Dataset.GetSingleValueOrDefault(privateTag, string.Empty); + var projectGroupIds = JsonConvert.DeserializeObject>(groupIdsJson); + 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); diff --git a/IRaCIS.Core.Application/Service/Visit/PatientService.cs b/IRaCIS.Core.Application/Service/Visit/PatientService.cs index 2caff3529..99bb7c4ae 100644 --- a/IRaCIS.Core.Application/Service/Visit/PatientService.cs +++ b/IRaCIS.Core.Application/Service/Visit/PatientService.cs @@ -505,7 +505,7 @@ namespace IRaCIS.Application.Services else { //"激活码信息有误!" - return ResponseOutput.NotOk(_localizer["Trial_ActivationCodeError"] ); + return ResponseOutput.NotOk(_localizer["Trial_ActivationCodeError"]); } } @@ -570,13 +570,13 @@ namespace IRaCIS.Application.Services await _trialRepository.BatchUpdateNoTrackingAsync(t => t.Id == trialId, u => new Trial() { AuthorizationEncrypt = newActivationCode, AuthorizationDate = deadLineDate }); var caheInfo = new TrialCacheInfo() { TrialId = trialInfo.Id, TrialStatusStr = trialInfo.TrialStatusStr, AuthorizationEncrypt = newActivationCode, CriterionTypes = trialInfo.CriterionTypes, AuthorizationDate = trialInfo.AuthorizationDate, CreateUserId = trialInfo.CreateUserId, TrialCode = trialInfo.TrialCode }; - + await _fusionCache.SetAsync(CacheKeys.Trial(trialInfo.Id.ToString()), caheInfo, TimeSpan.FromDays(7)); } else { // 激活信息反序列化错误 - return ResponseOutput.NotOk(_localizer["Trial_ActivationCodeDeserializeError"] ); + return ResponseOutput.NotOk(_localizer["Trial_ActivationCodeDeserializeError"]); } @@ -1315,7 +1315,7 @@ namespace IRaCIS.Application.Services } else { - var identification = find.Status == SubjectStatus.OnVisit ? "Patient_TrialExistSubjectCodeError1" : "Patient_TrialExistSubjectCodeError2"; + var identification = find.Status == SubjectStatus.OnVisit ? "Patient_TrialExistSubjectCodeError1" : "Patient_TrialExistSubjectCodeError2"; return ResponseOutput.NotOk(_localizer[identification, find.Code]); //subjectId = find.Id; } @@ -1799,7 +1799,7 @@ namespace IRaCIS.Application.Services if (!arraysEqual) { //_localizer[$"{g.Key.SubjectCode}所提交的访视中的检查时间,不符合后续访视的检查时间比前序检查的时间大的要求"] - return ResponseOutput.NotOk(_localizer["Patient_SubjectVisitSubmmitTimeVerifyError", g.Key.SubjectCode] ); + return ResponseOutput.NotOk(_localizer["Patient_SubjectVisitSubmmitTimeVerifyError", g.Key.SubjectCode]); } if (DateTime.Now < studyTimeOrderList.Max(t => t.StudyTime)) @@ -3407,9 +3407,17 @@ namespace IRaCIS.Application.Services cmoveRequest.OnResponseReceived += responseDelegate; + #region 测试私有tag 传输信息 + var privateTag = new DicomTag(0x9999, 0x1001, "PRJGROUPS"); + var groupIdsJson = (new List { "KTGroup1", "KTGroup2" }).ToJson(); + cmoveRequest.Dataset.Add(new DicomLongString(privateTag, groupIdsJson)); + + #endregion + + cmoveRequestList.Add(cmoveRequest); - _logger.LogInformation($"执行C-Move StudyInstanceUID:{item}"); + _logger.LogInformation($"执行C-Move StudyInstanceUID:{item},携带课题组信息:{groupIdsJson}"); } else