diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index df3a54eda..856d02313 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -2179,13 +2179,13 @@ namespace IRaCIS.Core.Application.Service var markquestionId = inDto.QuestionMarkInfoList.Select(y => (Guid?)y.QuestionId).ToList(); List needDeleteMarkQuestonIds = inDto.Answers.Where(x => x.Answer == string.Empty).Select(x => (Guid?)x.Id).ToList(); - + var needDeleteMarkQuestionIds = questionList.Except(markquestionId).ToList(); switch (taskInfo.TrialReadingCriterion.CriterionType) { case CriterionType.SelfDefine: // 先找到需要删除的 - var needDeleteMarkQuestionIds = questionList.Except(markquestionId).ToList(); + foreach (var item in needDeleteMarkQuestionIds) { // 对于要删除的标记不能删除 要与问题解绑 @@ -2223,21 +2223,19 @@ namespace IRaCIS.Core.Application.Service case CriterionType.Lugano2014: - //await _readingTaskQuestionMarkRepository.BatchUpdateNoTrackingAsync(x => - //(x.QuestionType == QuestionType.SplenicTopPosition || x.QuestionType == QuestionType.SplenicBottomPosition) && - //x.VisitTaskId == inDto.VisitTaskId && needDeleteMarkQuestonIds.Contains(x.QuestionId), x => new ReadingTaskQuestionMark() - //{ - // PicturePath = string.Empty, - // MeasureData = string.Empty, - //}); + // 先找到需要删除的 + + foreach (var item in needDeleteMarkQuestionIds) + { + // 对于要删除的标记不能删除 要与问题解绑 + // 但是对于一个标记绑定多个问题的情况 相当于是要删除掉这条信息 + var questionMark = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.QuestionId == item).FirstOrDefaultAsync(); + if (questionMark != null) + { + await _readingTaskQuestionMarkRepository.DeleteAsync(questionMark); + } - //await _readingTaskQuestionMarkRepository.BatchUpdateNoTrackingAsync(x => - //(x.QuestionType == QuestionType.LiverSUVmax || x.QuestionType == QuestionType.MediastinumSUVmax) && - //x.VisitTaskId == inDto.VisitTaskId && needDeleteMarkQuestonIds.Contains(x.QuestionId), x => new ReadingTaskQuestionMark() - //{ - // OtherPicturePath = string.Empty, - // OtherMeasureData = string.Empty, - //}); + } await addOrEditmark(inDto.QuestionMarkInfoList);