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.MajorAxis,
QuestionMark.IsLymph, QuestionMark.ShortAxis,
QuestionMark.Lesion, QuestionMark.State,
QuestionMark.Organ,
QuestionMark.Location,
QuestionMark.Part,
QuestionMark.BodyPartDescription,
QuestionMark.LowPPDLDi,
QuestionMark.LowPPDSDi,
QuestionMark.NadirPPD,
QuestionMark.LowPPDVisit,
}; };
@ -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).ToHashSet();
// 处理状态 var tableAnswers = copyTableAnswers
.Select(x =>
var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToList();
copyTableAnswers.ForEach(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(), Id = NewId.NextGuid(),
Answer = needCopyMarks.Contains(x.QuestionMark) ? x.Answer : string.Empty, Answer = answer,
QuestionId = x.QuestionId, QuestionId = x.QuestionId,
RowIndex = x.RowIndex, RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(), RowId = rowId,
TableQuestionId = x.TableQuestionId, TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId, TrialId = x.TrialId,
VisitTaskId = visitTaskId, VisitTaskId = visitTaskId,
}; };
if (mergedRowIds.Contains(tableAnswer.RowId) && x.QuestionMark == QuestionMark.State) })
{ .ToList();
tableAnswer.Answer = TargetState.Loss.GetEnumInt();
}
tableAnswers.Add(tableAnswer);
});
var questionMarkList = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == LastVisitTaskId).Select(x => new ReadingTaskQuestionMark() 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.MajorAxis,
QuestionMark.IsLymph, QuestionMark.ShortAxis,
QuestionMark.Lesion, QuestionMark.State,
QuestionMark.Organ,
QuestionMark.Location,
QuestionMark.Part,
QuestionMark.BodyPartDescription,
QuestionMark.LowPPDLDi,
QuestionMark.LowPPDSDi,
QuestionMark.NadirPPD,
QuestionMark.LowPPDVisit,
}; };
@ -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).ToHashSet();
// 处理状态 var tableAnswers = copyTableAnswers
.Select(x =>
var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToList();
copyTableAnswers.ForEach(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(), Id = NewId.NextGuid(),
Answer = needCopyMarks.Contains(x.QuestionMark) ? x.Answer : string.Empty, Answer = answer,
QuestionId = x.QuestionId, QuestionId = x.QuestionId,
RowIndex = x.RowIndex, RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(), RowId = rowId,
TableQuestionId = x.TableQuestionId, TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId, TrialId = x.TrialId,
VisitTaskId = visitTaskId, VisitTaskId = visitTaskId,
}; };
if (mergedRowIds.Contains(tableAnswer.RowId) && x.QuestionMark == QuestionMark.State) })
{ .ToList();
tableAnswer.Answer = TargetState.Loss.GetEnumInt();
}
tableAnswers.Add(tableAnswer);
});
var questionMarkList = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == LastVisitTaskId).Select(x => new ReadingTaskQuestionMark() var questionMarkList = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == LastVisitTaskId).Select(x => new ReadingTaskQuestionMark()
{ {