diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 285f8979..cd061cf5 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -435,7 +435,7 @@ 系统模板文档配置表 - + 影像上传列表 只导出已上传状态的访视记录 diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs index 6292dae0..ede4c056 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs @@ -15,6 +15,8 @@ using IRaCIS.Application.Contracts; using IRaCIS.Core.Infra.EFCore.Common; using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Filter; +using MiniSoftware; +using IRaCIS.Core.Application.Service.Reading.Dto; namespace IRaCIS.Core.Application.Service { @@ -70,14 +72,15 @@ namespace IRaCIS.Core.Application.Service public async Task SetTrialEmail(SetTrialEmailInDto inDto) { - await TestEmailConfigAsync(new TrialEmailNoticeConfigAddOrEdit() { - - AuthorizationCode=inDto.EmailAuthorizationCode, - FromEmail=inDto.EmailFromEmail, - FileName=inDto.EmailFromName, - SMTPServerAddress=inDto.EmailSMTPServerAddress, - SMTPServerPort= inDto.EmailSMTPServerPort.Value, - TrialId=inDto.TrialId, + await TestEmailConfigAsync(new TrialEmailNoticeConfigAddOrEdit() + { + + AuthorizationCode = inDto.EmailAuthorizationCode, + FromEmail = inDto.EmailFromEmail, + FileName = inDto.EmailFromName, + SMTPServerAddress = inDto.EmailSMTPServerAddress, + SMTPServerPort = inDto.EmailSMTPServerPort.Value, + TrialId = inDto.TrialId, }); await _trialRepository.UpdatePartialFromQueryAsync(inDto.TrialId, x => new Trial() @@ -126,11 +129,11 @@ namespace IRaCIS.Core.Application.Service if (trialDocCount == 0) { //找到确认的标准 - var list= await _repository.Where(t => t.TrialId == trialId && t.IsConfirm).Select(t => new { t.CriterionType, TrialReadingCriterionId = t.Id }).ToListAsync(); + var list = await _repository.Where(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(t => confirmedCriterionTypeList.Contains(t.CriterionTypeEnum) ).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum ,t.CriterionTypeEnum}).ToList(); + var docmentList = _repository.Where(t => confirmedCriterionTypeList.Contains(t.CriterionTypeEnum)).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum, t.CriterionTypeEnum }).ToList(); foreach (var item in docmentList) @@ -138,7 +141,7 @@ namespace IRaCIS.Core.Application.Service await _trialEmailNoticeConfigRepository.AddAsync(new TrialEmailNoticeConfig() { 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, FilePath = item.Path, BusinessScenarioEnum = item.BusinessScenarioEnum, @@ -352,7 +355,6 @@ namespace IRaCIS.Core.Application.Service #endregion - var answer = "否"; var isNeedSend = true; @@ -710,9 +712,21 @@ namespace IRaCIS.Core.Application.Service } else if (readingCategory == ReadingCategory.Global) { - var questionAnsewer = await _repository.Where(t => t.TaskId == visitTaskId && t.TrialReadingQuestion.QuestionType == QuestionType.Tumor).FirstNotNullAsync(); + var questionAnsewerList = await _repository.Where(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(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) { @@ -720,6 +734,7 @@ namespace IRaCIS.Core.Application.Service var questionAnsewer = await _repository.Where(t => t.VisitTaskId == visitTaskId && t.ReadingQuestionTrial.QuestionType == QuestionType.Tumor).FirstNotNullAsync(); + answer = questionAnsewer.Answer; } else @@ -731,10 +746,10 @@ namespace IRaCIS.Core.Application.Service { return "是"; } - if (answer == OverallAssessment.NA.GetEnumInt()) - { - return "NA"; - } + //if (answer == OverallAssessment.NA.GetEnumInt()) + //{ + // return "NA"; + //} else { return "否";