获取问题修改
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
afeebf662b
commit
35e6a47f2d
|
|
@ -26,6 +26,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
public partial class ReadingImageTaskService(
|
||||
IRepository<NoneDicomStudy> _noneDicomStudyRepository,
|
||||
IRepository<VisitTask> _visitTaskRepository,
|
||||
IRepository<VisitStage> _visitStageRepository,
|
||||
IRepository<Trial> _trialRepository,
|
||||
IRepository<TaskInstance> _taskInstanceRepository,
|
||||
IRepository<NoneDicomStudyFile> _noneDicomStudyFileRepository,
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ using Microsoft.AspNetCore.Mvc;
|
|||
using Microsoft.Extensions.Configuration;
|
||||
using MimeKit;
|
||||
using Newtonsoft.Json;
|
||||
using System.Linq.Dynamic.Core;
|
||||
|
||||
namespace IRaCIS.Core.Application.Service
|
||||
{
|
||||
|
|
@ -270,19 +271,44 @@ namespace IRaCIS.Core.Application.Service
|
|||
private async Task<List<ReadingQuestionTrial>> GetJudgeDisplayQuestions(Guid trialReadingCriterionId, decimal visitNum, JudgeRule judgeRule)
|
||||
{
|
||||
var questionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == trialReadingCriterionId && x.IsJudgeQuestion)
|
||||
.Where(x=>x.ShowQuestion== ShowQuestion.Show)
|
||||
.OrderBy(x => x.ShowOrder).ToListAsync();
|
||||
var questionIds = questionList.Select(x => x.Id).ToList();
|
||||
var visitJudgeRules = judgeRule == JudgeRule.Difference
|
||||
? await _readingQuestionVisitJudgeRuleRepository.Where(x => questionIds.Contains(x.ReadingQuestionId) && (x.VisitNum == visitNum || x.VisitNum == -1)).ToListAsync()
|
||||
: new List<ReadingQuestionVisitJudgeRule>();
|
||||
.WhereIf(visitNum == 0, x => x.LimitShow != LimitShow.FollowShow)
|
||||
.WhereIf(visitNum != 0, x => x.LimitShow != LimitShow.BaseLineShow)
|
||||
.Where(x=>x.LimitShow!=LimitShow.ExcludeSomeVisits||x.ExcludeShowVisitList.Contains(visitNum))
|
||||
.ToListAsync();
|
||||
|
||||
return questionList.Where(x => !x.ExcludeShowVisitList.Contains(visitNum))
|
||||
.Where(x => judgeRule == JudgeRule.Consistent
|
||||
? x.JudgeType != JudgeTypeEnum.NotApplicable
|
||||
: (visitJudgeRules.FirstOrDefault(rule => rule.ReadingQuestionId == x.Id && rule.VisitNum == visitNum)
|
||||
?? visitJudgeRules.FirstOrDefault(rule => rule.ReadingQuestionId == x.Id && rule.VisitNum == -1))?.JudgeType != JudgeTypeEnum.NotApplicable)
|
||||
.ToList();
|
||||
|
||||
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == trialReadingCriterionId).FirstNotNullAsync();
|
||||
var questionIds = questionList.Select(x => x.Id).ToList();
|
||||
var visitJudgeRules=new List<ReadingQuestionVisitJudgeRule>();
|
||||
if (judgeRule == JudgeRule.Difference)
|
||||
{
|
||||
if (await _visitStageRepository.AnyAsync(x => x.TrialId == trialCriterion.TrialId && x.VisitNum == visitNum))
|
||||
{
|
||||
visitJudgeRules = await _readingQuestionVisitJudgeRuleRepository.Where(x => questionIds.Contains(x.ReadingQuestionId) && x.VisitNum == visitNum).ToListAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
visitJudgeRules = await _readingQuestionVisitJudgeRuleRepository.Where(x => questionIds.Contains(x.ReadingQuestionId) && x.VisitNum == -1).ToListAsync();
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
visitJudgeRules = questionList.Select(x => new ReadingQuestionVisitJudgeRule()
|
||||
{
|
||||
ReadingQuestionId = x.Id,
|
||||
AnswerCombination = JsonConvert.DeserializeObject<List<AnswerCombinationDto>>(x.AnswerCombination.IsNullOrEmpty() ? "[]" : x.AnswerCombination),
|
||||
AnswerGroup = JsonConvert.DeserializeObject<List<string>>(x.AnswerGroup.IsNullOrEmpty() ? "[]" : x.AnswerGroup),
|
||||
JudgeDifferenceType = x.JudgeDifferenceType,
|
||||
JudgeType = x.JudgeType,
|
||||
JudgeDifferenceValue = x.JudgeDifferenceValue,
|
||||
}).ToList();
|
||||
}
|
||||
|
||||
|
||||
return questionList
|
||||
.Where(x => visitJudgeRules.FirstOrDefault(rule => rule.ReadingQuestionId == x.Id && rule.VisitNum == -1)?.JudgeType != JudgeTypeEnum.NotApplicable)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
Loading…
Reference in New Issue