修改全局PD 发送邮件

Test.EIImageViewer
hang 2023-02-15 17:00:14 +08:00
parent 03d5e93c55
commit d9262b1623
2 changed files with 35 additions and 20 deletions

View File

@ -435,7 +435,7 @@
系统模板文档配置表 系统模板文档配置表
</summary> </summary>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.CRCVisitListExport(IRaCIS.Core.Application.Contracts.CRCVisitSearchDTO,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})"> <member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.CRCVisitList_Export(IRaCIS.Core.Application.Contracts.CRCVisitSearchDTO,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
<summary> <summary>
影像上传列表 只导出已上传状态的访视记录 影像上传列表 只导出已上传状态的访视记录
</summary> </summary>

View File

@ -15,6 +15,8 @@ using IRaCIS.Application.Contracts;
using IRaCIS.Core.Infra.EFCore.Common; using IRaCIS.Core.Infra.EFCore.Common;
using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Filter;
using MiniSoftware;
using IRaCIS.Core.Application.Service.Reading.Dto;
namespace IRaCIS.Core.Application.Service namespace IRaCIS.Core.Application.Service
{ {
@ -70,14 +72,15 @@ namespace IRaCIS.Core.Application.Service
public async Task<IResponseOutput> SetTrialEmail(SetTrialEmailInDto inDto) public async Task<IResponseOutput> SetTrialEmail(SetTrialEmailInDto inDto)
{ {
await TestEmailConfigAsync(new TrialEmailNoticeConfigAddOrEdit() { await TestEmailConfigAsync(new TrialEmailNoticeConfigAddOrEdit()
{
AuthorizationCode=inDto.EmailAuthorizationCode,
FromEmail=inDto.EmailFromEmail, AuthorizationCode = inDto.EmailAuthorizationCode,
FileName=inDto.EmailFromName, FromEmail = inDto.EmailFromEmail,
SMTPServerAddress=inDto.EmailSMTPServerAddress, FileName = inDto.EmailFromName,
SMTPServerPort= inDto.EmailSMTPServerPort.Value, SMTPServerAddress = inDto.EmailSMTPServerAddress,
TrialId=inDto.TrialId, SMTPServerPort = inDto.EmailSMTPServerPort.Value,
TrialId = inDto.TrialId,
}); });
await _trialRepository.UpdatePartialFromQueryAsync(inDto.TrialId, x => new Trial() await _trialRepository.UpdatePartialFromQueryAsync(inDto.TrialId, x => new Trial()
@ -126,11 +129,11 @@ namespace IRaCIS.Core.Application.Service
if (trialDocCount == 0) if (trialDocCount == 0)
{ {
//找到确认的标准 //找到确认的标准
var list= await _repository.Where<ReadingQuestionCriterionTrial>(t => t.TrialId == trialId && t.IsConfirm).Select(t => new { t.CriterionType, TrialReadingCriterionId = t.Id }).ToListAsync(); var list = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.TrialId == trialId && t.IsConfirm).Select(t => new { t.CriterionType, TrialReadingCriterionId = t.Id }).ToListAsync();
var confirmedCriterionTypeList = list.Select(t => (CriterionType?) t.CriterionType).ToList(); var confirmedCriterionTypeList = list.Select(t => (CriterionType?)t.CriterionType).ToList();
var docmentList = _repository.Where<CommonDocument>(t => confirmedCriterionTypeList.Contains(t.CriterionTypeEnum) ).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum ,t.CriterionTypeEnum}).ToList(); var docmentList = _repository.Where<CommonDocument>(t => confirmedCriterionTypeList.Contains(t.CriterionTypeEnum)).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum, t.CriterionTypeEnum }).ToList();
foreach (var item in docmentList) foreach (var item in docmentList)
@ -138,7 +141,7 @@ namespace IRaCIS.Core.Application.Service
await _trialEmailNoticeConfigRepository.AddAsync(new TrialEmailNoticeConfig() await _trialEmailNoticeConfigRepository.AddAsync(new TrialEmailNoticeConfig()
{ {
TrialId = trialId, TrialId = trialId,
TrialReadingCriterionId= list.Where(t=>t.CriterionType==item.CriterionTypeEnum).FirstOrDefault()?.TrialReadingCriterionId, TrialReadingCriterionId = list.Where(t => t.CriterionType == item.CriterionTypeEnum).FirstOrDefault()?.TrialReadingCriterionId,
FileName = item.Name, FileName = item.Name,
FilePath = item.Path, FilePath = item.Path,
BusinessScenarioEnum = item.BusinessScenarioEnum, BusinessScenarioEnum = item.BusinessScenarioEnum,
@ -352,7 +355,6 @@ namespace IRaCIS.Core.Application.Service
#endregion #endregion
var answer = "否"; var answer = "否";
var isNeedSend = true; var isNeedSend = true;
@ -710,9 +712,21 @@ namespace IRaCIS.Core.Application.Service
} }
else if (readingCategory == ReadingCategory.Global) else if (readingCategory == ReadingCategory.Global)
{ {
var questionAnsewer = await _repository.Where<ReadingGlobalTaskInfo>(t => t.TaskId == visitTaskId && t.TrialReadingQuestion.QuestionType == QuestionType.Tumor).FirstNotNullAsync(); var questionAnsewerList = await _repository.Where<ReadingGlobalTaskInfo>(t => t.GlobalTaskId == visitTaskId && t.TrialReadingQuestion.QuestionType == QuestionType.Tumor).ToListAsync();
var answerEmptyTaskIdList=questionAnsewerList.Where(t=>string.IsNullOrEmpty(t.Answer)).Select(t=>t.TaskId).ToList();
var answerList= await _repository.Where<ReadingTaskQuestionAnswer>(t => answerEmptyTaskIdList.Contains(t.VisitTaskId) && t.ReadingQuestionTrial.QuestionType == QuestionType.Tumor)
.Select(t=>t.Answer).ToListAsync();
if (questionAnsewerList.Any(t => t.Answer == ((int)OverallAssessment.PD).ToString()) || answerList.Any(t => t == ((int)OverallAssessment.PD).ToString()))
{
answer = ((int)OverallAssessment.PD).ToString();
}
answer = questionAnsewer.Answer;
} }
else if (readingCategory == ReadingCategory.Judge) else if (readingCategory == ReadingCategory.Judge)
{ {
@ -720,6 +734,7 @@ namespace IRaCIS.Core.Application.Service
var questionAnsewer = await _repository.Where<ReadingTaskQuestionAnswer>(t => t.VisitTaskId == visitTaskId && t.ReadingQuestionTrial.QuestionType == QuestionType.Tumor).FirstNotNullAsync(); var questionAnsewer = await _repository.Where<ReadingTaskQuestionAnswer>(t => t.VisitTaskId == visitTaskId && t.ReadingQuestionTrial.QuestionType == QuestionType.Tumor).FirstNotNullAsync();
answer = questionAnsewer.Answer; answer = questionAnsewer.Answer;
} }
else else
@ -731,10 +746,10 @@ namespace IRaCIS.Core.Application.Service
{ {
return "是"; return "是";
} }
if (answer == OverallAssessment.NA.GetEnumInt()) //if (answer == OverallAssessment.NA.GetEnumInt())
{ //{
return "NA"; // return "NA";
} //}
else else
{ {
return "否"; return "否";