Uat_Study
hang 2023-03-17 14:26:26 +08:00
commit 51aebaab21
4 changed files with 33 additions and 2 deletions

View File

@ -260,6 +260,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string BlindName { get; set; }
public bool IsHaveAdditionalQuestion { get; set; }
public bool IsBaseLine { get; set; }
public DateTime? LatestScanDate { get; set; }

View File

@ -135,8 +135,23 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task<(List<TrialReadQuestion>,bool)> GetTaskAdditionalQuestion(GetTaskAdditionalQuestionInDto inDto)
{
var answerList = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).IgnoreAutoIncludes().ToListAsync();
var taskInfo = await _visitTaskRepository.Where(x => inDto.VisitTaskId == x.Id).FirstNotNullAsync();
var result= await _readingQuestionTrialRepository.Where(x => x.IsAdditional && x.ReadingQuestionCriterionTrialId == taskInfo.TrialReadingCriterionId).IgnoreQueryFilters().ProjectTo<TrialReadQuestion>(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync();
var result= await _readingQuestionTrialRepository.Where(x => x.IsAdditional && x.ReadingQuestionCriterionTrialId == taskInfo.TrialReadingCriterionId).IgnoreAutoIncludes().IgnoreQueryFilters().ProjectTo<TrialReadQuestion>(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync();
result.ForEach(x =>
{
var answer = answerList.Where(y => y.ReadingQuestionTrialId == x.Id).FirstOrDefault();
if (answer != null)
{
x.Answer = answer.Answer;
}
});
return (result,true);
}

View File

@ -150,6 +150,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
var isAdditionalQuestionId = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == visitTaskInfo.TrialReadingCriterionId && x.IsAdditional).IgnoreQueryFilters().Select(x => x.Id).ToListAsync();
var taskquery = _visitTaskRepository
.Where(x => (x.SubjectId == visitTaskInfo.SubjectId && x.TaskState == TaskState.Effect
&& x.IsAnalysisCreate == visitTaskInfo.IsAnalysisCreate
@ -166,11 +168,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}
var taskInfoList = await taskquery.OrderBy(x => x.VisitTaskNum).Select(x => new VisitTaskInfo()
{
BlindName = x.TaskBlindName,
IsBaseLine = x.SourceSubjectVisit.IsBaseLine,
VisitTaskId = x.Id,
TaskName = x.TaskName,
LatestScanDate= x.SourceSubjectVisit!=null?x.SourceSubjectVisit.LatestScanDate : null,
VisitTaskNum = x.VisitTaskNum,
@ -178,6 +183,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}).ToListAsync();
var taskIds = taskInfoList.Select(x => x.VisitTaskId).ToList();
var isHaveAdditionalTaskIds = await _readingTaskQuestionAnswerRepository.Where(x => taskIds.Contains(x.VisitTaskId) && isAdditionalQuestionId.Contains(x.ReadingQuestionTrialId)).Select(x => x.VisitTaskId).Distinct().ToListAsync();
taskInfoList.ForEach(x => {
x.IsHaveAdditionalQuestion = isHaveAdditionalTaskIds.Contains(x.VisitTaskId);
});
return taskInfoList;
}
}

View File

@ -550,6 +550,8 @@ namespace IRaCIS.Core.Application.Contracts
public int? ParentQuestionShowOrder { get; set; }
public string Answer { get; set; } = string.Empty;
}
public class TrialJudgeQuestion