diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index f8cbfe134..264fab680 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -293,6 +293,26 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid RowId { get; set; } } + public class AdditionalQuestionAnswer + { + public Guid QuestionId { get; set; } + + public string Answer { get; set; } + } + + public class SubmitTaskAdditionalQuestionInDto + { + public Guid VisitTaskId { get; set; } + + public List AnswerList { get; set; } = new List(); + } + + public class GetTaskAdditionalQuestionInDto + { + public Guid TrialReadingCriterionId { get; set; } + public Guid VisitTaskId { get; set; } + } + public class ChangeCalculationAnswerInDto { public Guid VisitTaskId { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs index 27817f084..a511edc47 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs @@ -1365,6 +1365,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } + public class GetCalculateTableQuestionsInDto { [NotDefault] diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs index cddc85ef2..efa83276c 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs @@ -90,6 +90,9 @@ namespace IRaCIS.Application.Services //} + + + /// /// 获取自定义表格问题预览 /// @@ -979,7 +982,7 @@ namespace IRaCIS.Application.Services needAddDatas.Add(question); }; - await _readingQuestionTrialRepository.BatchDeleteNoTrackingAsync(x => x.ReadingQuestionCriterionTrialId == trialCriterion.Id); + await _readingQuestionTrialRepository.BatchDeleteNoTrackingAsync(x => x.ReadingQuestionCriterionTrialId == trialCriterion.Id&&!x.IsAdditional); await _readingQuestionTrialRepository.AddRangeAsync(needAddDatas); var systemCriterion = await _readingQuestionCriterionSystemRepository.Where(x => x.Id == trialCriterion.ReadingQuestionCriterionSystemId).FirstNotNullAsync(); await _readingQuestionCriterionTrialRepository.BatchUpdateNoTrackingAsync(x => x.Id == trialCriterion.Id, x => new ReadingQuestionCriterionTrial() diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 0c87de9d5..76a0d9eee 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -127,6 +127,45 @@ namespace IRaCIS.Application.Services this._trialEmailNoticeConfigService = trialEmailNoticeConfigService; } + /// + /// 获取任务附加问题 + /// + /// + /// + [HttpPost] + public async Task> GettTaskAdditionalQuestion(GetTaskAdditionalQuestionInDto inDto) + { + var result= await _readingQuestionTrialRepository.Where(x => x.IsAdditional && x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId).IgnoreQueryFilters().ProjectTo(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync(); + return result; + } + + + /// + /// 提交附加问题 + /// + /// + /// + [HttpPost] + public async Task SubmitTaskAdditionalQuestion(SubmitTaskAdditionalQuestionInDto inDto) + { + var taskInfo = await _visitTaskRepository.Where(x => inDto.VisitTaskId == x.Id).FirstNotNullAsync(); + var questionids = inDto.AnswerList.Select(x => x.QuestionId).ToList(); + await _readingTaskQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId && questionids.Contains(x.ReadingQuestionTrialId)); + + await _readingTaskQuestionAnswerRepository.AddRangeAsync(inDto.AnswerList.Select(x => new ReadingTaskQuestionAnswer() + { + VisitTaskId = inDto.VisitTaskId, + ReadingQuestionCriterionTrialId = taskInfo.TrialReadingCriterionId, + Answer = x.Answer, + ReadingQuestionTrialId = x.QuestionId, + TrialId = taskInfo.TrialId, + SubjectId = taskInfo.SubjectId + }).ToList()); + + return await _readingTaskQuestionAnswerRepository.SaveChangesAsync(); + + } + /// /// 维护任务关系 ///