diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/MRECISTHCCCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/MRECISTHCCCalculateService.cs index 4a1c64ea1..e832ac92e 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/MRECISTHCCCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/MRECISTHCCCalculateService.cs @@ -867,30 +867,45 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate TrialId = x.TrialId, }).ToListAsync(); - foreach (var item in recistTableAnswers) - { - - item.QuestionId = tableRowAnswers.Where(y => y.OriginalId == item.RowId).Select(x => x.QuestionId).FirstOrDefault(); - item.TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == item.QuestionId && x.QuestionMark == item.QuestionMark).Select(x => x.Id).FirstOrDefault(); - } + foreach (var item in recistTableAnswers) + { + var rowinfo = tableRowAnswers.Where(y => y.OriginalId == item.RowId).FirstOrDefault(); + if (rowinfo != null) + { + item.QuestionId = rowinfo.QuestionId; + + var IslymphNode= recistTableAnswers.Where(x=>x.RowId== rowinfo.Id&&x.QuestionMark==QuestionMark.IsLymph).Select(x=>x.Answer).FirstIsNullReturnEmpty().EqEnum(YesOrNoOrNa.Yes); + var minorAxis= recistTableAnswers.Where(x => x.RowId == rowinfo.Id && x.QuestionMark == QuestionMark.ShortAxis).Select(x => x.Answer).FirstIsNullReturnEmpty().IsNullOrEmptyReturn0(); + + var iSbetween15and20= minorAxis >= 15 && minorAxis < 20; + if (item.QuestionMark == QuestionMark.State && IslymphNode && iSbetween15and20 && rowinfo.LesionType == LesionType.TargetLesion) + { + item.Answer = string.Empty; + } + } + + + item.TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == item.QuestionId && x.QuestionMark == item.QuestionMark).Select(x => x.Id).FirstOrDefault(); + } recistTableAnswers = recistTableAnswers.Where(x => x.TableQuestionId != default(Guid)).ToList(); - List notNeedCopyMarks = new List() - { - - }; - var tableAnswers = recistTableAnswers.Select(x => new ReadingTableQuestionAnswer - { - Id = NewId.NextGuid(), - Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer, - QuestionId = x.QuestionId, - RowIndex = x.RowIndex, - RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(), - TableQuestionId = x.TableQuestionId, - TrialId = x.TrialId, - VisitTaskId = visitTaskId, - }).ToList(); + List notNeedCopyMarks = new List() + { + + }; + + var tableAnswers = recistTableAnswers.Select(x => new ReadingTableQuestionAnswer + { + Id = NewId.NextGuid(), + Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer, + QuestionId = x.QuestionId, + RowIndex = x.RowIndex, + RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(), + TableQuestionId = x.TableQuestionId, + TrialId = x.TrialId, + VisitTaskId = visitTaskId, + }).ToList(); // 添加 典型肝内病灶 默认值 tableRowAnswers.ForEach(x =>