From a73e5d413358ce7ca154269c41fb58ee8a919e44 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Sat, 8 Feb 2025 10:54:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E8=87=B4=E6=80=A7?= =?UTF-8?q?=E6=A0=B8=E6=9F=A5=E6=8E=92=E5=BA=8F=20=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E4=B8=80=E8=87=B4=E6=80=A7=E6=A0=B8=E6=9F=A5=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96=E8=B0=83=E6=95=B4=E5=A1=AB=E5=85=85=E5=85=AC=E5=8F=B8?= =?UTF-8?q?=E7=AE=80=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/appsettings.Prod_IRC.json | 1 + IRaCIS.Core.API/appsettings.Test_IRC.json | 1 + IRaCIS.Core.API/appsettings.US_Prod_IRC.json | 1 + IRaCIS.Core.API/appsettings.US_Test_IRC.json | 1 + IRaCIS.Core.API/appsettings.US_Uat_IRC.json | 1 + IRaCIS.Core.API/appsettings.Uat_IRC.json | 2 ++ .../BusinessFilter/_Config/_AppSettings.cs | 2 ++ .../IRaCIS.Core.Application.xml | 2 +- .../Consumer/ConsistencyCheckConsumer.cs | 19 ++++++++++++------- .../Service/QC/QCListService.cs | 14 ++++++++++---- 10 files changed, 32 insertions(+), 12 deletions(-) diff --git a/IRaCIS.Core.API/appsettings.Prod_IRC.json b/IRaCIS.Core.API/appsettings.Prod_IRC.json index e3ad98834..9de1e7fab 100644 --- a/IRaCIS.Core.API/appsettings.Prod_IRC.json +++ b/IRaCIS.Core.API/appsettings.Prod_IRC.json @@ -61,6 +61,7 @@ "FromName": "irc", "AuthorizationCode": "ExtImg@2022", "SiteUrl": "http://irc.extimaging.com/login", + "SystemShortName": "IRC", "OrganizationName": "Extlmaging", "OrganizationNameCN": "Extlmaging", "CompanyName": "Extensive Imaging", diff --git a/IRaCIS.Core.API/appsettings.Test_IRC.json b/IRaCIS.Core.API/appsettings.Test_IRC.json index d6b5b6553..1b3af9b10 100644 --- a/IRaCIS.Core.API/appsettings.Test_IRC.json +++ b/IRaCIS.Core.API/appsettings.Test_IRC.json @@ -81,6 +81,7 @@ "AuthorizationCode": "SHzyyl2021", "SiteUrl": "http://irc.test.extimaging.com/login", + "SystemShortName": "IRC", "OrganizationName": "Extlmaging", "OrganizationNameCN": "Extlmaging", "CompanyName": "Extensive Imaging", diff --git a/IRaCIS.Core.API/appsettings.US_Prod_IRC.json b/IRaCIS.Core.API/appsettings.US_Prod_IRC.json index a070fcdc8..062fc5831 100644 --- a/IRaCIS.Core.API/appsettings.US_Prod_IRC.json +++ b/IRaCIS.Core.API/appsettings.US_Prod_IRC.json @@ -67,6 +67,7 @@ "FromName": "LiLi", "AuthorizationCode": "Q#669869497420ul", + "SystemShortName": "LiLi", "OrganizationName": "Elevate Imaging", "OrganizationNameCN": "Elevate Imaging", "CompanyName": "Elevate Imaging Inc.", diff --git a/IRaCIS.Core.API/appsettings.US_Test_IRC.json b/IRaCIS.Core.API/appsettings.US_Test_IRC.json index 717c771f7..044c35bf8 100644 --- a/IRaCIS.Core.API/appsettings.US_Test_IRC.json +++ b/IRaCIS.Core.API/appsettings.US_Test_IRC.json @@ -75,6 +75,7 @@ "FromName": "LiLi", "AuthorizationCode": "Q#669869497420ul", + "SystemShortName": "LiLi", "OrganizationName": "Elevate Imaging", "OrganizationNameCN": "Elevate Imaging", "CompanyName": "Elevate Imaging Inc.", diff --git a/IRaCIS.Core.API/appsettings.US_Uat_IRC.json b/IRaCIS.Core.API/appsettings.US_Uat_IRC.json index 0e80aebd5..24bec33f2 100644 --- a/IRaCIS.Core.API/appsettings.US_Uat_IRC.json +++ b/IRaCIS.Core.API/appsettings.US_Uat_IRC.json @@ -73,6 +73,7 @@ "FromName": "LiLi", "AuthorizationCode": "Q#669869497420ul", + "SystemShortName": "LiLi", "OrganizationName": "Elevate Imaging", "OrganizationNameCN": "Elevate Imaging", "CompanyName": "Elevate Imaging Inc.", diff --git a/IRaCIS.Core.API/appsettings.Uat_IRC.json b/IRaCIS.Core.API/appsettings.Uat_IRC.json index e76b4de97..df2bd3755 100644 --- a/IRaCIS.Core.API/appsettings.Uat_IRC.json +++ b/IRaCIS.Core.API/appsettings.Uat_IRC.json @@ -80,6 +80,8 @@ "FromName": "UAT_IRC", "AuthorizationCode": "SHzyyl2021", "SiteUrl": "http://irc.uat.extimaging.com/login", + + "SystemShortName": "IRC", "OrganizationName": "Extlmaging", "OrganizationNameCN": "Extlmaging", "CompanyName": "Extensive Imaging", diff --git a/IRaCIS.Core.Application/BusinessFilter/_Config/_AppSettings.cs b/IRaCIS.Core.Application/BusinessFilter/_Config/_AppSettings.cs index 2340b302f..1c6e4b887 100644 --- a/IRaCIS.Core.Application/BusinessFilter/_Config/_AppSettings.cs +++ b/IRaCIS.Core.Application/BusinessFilter/_Config/_AppSettings.cs @@ -51,6 +51,8 @@ public class SystemEmailSendConfig public string SiteUrl { get; set; } = string.Empty; + public string SystemShortName { get; set; } = string.Empty; + public string OrganizationName { get; set; } = string.Empty; public string OrganizationNameCN { get; set; } = string.Empty; diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 07e7bc1c8..7e619eeed 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -13425,7 +13425,7 @@ 返回 - + 构造函数注入 diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/ConsistencyCheckConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/ConsistencyCheckConsumer.cs index 1f68fca39..3b8c97d7a 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/ConsistencyCheckConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/ConsistencyCheckConsumer.cs @@ -4,6 +4,7 @@ using IRaCIS.Core.Application.MassTransit.Command; using IRaCIS.Core.Domain.Share; using MassTransit; using Microsoft.Extensions.Localization; +using Microsoft.Extensions.Options; using Newtonsoft.Json; using System.Text; @@ -21,6 +22,8 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer private readonly IRepository _noneDicomStudyRepository; public IStringLocalizer _localizer { get; set; } + private readonly SystemEmailSendConfig _systemEmailConfig; + /// /// 构造函数注入 /// @@ -28,7 +31,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer public ConsistencyCheckConsumer(IRepository studyRepository, IUserInfo userInfo, IRepository subjectRepository, IRepository subjectVisitRepository, IRepository trialSiteRepository, IRepository noneDicomStudyRepository, - IMapper mapper, IStringLocalizer localizer) + IMapper mapper, IStringLocalizer localizer, IOptionsMonitor systemEmailConfig) { _noneDicomStudyRepository = noneDicomStudyRepository; _studyRepository = studyRepository; @@ -38,6 +41,8 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer _trialSiteRepository = trialSiteRepository; _mapper = mapper; _localizer = localizer; + + _systemEmailConfig = systemEmailConfig.CurrentValue; } @@ -186,7 +191,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer { dialogMsg.AppendLine($"
"); //---核对EDC数据,完全一致, 审核通过 - dialogMsg.AppendLine(_localizer["ConsistencyVerification_EDCA"]); + dialogMsg.AppendLine(_localizer["ConsistencyVerification_EDCA", _systemEmailConfig.SystemShortName]); // dialogMsg.AppendLine(@$"
说明:为高效解决/处理以上全部质疑问题,麻烦您准确核实实际影像检查情况。请注意影像日期与实际检查的日期可能会不一致,部分检查(如PET -CT)可能同时存在多种模态影像。准确核实后,请回复该访视正确的影像检查情况。"); @@ -196,7 +201,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer dbSV.CheckChallengeState = CheckChanllengeTypeEnum.Closed; //---核对EDC数据,完全一致 - dbSV.CheckResult = _localizer["ConsistencyVerification_EDCB"]; + dbSV.CheckResult = _localizer["ConsistencyVerification_EDCB", _systemEmailConfig.SystemShortName]; //---自动核查通过 dbSV.ManualPassReason = _localizer["ConsistencyVerification_Auto"]; @@ -224,7 +229,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer { num++; //影像检查(EDC 缺少) ConsistencyVerification_EdcL - dialogMsg.AppendLine($"
{num}. {_localizer["ConsistencyVerification_EdcL", item.StudyDate, item.Modality]}
"); + dialogMsg.AppendLine($"
{num}. {_localizer["ConsistencyVerification_EdcL", item.StudyDate, item.Modality, _systemEmailConfig.SystemShortName]}
"); } @@ -232,15 +237,15 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer { num++; // 影像检查(IRC 缺少) - dialogMsg.AppendLine($"
{num}. {_localizer["ConsistencyVerification_IrcLi", item.StudyDate, item.Modality]}
"); + dialogMsg.AppendLine($"
{num}. {_localizer["ConsistencyVerification_IrcLi", item.StudyDate, item.Modality, _systemEmailConfig.SystemShortName]}
"); } dialogMsg.AppendLine($"
"); dialogMsg.AppendLine(@$"
{_localizer["ConsistencyVerification_Desc"]}
"); dbSV.CheckResult = _localizer["ConsistencyVerification_Conf"] + - String.Join(" | ", dbExceptExcel.Select(t => $"{_localizer["ConsistencyVerification_EdcL", t.StudyDate, t.Modality]}")) + " | " - + String.Join(" | ", excelExceptDB.Select(t => $"{_localizer["ConsistencyVerification_IrcLi", t.StudyDate, t.Modality]}")); + String.Join(" | ", dbExceptExcel.Select(t => $"{_localizer["ConsistencyVerification_EdcL", t.StudyDate, t.Modality, _systemEmailConfig.SystemShortName]}")) + " | " + + String.Join(" | ", excelExceptDB.Select(t => $"{_localizer["ConsistencyVerification_IrcLi", t.StudyDate, t.Modality, _systemEmailConfig.SystemShortName]}")); //新增一致性核查质疑记录 diff --git a/IRaCIS.Core.Application/Service/QC/QCListService.cs b/IRaCIS.Core.Application/Service/QC/QCListService.cs index f5f99cd48..7a52b16f8 100644 --- a/IRaCIS.Core.Application/Service/QC/QCListService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCListService.cs @@ -1,6 +1,7 @@ using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Contracts.DTO; using IRaCIS.Core.Application.Service.Reading.Dto; +using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infrastructure; using MassTransit.Initializers; @@ -279,7 +280,7 @@ namespace IRaCIS.Core.Application.Image.QA /// /// [HttpPost] - public async Task<(PageOutput, TrialSubjectAndSVConfig)> GetConsistencyVerificationList(CheckQuery inQuery) + public async Task>> GetConsistencyVerificationList(CheckQuery inQuery) { var svExpression = QCCommon.GetSubjectVisitFilter(inQuery.VisitPlanArray); @@ -294,9 +295,14 @@ namespace IRaCIS.Core.Application.Image.QA .WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.UserRoleId))//CRC 过滤负责的site .ProjectTo(_mapper.ConfigurationProvider); - var pageList = await query.ToPagedListAsync(inQuery); + + var defalutSortArray = new string[] { nameof(QCCheckWithModalityView.CheckState), nameof(QCCheckWithModalityView.IsUrgent), nameof(QCCheckWithModalityView.SubjectCode), nameof(QCCheckWithModalityView.VisitNum) }; + + var pageList = await query.ToPagedListAsync(inQuery, defalutSortArray); + var config = await _trialRepository.Where(t => t.Id == inQuery.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync().IfNullThrowException(); - return (pageList, config); + + return ResponseOutput.Ok(pageList, config); } /// @@ -530,7 +536,7 @@ namespace IRaCIS.Core.Application.Image.QA config.IsPacsConnectConfiged = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).AnyAsync(t => t.Trial.IsPACSConnect && t.Subject.TrialSite.TrialSiteDicomAEList.Any()); - return ResponseOutput.Ok (list, config); + return ResponseOutput.Ok(list, config); }