diff --git a/IRaCIS.Core.Application/BackGroundJob/IRaCISCHangfireJob.cs b/IRaCIS.Core.Application/BackGroundJob/IRaCISCHangfireJob.cs index bcb6721a7..1d8b5cc2f 100644 --- a/IRaCIS.Core.Application/BackGroundJob/IRaCISCHangfireJob.cs +++ b/IRaCIS.Core.Application/BackGroundJob/IRaCISCHangfireJob.cs @@ -168,14 +168,14 @@ namespace IRaCIS.Application.Services.BackGroundJob switch (task.BusinessScenarioEnum) { - case CommonDocumentBusinessScenario.QCTask: - HangfireJobHelper.AddOrUpdateCronJob(jobId, t => t.SendTrialImageQCTaskEmailAsync(task.TrialId), task.EmailCron, task.Code); + case EmailBusinessScenario.QCTask: + HangfireJobHelper.AddOrUpdateCronJob(jobId, t => t.SendTrialImageQCTaskEmailAsync(task.TrialId), task.EmailCron); break; - case CommonDocumentBusinessScenario.QCQuestion: - HangfireJobHelper.AddOrUpdateCronJob(jobId, t => t.SendTrialQCQuestionEmailAsync(task.TrialId), task.EmailCron, task.Code); + case EmailBusinessScenario.QCQuestion: + HangfireJobHelper.AddOrUpdateCronJob(jobId, t => t.SendTrialQCQuestionEmailAsync(task.TrialId), task.EmailCron); break; - case CommonDocumentBusinessScenario.ImageQuestion: - HangfireJobHelper.AddOrUpdateCronJob(jobId, t => t.SendTrialImageQuestionAsync(task.TrialId), task.EmailCron, task.Code); + case EmailBusinessScenario.ImageQuestion: + HangfireJobHelper.AddOrUpdateCronJob(jobId, t => t.SendTrialImageQuestionAsync(task.TrialId), task.EmailCron); break; //case CommonDocumentBusinessScenario.EnrollConfirmed: diff --git a/IRaCIS.Core.Application/Service/Document/DTO/TrialEmailNoticeConfigViewModel.cs b/IRaCIS.Core.Application/Service/Document/DTO/TrialEmailNoticeConfigViewModel.cs index bcc92e000..7fcef3201 100644 --- a/IRaCIS.Core.Application/Service/Document/DTO/TrialEmailNoticeConfigViewModel.cs +++ b/IRaCIS.Core.Application/Service/Document/DTO/TrialEmailNoticeConfigViewModel.cs @@ -100,7 +100,7 @@ namespace IRaCIS.Core.Application.ViewModel [NotDefault] public Guid TrialId { get; set; } - public CommonDocumentBusinessScenario? BusinessScenarioEnum { get; set; } + public EmailBusinessScenario? BusinessScenarioEnum { get; set; } //public CriterionType? CriterionTypeEnum { get; set; } @@ -117,7 +117,7 @@ namespace IRaCIS.Core.Application.ViewModel public Guid TrialReadingCriterionId { get; set; } - public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; } + public EmailBusinessScenario BusinessScenarioEnum { get; set; } } public class BatchAddTrialEmailNoticeConfig @@ -127,7 +127,7 @@ namespace IRaCIS.Core.Application.ViewModel public Guid? Id { get; set; } - public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; } + public EmailBusinessScenario BusinessScenarioEnum { get; set; } public string Code { get; set; } = string.Empty; diff --git a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs index ae94e7f2a..9d945ab65 100644 --- a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs +++ b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs @@ -90,7 +90,7 @@ namespace IRaCIS.Core.Application.Service return (topicStr, htmlBodyStr); }; - await SendTrialEmailAsync(trialId, CommonDocumentBusinessScenario.QCTask, topicAndHtmlFunc); + await SendTrialEmailAsync(trialId, EmailBusinessScenario.QCTask, topicAndHtmlFunc); } } } @@ -138,7 +138,7 @@ namespace IRaCIS.Core.Application.Service return (topicStr, htmlBodyStr); }; - await SendTrialEmailAsync(trialId, CommonDocumentBusinessScenario.QCQuestion, topicAndHtmlFunc); + await SendTrialEmailAsync(trialId, EmailBusinessScenario.QCQuestion, topicAndHtmlFunc); } } } @@ -183,7 +183,7 @@ namespace IRaCIS.Core.Application.Service return (topicStr, htmlBodyStr); }; - await SendTrialEmailAsync(trialId, CommonDocumentBusinessScenario.ImageQuestion, topicAndHtmlFunc); + await SendTrialEmailAsync(trialId, EmailBusinessScenario.ImageQuestion, topicAndHtmlFunc); } } } @@ -202,11 +202,11 @@ namespace IRaCIS.Core.Application.Service return (topicStr, htmlBodyStr); }; - await SendTrialEmailAsync(info.TrialId, CommonDocumentBusinessScenario.ClinicalDataQuestion, topicAndHtmlFunc); + await SendTrialEmailAsync(info.TrialId, EmailBusinessScenario.ClinicalDataQuestion, topicAndHtmlFunc); } - public async Task SendTrialEmailAsync(Guid trialId, CommonDocumentBusinessScenario businessScenario, Func topicAndHtmlFunc, Guid? trialReadingCriterionId = null, Guid? subjectId = null) + public async Task SendTrialEmailAsync(Guid trialId, EmailBusinessScenario businessScenario, Func topicAndHtmlFunc, Guid? trialReadingCriterionId = null, Guid? subjectId = null) { //找到配置 var trialEmailConfig = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == trialReadingCriterionId && t.BusinessScenarioEnum == businessScenario, ignoreQueryFilters: true) diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs index 1eb6fe74f..2c0dd7b91 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs @@ -159,8 +159,10 @@ namespace IRaCIS.Core.Application.Service var confirmedCriterionTypeList = list.Select(t => (CriterionType?)t.CriterionType).ToList(); - var docmentList = _repository.Where(t => t.BusinessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed || t.BusinessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed) - .Where(t => (confirmedCriterionTypeList.Contains(t.CriterionTypeEnum)) || t.CriterionTypeEnum == null).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum, t.CriterionTypeEnum }).ToList(); + var docmentList = _repository.Where(t => t.BusinessScenarioEnum == EmailBusinessScenario.EnrollConfirmed || t.BusinessScenarioEnum == EmailBusinessScenario.PDConfirmed) + //.Where(t => (confirmedCriterionTypeList.Contains(t.CriterionTypeEnum)) || t.CriterionTypeEnum == null).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum, t.CriterionTypeEnum }) + .ToList(); + foreach (var item in docmentList) @@ -190,15 +192,15 @@ namespace IRaCIS.Core.Application.Service public async Task CommonBusinessScenarioSendEmailAsync(Guid visitTaskId, bool? isEnrollment, bool? isPDConfirm) { #region 区分场景 - CommonDocumentBusinessScenario businessScenarioEnum; + EmailBusinessScenario businessScenarioEnum; if (isEnrollment != null && isPDConfirm == null) { - businessScenarioEnum = CommonDocumentBusinessScenario.EnrollConfirmed; + businessScenarioEnum = EmailBusinessScenario.EnrollConfirmed; } else /*if (isEnrollment == null && isPDConfirm != null)*/ { - businessScenarioEnum = CommonDocumentBusinessScenario.PDConfirmed; + businessScenarioEnum = EmailBusinessScenario.PDConfirmed; } #endregion @@ -305,7 +307,7 @@ namespace IRaCIS.Core.Application.Service - if (businessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed) + if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed) { sendEmailConfig.TopicDescription = _localizer["TrialEmailN_EnrollmentConfirmation", taskInfo.ResearchProgramNo, taskInfo.SubjectCode]; @@ -321,7 +323,7 @@ namespace IRaCIS.Core.Application.Service ); } } - else /*if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed)*/ + else /*if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed)*/ { sendEmailConfig.TopicDescription = _localizer["TrialEmailN_PDReport", taskInfo.ResearchProgramNo, taskInfo.SubjectCode]; @@ -414,7 +416,7 @@ namespace IRaCIS.Core.Application.Service public async Task BaseBusinessScenarioSendEmailAsync(Guid visitTaskId, bool? isHandSend, EmailStoreSendMode emailStoreMode, string sendFileRelativePath) { - CommonDocumentBusinessScenario? businessScenarioEnum = null; + EmailBusinessScenario? businessScenarioEnum = null; #region 任务关联的项目配置 标准信息及配置,subject 信息 var taskInfo = await _visitTaskRepository.Where(t => t.Id == visitTaskId).Select(t => new @@ -482,7 +484,7 @@ namespace IRaCIS.Core.Application.Service //入组确认场景 if (taskInfo.IsEnrollmentConfirm == true && taskInfo.IsEnrollementQualificationConfirm == true && taskInfo.IsBaseline == true) { - businessScenarioEnum = CommonDocumentBusinessScenario.EnrollConfirmed; + businessScenarioEnum = EmailBusinessScenario.EnrollConfirmed; } @@ -491,7 +493,7 @@ namespace IRaCIS.Core.Application.Service (taskInfo.PDState == PDStateEnum.PDProgress && taskInfo.SourceSubjectVisitId != null) || (taskInfo.SouceReadModuleId != null && taskInfo.MoudulePDState == PDStateEnum.PDProgress)) { - businessScenarioEnum = CommonDocumentBusinessScenario.PDConfirmed; + businessScenarioEnum = EmailBusinessScenario.PDConfirmed; } else { @@ -612,7 +614,7 @@ namespace IRaCIS.Core.Application.Service #region 不同场景 Tile 设置 - if (businessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed) + if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed) { sendEmailConfig.TopicDescription = _localizer["TrialEmailN_EnrollmentConfirmation", taskInfo.ResearchProgramNo, taskInfo.SubjectCode]; @@ -627,7 +629,7 @@ namespace IRaCIS.Core.Application.Service ); } } - else if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed) + else if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed) { sendEmailConfig.TopicDescription = _localizer["TrialEmailN_PDReport", taskInfo.ResearchProgramNo, taskInfo.SubjectCode]; @@ -659,7 +661,7 @@ namespace IRaCIS.Core.Application.Service //入组确认 根据每个标准配置的是否自动发送,发送邮件与否 - if (businessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed) + if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed) { if (await _repository.Where().AnyAsync(x => x.VisitTaskId == visitTaskId && x.Answer == TargetState.Exist.GetEnumInt() && x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && x.ReadingQuestionTrial.LesionType == LesionType.TargetLesion)) @@ -704,7 +706,7 @@ namespace IRaCIS.Core.Application.Service } - else if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed) + else if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed) { @@ -1073,7 +1075,7 @@ namespace IRaCIS.Core.Application.Service //找到入组确认 或者Pd 进展 已生成任务的 访视 var subjectVisitList = await _subjectVisitRepository.Where(t => t.SubjectId == subjectId & t.CheckState == CheckStateEnum.CVPassed && (t.IsEnrollmentConfirm == true || t.PDState == PDStateEnum.PDProgress)).ToListAsync(); - if (businessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed) + if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed) { if (trialConfig.IsEnrollementQualificationConfirm == false) @@ -1140,7 +1142,7 @@ namespace IRaCIS.Core.Application.Service } } - else if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed) + else if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed) { if (trialConfig.IsPDProgressView == false) diff --git a/IRaCIS.Core.Domain.Share/Common/EmailScenarioEnum.cs b/IRaCIS.Core.Domain.Share/Common/EmailScenarioEnum.cs index 584e8e411..88c6db1f5 100644 --- a/IRaCIS.Core.Domain.Share/Common/EmailScenarioEnum.cs +++ b/IRaCIS.Core.Domain.Share/Common/EmailScenarioEnum.cs @@ -37,21 +37,26 @@ namespace IRaCIS.Core.Domain.Share public enum CommonDocumentBusinessScenario { - EnrollConfirmed = 1, - - PDConfirmed = 2, Trial=3, Reviewer=4, + + } - QCTask=5, + public enum EmailBusinessScenario + { + EnrollConfirmed = 1, - QCQuestion=6, + PDConfirmed = 2, + + QCTask = 5, + + QCQuestion = 6, ImageQuestion = 7, - ClinicalDataQuestion=8, + ClinicalDataQuestion = 8, } diff --git a/IRaCIS.Core.Domain/Document/TrialEmailNoticeConfig.cs b/IRaCIS.Core.Domain/Document/TrialEmailNoticeConfig.cs index 620bfb710..66e9f453b 100644 --- a/IRaCIS.Core.Domain/Document/TrialEmailNoticeConfig.cs +++ b/IRaCIS.Core.Domain/Document/TrialEmailNoticeConfig.cs @@ -97,7 +97,7 @@ namespace IRaCIS.Core.Domain.Models public bool IsAutoSend { get; set; } - public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; } + public EmailBusinessScenario BusinessScenarioEnum { get; set; } public CriterionType? CriterionTypeEnum { get; set; }