Uat_Study
he 2022-07-14 11:35:33 +08:00
parent db23c918cf
commit f09b2ade75
4 changed files with 25 additions and 6 deletions

View File

@ -338,7 +338,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public int ShowOrder { get; set; } public int ShowOrder { get; set; }
public int PageShowOrder { get; set; } public int? PageShowOrder { get; set; }
/// <summary> /// <summary>
/// 父问题ID /// 父问题ID
@ -359,9 +359,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
/// <summary> /// <summary>
/// 分页名称 /// 分页名称
/// </summary> /// </summary>
public string PageName { get; set; } public string? PageName { get; set; }
public bool IsPublicPage { get; set; } = false;
/// <summary> /// <summary>
/// 标准分页Id /// 标准分页Id
/// </summary> /// </summary>

View File

@ -34,6 +34,7 @@ namespace IRaCIS.Application.Services
private readonly IReadingClinicalDataService _readingClinicalDataService; private readonly IReadingClinicalDataService _readingClinicalDataService;
private readonly IRepository<SubjectVisit> _subjectVisitRepository; private readonly IRepository<SubjectVisit> _subjectVisitRepository;
private readonly IRepository<Subject> _subjectRepository; private readonly IRepository<Subject> _subjectRepository;
private readonly IRepository<ReadingCriterionPage> _readingCriterionPageRepository;
private readonly IRepository<ReadingJudgeInfo> _readingJudgeInfoRepository; private readonly IRepository<ReadingJudgeInfo> _readingJudgeInfoRepository;
private readonly IRepository<ReadModule> _readModuleRepository; private readonly IRepository<ReadModule> _readModuleRepository;
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository; private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository;
@ -50,6 +51,7 @@ namespace IRaCIS.Application.Services
IReadingClinicalDataService readingClinicalDataService, IReadingClinicalDataService readingClinicalDataService,
IRepository<SubjectVisit> subjectVisitRepository, IRepository<SubjectVisit> subjectVisitRepository,
IRepository<Subject> subjectRepository, IRepository<Subject> subjectRepository,
IRepository<ReadingCriterionPage> readingCriterionPageRepository,
IRepository<ReadingJudgeInfo> readingJudgeInfoRepository, IRepository<ReadingJudgeInfo> readingJudgeInfoRepository,
IRepository<ReadModule> readModuleRepository, IRepository<ReadModule> readModuleRepository,
IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository, IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository,
@ -65,6 +67,7 @@ namespace IRaCIS.Application.Services
this._readingClinicalDataService = readingClinicalDataService; this._readingClinicalDataService = readingClinicalDataService;
this._subjectVisitRepository = subjectVisitRepository; this._subjectVisitRepository = subjectVisitRepository;
this._subjectRepository = subjectRepository; this._subjectRepository = subjectRepository;
this._readingCriterionPageRepository = readingCriterionPageRepository;
this._readingJudgeInfoRepository = readingJudgeInfoRepository; this._readingJudgeInfoRepository = readingJudgeInfoRepository;
this._readModuleRepository = readModuleRepository; this._readModuleRepository = readModuleRepository;
this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository; this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
@ -297,7 +300,10 @@ namespace IRaCIS.Application.Services
var readingTaskState = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.ReadingTaskState).FirstOrDefaultAsync(); var readingTaskState = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.ReadingTaskState).FirstOrDefaultAsync();
var query= from data in _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId==inDto.ReadingQuestionCriterionTrialId) var query= from data in _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId==inDto.ReadingQuestionCriterionTrialId)
join page in _readingCriterionPageRepository.AsQueryable() on data.ReadingCriterionPageId??default(Guid) equals page.Id into pageTemp
from leftpage in pageTemp.DefaultIfEmpty()
join questionAnswer in _readingTaskQuestionAnswerRepository.Where(x=>x.VisitTaskId==inDto.VisitTaskId) on data.Id equals questionAnswer.ReadingQuestionTrialId into questionAnswerTemp join questionAnswer in _readingTaskQuestionAnswerRepository.Where(x=>x.VisitTaskId==inDto.VisitTaskId) on data.Id equals questionAnswer.ReadingQuestionTrialId into questionAnswerTemp
from leftquestionAnswer in questionAnswerTemp.DefaultIfEmpty() from leftquestionAnswer in questionAnswerTemp.DefaultIfEmpty()
select new GetTrialReadingQuestionOutDto() select new GetTrialReadingQuestionOutDto()
@ -315,8 +321,9 @@ namespace IRaCIS.Application.Services
TypeValue=data.TypeValue, TypeValue=data.TypeValue,
Answer= leftquestionAnswer.Answer, Answer= leftquestionAnswer.Answer,
ReadingCriterionPageId=data.ReadingCriterionPageId, ReadingCriterionPageId=data.ReadingCriterionPageId,
PageName= data.ReadingCriterionPage.PageName, PageName= leftpage.PageName,
PageShowOrder = data.ReadingCriterionPage.ShowOrder, PageShowOrder = leftpage.ShowOrder,
IsPublicPage=leftpage.IsPublicPage,
}; };

View File

@ -593,6 +593,8 @@ namespace IRaCIS.Core.Application.Contracts
{ {
[NotDefault] [NotDefault]
public Guid TrialId { get; set; } public Guid TrialId { get; set; }
} }
public class SetTrialReadingCriterionInDto public class SetTrialReadingCriterionInDto

View File

@ -85,7 +85,15 @@ namespace IRaCIS.Core.Application
[HttpPost] [HttpPost]
public async Task<List<TrialJudgeQuestion>> GetTrialReadingJudgeList(GetTrialReadingInfoInDto inDto) public async Task<List<TrialJudgeQuestion>> GetTrialReadingJudgeList(GetTrialReadingInfoInDto inDto)
{ {
return await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrial.IsConfirm && x.IsJudgeQuestion && x.TrialId == inDto.TrialId) var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == inDto.TrialId && x.IsConfirm).FirstOrDefaultAsync();
if (trialCriterion == null)
{
throw new BusinessValidationFailedException("请先确认一个项目标准。");
}
return await _readingQuestionTrialRepository
.WhereIf(trialCriterion.FormType==FormType.SinglePage,x=>x.ReadingCriterionPageId==null)
.WhereIf(trialCriterion.FormType == FormType.MultiplePage, x => x.ReadingCriterionPageId != null)
.Where(x => x.ReadingQuestionCriterionTrial.IsConfirm && x.IsJudgeQuestion && x.TrialId == inDto.TrialId&&x.ReadingQuestionCriterionTrialId== trialCriterion.Id)
.Select(x => new TrialJudgeQuestion() .Select(x => new TrialJudgeQuestion()
{ {
AnswerCombination = x.AnswerCombination, AnswerCombination = x.AnswerCombination,