测试课题组信息传输

Test_HIR_Net8
hang 2025-08-12 15:03:39 +08:00
parent 2778ecb74a
commit 39c07ecc4f
2 changed files with 26 additions and 6 deletions

View File

@ -22,6 +22,7 @@ using SharpCompress.Common;
using SixLabors.ImageSharp.Formats.Jpeg; using SixLabors.ImageSharp.Formats.Jpeg;
using IRaCIS.Core.Infrastructure; using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Infrastructure.Extention; using IRaCIS.Core.Infrastructure.Extention;
using Newtonsoft.Json;
namespace IRaCIS.Core.SCP.Service namespace IRaCIS.Core.SCP.Service
{ {
@ -229,6 +230,17 @@ namespace IRaCIS.Core.SCP.Service
public async Task<DicomCStoreResponse> OnCStoreRequestAsync(DicomCStoreRequest request) public async Task<DicomCStoreResponse> OnCStoreRequestAsync(DicomCStoreRequest request)
{ {
#region 测试接收课题组信息
var privateTag = new DicomTag(0x9999, 0x1001, "PRJGROUPS");
var groupIdsJson = request.Dataset.GetSingleValueOrDefault<string>(privateTag, string.Empty);
var projectGroupIds = JsonConvert.DeserializeObject<List<string>>(groupIdsJson);
Log.Logger.Information("收到课题组信息: " + string.Join(", ", projectGroupIds));
#endregion
string studyInstanceUid = request.Dataset.GetSingleValueOrDefault(DicomTag.StudyInstanceUID, string.Empty); string studyInstanceUid = request.Dataset.GetSingleValueOrDefault(DicomTag.StudyInstanceUID, string.Empty);
string seriesInstanceUid = request.Dataset.GetSingleValueOrDefault(DicomTag.SeriesInstanceUID, string.Empty); string seriesInstanceUid = request.Dataset.GetSingleValueOrDefault(DicomTag.SeriesInstanceUID, string.Empty);

View File

@ -505,7 +505,7 @@ namespace IRaCIS.Application.Services
else 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 }); 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 }; 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)); await _fusionCache.SetAsync(CacheKeys.Trial(trialInfo.Id.ToString()), caheInfo, TimeSpan.FromDays(7));
} }
else else
{ {
// 激活信息反序列化错误 // 激活信息反序列化错误
return ResponseOutput.NotOk(_localizer["Trial_ActivationCodeDeserializeError"] ); return ResponseOutput.NotOk(_localizer["Trial_ActivationCodeDeserializeError"]);
} }
@ -1315,7 +1315,7 @@ namespace IRaCIS.Application.Services
} }
else 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]); return ResponseOutput.NotOk(_localizer[identification, find.Code]);
//subjectId = find.Id; //subjectId = find.Id;
} }
@ -1799,7 +1799,7 @@ namespace IRaCIS.Application.Services
if (!arraysEqual) if (!arraysEqual)
{ {
//_localizer[$"{g.Key.SubjectCode}所提交的访视中的检查时间,不符合后续访视的检查时间比前序检查的时间大的要求"] //_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)) if (DateTime.Now < studyTimeOrderList.Max(t => t.StudyTime))
@ -3407,9 +3407,17 @@ namespace IRaCIS.Application.Services
cmoveRequest.OnResponseReceived += responseDelegate; cmoveRequest.OnResponseReceived += responseDelegate;
#region 测试私有tag 传输信息
var privateTag = new DicomTag(0x9999, 0x1001, "PRJGROUPS");
var groupIdsJson = (new List<string> { "KTGroup1", "KTGroup2" }).ToJson();
cmoveRequest.Dataset.Add(new DicomLongString(privateTag, groupIdsJson));
#endregion
cmoveRequestList.Add(cmoveRequest); cmoveRequestList.Add(cmoveRequest);
_logger.LogInformation($"执行C-Move StudyInstanceUID{item}"); _logger.LogInformation($"执行C-Move StudyInstanceUID{item},携带课题组信息:{groupIdsJson}");
} }
else else