Uat_Study
parent
daaf4540a4
commit
b72b13509b
|
@ -59,7 +59,6 @@ namespace IRaCIS.Application.Services.BackGroundJob
|
||||||
await InitInternationlizationDataAndWatchJsonFileAsync();
|
await InitInternationlizationDataAndWatchJsonFileAsync();
|
||||||
|
|
||||||
//创建邮件定时任务
|
//创建邮件定时任务
|
||||||
|
|
||||||
//await InitSysAndTrialCronJobAsync();
|
//await InitSysAndTrialCronJobAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -281,7 +281,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[UnitOfWork]
|
[UnitOfWork]
|
||||||
public async Task<IResponseOutput> PIAuditTaskEnrollOrPD(PIAuditTaskEnrollOrPdCommand incommand, [FromServices] ITrialEmailNoticeConfigService trialEmailNoticeConfigService)
|
public async Task<IResponseOutput> PIAuditTaskEnrollOrPD(PIAuditTaskEnrollOrPdCommand incommand, [FromServices] IEmailSendService emailSendService)
|
||||||
{
|
{
|
||||||
var visitTask = await _visitTaskRepository.FirstOrDefaultAsync(t => t.Id == incommand.VisitTaskId);
|
var visitTask = await _visitTaskRepository.FirstOrDefaultAsync(t => t.Id == incommand.VisitTaskId);
|
||||||
visitTask.IsEnrollment = incommand.IsEnrollment != null ? incommand.IsEnrollment : visitTask.IsEnrollment;
|
visitTask.IsEnrollment = incommand.IsEnrollment != null ? incommand.IsEnrollment : visitTask.IsEnrollment;
|
||||||
|
@ -291,7 +291,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
|
|
||||||
await _visitTaskRepository.SaveChangesAsync();
|
await _visitTaskRepository.SaveChangesAsync();
|
||||||
|
|
||||||
await trialEmailNoticeConfigService.CommonBusinessScenarioSendEmailAsync(visitTask.Id, incommand.IsEnrollment, incommand.IsPDConfirm);
|
await emailSendService.SendEnrollOrPdEmail(visitTask.Id, incommand.IsEnrollment, incommand.IsPDConfirm);
|
||||||
|
|
||||||
return ResponseOutput.Ok();
|
return ResponseOutput.Ok();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using DocumentFormat.OpenXml.Spreadsheet;
|
using DocumentFormat.OpenXml.EMMA;
|
||||||
|
using DocumentFormat.OpenXml.Spreadsheet;
|
||||||
using IRaCIS.Core.Application.Contracts;
|
using IRaCIS.Core.Application.Contracts;
|
||||||
using IRaCIS.Core.Application.Helper;
|
using IRaCIS.Core.Application.Helper;
|
||||||
using IRaCIS.Core.Application.Service.Reading.Dto;
|
using IRaCIS.Core.Application.Service.Reading.Dto;
|
||||||
|
@ -21,6 +22,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
public interface IEmailSendService
|
public interface IEmailSendService
|
||||||
{
|
{
|
||||||
|
Task SendEnrollOrPdEmail(Guid visitTaskId, bool? isEnrollment, bool? isPDConfirm);
|
||||||
Task SendClinicalDataQuestionAsync(Guid visitTaskId, string content);
|
Task SendClinicalDataQuestionAsync(Guid visitTaskId, string content);
|
||||||
Task SendTrialImageQCTaskEmailAsync(Guid trialId);
|
Task SendTrialImageQCTaskEmailAsync(Guid trialId);
|
||||||
|
|
||||||
|
@ -45,6 +47,50 @@ namespace IRaCIS.Core.Application.Service
|
||||||
_SystemEmailSendConfig = systemEmailSendConfig;
|
_SystemEmailSendConfig = systemEmailSendConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//入组确认/PD确认
|
||||||
|
|
||||||
|
public async Task SendEnrollOrPdEmail(Guid visitTaskId, bool? isEnrollment, bool? isPDConfirm)
|
||||||
|
{
|
||||||
|
EmailBusinessScenario businessScenarioEnum;
|
||||||
|
|
||||||
|
bool? result = null;
|
||||||
|
|
||||||
|
if (isEnrollment != null && isPDConfirm == null)
|
||||||
|
{
|
||||||
|
businessScenarioEnum = EmailBusinessScenario.EnrollConfirmed;
|
||||||
|
|
||||||
|
result = isEnrollment;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
businessScenarioEnum = EmailBusinessScenario.PDConfirmed;
|
||||||
|
|
||||||
|
result = isPDConfirm;
|
||||||
|
}
|
||||||
|
|
||||||
|
var taskInfo = await _repository.Where<VisitTask>(t => t.Id == visitTaskId).Select(t => new
|
||||||
|
{
|
||||||
|
t.Subject.SiteId,
|
||||||
|
t.Trial.ResearchProgramNo,
|
||||||
|
t.Subject.TrialSite.TrialSiteCode,
|
||||||
|
SubjectCode = t.Subject.Code,
|
||||||
|
t.Trial.Sponsor.SponsorName,
|
||||||
|
t.TrialId,
|
||||||
|
|
||||||
|
}).FirstNotNullAsync();
|
||||||
|
|
||||||
|
var resultStr = _userInfo.IsEn_Us ? (result == true ? "Yes" : "No") : (result == true ? "是" : "否");
|
||||||
|
|
||||||
|
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr)> topicAndHtmlFunc = trialEmailConfig =>
|
||||||
|
{
|
||||||
|
var topicStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, taskInfo.ResearchProgramNo, taskInfo.SubjectCode);
|
||||||
|
var htmlBodyStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, resultStr);
|
||||||
|
return (topicStr, htmlBodyStr);
|
||||||
|
};
|
||||||
|
|
||||||
|
await SendTrialEmailAsync(taskInfo.TrialId, businessScenarioEnum, topicAndHtmlFunc);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 影像质控
|
/// 影像质控
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -206,6 +252,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public async Task SendTrialEmailAsync(Guid trialId, EmailBusinessScenario businessScenario, Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr)> topicAndHtmlFunc, Guid? trialReadingCriterionId = null, Guid? subjectId = null)
|
public async Task SendTrialEmailAsync(Guid trialId, EmailBusinessScenario businessScenario, Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr)> topicAndHtmlFunc, Guid? trialReadingCriterionId = null, Guid? subjectId = null)
|
||||||
{
|
{
|
||||||
//找到配置
|
//找到配置
|
||||||
|
|
Loading…
Reference in New Issue