Compare commits

..

No commits in common. "292263a60c2e61800bca6ce53f3977bde0067aa4" and "e11ca4a24420e19da1be05b0cb4c08bfbb3f711c" have entirely different histories.

2 changed files with 74 additions and 56 deletions

View File

@ -1149,12 +1149,20 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}); });
List<QuestionMark?> notNeedCopyMarks = new List<QuestionMark?>() List<QuestionMark?> needCopyMarks = new List<QuestionMark?>()
{ {
QuestionMark.MajorAxis,
QuestionMark.ShortAxis, QuestionMark.IsLymph,
QuestionMark.State, QuestionMark.Lesion,
}; QuestionMark.Organ,
QuestionMark.Location,
QuestionMark.Part,
QuestionMark.BodyPartDescription,
QuestionMark.LowPPDLDi,
QuestionMark.LowPPDSDi,
QuestionMark.NadirPPD,
QuestionMark.LowPPDVisit,
};
@ -1198,29 +1206,30 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}); });
} }
var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToHashSet(); var tableAnswers = new List<ReadingTableQuestionAnswer>();
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(); Id = NewId.NextGuid(),
var answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer; Answer = needCopyMarks.Contains(x.QuestionMark) ? x.Answer : string.Empty,
if (mergedRowIds.Contains(rowId) && (x.QuestionMark == QuestionMark.State || x.QuestionMark == QuestionMark.ShortAxis || x.QuestionMark == QuestionMark.MajorAxis)) QuestionId = x.QuestionId,
{ RowIndex = x.RowIndex,
answer = x.Answer; RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(),
} TableQuestionId = x.TableQuestionId,
return new ReadingTableQuestionAnswer TrialId = x.TrialId,
{ VisitTaskId = visitTaskId,
Id = NewId.NextGuid(), };
Answer = answer, if (mergedRowIds.Contains(tableAnswer.RowId) && x.QuestionMark == QuestionMark.State)
QuestionId = x.QuestionId, {
RowIndex = x.RowIndex, tableAnswer.Answer = TargetState.Loss.GetEnumInt();
RowId = rowId,
TableQuestionId = x.TableQuestionId, }
TrialId = x.TrialId, tableAnswers.Add(tableAnswer);
VisitTaskId = visitTaskId, });
};
})
.ToList();
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,12 +1148,20 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}); });
List<QuestionMark?> notNeedCopyMarks = new List<QuestionMark?>() List<QuestionMark?> needCopyMarks = new List<QuestionMark?>()
{ {
QuestionMark.MajorAxis,
QuestionMark.ShortAxis, QuestionMark.IsLymph,
QuestionMark.State, QuestionMark.Lesion,
}; QuestionMark.Organ,
QuestionMark.Location,
QuestionMark.Part,
QuestionMark.BodyPartDescription,
QuestionMark.LowPPDLDi,
QuestionMark.LowPPDSDi,
QuestionMark.NadirPPD,
QuestionMark.LowPPDVisit,
};
@ -1197,29 +1205,30 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}); });
} }
var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToHashSet(); var tableAnswers = new List<ReadingTableQuestionAnswer>();
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(); Id = NewId.NextGuid(),
var answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer; Answer = needCopyMarks.Contains(x.QuestionMark) ? x.Answer : string.Empty,
if (mergedRowIds.Contains(rowId) && (x.QuestionMark == QuestionMark.State || x.QuestionMark == QuestionMark.ShortAxis || x.QuestionMark == QuestionMark.MajorAxis)) QuestionId = x.QuestionId,
{ RowIndex = x.RowIndex,
answer = x.Answer; RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(),
} TableQuestionId = x.TableQuestionId,
return new ReadingTableQuestionAnswer TrialId = x.TrialId,
{ VisitTaskId = visitTaskId,
Id = NewId.NextGuid(), };
Answer = answer, if (mergedRowIds.Contains(tableAnswer.RowId) && x.QuestionMark == QuestionMark.State)
QuestionId = x.QuestionId, {
RowIndex = x.RowIndex, tableAnswer.Answer = TargetState.Loss.GetEnumInt();
RowId = rowId,
TableQuestionId = x.TableQuestionId, }
TrialId = x.TrialId, tableAnswers.Add(tableAnswer);
VisitTaskId = visitTaskId, });
};
})
.ToList();
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()
{ {