diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 49a95a23e..e4360ebd4 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -464,6 +464,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto { public Guid VisitTaskId { get; set; } + + public bool UpdateMark { get; set; } = false; + public List Answers { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 6989cbb3c..78cfdeb32 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -1474,6 +1474,7 @@ namespace IRaCIS.Application.Services [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] public async Task SaveImageQuality(ChangeDicomReadingQuestionAnswerInDto inDto) { + inDto.UpdateMark = true; return await ChangeDicomReadingQuestionAnswer(inDto); } @@ -1549,24 +1550,28 @@ namespace IRaCIS.Application.Services }).ToList(); await _readingTaskQuestionAnswerRepository.AddRangeAsync(needAddAnswer); - - var questionMarkList = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).Select(x => new + if (inDto.UpdateMark) { - x.QuestionId, - x.FirstAddTaskId, + var questionMarkList = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).Select(x => new + { + x.QuestionId, + x.FirstAddTaskId, - }).ToListAsync(); - await _readingTaskQuestionMarkRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId); - var datetime = DateTime.Now; + }).ToListAsync(); + await _readingTaskQuestionMarkRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId); + var datetime = DateTime.Now; - var markList = _mapper.Map, List>(inDto.QuestionMarkInfoList); - markList.ForEach(x => { - x.Id = NewId.NextGuid(); - x.VisitTaskId = inDto.VisitTaskId; - x.CreateTime = datetime; - x.FirstAddTaskId = questionMarkList.Where(y => y.QuestionId == x.QuestionId).Select(x => x.FirstAddTaskId).FirstOrDefault() ?? inDto.VisitTaskId; - }); - await _readingTaskQuestionMarkRepository.AddRangeAsync(markList); + var markList = _mapper.Map, List>(inDto.QuestionMarkInfoList); + markList.ForEach(x => { + x.Id = NewId.NextGuid(); + x.VisitTaskId = inDto.VisitTaskId; + x.CreateTime = datetime; + x.FirstAddTaskId = questionMarkList.Where(y => y.QuestionId == x.QuestionId).Select(x => x.FirstAddTaskId).FirstOrDefault() ?? inDto.VisitTaskId; + }); + await _readingTaskQuestionMarkRepository.AddRangeAsync(markList); + } + + await _readingTaskQuestionAnswerRepository.SaveChangesAsync(); return ResponseOutput.Ok(true); }