From 8eae9dde1624c53f112b887ffcc1f090df49554f Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 24 Jul 2025 09:38:33 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=BF=94=E5=9B=9E=E9=82=AE=E4=BB=B6?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Application/BusinessFilter/_Config/_AppSettings.cs | 2 ++ IRaCIS.Core.Application/Service/Management/UserService.cs | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/BusinessFilter/_Config/_AppSettings.cs b/IRaCIS.Core.Application/BusinessFilter/_Config/_AppSettings.cs index 348638218..b725834a6 100644 --- a/IRaCIS.Core.Application/BusinessFilter/_Config/_AppSettings.cs +++ b/IRaCIS.Core.Application/BusinessFilter/_Config/_AppSettings.cs @@ -85,6 +85,8 @@ public class SystemEmailSendConfigView public string CompanyShortName { get; set; } = string.Empty; public string CompanyShortNameCN { get; set; } = string.Empty; + + public string EmailRegexStr { get; set; } } public class SystemPacsConfig diff --git a/IRaCIS.Core.Application/Service/Management/UserService.cs b/IRaCIS.Core.Application/Service/Management/UserService.cs index 4e66d39a1..67e4f2e06 100644 --- a/IRaCIS.Core.Application/Service/Management/UserService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserService.cs @@ -922,7 +922,7 @@ namespace IRaCIS.Core.Application.Service var password = loginDto.Password; var emailConfig = _emailConfig.CurrentValue; - var companyInfo = new SystemEmailSendConfigView() { CompanyName = emailConfig.CompanyName, CompanyNameCN = emailConfig.CompanyNameCN, CompanyShortName = emailConfig.CompanyShortName, CompanyShortNameCN = emailConfig.CompanyShortNameCN,SystemShortName=emailConfig.SystemShortName }; + var companyInfo = new SystemEmailSendConfigView() { CompanyName = emailConfig.CompanyName, CompanyNameCN = emailConfig.CompanyNameCN, CompanyShortName = emailConfig.CompanyShortName, CompanyShortNameCN = emailConfig.CompanyShortNameCN,SystemShortName=emailConfig.SystemShortName ,EmailRegexStr=emailConfig.EmailRegexStr}; int maxFailures = _verifyConfig.CurrentValue.LoginMaxFailCount; From 26b17c12bbd7fd2f9256d16823d3b513568390eb Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 24 Jul 2025 10:06:21 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=87=8D=E4=BC=A0=E5=BD=B1=E5=83=8F?= =?UTF-8?q?=E6=97=B6=E4=B8=8D=E5=85=81=E8=AE=B8=E5=88=A0=E9=99=A4=E6=A3=80?= =?UTF-8?q?=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/QC/QCOperationService.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 4de34635b..aee683cf7 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -42,7 +42,7 @@ namespace IRaCIS.Core.Application.Image.QA IOSSService _oSSService, IRepository _readingClinicalDataReposiotry, IRepository _subjectVisitImageBackRecordReposiotry, - IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IWebHostEnvironment _hostEnvironment) : BaseService, IQCOperationService + IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IWebHostEnvironment _hostEnvironment, IFusionCache _fusionCache) : BaseService, IQCOperationService { @@ -1097,7 +1097,6 @@ namespace IRaCIS.Core.Application.Image.QA public async Task DeleteStudyList(Guid[] ids, Guid subjectVisitId, Guid trialId) { - //提交了 但是IQC同意的时候 是可以删除的 | 普通提交后也不能删除 if (await _subjectVisitRepository.AnyAsync(t => t.Id == subjectVisitId && t.SubmitState == SubmitStateEnum.Submitted && (!t.QCChallengeList.Any(u => u.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload)))) @@ -1107,6 +1106,14 @@ namespace IRaCIS.Core.Application.Image.QA } var waitDeleteStudyList = await _dicomStudyRepository.Where(x => ids.Contains(x.Id), false, true).ToListAsync(); + foreach (var item in waitDeleteStudyList) + { + if (_fusionCache.GetOrDefault(CacheKeys.TrialStudyUidUploading(trialId, item.StudyInstanceUid)) != Guid.Empty) + { + return ResponseOutput.NotOk(_localizer["QCOperation_IsInUploadingNoDelete"]); + } + } + foreach (var study in waitDeleteStudyList) { @@ -1274,7 +1281,7 @@ namespace IRaCIS.Core.Application.Image.QA break; case TrialQCProcess.SingleAudit: visitList = await _subjectVisitRepository - .Where(t=> t.SecondReviewState == SecondReviewState.None) + .Where(t => t.SecondReviewState == SecondReviewState.None) .Where(x => !x.SubjectVisitImageBackRecordList.Any(t => t.ImageBackState == ImageBackStateEnum.None)) .Where(x => x.SubmitState == SubmitStateEnum.Submitted && x.SecondReviewState == SecondReviewState.None && x.TrialId == inDto.TrialId && x.PreliminaryAuditUserId != _userInfo.UserRoleId && (x.CurrentActionUserId == _userInfo.UserRoleId || (x.AuditState != AuditStateEnum.PrimaryQCPassed && !x.IsTake))) From 57b7e3f65c2fd19b4fe5a7e4d2baeb76c44b301d Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 24 Jul 2025 11:49:44 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=B8=80=E8=87=B4=E6=80=A7=E5=88=86?= =?UTF-8?q?=E6=9E=90=E8=87=AA=E5=AE=9A=E4=B9=89=E9=98=85=E7=89=87=E5=AF=BC?= =?UTF-8?q?=E8=A1=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Common/ExcelExportService.cs | 28 +++++++++++++++---- .../Service/QC/_MapConfig.cs | 3 +- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index dbf2c065a..368ed5700 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -2215,6 +2215,24 @@ namespace IRaCIS.Core.Application.Service.Common else if (criterion.CriterionType == CriterionType.PCWG3) { + } + else if (criterion.CriterionType == CriterionType.SelfDefine) + { + //自定义的又问题名称重复 所以统一加上组名 + + //有重复的就加,没有重复的就不加 + if (list.Any(t => t.QuestionAnswerList.Select(t => t.QuestionName).Count() != t.QuestionAnswerList.Select(t => t.QuestionName).Distinct().Count())) + { + foreach (var item in list) + { + foreach (var qs in item.QuestionAnswerList) + { + qs.QuestionName = qs.Group + "_" + qs.QuestionName; + } + } + } + + } #endregion @@ -3630,11 +3648,11 @@ namespace IRaCIS.Core.Application.Service.Common VisitName = qa.SubjectVisit.VisitName, CurrentQCEnum = qa.CurrentQCEnum, - AuditTime = qa.CurrentQCEnum==CurrentQC.First?qa.SubjectVisit.PreliminaryAuditTime: (qa.CurrentQCEnum == CurrentQC.Second ? qa.SubjectVisit.ReviewAuditTime: qa.UpdateTime) , - AuditUserName = qa.CurrentQCEnum == CurrentQC.First ? qa.SubjectVisit.PreliminaryAuditUser.UserName : (qa.CurrentQCEnum == CurrentQC.Second ? qa.SubjectVisit.ReviewAuditUser.UserName : u.UserName) , + AuditTime = qa.CurrentQCEnum == CurrentQC.First ? qa.SubjectVisit.PreliminaryAuditTime : (qa.CurrentQCEnum == CurrentQC.Second ? qa.SubjectVisit.ReviewAuditTime : qa.UpdateTime), + AuditUserName = qa.CurrentQCEnum == CurrentQC.First ? qa.SubjectVisit.PreliminaryAuditUser.UserName : (qa.CurrentQCEnum == CurrentQC.Second ? qa.SubjectVisit.ReviewAuditUser.UserName : u.UserName), AuditUserFullName = qa.CurrentQCEnum == CurrentQC.First ? qa.SubjectVisit.PreliminaryAuditUser.FullName : (qa.CurrentQCEnum == CurrentQC.Second ? qa.SubjectVisit.ReviewAuditUser.FullName : u.FullName), - QuestionId=qa.TrialQCQuestionConfigure.Id, + QuestionId = qa.TrialQCQuestionConfigure.Id, QuesitonName = qa.TrialQCQuestionConfigure.QuestionName, ShowOrder = qa.TrialQCQuestionConfigure.ShowOrder, Answer = qa.Answer, @@ -3657,7 +3675,7 @@ namespace IRaCIS.Core.Application.Service.Common AuditUserName = g.Select(t => t.AuditUserName).First(), AuditUserFullName = g.Select(t => t.AuditUserFullName).First(), - QuestionAnswerList = g.Select(t => new QCQuestionAnswerExport() { Answer = t.Answer, QuestionName = t.QuesitonName, ShowOrder = t.ShowOrder ,QuestionId=t.QuestionId}).OrderBy(t => t.ShowOrder).ToList() + QuestionAnswerList = g.Select(t => new QCQuestionAnswerExport() { Answer = t.Answer, QuestionName = t.QuesitonName, ShowOrder = t.ShowOrder, QuestionId = t.QuestionId }).OrderBy(t => t.ShowOrder).ToList() }).OrderBy(t => t.TrialSiteCode).ThenBy(t => t.SubjectCode).ThenBy(t => t.VisitNum).ToList(); @@ -3669,7 +3687,7 @@ namespace IRaCIS.Core.Application.Service.Common exportInfo.CurrentTime = ExportExcelConverterDate.DateTimeInternationalToString(DateTime.Now, _userInfo.TimeZoneId); - var columNameList = _trialQCQuestionRepository.Where(t=>t.TrialId==trialId).OrderBy(t=>t.ShowOrder).Select(t=>new {t.QuestionName,t.Id}).ToList(); + var columNameList = _trialQCQuestionRepository.Where(t => t.TrialId == trialId).OrderBy(t => t.ShowOrder).Select(t => new { t.QuestionName, t.Id }).ToList(); var dynamicColumnConfig = new DynamicColumnConfig() diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs index 3212a2882..971964947 100644 --- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs @@ -249,7 +249,8 @@ namespace IRaCIS.Core.Application.Service QuestionValue = c.IsGlobalChange ? c.GlobalChangeAnswer : c.Answer, QuestionId = c.ReadingQuestionTrial.Id, TranslateDicName = c.ReadingQuestionTrial.DictionaryCode, - CDISCCode = c.ReadingQuestionTrial.CDISCCode + CDISCCode = c.ReadingQuestionTrial.CDISCCode, + Group= isEn_Us ? c.ReadingQuestionTrial.GroupEnName : c.ReadingQuestionTrial.GroupName, }))) ;