修改国际化
continuous-integration/drone/push Build is passing Details

Test_HIR_Net8
hang 2025-04-18 13:06:59 +08:00
parent 213cb69332
commit 49c3a0d494
3 changed files with 56 additions and 32 deletions

View File

@ -179,8 +179,8 @@ public class TrialGlobalLimitActionFilter(IFusionCache _fusionCache, IUserInfo _
} }
catch (Exception) catch (Exception)
{ {
//该授权码与该项目不匹配(无法解密)
context.Result = new JsonResult(ResponseOutput.NotOk(_localizer["该授权码与该项目不匹配"])); context.Result = new JsonResult(ResponseOutput.NotOk(_localizer["TrialGlobalLimit_AuthorizationCodeError"]));
return; return;
} }
@ -193,13 +193,15 @@ public class TrialGlobalLimitActionFilter(IFusionCache _fusionCache, IUserInfo _
if (authInfo.TrialCode != trialInfo.TrialCode || authInfo.CreateUserId != trialInfo.CreateUserId || authInfo.TrialId != trialInfo.TrialId if (authInfo.TrialCode != trialInfo.TrialCode || authInfo.CreateUserId != trialInfo.CreateUserId || authInfo.TrialId != trialInfo.TrialId
|| authInfo.HospitalCode != hospitalCode || trialInfo.CriterionTypeList.Except(authInfo.CriterionTypeList).Count() != 0) || authInfo.HospitalCode != hospitalCode || trialInfo.CriterionTypeList.Except(authInfo.CriterionTypeList).Count() != 0)
{ {
context.Result = new JsonResult(ResponseOutput.NotOk(_localizer["您的操作被禁止,系统检测到该项目授权码与该项目授权配置信息不一致,请还原项目授权配置信息!"])); // 您的操作被禁止,系统检测到该项目授权码与该项目授权配置信息不一致,请还原项目授权配置信息!
context.Result = new JsonResult(ResponseOutput.NotOk(_localizer["TrialGlobalLimit_AuthorizationCodeInfoError"]));
return; return;
} }
if (DateTime.Now > authInfo.AuthorizationDeadLineDate.Value.AddDays(15)) if (DateTime.Now > authInfo.AuthorizationDeadLineDate.Value.AddDays(15))
{ {
context.Result = new JsonResult(ResponseOutput.NotOk(_localizer["当前时间已经超过项目授权截止时间半个月,请重新获取项目授权后再进行操作!"])); //当前时间已经超过项目授权截止时间半个月,请重新获取项目授权后再进行操作!
context.Result = new JsonResult(ResponseOutput.NotOk(_localizer["TrialGlobalLimit_AuthorizationCodeAfterDeadLine15Days"]));
return; return;
} }

View File

@ -1283,6 +1283,7 @@ namespace IRaCIS.Core.Application
await _fusionCache.SetAsync(CacheKeys.Trial(trial.Id.ToString()), caheInfo, TimeSpan.FromDays(7)); await _fusionCache.SetAsync(CacheKeys.Trial(trial.Id.ToString()), caheInfo, TimeSpan.FromDays(7));
await _trialRepository.SaveChangesAsync(); await _trialRepository.SaveChangesAsync();
return ResponseOutput.Ok(); return ResponseOutput.Ok();

View File

@ -230,8 +230,8 @@ namespace IRaCIS.Application.Services
} }
catch (Exception) catch (Exception)
{ {
//项目未授权,请确认。
return ResponseOutput.Ok(trial, msg: "项目未授权,请确认。", code: ApiResponseCodeEnum.NeedTips); return ResponseOutput.Ok(trial, msg: _localizer["Patient_TrialNotAuthorization"], code: ApiResponseCodeEnum.NeedTips);
} }
} }
return ResponseOutput.Ok(trial); return ResponseOutput.Ok(trial);
@ -276,7 +276,8 @@ namespace IRaCIS.Application.Services
{ {
if (await _trialRepository.AnyAsync(u => u.ResearchProgramNo == inCommand.ResearchProgramNo && u.CriterionTypes.Contains($"|{(int)criterionType}|"))) if (await _trialRepository.AnyAsync(u => u.ResearchProgramNo == inCommand.ResearchProgramNo && u.CriterionTypes.Contains($"|{(int)criterionType}|")))
{ {
throw new BusinessValidationFailedException($"已存在研究方案号为{inCommand.ResearchProgramNo},该标准的项目"); //"已存在研究方案号为{inCommand.ResearchProgramNo},该标准的项目"
throw new BusinessValidationFailedException(_localizer["Patient_SameResearchProgramNoTrial", inCommand.ResearchProgramNo]);
} }
} }
@ -338,7 +339,7 @@ namespace IRaCIS.Application.Services
{ {
if (await _trialRepository.AnyAsync(u => u.ResearchProgramNo == inCommand.ResearchProgramNo && u.CriterionTypes.Contains($"|{(int)criterionType}|") && u.Id != updateModel.Id)) if (await _trialRepository.AnyAsync(u => u.ResearchProgramNo == inCommand.ResearchProgramNo && u.CriterionTypes.Contains($"|{(int)criterionType}|") && u.Id != updateModel.Id))
{ {
throw new BusinessValidationFailedException($"已存在研究方案号为{inCommand.ResearchProgramNo},该标准的项目"); throw new BusinessValidationFailedException(_localizer["Patient_SameResearchProgramNoTrial", inCommand.ResearchProgramNo]);
} }
} }
@ -490,8 +491,8 @@ namespace IRaCIS.Application.Services
} }
catch (Exception) catch (Exception)
{ {
//"激活码有误,请核对,无法激活"
return ResponseOutput.NotOk("激活码有误,请核对,无法激活"); return ResponseOutput.NotOk(_localizer["Trial_ActivationCodeError"]);
} }
var authInfo = JsonConvert.DeserializeObject<TrialAuthorizationInfo>(decodedText); var authInfo = JsonConvert.DeserializeObject<TrialAuthorizationInfo>(decodedText);
@ -502,7 +503,8 @@ namespace IRaCIS.Application.Services
} }
else else
{ {
return ResponseOutput.NotOk("激活码信息有误!"); //"激活码信息有误!"
return ResponseOutput.NotOk(_localizer["Trial_ActivationCodeError"] );
} }
} }
@ -534,8 +536,8 @@ namespace IRaCIS.Application.Services
} }
catch (Exception) catch (Exception)
{ {
//激活码有误,请核对,无法激活
return ResponseOutput.NotOk("激活码有误,请核对,无法激活"); return ResponseOutput.NotOk(_localizer["Trial_ActivationCodeError"]);
} }
var authInfo = JsonConvert.DeserializeObject<TrialAuthorizationInfo>(decodedText); var authInfo = JsonConvert.DeserializeObject<TrialAuthorizationInfo>(decodedText);
@ -545,12 +547,14 @@ namespace IRaCIS.Application.Services
if (authInfo.TrialCode != trialInfo.TrialCode || authInfo.CreateUserId != trialInfo.CreateUserId || authInfo.HospitalCode != hospitalCode || if (authInfo.TrialCode != trialInfo.TrialCode || authInfo.CreateUserId != trialInfo.CreateUserId || authInfo.HospitalCode != hospitalCode ||
authInfo.TrialId != trialInfo.Id || trialInfo.CriterionTypeList.Except(authInfo.CriterionTypeList).Count() != 0) authInfo.TrialId != trialInfo.Id || trialInfo.CriterionTypeList.Except(authInfo.CriterionTypeList).Count() != 0)
{ {
return ResponseOutput.NotOk("该授权码与该项目不匹配"); //"该授权码与该项目不匹配"
return ResponseOutput.NotOk(_localizer["Trial_ActivationCodeIsNotCurrentTrialError"]);
} }
if (DateTime.Now > authInfo.ActiveDeadLineDate) if (DateTime.Now > authInfo.ActiveDeadLineDate)
{ {
return ResponseOutput.NotOk($"当前时间{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}超过激活时间{authInfo.ActiveDeadLineDate.Value.ToString("yyyy-MM-dd HH:mm:ss")},请联系授权方重新获取激活码"); //$"当前时间{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}超过激活时间{authInfo.ActiveDeadLineDate.Value.ToString("yyyy-MM-dd HH:mm:ss")},请联系授权方重新获取激活码"
return ResponseOutput.NotOk(_localizer["Trial_ActivationCodeActiveTimeError", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), authInfo.ActiveDeadLineDate.Value.ToString("yyyy-MM-dd HH:mm:ss")]);
} }
//截止日期 //截止日期
@ -565,12 +569,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 _provider.SetAsync(trialInfo.Id.ToString(), JsonConvert.SerializeObject(caheInfo), TimeSpan.FromDays(7)); await _fusionCache.SetAsync(CacheKeys.Trial(trialInfo.Id.ToString()), caheInfo, TimeSpan.FromDays(7));
} }
else else
{ {
return ResponseOutput.NotOk("该授权码与该项目不匹配"); // 激活信息反序列化错误
return ResponseOutput.NotOk(_localizer["Trial_ActivationCodeDeserializeError"] );
} }
@ -1244,7 +1249,12 @@ namespace IRaCIS.Application.Services
var find = await _subjectRepository.FirstOrDefaultAsync(t => t.TrialId == inCommand.TrialId && t.Code == inCommand.SubjectCode); var find = await _subjectRepository.FirstOrDefaultAsync(t => t.TrialId == inCommand.TrialId && t.Code == inCommand.SubjectCode);
if (find != null) if (find != null)
{ {
return ResponseOutput.NotOk($"项目中已存在编号为“{find.Code}”的受试者,状态为:{(find.Status == SubjectStatus.OnVisit ? "访" : "访")},不允许添加。", ApiResponseCodeEnum.NeedTips); //$"项目中已存在编号为“{find.Code}”的受试者,状态为:{(find.Status == SubjectStatus.OnVisit ? "访视中" : "访视结束")},不允许添加。"
var identification = find.Status == SubjectStatus.OnVisit ? "Patient_TrialExistSubjectCodeError1" : "Patient_TrialExistSubjectCodeError2";
return ResponseOutput.NotOk(_localizer[identification, find.Code], ApiResponseCodeEnum.NeedTips);
} }
return ResponseOutput.Ok(); return ResponseOutput.Ok();
@ -1304,8 +1314,8 @@ namespace IRaCIS.Application.Services
} }
else else
{ {
var identification = find.Status == SubjectStatus.OnVisit ? "Patient_TrialExistSubjectCodeError1" : "Patient_TrialExistSubjectCodeError2";
return ResponseOutput.NotOk($"项目中已存在编号为“{find.Code}”的受试者,状态为:{(find.Status == SubjectStatus.OnVisit ? "访" : "访")},不允许添加。"); return ResponseOutput.NotOk(_localizer[identification, find.Code]);
//subjectId = find.Id; //subjectId = find.Id;
} }
@ -1417,7 +1427,8 @@ namespace IRaCIS.Application.Services
} }
else if (_studySubjectVisitRepository.Any(t => t.SubjectId == subjectId && t.SubjectVisit.SubmitState == SubmitStateEnum.Submitted)) else if (_studySubjectVisitRepository.Any(t => t.SubjectId == subjectId && t.SubjectVisit.SubmitState == SubmitStateEnum.Submitted))
{ {
return ResponseOutput.NotOk(_localizer["该受试者有访视已提交,不允许解除受试者和该患者的绑定关系"]); //该受试者有访视已提交,不允许解除受试者和该患者的绑定关系
return ResponseOutput.NotOk(_localizer["Patient_SubjectVisitSubmitedCannotUnBinding"]);
} }
@ -1558,7 +1569,8 @@ namespace IRaCIS.Application.Services
if (_subjectRepository.Any(t => t.Id == subjectId && t.Status == SubjectStatus.EndOfVisit)) if (_subjectRepository.Any(t => t.Id == subjectId && t.Status == SubjectStatus.EndOfVisit))
{ {
return ResponseOutput.NotOk(_localizer["受试者状态为访视结束,不允许绑定访视和检查"]); //受试者状态为访视结束,不允许绑定访视和检查
return ResponseOutput.NotOk(_localizer["Patient_SubjectEndOfVisit"]);
} }
var subjectVisit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId); var subjectVisit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId);
@ -1598,7 +1610,8 @@ namespace IRaCIS.Application.Services
if (!arraysEqual) if (!arraysEqual)
{ {
return ResponseOutput.NotOk(_localizer[$"{bindVisit.SubjectCode}所提交的访视中的检查时间,不符合后续访视的检查时间比前序检查的时间大的要求"]); //_localizer[$"{bindVisit.SubjectCode}所提交的访视中的检查时间,不符合后续访视的检查时间比前序检查的时间大的要求"]
return ResponseOutput.NotOk(_localizer["Patient_SubjectVisitSubmmitTimeVerifyError", bindVisit.SubjectCode]);
} }
@ -1738,7 +1751,8 @@ namespace IRaCIS.Application.Services
{ {
if (allVisitList.Where(t => t.SubmitState != SubmitStateEnum.Submitted).Count() != inCommand.SubjectVisitIdList.Count()) if (allVisitList.Where(t => t.SubmitState != SubmitStateEnum.Submitted).Count() != inCommand.SubjectVisitIdList.Count())
{ {
return ResponseOutput.NotOk(_localizer["当前批量提交的访视中间有遗漏的访视或者前序有访视未提交"]); //当前批量提交的访视中间有遗漏的访视或者前序有访视未提交
return ResponseOutput.NotOk(_localizer["Patient_CurrentBatchSubmitVisitError"]);
} }
} }
@ -1746,25 +1760,29 @@ namespace IRaCIS.Application.Services
{ {
if (allVisitList.Any(t => t.VisitNum < curentMaxNum && t.SubmitState != SubmitStateEnum.Submitted)) if (allVisitList.Any(t => t.VisitNum < curentMaxNum && t.SubmitState != SubmitStateEnum.Submitted))
{ {
return ResponseOutput.NotOk(_localizer["前序有访视未提交,请先提交前序访视"]); //前序有访视未提交,请先提交前序访视
return ResponseOutput.NotOk(_localizer["Patient_BeforeVisitNotSubmit"]);
} }
} }
if (allVisitList.Any(t => t.Status == SubjectStatus.EndOfVisit)) if (allVisitList.Any(t => t.Status == SubjectStatus.EndOfVisit))
{ {
return ResponseOutput.NotOk(_localizer["受试者状态为访视结束,不允许提交访视生成任务"]); //受试者状态为访视结束,不允许提交访视生成任务
return ResponseOutput.NotOk(_localizer["Patient_SubjectEndOfVisitNotSubmit"]);
} }
var list = await _studySubjectVisitRepository.Where(t => inCommand.SubjectVisitIdList.Contains(t.SubjectVisitId)).Select(t => new { t.SCPStudyId, t.SCPStudy.PatientId, t.SubjectVisitId, t.SubjectVisit.VisitNum, t.SubjectVisit.SubjectId, SubjectCode = t.SubjectVisit.Subject.Code, t.SubjectVisit.TrialId, t.SCPStudy.StudyTime, t.StudyId, t.SCPStudy.IsUploadFinished }).OrderBy(t => t.StudyTime).ToListAsync(); var list = await _studySubjectVisitRepository.Where(t => inCommand.SubjectVisitIdList.Contains(t.SubjectVisitId)).Select(t => new { t.SCPStudyId, t.SCPStudy.PatientId, t.SubjectVisitId, t.SubjectVisit.VisitNum, t.SubjectVisit.SubjectId, SubjectCode = t.SubjectVisit.Subject.Code, t.SubjectVisit.TrialId, t.SCPStudy.StudyTime, t.StudyId, t.SCPStudy.IsUploadFinished }).OrderBy(t => t.StudyTime).ToListAsync();
if (list.Any(t => t.StudyId != null)) if (list.Any(t => t.StudyId != null))
{ {
return ResponseOutput.NotOk(_localizer["有访视和检查处于已绑定关系,不允许再次提交绑定"]); //有访视和检查处于已绑定关系,不允许再次提交绑定
return ResponseOutput.NotOk(_localizer["Patient_VisitAndStudyHaveBind"]);
} }
if (list.Any(t => t.IsUploadFinished == false)) if (list.Any(t => t.IsUploadFinished == false))
{ {
return ResponseOutput.NotOk(_localizer["有访视检查正在传输中,不允许提交"]); //有访视检查正在传输中,不允许提交
return ResponseOutput.NotOk(_localizer["Patient_VisitStudyIsUploading"]);
} }
@ -1779,12 +1797,14 @@ namespace IRaCIS.Application.Services
if (!arraysEqual) if (!arraysEqual)
{ {
return ResponseOutput.NotOk(_localizer[$"{g.Key.SubjectCode}所提交的访视中的检查时间,不符合后续访视的检查时间比前序检查的时间大的要求"]); //_localizer[$"{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))
{ {
return ResponseOutput.NotOk(_localizer[$"您当前修改了服务器时间,试图绕过软件授权,请恢复服务器时间,并联系授权方授权才可进行操作"]); //$"您当前修改了服务器时间,试图绕过软件授权,请恢复服务器时间,并联系授权方授权才可进行操作"
return ResponseOutput.NotOk(_localizer["Patient_ModifyServerTimeError"]);
} }
} }
@ -1812,7 +1832,8 @@ namespace IRaCIS.Application.Services
//提交的访视下没有检查 //提交的访视下没有检查
if (!_studySubjectVisitRepository.Any(t => t.SubjectVisitId == item.SubjectVisitId)) if (!_studySubjectVisitRepository.Any(t => t.SubjectVisitId == item.SubjectVisitId))
{ {
return ResponseOutput.NotOk(_localizer["提交的访视下必须有影像检查!"]); //提交的访视下必须有影像检查!
return ResponseOutput.NotOk(_localizer["Patient_SubmitVisitMustHaveImage"]);
} }
var dbSubjectVisit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == item.SubjectVisitId); var dbSubjectVisit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == item.SubjectVisitId);