修改
This commit is contained in:
+37
-10
@@ -351,15 +351,46 @@ namespace IRaCIS.Application.Services
|
||||
[HttpPost]
|
||||
public async Task<(List<DicomReadingQuestionAnswer>, object)> GetDicomReadingQuestionAnswer(GetDicomReadingQuestionAnswerInDto inDto)
|
||||
{
|
||||
await AddDefaultValueToTask(inDto.VisitTaskId);
|
||||
await AddDefaultValueToTask(inDto.VisitTaskId);
|
||||
var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
|
||||
var criterionId = taskInfo.TrialReadingCriterionId;
|
||||
var result = await GetReadingQuestion(taskInfo.TrialReadingCriterionId, taskInfo.Id);
|
||||
|
||||
return (result, new
|
||||
{
|
||||
|
||||
ReadingTaskState = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.ReadingTaskState).FirstOrDefaultAsync()
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取阅片外层问题
|
||||
/// </summary>
|
||||
/// <param name="trialReadingCriterionId"></param>
|
||||
/// <param name="visitTaskId"></param>
|
||||
/// <returns></returns>
|
||||
[NonDynamicMethod]
|
||||
public async Task<List<DicomReadingQuestionAnswer>> GetReadingQuestion(Guid trialReadingCriterionId,Guid? visitTaskId)
|
||||
{
|
||||
|
||||
|
||||
var criterionIdInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == trialReadingCriterionId).FirstNotNullAsync();
|
||||
|
||||
|
||||
//排除表格问题
|
||||
var questions = await _readingQuestionTrialRepository.Where(x => x.IsShowInDicom && x.ReadingQuestionCriterionTrialId == criterionId && x.Type != ReadingQestionType.Table)
|
||||
var questions = await _readingQuestionTrialRepository
|
||||
.WhereIf(criterionIdInfo.IseCRFShowInDicomReading, x=>x.ReadingQuestionCriterionTrialId == trialReadingCriterionId && x.Type != ReadingQestionType.Table)
|
||||
.WhereIf(!criterionIdInfo.IseCRFShowInDicomReading, x=>x.IsShowInDicom && x.ReadingQuestionCriterionTrialId == trialReadingCriterionId && x.Type != ReadingQestionType.Table)
|
||||
|
||||
.ProjectTo<DicomReadingQuestionAnswer>(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync();
|
||||
|
||||
var answers = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).ToListAsync();
|
||||
|
||||
var answers = new List<ReadingTaskQuestionAnswer>();
|
||||
|
||||
if (visitTaskId != null)
|
||||
{
|
||||
answers = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == visitTaskId).ToListAsync(); ;
|
||||
}
|
||||
|
||||
|
||||
//排除表格问题 同时排除组问题
|
||||
var groups = questions.Where(x => x.Type != ReadingQestionType.Group).Select(x => x.GroupName).ToList();
|
||||
@@ -371,11 +402,7 @@ namespace IRaCIS.Application.Services
|
||||
GetDicomReadingAnswer(item, questions, answers);
|
||||
}
|
||||
|
||||
return (result, new
|
||||
{
|
||||
|
||||
ReadingTaskState = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.ReadingTaskState).FirstOrDefaultAsync()
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
private void GetDicomReadingAnswer(DicomReadingQuestionAnswer item, List<DicomReadingQuestionAnswer> questions, List<ReadingTaskQuestionAnswer> answers)
|
||||
@@ -479,7 +506,7 @@ namespace IRaCIS.Application.Services
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取表格问题及答案 只返回表格问题
|
||||
/// 获取表格问题及答案 只返回表格问题(任务和标准)
|
||||
/// </summary>
|
||||
/// <param name="trialReadingCriterionId"></param>
|
||||
/// <param name="taskId"></param>
|
||||
|
||||
Reference in New Issue
Block a user