Uat_Study
he 2022-10-28 11:34:43 +08:00
parent 508dbd09a6
commit bf83cc52f2
1 changed files with 12 additions and 51 deletions

View File

@ -76,69 +76,30 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
result.ReadingTaskState = visitTaskInfo.ReadingTaskState;
var taskInfoList = await _generalCalculateService.GetReadingReportTaskList(indto.VisitTaskId);
taskInfoList = taskInfoList.Where(x => x.VisitTaskNum <= visitTaskInfo.VisitTaskNum).ToList();
result.VisitTaskList = taskInfoList;
var visitTaskIds = taskInfoList.Select(x => x.VisitTaskId).ToList();
var criterionId = visitTaskInfo.TrialReadingCriterionId;
var questionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == criterionId)
.Where(x=>x.LesionType!=LesionType.AlwaysNewLesions&&x.LesionType!=LesionType.BaselineLesions)
.Where(x => x.LesionType != LesionType.BaselineLesions)
.ToListAsync();
var tableQuestionList = await _readingTableQuestionTrialRepository.Where(x => x.TrialCriterionId == criterionId).OrderBy(x => x.ShowOrder).ToListAsync();
var tableAnsweRowInfos = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == indto.VisitTaskId).ProjectTo<TableAnsweRowInfo>(_mapper.ConfigurationProvider).ToListAsync();
var answers = await _readingTaskQuestionAnswerRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)).ToListAsync();
var tableAnswers = await _readingTableQuestionAnswerRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)).ToListAsync();
// 新病灶
// 新病灶
var questionNewLesions = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == visitTaskInfo.TrialReadingCriterionId && x.LesionType == LesionType.NewLesions).FirstNotNullAsync();
// 既往新病灶
var questionAlwaysLesions = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == visitTaskInfo.TrialReadingCriterionId && x.LesionType == LesionType.AlwaysNewLesions).FirstNotNullAsync();
var tableQuestionList = await _readingTableQuestionTrialRepository.Where(x => x.TrialCriterionId == criterionId).OrderBy(x => x.ShowOrder).ToListAsync();
var tableAnsweRowInfos = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == indto.VisitTaskId).ProjectTo<TableAnsweRowInfo>(_mapper.ConfigurationProvider).ToListAsync();
var answers = await _readingTaskQuestionAnswerRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId))
.Where(x => x.ReadingQuestionTrialId != questionNewLesions.Id||x.VisitTaskId== visitTaskInfo.Id)
.ToListAsync();
var tableAnswers = await _readingTableQuestionAnswerRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId))
.Where(x => x.QuestionId != questionNewLesions.Id || x.VisitTaskId == visitTaskInfo.Id)
.ToListAsync();
var newLesionTableQuestions = await _readingTableQuestionTrialRepository.Where(x => x.ReadingQuestionId == questionNewLesions.Id).ToListAsync();
var alwaysNewLesionsTableQuestions = await _readingTableQuestionTrialRepository.Where(x => x.ReadingQuestionId == questionAlwaysLesions.Id).ToListAsync();
Dictionary<Guid, Guid> alwaysTableQuestionIdDic = new Dictionary<Guid, Guid>();
alwaysNewLesionsTableQuestions.ForEach(x =>
{
alwaysTableQuestionIdDic.Add(
x.Id,
newLesionTableQuestions.Where(y => y.QuestionName == x.QuestionName).Select(y => y.Id).FirstOrDefault()
);
});
foreach (var item in tableAnsweRowInfos)
{
if (item.QuestionId == questionAlwaysLesions.Id)
{
item.QuestionId = questionNewLesions.Id;
}
}
foreach (var item in answers)
{
if (item.ReadingQuestionTrialId == questionAlwaysLesions.Id)
{
item.ReadingQuestionTrialId = questionNewLesions.Id;
}
}
foreach (var item in tableAnswers)
{
if (item.QuestionId == questionAlwaysLesions.Id)
{
item.QuestionId = questionNewLesions.Id;
item.TableQuestionId = alwaysTableQuestionIdDic[item.TableQuestionId];
}
}
// 第一级 分组