diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/ConsistencyCheckConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/ConsistencyCheckConsumer.cs index 22e74afd9..26a5d6959 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/ConsistencyCheckConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/ConsistencyCheckConsumer.cs @@ -1,8 +1,10 @@ using AutoMapper; +using IRaCIS.Application.Interfaces; using IRaCIS.Core.Application.Contracts.DTO; using IRaCIS.Core.Application.MassTransit.Command; using IRaCIS.Core.Domain.Share; using MassTransit; +using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Localization; using Microsoft.Extensions.Options; using Newtonsoft.Json; @@ -24,6 +26,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer private readonly SystemEmailSendConfig _systemEmailConfig; + private readonly IRepository _dictionaryRepository; /// /// 构造函数注入 /// @@ -31,7 +34,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, IOptionsMonitor systemEmailConfig) + IMapper mapper, IStringLocalizer localizer, IOptionsMonitor systemEmailConfig, IRepository dictionaryRepository) { _noneDicomStudyRepository = noneDicomStudyRepository; _studyRepository = studyRepository; @@ -43,6 +46,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer _localizer = localizer; _systemEmailConfig = systemEmailConfig.CurrentValue; + _dictionaryRepository = dictionaryRepository; } @@ -52,6 +56,9 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer var trialId = context.Message.TrialId; + //系统定义MRI 到底是MR 还是MRI + var mriModality = await _dictionaryRepository.Where(t => t.Parent.Code == "Modality").Where(t => t.Code == "MRI").Select(t => t.Value).FirstNotNullAsync(); + //处理Excel大小写 context.Message.ETCList.ForEach(t => { t.Modality = t.Modality.ToUpper().Trim(); t.StudyDate = Convert.ToDateTime(t.StudyDate).ToString("yyyy-MM-dd"); t.SiteCode = t.SiteCode.ToUpper().Trim(); t.VisitName = t.VisitName.ToUpper().Trim(); t.SubjectCode = t.SubjectCode.ToUpper().Trim(); }); var etcList = context.Message.ETCList; @@ -120,6 +127,16 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer var etcVisitStudyList = etcList.Where(t => t.SubjectCode == sv.SubjectCode && t.SiteCode == sv.SiteCode && t.VisitName == sv.VisitName).ToList(); + //以我们系统数据库为准 ,判断是MR 还是MRI, 把Excel 里的MR 或者MRI 处理成一致,MR MRI 是一致的 + foreach (var item in etcVisitStudyList) + { + if (item.Modality == "MR" || item.Modality == "MRI") + { + item.Modality = mriModality; + } + } + + StringBuilder dialogMsg = new StringBuilder(); //---您好,根据本系统自动识别,该受试者当前访视在IRC系统中已提交的影像检查情况如下: @@ -243,7 +260,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer dialogMsg.AppendLine($"
"); dialogMsg.AppendLine(@$"
{_localizer["ConsistencyVerification_Desc"]}
"); - dbSV.CheckResult = + dbSV.CheckResult = 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]}"));