This commit is contained in:
he
2024-10-15 14:40:27 +08:00
parent 8e1ae18de0
commit 48da4994b9
7 changed files with 18045 additions and 6 deletions
@@ -112,11 +112,89 @@ public class UrgentMedicalReviewAddedEventConsumer(
}
//IR 回复医学反馈通知MIM
public class UrgentIRRepliedMedicalReviewConsumer : IConsumer<UrgentIRRepliedMedicalReview>
public class UrgentIRRepliedMedicalReviewConsumer(
IRepository<User> _userRepository,
IRepository<TaskMedicalReview> _taskMedicalReviewRepository,
IRepository<Trial> _trialRepository,
IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository,
IRepository<VisitTask> _visitTaskRepository,
IRepository<Dictionary> _dictionaryRepository,
IRepository<EmailNoticeConfig> _emailNoticeConfigrepository,
IOptionsMonitor<SystemEmailSendConfig> systemEmailConfig) : IConsumer<UrgentIRRepliedMedicalReview>
{
public Task Consume(ConsumeContext<UrgentIRRepliedMedicalReview> context)
private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue;
//IR 回复医学反馈通知MIM
public async Task Consume(ConsumeContext<UrgentIRRepliedMedicalReview> context)
{
throw new NotImplementedException();
//Console.WriteLine("发送【加急的医学反馈任务 通知MIM】邮件!!!");
//var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US;
//var medicalReviewId = context.Message.MedicalReviewId;
//var medicalReview = await _taskMedicalReviewRepository.Where(x => x.Id == medicalReviewId).Include(x => x.VisitTask).Include(x => x.MedicalManagerUser).FirstOrDefaultAsync();
//if (medicalReview.MedicalManagerUserId == null)
//{
// Console.WriteLine("MIMId为空 ID" + medicalReviewId);
// return;
//}
//var criterion = await _readingQuestionCriterionTrialRepository.FirstOrDefaultAsync(x => x.Id == medicalReview.VisitTask.TrialReadingCriterionId);
//var userinfo = await _userRepository.Where(x => x.Id == medicalReview.MedicalManagerUserId).FirstOrDefaultAsync();
//var taskInfo = await _visitTaskRepository.Where(x => x.Id == medicalReview.VisitTaskId).Include(x => x.SourceSubjectVisit).Include(x => x.ReadModule).Include(x => x.Subject).FirstNotNullAsync();
//var messageToSend = new MimeMessage();
////发件地址
//messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
//messageToSend.To.Add(new MailboxAddress(String.Empty, userinfo.EMail));
//var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == medicalReview.TrialId);
//var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN;
//var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto()
//{
// DictionaryRepository = _dictionaryRepository,
// IsEn_US = isEn_US,
// DictionaryList = new List<DictionaryDto>()
// {
// new DictionaryDto (){DictionaryCode= "ReadingCategory",EnumValue=taskInfo.ReadingCategory.GetEnumInt(), },
// new DictionaryDto (){DictionaryCode= "MedicalReviewDoctorUserIdea",EnumValue=medicalReview.DoctorUserIdeaEnum.GetEnumInt(), },
// new DictionaryDto (){DictionaryCode= "MedicalReviewAuditState",EnumValue=medicalReview.AuditState.GetEnumInt(), },
// new DictionaryDto (){DictionaryCode= "YesOrNo",EnumValue=taskInfo.IsUrgent.ToString(), }
// }
//});
//Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input =>
//{
// var topicStr = string.Format(input.topicStr, companyName, trialInfo.ResearchProgramNo);
// var htmlBodyStr = string.Format(
// CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr),
// userinfo.FullName, // 用户名
// trialInfo.ExperimentName, // 项目
// criterion.CriterionName, // 阅片标准
// taskInfo.BlindSubjectCode.IsNullOrEmpty() ? taskInfo.Subject.Code : taskInfo.BlindSubjectCode, // 受试者
// taskInfo.TaskBlindName, // 访视
// dictionValue[0], // 任务类型
// dictionValue[1], // 阅片人是否同意
// dictionValue[2], // 审核状态
// dictionValue[3] // 是否加急
// );
// return (topicStr, htmlBodyStr);
//};
//await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(_emailNoticeConfigrepository, EmailBusinessScenario.EligibilityVerification_MedicalQC, messageToSend, emailConfigFunc);
//await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig);
}
}