病灶融合修改

IRC_NewDev
he 2024-03-12 15:15:00 +08:00
parent 7d63f3f5cb
commit a66bb42126
1 changed files with 19 additions and 14 deletions

View File

@ -1543,8 +1543,13 @@ namespace IRaCIS.Application.Services
Answer = TargetState.Loss.GetEnumInt(),
});
await _readingTableQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => inDto.MergeRowIdList.Contains(x.RowId) &&( x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.MajorAxis || x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.ShortAxis), x => new ReadingTableQuestionAnswer()
{
Answer = "0",
});
await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x=> inDto.MergeRowIdList.Contains(x.Id), x => new ReadingTableAnswerRowInfo()
await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x=> inDto.MergeRowIdList.Contains(x.Id), x => new ReadingTableAnswerRowInfo()
{
MergeRowId=inDto.MergeMainRowId,
SplitOrMergeType = SplitOrMergeType.Merge,
@ -1587,29 +1592,29 @@ namespace IRaCIS.Application.Services
{
var rowinfo = await _readingTableAnswerRowInfoRepository.Where(x => x.Id == inDto.RowId).Include(x=>x.ReadingQuestionTrial).FirstNotNullAsync();
var taskInfo = await _visitTaskRepository.Where(x => x.Id == rowinfo.VisitTaskId).Include(x => x.TrialReadingCriterion).FirstNotNullAsync();
// 需要排除的状态
var needFilterState = new List<string>();
switch (rowinfo.ReadingQuestionTrial.LesionType)
var query = _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == rowinfo.VisitTaskId && x.QuestionId == rowinfo.QuestionId && x.Id != rowinfo.Id)
.Where(x => x.SplitOrMergeType != SplitOrMergeType.Split && x.SplitOrMergeType != SplitOrMergeType.SplitMain);
switch (taskInfo.TrialReadingCriterion.CriterionType)
{
//状态为“消失”、“无法评估”的靶病灶不可融合;
case LesionType.TargetLesion:
needFilterState = new List<string>() {
TargetState.Loss.GetEnumInt(),
TargetState.UnableEvaluate.GetEnumInt(),
string.Empty,
};
case CriterionType.Lugano2014:
query = query.Where(x => x.MeasureData == string.Empty ||
(x.LesionAnswerList.Any(y => y.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && y.Answer == TargetState.Loss.GetEnumInt()) &&
x.LesionAnswerList.Any(y => y.ReadingTableQuestionTrial.QuestionMark == QuestionMark.IsLymph && y.Answer == ReadingYesOrNo.No.GetEnumInt())
));
break;
}
var result = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == rowinfo.VisitTaskId && x.QuestionId == rowinfo.QuestionId && x.Id != rowinfo.Id)
// 筛选状态
.Where(x => x.LesionAnswerList.Any(y => y.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && !needFilterState.Contains(y.Answer)))
.Where(x=>x.SplitOrMergeType!=SplitOrMergeType.Split&&x.SplitOrMergeType!=SplitOrMergeType.SplitMain)
.Select(x => new GetCanMergeLesionOutDto()
var result = await query
.Select(x => new GetCanMergeLesionOutDto()
{
RowId = x.Id,
RowIndex = x.RowIndex,