Test_IRC_Net8
he 2025-12-26 10:49:16 +08:00
parent 0266072c6a
commit 760f75061e
2 changed files with 56 additions and 74 deletions

View File

@ -1149,19 +1149,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
});
List<QuestionMark?> needCopyMarks = new List<QuestionMark?>()
List<QuestionMark?> notNeedCopyMarks = new List<QuestionMark?>()
{
QuestionMark.IsLymph,
QuestionMark.Lesion,
QuestionMark.Organ,
QuestionMark.Location,
QuestionMark.Part,
QuestionMark.BodyPartDescription,
QuestionMark.LowPPDLDi,
QuestionMark.LowPPDSDi,
QuestionMark.NadirPPD,
QuestionMark.LowPPDVisit,
QuestionMark.MajorAxis,
QuestionMark.ShortAxis,
QuestionMark.State,
};
@ -1206,30 +1198,29 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
});
}
var tableAnswers = new List<ReadingTableQuestionAnswer>();
// 处理状态
var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToList();
copyTableAnswers.ForEach(x =>
var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToHashSet();
var tableAnswers = copyTableAnswers
.Select(x =>
{
var tableAnswer = new ReadingTableQuestionAnswer()
var rowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(y => y.Id).FirstOrDefault();
var answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer;
if (mergedRowIds.Contains(rowId) && (x.QuestionMark == QuestionMark.State || x.QuestionMark == QuestionMark.ShortAxis || x.QuestionMark == QuestionMark.MajorAxis))
{
answer = x.Answer;
}
return new ReadingTableQuestionAnswer
{
Id = NewId.NextGuid(),
Answer = needCopyMarks.Contains(x.QuestionMark) ? x.Answer : string.Empty,
Answer = answer,
QuestionId = x.QuestionId,
RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(),
RowId = rowId,
TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId,
VisitTaskId = visitTaskId,
};
if (mergedRowIds.Contains(tableAnswer.RowId) && x.QuestionMark == QuestionMark.State)
{
tableAnswer.Answer = TargetState.Loss.GetEnumInt();
}
tableAnswers.Add(tableAnswer);
});
})
.ToList();
var questionMarkList = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == LastVisitTaskId).Select(x => new ReadingTaskQuestionMark()
{

View File

@ -1148,19 +1148,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
});
List<QuestionMark?> needCopyMarks = new List<QuestionMark?>()
List<QuestionMark?> notNeedCopyMarks = new List<QuestionMark?>()
{
QuestionMark.IsLymph,
QuestionMark.Lesion,
QuestionMark.Organ,
QuestionMark.Location,
QuestionMark.Part,
QuestionMark.BodyPartDescription,
QuestionMark.LowPPDLDi,
QuestionMark.LowPPDSDi,
QuestionMark.NadirPPD,
QuestionMark.LowPPDVisit,
QuestionMark.MajorAxis,
QuestionMark.ShortAxis,
QuestionMark.State,
};
@ -1205,30 +1197,29 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
});
}
var tableAnswers = new List<ReadingTableQuestionAnswer>();
// 处理状态
var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToList();
copyTableAnswers.ForEach(x =>
var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToHashSet();
var tableAnswers = copyTableAnswers
.Select(x =>
{
var tableAnswer = new ReadingTableQuestionAnswer()
var rowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(y => y.Id).FirstOrDefault();
var answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer;
if (mergedRowIds.Contains(rowId) && (x.QuestionMark == QuestionMark.State || x.QuestionMark == QuestionMark.ShortAxis || x.QuestionMark == QuestionMark.MajorAxis))
{
answer = x.Answer;
}
return new ReadingTableQuestionAnswer
{
Id = NewId.NextGuid(),
Answer = needCopyMarks.Contains(x.QuestionMark) ? x.Answer : string.Empty,
Answer = answer,
QuestionId = x.QuestionId,
RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(),
RowId = rowId,
TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId,
VisitTaskId = visitTaskId,
};
if (mergedRowIds.Contains(tableAnswer.RowId) && x.QuestionMark == QuestionMark.State)
{
tableAnswer.Answer = TargetState.Loss.GetEnumInt();
}
tableAnswers.Add(tableAnswer);
});
})
.ToList();
var questionMarkList = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == LastVisitTaskId).Select(x => new ReadingTaskQuestionMark()
{