diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs index 5d5f5843..670ae8b4 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs @@ -72,14 +72,15 @@ namespace IRaCIS.Core.Application.Service public async Task SetTrialEmail(SetTrialEmailInDto inDto) { - await TestEmailConfigAsync(new TrialEmailNoticeConfigAddOrEdit() { - - AuthorizationCode=inDto.EmailAuthorizationCode, - FromEmail=inDto.EmailFromEmail, - FromName=inDto.EmailFromName, - SMTPServerAddress=inDto.EmailSMTPServerAddress, - SMTPServerPort= inDto.EmailSMTPServerPort.Value, - TrialId=inDto.TrialId, + await TestEmailConfigAsync(new TrialEmailNoticeConfigAddOrEdit() + { + + AuthorizationCode = inDto.EmailAuthorizationCode, + FromEmail = inDto.EmailFromEmail, + FromName = inDto.EmailFromName, + SMTPServerAddress = inDto.EmailSMTPServerAddress, + SMTPServerPort = inDto.EmailSMTPServerPort.Value, + TrialId = inDto.TrialId, }); await _trialRepository.UpdatePartialFromQueryAsync(inDto.TrialId, x => new Trial() @@ -388,6 +389,17 @@ namespace IRaCIS.Core.Application.Service answer = "是"; } + + //把另外一个人的任务设置为不加急(如果项目加急是否 subject 加急是否) + var urgent = _repository.Where(t => t.Id == taskInfo.SourceSubjectVisitId).Select(t => new { IsSubjectUrgent = t.Subject.IsUrgent, t.Trial.IsUrgent }).FirstOrDefault(); + + if (urgent?.IsUrgent == false || urgent?.IsSubjectUrgent==false) + { + await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && + t.Id != visitTaskId && t.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId, u => new VisitTask() { IsUrgent = false }); + } + + } @@ -711,20 +723,15 @@ namespace IRaCIS.Core.Application.Service } else if (readingCategory == ReadingCategory.Global) { - var questionAnsewerList = await _repository.Where(t => t.GlobalTaskId == visitTaskId && t.TrialReadingQuestion.QuestionType == QuestionType.Tumor).ToListAsync(); + var questionAnsewer = await _repository.Where(t => t.GlobalTaskId == visitTaskId && t.TrialReadingQuestion.QuestionType == QuestionType.Tumor).OrderByDescending(c => c.VisitTask.VisitTaskNum).FirstNotNullAsync(); - 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 = questionAnsewer.Answer; + if (string.IsNullOrEmpty(questionAnsewer.Answer)) { - answer = ((int)OverallAssessment.PD).ToString(); - + answer = await _repository.Where(t => questionAnsewer.TaskId == t.VisitTaskId && t.ReadingQuestionTrial.QuestionType == QuestionType.Tumor) + .Select(t => t.Answer).FirstOrDefaultAsync(); } - - } else if (readingCategory == ReadingCategory.Judge)