From 32e64eaeff2988d261a5bbc0293b9837bc21c7c0 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 20 May 2025 15:24:20 +0800 Subject: [PATCH 1/2] =?UTF-8?q?MR=20MRI=20=E7=BB=9F=E4=B8=80=EF=BC=8C?= =?UTF-8?q?=E8=AE=A4=E4=B8=BA=E6=98=AF=E4=B8=80=E8=87=B4=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Consumer/ConsistencyCheckConsumer.cs | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) 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]}")); From 7ab1728bc7d024a227bf90d18dca05b969e7d3ad Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Wed, 21 May 2025 14:05:16 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=B3=E9=94=AE?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs index 472a9268a..898ac2753 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs @@ -613,7 +613,7 @@ namespace IRaCIS.Core.Application.Services var markInstanceIdList = rowInfoList.Where(y => y.InstanceId != null).OrderBy(x => x.ShowOrder).ThenBy(x => x.RowIndex).Select(y => y.InstanceId!.Value).Distinct().ToList(); - item.InstanceInfoList = await _dicomInstanceRepository.Where(t => markInstanceIdList.Contains(t.Id)).Select(k => + item.InstanceInfoList = await _dicomInstanceRepository.Where(t => markInstanceIdList.Contains(t.Id)).OrderBy(s => s.DicomSerie.SeriesNumber).ThenBy(s => s.DicomSerie.SeriesTime).ThenBy(x=>x.InstanceTime).Select(k => new InstanceBasicInfo() { Id = k.Id,