Compare commits
No commits in common. "d62d7172d056c621c29bbf376d2792fe4f762a32" and "d6436b01d4733a5009abd8a9463dae72deedbcde" have entirely different histories.
d62d7172d0
...
d6436b01d4
|
|
@ -14743,7 +14743,7 @@
|
||||||
<param name="inDto"></param>
|
<param name="inDto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudy},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.VisitTask},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TaskInstance},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudyFile},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingNoneDicomMark},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserLog},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Segmentation},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SegmentBinding},IRaCIS.Core.Application.Service.IVisitTaskHelpeService,IRaCIS.Core.Application.Service.IVisitTaskService,IRaCIS.Core.Application.Contracts.IReadingClinicalDataService,IRaCIS.Core.Application.Service.IReadingCalculateService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Subject},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserFeedBack},Microsoft.Extensions.Options.IOptionsMonitor{IRaCIS.Core.Domain.Share.ServiceVerifyConfigOption},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingCriterionPage},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTaskRelation},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingJudgeInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadModule},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.DicomInstance},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.OrganInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialUserRole},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.EmailNoticeUserType},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.EmailNoticeConfig},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.OrganTrialInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialDocument},IRaCIS.Core.Application.Service.ReadingCalculate.Interface.ILuganoCalculateService,IRaCIS.Core.Application.Service.ReadingCalculate.Interface.ILuganoWithoutPETCalculateService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionSystem},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CriterionKeyFileRead},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialCriterionKeyFile},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudyFile},IRaCIS.Core.Application.Service.IGeneralCalculateService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionTrial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TaskStudy},Microsoft.Extensions.Configuration.IConfiguration,IRaCIS.Core.Application.Service.ImageAndDoc.IDownloadAndUploadService,IRaCIS.Core.Application.Interfaces.ITrialEmailNoticeConfigService,Microsoft.Extensions.Options.IOptionsMonitor{IRaCIS.Core.Domain.Share.SystemEmailSendConfig},AutoMapper.IMapper,IRaCIS.Core.Domain.Share.IUserInfo,Microsoft.Extensions.Localization.IStringLocalizer,ZiggyCreatures.Caching.Fusion.IFusionCache)">
|
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudy},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.VisitTask},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TaskInstance},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudyFile},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingNoneDicomMark},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserLog},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Segmentation},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SegmentBinding},IRaCIS.Core.Application.Service.IVisitTaskHelpeService,IRaCIS.Core.Application.Service.IVisitTaskService,IRaCIS.Core.Application.Contracts.IReadingClinicalDataService,IRaCIS.Core.Application.Service.IReadingCalculateService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Subject},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserFeedBack},Microsoft.Extensions.Options.IOptionsMonitor{IRaCIS.Core.Domain.Share.ServiceVerifyConfigOption},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingCriterionPage},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTaskRelation},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingJudgeInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadModule},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.DicomInstance},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.OrganInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.OrganTrialInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialDocument},IRaCIS.Core.Application.Service.ReadingCalculate.Interface.ILuganoCalculateService,IRaCIS.Core.Application.Service.ReadingCalculate.Interface.ILuganoWithoutPETCalculateService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionSystem},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CriterionKeyFileRead},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialCriterionKeyFile},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudyFile},IRaCIS.Core.Application.Service.IGeneralCalculateService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionTrial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TaskStudy},Microsoft.Extensions.Configuration.IConfiguration,IRaCIS.Core.Application.Service.ImageAndDoc.IDownloadAndUploadService,IRaCIS.Core.Application.Interfaces.ITrialEmailNoticeConfigService,AutoMapper.IMapper,IRaCIS.Core.Domain.Share.IUserInfo,Microsoft.Extensions.Localization.IStringLocalizer,ZiggyCreatures.Caching.Fusion.IFusionCache)">
|
||||||
<summary>
|
<summary>
|
||||||
IR影像阅片
|
IR影像阅片
|
||||||
</summary>
|
</summary>
|
||||||
|
|
@ -15206,13 +15206,6 @@
|
||||||
<param name="visiTaskId"></param>
|
<param name="visiTaskId"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.SendAbnormalEmail(System.Guid,IRaCIS.Core.Domain.Share.EmailBusinessScenario)">
|
|
||||||
<summary>
|
|
||||||
发送邮件通知
|
|
||||||
</summary>
|
|
||||||
<param name="visiTaskId"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.ComputeJudgeResult(System.Collections.Generic.List{IRaCIS.Core.Application.Service.Reading.Dto.GroupTaskAnswerDto},System.Guid)">
|
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.ComputeJudgeResult(System.Collections.Generic.List{IRaCIS.Core.Application.Service.Reading.Dto.GroupTaskAnswerDto},System.Guid)">
|
||||||
<summary>
|
<summary>
|
||||||
计算返回的结果 为True表示不相等
|
计算返回的结果 为True表示不相等
|
||||||
|
|
@ -17537,17 +17530,17 @@
|
||||||
</member>
|
</member>
|
||||||
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Question">
|
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Question">
|
||||||
<summary>
|
<summary>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
质疑
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Consistency">
|
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Consistency">
|
||||||
<summary>
|
<summary>
|
||||||
һ<EFBFBD><EFBFBD><EFBFBD>Ժ˲<EFBFBD>
|
一致性核查
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="T:IRaCIS.Core.Application.ViewModel.CopyFrontAuditConfigItemDto">
|
<member name="T:IRaCIS.Core.Application.ViewModel.CopyFrontAuditConfigItemDto">
|
||||||
<summary>
|
<summary>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
复制
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="T:IRaCIS.Core.Application.ViewModel.SystemNoticeView">
|
<member name="T:IRaCIS.Core.Application.ViewModel.SystemNoticeView">
|
||||||
|
|
|
||||||
|
|
@ -51,9 +51,6 @@ namespace IRaCIS.Core.Application.Service
|
||||||
IRepository<ReadModule> _readModuleRepository,
|
IRepository<ReadModule> _readModuleRepository,
|
||||||
IRepository<DicomInstance> _dicomInstanceRepository,
|
IRepository<DicomInstance> _dicomInstanceRepository,
|
||||||
IRepository<OrganInfo> _organInfoRepository,
|
IRepository<OrganInfo> _organInfoRepository,
|
||||||
IRepository<TrialUserRole> _trialUserRoleRepository,
|
|
||||||
IRepository<EmailNoticeUserType> _emailNoticeUserTypeRepository,
|
|
||||||
IRepository<EmailNoticeConfig> _emailNoticeConfigrepository,
|
|
||||||
IRepository<OrganTrialInfo> _organTrialInfoRepository,
|
IRepository<OrganTrialInfo> _organTrialInfoRepository,
|
||||||
IRepository<TrialDocument> _trialDocumentRepository,
|
IRepository<TrialDocument> _trialDocumentRepository,
|
||||||
ILuganoCalculateService _luganoCalculateService,
|
ILuganoCalculateService _luganoCalculateService,
|
||||||
|
|
@ -76,10 +73,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
IConfiguration _config,
|
IConfiguration _config,
|
||||||
IDownloadAndUploadService _downloadAndUploadService,
|
IDownloadAndUploadService _downloadAndUploadService,
|
||||||
ITrialEmailNoticeConfigService _trialEmailNoticeConfigService,
|
ITrialEmailNoticeConfigService _trialEmailNoticeConfigService,
|
||||||
IOptionsMonitor<SystemEmailSendConfig> systemEmailConfig,
|
|
||||||
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService, IReadingImageTaskService
|
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService, IReadingImageTaskService
|
||||||
{
|
{
|
||||||
private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取报告图表数据
|
/// 获取报告图表数据
|
||||||
|
|
@ -3441,18 +3436,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
.AnyAsync(g => g.Count() > 1);
|
.AnyAsync(g => g.Count() > 1);
|
||||||
|
|
||||||
if (hasDuplicate)
|
if (hasDuplicate)
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
_ = SendWeComNotifier(inDto.VisitTaskId, "阅片问题答案有重复");
|
_ = SendWeComNotifier(inDto.VisitTaskId, "阅片问题答案有重复");
|
||||||
_ = SendAbnormalEmail(inDto.VisitTaskId, EmailBusinessScenario.RepeatedVisitAnswers);
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new BusinessValidationFailedException(_localizer["ReadingImage_VisitAnswerRepeated"]);
|
throw new BusinessValidationFailedException(_localizer["ReadingImage_VisitAnswerRepeated"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,6 @@
|
||||||
using IRaCIS.Core.Application.Contracts;
|
using IRaCIS.Core.Application.Contracts;
|
||||||
using IRaCIS.Core.Application.Filter;
|
using IRaCIS.Core.Application.Filter;
|
||||||
using IRaCIS.Core.Application.Helper;
|
|
||||||
using IRaCIS.Core.Application.Helper.OtherTool;
|
using IRaCIS.Core.Application.Helper.OtherTool;
|
||||||
using IRaCIS.Core.Application.MassTransit.Consumer;
|
|
||||||
using IRaCIS.Core.Application.MassTransit.Consumer.Dto;
|
|
||||||
using IRaCIS.Core.Application.Service.Reading.Dto;
|
using IRaCIS.Core.Application.Service.Reading.Dto;
|
||||||
using IRaCIS.Core.Application.ViewModel;
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
|
@ -12,7 +9,6 @@ using IRaCIS.Core.Infrastructure;
|
||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using MimeKit;
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Application.Service
|
namespace IRaCIS.Core.Application.Service
|
||||||
|
|
@ -977,101 +973,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 发送邮件通知
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="visiTaskId"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public async Task SendAbnormalEmail(Guid visiTaskId, EmailBusinessScenario type)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
var emailNotice = _emailNoticeConfigrepository.Where(x => x.BusinessScenarioEnum == type).FirstOrDefault();
|
|
||||||
|
|
||||||
var taskinfo= _visitTaskRepository.Where(x => x.Id == visiTaskId).Include(x => x.Trial).Include(x => x.Subject).Include(x => x.SourceSubjectVisit).FirstOrDefault();
|
|
||||||
if (taskinfo == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 根据不同场景获取不同角色的用户
|
|
||||||
var trialUser = _trialUserRoleRepository.Where(x => x.TrialId == taskinfo.TrialId && !x.TrialUser.IsDeleted).Include(x => x.UserRole).Select(x => x.UserRole)
|
|
||||||
.Select(x => new SendEmailUserDto()
|
|
||||||
{
|
|
||||||
UserTypeEnum = x.UserTypeEnum,
|
|
||||||
FullName = x.FullName,
|
|
||||||
UserWorkLanguage = x.IdentityUser.UserWorkLanguage,
|
|
||||||
EMail = x.EMail,
|
|
||||||
})
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
// 根据场景确定收件人
|
|
||||||
List<SendEmailUserDto> toUserList = new List<SendEmailUserDto>();
|
|
||||||
List<SendEmailUserDto> ccUserList = new List<SendEmailUserDto>();
|
|
||||||
|
|
||||||
var emailNoticeUserList = _emailNoticeUserTypeRepository.Where(x => x.EmailNoticeConfigId == emailNotice.Id).ToList();
|
|
||||||
|
|
||||||
var toList = emailNoticeUserList.Where(x => x.EmailUserType == EmailUserType.To).Select(x => x.UserType).ToList();
|
|
||||||
|
|
||||||
toUserList = trialUser.Where(x => toList.Contains(x.UserTypeEnum)).ToList();
|
|
||||||
|
|
||||||
var ccList = emailNoticeUserList.Where(x => x.EmailUserType == EmailUserType.Copy).Select(x => x.UserType).ToList();
|
|
||||||
|
|
||||||
ccUserList = trialUser.Where(x => ccList.Contains(x.UserTypeEnum)).ToList();
|
|
||||||
|
|
||||||
|
|
||||||
// 如果没有收件人,则不发送邮件
|
|
||||||
if (toUserList.Count == 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var userWorkLanguageList = toUserList.Select(x => x.UserWorkLanguage).Distinct().ToList();
|
|
||||||
|
|
||||||
foreach (var workLanguage in userWorkLanguageList)
|
|
||||||
{
|
|
||||||
var userinfoList = toUserList.Where(x => x.UserWorkLanguage == workLanguage).ToList();
|
|
||||||
var messageToSend = new MimeMessage();
|
|
||||||
// 发件地址
|
|
||||||
messageToSend.From.Add(new MailboxAddress(taskinfo.Trial.EmailFromName, taskinfo.Trial.EmailFromEmail));
|
|
||||||
|
|
||||||
foreach (var userinfo in userinfoList)
|
|
||||||
{
|
|
||||||
messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 添加抄送
|
|
||||||
foreach (var ccUser in ccUserList)
|
|
||||||
{
|
|
||||||
messageToSend.Cc.Add(new MailboxAddress(ccUser.FullName, ccUser.EMail));
|
|
||||||
}
|
|
||||||
|
|
||||||
var userNames = userinfoList.Select(x => x.FullName).ToList();
|
|
||||||
|
|
||||||
// 格式化邮件内容
|
|
||||||
Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input =>
|
|
||||||
{
|
|
||||||
var topicStr = string.Format(input.topicStr, taskinfo.Trial.ResearchProgramNo, taskinfo.Subject.Code,taskinfo.SourceSubjectVisit.VisitName);
|
|
||||||
var htmlBodyStr = string.Format(
|
|
||||||
CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage),
|
|
||||||
string.Join(',', userNames), // 用户名 {0}
|
|
||||||
taskinfo.Trial.ExperimentName, // 项目 {1}
|
|
||||||
taskinfo.Subject.Code, // 受试者编号 {2}
|
|
||||||
taskinfo.SourceSubjectVisit.VisitName, // 访视名称 {3}
|
|
||||||
taskinfo.TaskName, // 任务名称 {4}
|
|
||||||
taskinfo.Id.ToString(), // 任务Id {5}
|
|
||||||
_systemEmailConfig.SiteUrl // 链接 {6}
|
|
||||||
);
|
|
||||||
|
|
||||||
return (topicStr, htmlBodyStr);
|
|
||||||
};
|
|
||||||
|
|
||||||
await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailNotice, messageToSend, emailConfigFunc, workLanguage);
|
|
||||||
|
|
||||||
await SendEmailHelper.SendTrialEmailAsync(messageToSend, taskinfo.Trial);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 计算返回的结果 为True表示不相等
|
/// 计算返回的结果 为True表示不相等
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -1084,35 +987,14 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
// 裁判问题可以不必填
|
// 裁判问题可以不必填
|
||||||
if(item.TaskAnswerList.Count()==0)
|
if(item.TaskAnswerList.Count()==0)
|
||||||
{
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
_ = SendWeComNotifier(visiTaskId, "两个阅片任务的答案等于0");
|
_ = SendWeComNotifier(visiTaskId, "两个阅片任务的答案等于0");
|
||||||
_ = SendAbnormalEmail(visiTaskId, EmailBusinessScenario.JudgeExceptio);
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (item.TaskAnswerList.Count() != 2)
|
else if (item.TaskAnswerList.Count() != 2)
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
// 发送微信通知
|
// 发送微信通知
|
||||||
_ = SendWeComNotifier(visiTaskId, "两个阅片任务的答案不等于2");
|
_ = SendWeComNotifier(visiTaskId, "两个阅片任务的答案不等于2");
|
||||||
_ = SendAbnormalEmail(visiTaskId, EmailBusinessScenario.JudgeExceptio);
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (noteEqual)
|
else if (noteEqual)
|
||||||
|
|
|
||||||
|
|
@ -328,16 +328,6 @@ namespace IRaCIS.Core.Domain.Share
|
||||||
SiteSurvey_CheckUser = 74,
|
SiteSurvey_CheckUser = 74,
|
||||||
|
|
||||||
SiteSurvey_UpdateUser = 75,
|
SiteSurvey_UpdateUser = 75,
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 访视答案重复
|
|
||||||
/// </summary>
|
|
||||||
RepeatedVisitAnswers = 76,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 裁判答案验证异常
|
|
||||||
/// </summary>
|
|
||||||
JudgeExceptio = 77,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue