Uat_Study
he 2022-08-31 09:58:04 +08:00
parent 3cba1e5b78
commit ccd6935dcb
3 changed files with 119 additions and 55 deletions

View File

@ -14,7 +14,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{ {
public List<VisitTaskInfo> VisitTaskList { get; set; } public List<VisitTaskInfo> VisitTaskList { get; set; }
public List<VisitTaskGroupAnswerDto> TaskQuestions { get; set; }
}
public class VisitTaskGroupAnswerDto
{
public Guid VisitTaskId { get; set; }
public List<VisitTaskGroupInfo> Questions { get; set; } public List<VisitTaskGroupInfo> Questions { get; set; }
} }
public class VisitTaskGroupInfo public class VisitTaskGroupInfo

View File

@ -105,7 +105,7 @@ namespace IRaCIS.Core.Application.Service
CriterionId= criterionId, CriterionId= criterionId,
TrialId=visitTask.TrialId, TrialId=visitTask.TrialId,
}; };
//await ReadingCalculate(readingData); await ReadingCalculate(readingData);
} }

View File

@ -108,77 +108,133 @@ namespace IRaCIS.Application.Services
#region 表格问题相关 #region 表格问题相关
/// <summary>
/// 获取阅片报告
/// </summary>
/// <param name="indto"></param>
/// <returns></returns>
public async Task<GetReadingReportEvaluationOutDto> GetReadingReportEvaluation(GetReadingReportEvaluationInDto indto)
{
GetReadingReportEvaluationOutDto result = new GetReadingReportEvaluationOutDto();
//public async Task<> GetReadingReportEvaluation(GetReadingReportEvaluationInDto indto) var taskInfoList = await _visitTaskRepository.Where(x => x.SubjectId == indto.SubjectId && x.TaskState == TaskState.Effect
//{ && x.ReadingCategory == ReadingCategory.Visit && !x.IsAnalysisCreate && x.ReadingTaskState == ReadingTaskState.HaveSigned
// GetReadingReportEvaluationOutDto result = new GetReadingReportEvaluationOutDto(); ).OrderBy(x => x.VisitTaskNum).Select(x => new VisitTaskInfo()
{
VisitTaskId = x.Id,
TaskName = x.TaskName,
VisitTaskNum = x.VisitTaskNum,
}).ToListAsync();
// var taskInfoList = await _visitTaskRepository.Where(x => x.SubjectId == indto.SubjectId && x.TaskState == TaskState.Effect result.VisitTaskList = taskInfoList;
// && x.ReadingCategory == ReadingCategory.Visit && !x.IsAnalysisCreate && x.ReadingTaskState == ReadingTaskState.HaveSigned
// ).OrderBy(x => x.VisitTaskNum).Select(x => new VisitTaskInfo() var visitTaskIds = taskInfoList.Select(x => x.VisitTaskId).ToList();
// {
// VisitTaskId = x.Id, var criterionId = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == indto.TrialId && x.IsConfirm).Select(x => x.Id).FirstOrDefaultAsync();
// TaskName = x.TaskName, var questionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == criterionId).ToListAsync();
// VisitTaskNum = x.VisitTaskNum, var tableQuestionList = await _readingTableQuestionTrialRepository.Where(x => x.TrialCriterionId == criterionId).ToListAsync();
// }).ToListAsync();
// var visitTaskIds = taskInfoList.Select(x => x.VisitTaskId).ToList(); var answers = await _readingTaskQuestionAnswerRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)).ToListAsync();
var tableAnswers = await _readingTableQuestionAnswerRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)).ToListAsync();
// var criterionId = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == indto.TrialId && x.IsConfirm).Select(x => x.Id).FirstOrDefaultAsync();
// var questionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == criterionId).ToListAsync();
// var tableQuestionList = await _readingTableQuestionTrialRepository.Where(x => x.TrialCriterionId == criterionId).ToListAsync();
// var answers = await _readingTaskQuestionAnswerRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)).ToListAsync(); // 第一级
// var tableAnswers = await _readingTableQuestionAnswerRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)).ToListAsync();
#region 构造问题
List<VisitTaskGroupInfo> questions = questionList.Where(x => x.Type == "group").OrderBy(x => x.ShowOrder).Select(x => new VisitTaskGroupInfo()
{
QuestionId = x.Id,
GroupName = x.GroupName,
QuestionName = x.QuestionName,
ShowOrder = x.ShowOrder,
}).ToList();
// // 第一级 foreach (var item in questions)
{
item.QuestionList = questionList.Where(x => x.GroupName == item.GroupName).OrderBy(x => x.ShowOrder).Select(x => new VisitTaskQuestionInfo()
{
GroupName = x.GroupName,
QuestionId = x.Id,
QuestionName = x.QuestionName,
ShowOrder = x.ShowOrder,
// List<VisitTaskGroupInfo> questions = questionList.Where(x => x.Type == "group").OrderBy(x => x.ShowOrder).Select(x => new VisitTaskGroupInfo() }).ToList();
// {
// QuestionId = x.Id,
// GroupName=x.GroupName,
// QuestionName = x.QuestionName,
// ShowOrder = x.ShowOrder,
// }).ToList();
// foreach (var item in questions) foreach (var question in item.QuestionList)
// { {
// item.QuestionList = questionList.Where(x => x.GroupName == item.GroupName).OrderBy(x => x.ShowOrder).Select(x => new VisitTaskQuestionInfo() question.TableRowQuestionList = new List<VistTaskTableQuestionRowInfo>()
// { {
// GroupName = x.GroupName, };
// QuestionId = x.Id, VistTaskTableQuestionRowInfo questionInfo = new VistTaskTableQuestionRowInfo()
// QuestionName = x.QuestionName, {
// ShowOrder = x.ShowOrder,
// }).ToList(); RowIndex = 0,
OrderMark = String.Empty,
TableQuestionList = tableQuestionList.Where(x => x.ReadingQuestionId == question.QuestionId).OrderBy(x => x.ShowOrder).Select(x => new VistTaskTableQuestionInfo()
{
Answer = String.Empty,
QuestionId = question.QuestionId,
TableQuestionId = x.Id,
ShowOrder = x.ShowOrder,
QuestionName = x.QuestionName,
// foreach (var question in item.QuestionList) }).ToList()
// {
// question.TableRowQuestionList = new List<VistTaskTableQuestionRowInfo>()
// {
};
// }; question.TableRowQuestionList.Add(questionInfo);
// VistTaskTableQuestionRowInfo questionInfo = new VistTaskTableQuestionRowInfo()
// {
// RowIndex = 0, }
// OrderMark = String.Empty, }
// TableQuestionList=tableQuestionList.Where(x=>x.ReadingQuestionId== question.QuestionId).Select(x=> new VistTaskTableQuestionInfo() { #endregion
// Answer=String.Empty,
// GroupName=question
// }) #region 构造答案
// } result.TaskQuestions = new List<VisitTaskGroupAnswerDto>();
// } foreach (var item in taskInfoList)
// } {
var itemQuestions = questions.Clone();
foreach (var group in itemQuestions)
{
group.QuestionList.ForEach(x =>
{
x.Answer = answers.Where(n => n.VisitTaskId == item.VisitTaskId && x.QuestionId == x.QuestionId).Select(x => x.Answer).FirstOrDefault() ?? String.Empty;
var tableQuestionAnswers = tableAnswers.Where(n => n.QuestionId == n.QuestionId && n.VisitTaskId == item.VisitTaskId).GroupBy(y => new { y.RowIndex }).Select(y => new
{
RowIndex = y.Key.RowIndex,
Answer = y.ToList(),
});
List<VistTaskTableQuestionRowInfo> questionRowInfos = new List<VistTaskTableQuestionRowInfo>();
var answerModel = x.TableRowQuestionList.FirstOrDefault() ?? new VistTaskTableQuestionRowInfo();
tableQuestionAnswers.ForEach(y =>
{
VistTaskTableQuestionRowInfo rowInfo = answerModel.Clone();
rowInfo.RowIndex = y.RowIndex;
rowInfo.TableQuestionList.ForEach(z =>
{
z.Answer = y.Answer.Where(n => n.TableQuestionId == z.TableQuestionId && n.QuestionId == z.QuestionId).Select(n => n.Answer).FirstOrDefault() ?? String.Empty;
});
questionRowInfos.Add(rowInfo);
});
//} x.TableRowQuestionList = questionRowInfos;
});
}
result.TaskQuestions.Add(new VisitTaskGroupAnswerDto() {
VisitTaskId=item.VisitTaskId,
Questions= itemQuestions
});
}
#endregion
return result;
}
/// <summary> /// <summary>
/// 获取表格答案行信息 /// 获取表格答案行信息