增加一致性核查排序 以及一致性核查国际化调整填充公司简称

Test_IRC_Net8
hang 2025-02-08 10:54:44 +08:00
parent 70e0a1325a
commit a73e5d4133
10 changed files with 32 additions and 12 deletions

View File

@ -61,6 +61,7 @@
"FromName": "irc", "FromName": "irc",
"AuthorizationCode": "ExtImg@2022", "AuthorizationCode": "ExtImg@2022",
"SiteUrl": "http://irc.extimaging.com/login", "SiteUrl": "http://irc.extimaging.com/login",
"SystemShortName": "IRC",
"OrganizationName": "Extlmaging", "OrganizationName": "Extlmaging",
"OrganizationNameCN": "Extlmaging", "OrganizationNameCN": "Extlmaging",
"CompanyName": "Extensive Imaging", "CompanyName": "Extensive Imaging",

View File

@ -81,6 +81,7 @@
"AuthorizationCode": "SHzyyl2021", "AuthorizationCode": "SHzyyl2021",
"SiteUrl": "http://irc.test.extimaging.com/login", "SiteUrl": "http://irc.test.extimaging.com/login",
"SystemShortName": "IRC",
"OrganizationName": "Extlmaging", "OrganizationName": "Extlmaging",
"OrganizationNameCN": "Extlmaging", "OrganizationNameCN": "Extlmaging",
"CompanyName": "Extensive Imaging", "CompanyName": "Extensive Imaging",

View File

@ -67,6 +67,7 @@
"FromName": "LiLi", "FromName": "LiLi",
"AuthorizationCode": "Q#669869497420ul", "AuthorizationCode": "Q#669869497420ul",
"SystemShortName": "LiLi",
"OrganizationName": "Elevate Imaging", "OrganizationName": "Elevate Imaging",
"OrganizationNameCN": "Elevate Imaging", "OrganizationNameCN": "Elevate Imaging",
"CompanyName": "Elevate Imaging Inc.", "CompanyName": "Elevate Imaging Inc.",

View File

@ -75,6 +75,7 @@
"FromName": "LiLi", "FromName": "LiLi",
"AuthorizationCode": "Q#669869497420ul", "AuthorizationCode": "Q#669869497420ul",
"SystemShortName": "LiLi",
"OrganizationName": "Elevate Imaging", "OrganizationName": "Elevate Imaging",
"OrganizationNameCN": "Elevate Imaging", "OrganizationNameCN": "Elevate Imaging",
"CompanyName": "Elevate Imaging Inc.", "CompanyName": "Elevate Imaging Inc.",

View File

@ -73,6 +73,7 @@
"FromName": "LiLi", "FromName": "LiLi",
"AuthorizationCode": "Q#669869497420ul", "AuthorizationCode": "Q#669869497420ul",
"SystemShortName": "LiLi",
"OrganizationName": "Elevate Imaging", "OrganizationName": "Elevate Imaging",
"OrganizationNameCN": "Elevate Imaging", "OrganizationNameCN": "Elevate Imaging",
"CompanyName": "Elevate Imaging Inc.", "CompanyName": "Elevate Imaging Inc.",

View File

@ -80,6 +80,8 @@
"FromName": "UAT_IRC", "FromName": "UAT_IRC",
"AuthorizationCode": "SHzyyl2021", "AuthorizationCode": "SHzyyl2021",
"SiteUrl": "http://irc.uat.extimaging.com/login", "SiteUrl": "http://irc.uat.extimaging.com/login",
"SystemShortName": "IRC",
"OrganizationName": "Extlmaging", "OrganizationName": "Extlmaging",
"OrganizationNameCN": "Extlmaging", "OrganizationNameCN": "Extlmaging",
"CompanyName": "Extensive Imaging", "CompanyName": "Extensive Imaging",

View File

@ -51,6 +51,8 @@ public class SystemEmailSendConfig
public string SiteUrl { get; set; } = string.Empty; public string SiteUrl { get; set; } = string.Empty;
public string SystemShortName { get; set; } = string.Empty;
public string OrganizationName { get; set; } = string.Empty; public string OrganizationName { get; set; } = string.Empty;
public string OrganizationNameCN { get; set; } = string.Empty; public string OrganizationNameCN { get; set; } = string.Empty;

View File

@ -13425,7 +13425,7 @@
返回 返回
</summary> </summary>
</member> </member>
<member name="M:IRaCIS.Core.Application.MassTransit.Consumer.ConsistencyCheckConsumer.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.DicomStudy},IRaCIS.Core.Domain.Share.IUserInfo,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Subject},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialSite},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudy},AutoMapper.IMapper,Microsoft.Extensions.Localization.IStringLocalizer)"> <member name="M:IRaCIS.Core.Application.MassTransit.Consumer.ConsistencyCheckConsumer.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.DicomStudy},IRaCIS.Core.Domain.Share.IUserInfo,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Subject},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialSite},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudy},AutoMapper.IMapper,Microsoft.Extensions.Localization.IStringLocalizer,Microsoft.Extensions.Options.IOptionsMonitor{IRaCIS.Core.Domain.Share.SystemEmailSendConfig})">
<summary> <summary>
构造函数注入 构造函数注入
</summary> </summary>

View File

@ -4,6 +4,7 @@ using IRaCIS.Core.Application.MassTransit.Command;
using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Domain.Share;
using MassTransit; using MassTransit;
using Microsoft.Extensions.Localization; using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Options;
using Newtonsoft.Json; using Newtonsoft.Json;
using System.Text; using System.Text;
@ -21,6 +22,8 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer
private readonly IRepository<NoneDicomStudy> _noneDicomStudyRepository; private readonly IRepository<NoneDicomStudy> _noneDicomStudyRepository;
public IStringLocalizer _localizer { get; set; } public IStringLocalizer _localizer { get; set; }
private readonly SystemEmailSendConfig _systemEmailConfig;
/// <summary> /// <summary>
/// 构造函数注入 /// 构造函数注入
/// </summary> /// </summary>
@ -28,7 +31,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer
public ConsistencyCheckConsumer(IRepository<DicomStudy> studyRepository, IUserInfo userInfo, public ConsistencyCheckConsumer(IRepository<DicomStudy> studyRepository, IUserInfo userInfo,
IRepository<Subject> subjectRepository, IRepository<SubjectVisit> subjectVisitRepository, IRepository<Subject> subjectRepository, IRepository<SubjectVisit> subjectVisitRepository,
IRepository<TrialSite> trialSiteRepository, IRepository<NoneDicomStudy> noneDicomStudyRepository, IRepository<TrialSite> trialSiteRepository, IRepository<NoneDicomStudy> noneDicomStudyRepository,
IMapper mapper, IStringLocalizer localizer) IMapper mapper, IStringLocalizer localizer, IOptionsMonitor<SystemEmailSendConfig> systemEmailConfig)
{ {
_noneDicomStudyRepository = noneDicomStudyRepository; _noneDicomStudyRepository = noneDicomStudyRepository;
_studyRepository = studyRepository; _studyRepository = studyRepository;
@ -38,6 +41,8 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer
_trialSiteRepository = trialSiteRepository; _trialSiteRepository = trialSiteRepository;
_mapper = mapper; _mapper = mapper;
_localizer = localizer; _localizer = localizer;
_systemEmailConfig = systemEmailConfig.CurrentValue;
} }
@ -186,7 +191,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer
{ {
dialogMsg.AppendLine($"<br/>"); dialogMsg.AppendLine($"<br/>");
//---核对EDC数据完全一致, 审核通过 //---核对EDC数据完全一致, 审核通过
dialogMsg.AppendLine(_localizer["ConsistencyVerification_EDCA"]); dialogMsg.AppendLine(_localizer["ConsistencyVerification_EDCA", _systemEmailConfig.SystemShortName]);
// dialogMsg.AppendLine(@$"<br>说明:为高效解决/处理以上全部质疑问题麻烦您准确核实实际影像检查情况。请注意影像日期与实际检查的日期可能会不一致部分检查如PET -CT)可能同时存在多种模态影像。准确核实后,请回复该访视正确的影像检查情况。"); // dialogMsg.AppendLine(@$"<br>说明:为高效解决/处理以上全部质疑问题麻烦您准确核实实际影像检查情况。请注意影像日期与实际检查的日期可能会不一致部分检查如PET -CT)可能同时存在多种模态影像。准确核实后,请回复该访视正确的影像检查情况。");
@ -196,7 +201,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer
dbSV.CheckChallengeState = CheckChanllengeTypeEnum.Closed; dbSV.CheckChallengeState = CheckChanllengeTypeEnum.Closed;
//---核对EDC数据完全一致 //---核对EDC数据完全一致
dbSV.CheckResult = _localizer["ConsistencyVerification_EDCB"]; dbSV.CheckResult = _localizer["ConsistencyVerification_EDCB", _systemEmailConfig.SystemShortName];
//---自动核查通过 //---自动核查通过
dbSV.ManualPassReason = _localizer["ConsistencyVerification_Auto"]; dbSV.ManualPassReason = _localizer["ConsistencyVerification_Auto"];
@ -224,7 +229,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer
{ {
num++; num++;
//影像检查(EDC 缺少) ConsistencyVerification_EdcL //影像检查(EDC 缺少) ConsistencyVerification_EdcL
dialogMsg.AppendLine($"<br/><div style='text-indent: 20px;'>{num}. {_localizer["ConsistencyVerification_EdcL", item.StudyDate, item.Modality]}</div>"); dialogMsg.AppendLine($"<br/><div style='text-indent: 20px;'>{num}. {_localizer["ConsistencyVerification_EdcL", item.StudyDate, item.Modality, _systemEmailConfig.SystemShortName]}</div>");
} }
@ -232,15 +237,15 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer
{ {
num++; num++;
// 影像检查(IRC 缺少) // 影像检查(IRC 缺少)
dialogMsg.AppendLine($"<br/><div style='text-indent: 20px;'>{num}. {_localizer["ConsistencyVerification_IrcLi", item.StudyDate, item.Modality]}</div>"); dialogMsg.AppendLine($"<br/><div style='text-indent: 20px;'>{num}. {_localizer["ConsistencyVerification_IrcLi", item.StudyDate, item.Modality, _systemEmailConfig.SystemShortName]}</div>");
} }
dialogMsg.AppendLine($"<br/>"); dialogMsg.AppendLine($"<br/>");
dialogMsg.AppendLine(@$"<div>{_localizer["ConsistencyVerification_Desc"]}</div>"); dialogMsg.AppendLine(@$"<div>{_localizer["ConsistencyVerification_Desc"]}</div>");
dbSV.CheckResult = _localizer["ConsistencyVerification_Conf"] + dbSV.CheckResult = _localizer["ConsistencyVerification_Conf"] +
String.Join(" | ", dbExceptExcel.Select(t => $"{_localizer["ConsistencyVerification_EdcL", 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]}")); + String.Join(" | ", excelExceptDB.Select(t => $"{_localizer["ConsistencyVerification_IrcLi", t.StudyDate, t.Modality, _systemEmailConfig.SystemShortName]}"));
//新增一致性核查质疑记录 //新增一致性核查质疑记录

View File

@ -1,6 +1,7 @@
using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Contracts.DTO; using IRaCIS.Core.Application.Contracts.DTO;
using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure; using IRaCIS.Core.Infrastructure;
using MassTransit.Initializers; using MassTransit.Initializers;
@ -279,7 +280,7 @@ namespace IRaCIS.Core.Application.Image.QA
/// <param name="inQuery"></param> /// <param name="inQuery"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public async Task<(PageOutput<QCCheckWithModalityView>, TrialSubjectAndSVConfig)> GetConsistencyVerificationList(CheckQuery inQuery) public async Task<IResponseOutput<PageOutput<QCCheckWithModalityView>>> GetConsistencyVerificationList(CheckQuery inQuery)
{ {
var svExpression = QCCommon.GetSubjectVisitFilter(inQuery.VisitPlanArray); 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 .WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.UserRoleId))//CRC 过滤负责的site
.ProjectTo<QCCheckWithModalityView>(_mapper.ConfigurationProvider); .ProjectTo<QCCheckWithModalityView>(_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<TrialSubjectAndSVConfig>(_mapper.ConfigurationProvider).FirstOrDefaultAsync().IfNullThrowException(); var config = await _trialRepository.Where(t => t.Id == inQuery.TrialId).ProjectTo<TrialSubjectAndSVConfig>(_mapper.ConfigurationProvider).FirstOrDefaultAsync().IfNullThrowException();
return (pageList, config);
return ResponseOutput.Ok(pageList, config);
} }
/// <summary> /// <summary>
@ -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()); 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);
} }