diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index c150d2e5d..edbe776fa 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -14154,6 +14154,56 @@
构造函数注入
+
+
+ 影像重传和阅片人筛选相关邮件发送
+
+
+
+
+ 影像重传和阅片人筛选相关邮件发送
+
+
+
+
+ 处理直接申请流程的重传事件
+
+
+
+
+ 处理一致性核查申请重传事件
+
+
+
+
+ 处理质疑CRC申请重传事件
+
+
+
+
+ 处理已阅任务重阅申请事件
+
+
+
+
+ 发送影像重传相关邮件的通用方法
+
+
+
+
+ 处理PM申请阅片人筛选事件
+
+
+
+
+ 处理SPM审批阅片人筛选事件
+
+
+
+
+ 发送阅片人筛选相关邮件的通用方法
+
+
加急的医学反馈任务 通知MIM
diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/ImageConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/ImageConsumer.cs
index 411e85701..ee8171175 100644
--- a/IRaCIS.Core.Application/MassTransit/Consumer/ImageConsumer.cs
+++ b/IRaCIS.Core.Application/MassTransit/Consumer/ImageConsumer.cs
@@ -41,7 +41,7 @@ public class ImageConsumer(
IRepository _visitTaskRepository,
IRepository _readModuleRepository,
IRepository _dictionaryRepository,
- IRepository _trialEmailNoticeConfigrepository,
+ IRepository _emailNoticeConfigrepository,
IOptionsMonitor systemEmailConfig) :
IConsumer,
IConsumer,
@@ -88,7 +88,7 @@ public class ImageConsumer(
}
- var trialEmailConfig = _trialEmailNoticeConfigrepository.Where(t => t.TrialId == trialId && t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault();
+ var trialEmailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault();
if (trialEmailConfig != null)
{
@@ -122,7 +122,7 @@ public class ImageConsumer(
return; // 其他状态不发送邮件
}
- var trialEmailConfig = _trialEmailNoticeConfigrepository.Where(t => t.TrialId == trialId && t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault();
+ var trialEmailConfig = _emailNoticeConfigrepository.Where(t =>t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault();
if (trialEmailConfig != null)
{
@@ -156,7 +156,7 @@ public class ImageConsumer(
return; // 其他状态不发送邮件
}
- var trialEmailConfig = _trialEmailNoticeConfigrepository.Where(t => t.TrialId == trialId && t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault();
+ var trialEmailConfig = _emailNoticeConfigrepository.Where(t =>t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault();
if (trialEmailConfig != null)
{
@@ -203,7 +203,7 @@ public class ImageConsumer(
return; // 其他状态不发送邮件
}
- var trialEmailConfig = _trialEmailNoticeConfigrepository.Where(t => t.TrialId == trialId && t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault();
+ var trialEmailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault();
if (trialEmailConfig != null)
{
@@ -214,7 +214,7 @@ public class ImageConsumer(
///
/// 发送影像重传相关邮件的通用方法
///
- private async Task SendImageReuploadEmail(TrialEmailNoticeConfig trialEmailConfig, EmailBusinessScenario scenario, SubjectVisit subjectVisit, Guid trialId)
+ private async Task SendImageReuploadEmail(EmailNoticeConfig trialEmailConfig, EmailBusinessScenario scenario, SubjectVisit subjectVisit, Guid trialId)
{
var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US;
@@ -295,26 +295,51 @@ public class ImageConsumer(
messageToSend.Cc.Add(new MailboxAddress(String.Empty, ccUser.EMail));
}
- // 格式化邮件内容
- Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input =>
+ string isUrgent = string.Empty;
+
+ if (isEn_US)
{
- var subjectCode = subjectVisit.Subject.Code;
- var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, subjectVisit.VisitName);
- var htmlBodyStr = string.Format(
- CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr),
- userinfo.FullName, // 用户名 {0}
- trialInfo.ExperimentName, // 项目 {1}
- subjectCode, // 受试者 {2}
- subjectVisit.VisitName, // 访视 {3}
- "是", // 是否加急 {4} - 固定为"是"
- "", // 预留 {5}
- _systemEmailConfig.SiteUrl // 链接 {6}
- );
+ if (subjectVisit.IsUrgent)
+ {
+ isUrgent = "yes";
+ }
+ else
+ {
+ isUrgent = "no";
+ }
+ }
+ else
+ {
+ if (subjectVisit.IsUrgent)
+ {
+ isUrgent = "是";
+ }
+ else
+ {
+ isUrgent = "否";
+ }
+ }
- return (topicStr, htmlBodyStr);
- };
+ // 格式化邮件内容
+ Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input =>
+ {
+ var subjectCode = subjectVisit.Subject.Code;
+ var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, subjectVisit.VisitName);
+ var htmlBodyStr = string.Format(
+ CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr),
+ userinfo.FullName, // 用户名 {0}
+ trialInfo.ExperimentName, // 项目 {1}
+ subjectCode, // 受试者 {2}
+ subjectVisit.VisitName, // 访视 {3}
+ isUrgent, // 是否加急 {4}
+ "", // 预留 {5}
+ _systemEmailConfig.SiteUrl // 链接 {6}
+ );
- await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, scenario, messageToSend, emailConfigFunc);
+ return (topicStr, htmlBodyStr);
+ };
+
+ await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(_emailNoticeConfigrepository, scenario, messageToSend, emailConfigFunc);
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig);
}
@@ -343,7 +368,7 @@ public class ImageConsumer(
// 设置邮件场景
var scenario = EmailBusinessScenario.ReviewerSelection_PMApplyApproving; // 69
- var trialEmailConfig = _trialEmailNoticeConfigrepository.Where(t => t.TrialId == trialId && t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault();
+ var trialEmailConfig = _emailNoticeConfigrepository.Where(t =>t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault();
if (trialEmailConfig != null)
{
@@ -374,7 +399,7 @@ public class ImageConsumer(
// 设置邮件场景
var scenario = EmailBusinessScenario.ReviewerSelection_SPMCPMApproval; // 70
- var trialEmailConfig = _trialEmailNoticeConfigrepository.Where(t => t.TrialId == trialId && t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault();
+ var trialEmailConfig = _emailNoticeConfigrepository.Where(t =>t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault();
if (trialEmailConfig != null)
{
@@ -385,7 +410,7 @@ public class ImageConsumer(
///
/// 发送阅片人筛选相关邮件的通用方法
///
- private async Task SendReviewerSelectionEmail(TrialEmailNoticeConfig trialEmailConfig, EmailBusinessScenario scenario, Guid trialId, List enrollIdList)
+ private async Task SendReviewerSelectionEmail(EmailNoticeConfig trialEmailConfig, EmailBusinessScenario scenario, Guid trialId, List enrollIdList)
{
var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US;
@@ -441,7 +466,7 @@ public class ImageConsumer(
trialInfo.ExperimentName, // 项目 {1}
"", // 受试者 {2} - 阅片人筛选不涉及受试者
"", // 访视 {3} - 阅片人筛选不涉及访视
- "是", // 是否加急 {4} - 固定为"是"
+ "", // 是否加急 {4}
"", // 预留 {5}
_systemEmailConfig.SiteUrl // 链接 {6}
);
@@ -449,7 +474,7 @@ public class ImageConsumer(
return (topicStr, htmlBodyStr);
};
- await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, scenario, messageToSend, emailConfigFunc);
+ await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(_emailNoticeConfigrepository, scenario, messageToSend, emailConfigFunc);
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig);
}