From f09b2ade75df3290b413707ce1e63912d2f5cc81 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 14 Jul 2022 11:35:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/Dto/ReadingImageTaskViewModel.cs | 6 ++++-- .../Service/Reading/ReadingImageTaskService.cs | 13 ++++++++++--- .../Service/TrialSiteUser/DTO/TrialConfigDTO.cs | 2 ++ .../Service/TrialSiteUser/TrialConfigService.cs | 10 +++++++++- 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 979ec4cb0..4aaa8479e 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -338,7 +338,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public int ShowOrder { get; set; } - public int PageShowOrder { get; set; } + public int? PageShowOrder { get; set; } /// /// 父问题ID @@ -359,9 +359,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// /// 分页名称 /// - public string PageName { get; set; } + public string? PageName { get; set; } + public bool IsPublicPage { get; set; } = false; + /// /// 标准分页Id /// diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs index 0c028a264..233f81ac9 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs @@ -34,6 +34,7 @@ namespace IRaCIS.Application.Services private readonly IReadingClinicalDataService _readingClinicalDataService; private readonly IRepository _subjectVisitRepository; private readonly IRepository _subjectRepository; + private readonly IRepository _readingCriterionPageRepository; private readonly IRepository _readingJudgeInfoRepository; private readonly IRepository _readModuleRepository; private readonly IRepository _readingTaskQuestionAnswerRepository; @@ -50,6 +51,7 @@ namespace IRaCIS.Application.Services IReadingClinicalDataService readingClinicalDataService, IRepository subjectVisitRepository, IRepository subjectRepository, + IRepository readingCriterionPageRepository, IRepository readingJudgeInfoRepository, IRepository readModuleRepository, IRepository readingTaskQuestionAnswerRepository, @@ -65,6 +67,7 @@ namespace IRaCIS.Application.Services this._readingClinicalDataService = readingClinicalDataService; this._subjectVisitRepository = subjectVisitRepository; this._subjectRepository = subjectRepository; + this._readingCriterionPageRepository = readingCriterionPageRepository; this._readingJudgeInfoRepository = readingJudgeInfoRepository; this._readModuleRepository = readModuleRepository; 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 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 from leftquestionAnswer in questionAnswerTemp.DefaultIfEmpty() select new GetTrialReadingQuestionOutDto() @@ -315,8 +321,9 @@ namespace IRaCIS.Application.Services TypeValue=data.TypeValue, Answer= leftquestionAnswer.Answer, ReadingCriterionPageId=data.ReadingCriterionPageId, - PageName= data.ReadingCriterionPage.PageName, - PageShowOrder = data.ReadingCriterionPage.ShowOrder, + PageName= leftpage.PageName, + PageShowOrder = leftpage.ShowOrder, + IsPublicPage=leftpage.IsPublicPage, }; diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs index e61838a4b..60158157b 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs @@ -593,6 +593,8 @@ namespace IRaCIS.Core.Application.Contracts { [NotDefault] public Guid TrialId { get; set; } + + } public class SetTrialReadingCriterionInDto diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index ad2d93e24..13fe003e8 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -85,7 +85,15 @@ namespace IRaCIS.Core.Application [HttpPost] public async Task> 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() { AnswerCombination = x.AnswerCombination,