diff --git a/IRaCIS.Core.Application/Service/Fixed/CriterionAdditionalAssessment.cs b/IRaCIS.Core.Application/Service/Fixed/CriterionAdditionalAssessment.cs index fc614efb6..ea2665111 100644 --- a/IRaCIS.Core.Application/Service/Fixed/CriterionAdditionalAssessment.cs +++ b/IRaCIS.Core.Application/Service/Fixed/CriterionAdditionalAssessment.cs @@ -1,6 +1,7 @@ using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Domain.Share.Reading; +using MassTransit; using NPOI.POIFS.NIO; using System; using System.Collections.Generic; @@ -24,20 +25,46 @@ namespace IRaCIS.Core.Application.Service } - public static class AdditionalAssessment + public class AdditionalAssessment { - public static List SystemDefeaultAdditionalAssessmentList { get; set; } = new List(); - static AdditionalAssessment() + public List SystemDefeaultAdditionalAssessmentList { get; set; } = new List(); + public AdditionalAssessment() { + + var gropId = NewId.NextGuid(); //Resist1.1 脑转移 默认评估问题 SystemDefeaultAdditionalAssessmentList.Add(new CriterionAdditionalAssessment() { CriterionType = CriterionType.RECIST1Point1, AdditionalAssessmentType = AdditionalAssessmentType.BrainMetastasis, - AdditionalQuestionList = new List(){ new ReadingQuestionTrial() + AdditionalQuestionList = new List(){ + + new ReadingQuestionTrial() { LimitEdit=LimitEdit.OnlyBaseLine, + Id=gropId, + IsJudgeQuestion=false, + IsShowInDicom=false, + GlobalReadingShowType=GlobalReadingShowType.NotShow, + + QuestionName="脑转移评估", + QuestionEnName="Brain Metastasis Assessment", + GroupName="脑转移评估", + GroupEnName="Brain Metastasis Assessment", + Type="group", + QuestionGenre=TableQuestionType.Customize, + DataSource=DataSources.ManualEntry, + ShowQuestion=ShowQuestion.Show, + + + IsAdditional=true + } , + + new ReadingQuestionTrial() + { + GroupId=gropId, + LimitEdit=LimitEdit.OnlyBaseLine, DictionaryCode="ReadingYesOrNo", IsJudgeQuestion=false, IsShowInDicom=false, @@ -51,12 +78,14 @@ namespace IRaCIS.Core.Application.Service IsAdditional=true - } } + } , + + } }); } - public static List GetSystemDefeaultAdditionalAssessmentList(CriterionType criterionType, AdditionalAssessmentType? additionalAssessmentType=null) + public List GetSystemDefeaultAdditionalAssessmentList(CriterionType criterionType, AdditionalAssessmentType? additionalAssessmentType=null) { return SystemDefeaultAdditionalAssessmentList.Where(t => t.CriterionType == criterionType) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 66eb29044..f4792ca6b 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -133,12 +133,12 @@ namespace IRaCIS.Application.Services /// /// [HttpPost] - public async Task<(List,bool)> GetTaskAdditionalQuestion(GetTaskAdditionalQuestionInDto inDto) + public async Task<(List,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).IgnoreAutoIncludes().IgnoreQueryFilters().ProjectTo(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync(); + var result= await _readingQuestionTrialRepository.Where(x => x.IsAdditional && x.ReadingQuestionCriterionTrialId == taskInfo.TrialReadingCriterionId).IgnoreAutoIncludes().IgnoreQueryFilters().ProjectTo(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync(); result.ForEach(x => { @@ -151,8 +151,16 @@ namespace IRaCIS.Application.Services }); + var resultData = result.Where(x => x.Type == "group").ToList(); - return (result,true); + resultData.ForEach(x => + { + x.Childrens = result.Where(y => y.GroupId == x.Id).ToList(); + + }); + + + return (resultData, true); } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs index cf3c2906c..17eaad0cd 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs @@ -550,10 +550,16 @@ namespace IRaCIS.Core.Application.Contracts public int? ParentQuestionShowOrder { get; set; } - public string Answer { get; set; } = string.Empty; + } + public class TrialAdditionaQuestion: TrialReadQuestion + { + public List Childrens { get; set; } = new List(); + public string Answer { get; set; } = string.Empty; + } + public class TrialJudgeQuestion { diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index c3701c13d..4711debda 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -567,7 +567,8 @@ namespace IRaCIS.Core.Application { if (!await _trialCriterionAdditionalAssessmentTypeRepository.AnyAsync(t => t.TrialReadingCriterionId == inDto.TrialReadingCriterionId)) { - var addList = AdditionalAssessment.GetSystemDefeaultAdditionalAssessmentList(inDto.CriterionType); + AdditionalAssessment additional = new AdditionalAssessment(); + var addList = additional.GetSystemDefeaultAdditionalAssessmentList(inDto.CriterionType); foreach (var addItem in addList) { @@ -622,8 +623,8 @@ namespace IRaCIS.Core.Application if (updateItem.IsSelected == true) { //添加默认问题 - - var addTypeList = AdditionalAssessment.GetSystemDefeaultAdditionalAssessmentList(updateItem.CriterionType, updateItem.AdditionalAssessmentType); + AdditionalAssessment additional = new AdditionalAssessment(); + var addTypeList = additional.GetSystemDefeaultAdditionalAssessmentList(updateItem.CriterionType, updateItem.AdditionalAssessmentType); foreach (var addType in addTypeList) { diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs index 55b688ef4..9741f1e55 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs @@ -243,7 +243,16 @@ namespace IRaCIS.Core.Application.Service CreateMap(); - + CreateMap() + .ForMember(d => d.GroupName, u => u.MapFrom(s => s.GroupInfo == null ? s.GroupName : s.GroupInfo.GroupName)) + .ForMember(d => d.GroupEnName, u => u.MapFrom(s => s.GroupInfo == null ? s.GroupEnName : s.GroupInfo.GroupEnName)) + .ForMember(t => t.PageName, u => u.MapFrom(c => c.ReadingCriterionPage.PageName)) + .ForMember(d => d.ParentQuestionGenre, u => u.MapFrom(s => s.ParentReadingQuestionTrial.QuestionGenre)) + .ForMember(d => d.ParentDictionaryCode, u => u.MapFrom(s => s.ParentReadingQuestionTrial.DictionaryCode)) + .ForMember(t => t.ParentQuestionName, u => u.MapFrom(c => c.ParentReadingQuestionTrial.QuestionName)) + .ForMember(t => t.RelevanceShowOrder, u => u.MapFrom(c => c.RelevanceReadingQuestionTrial.ShowOrder)) + .ForMember(t => t.ParentQuestionShowOrder, u => u.MapFrom(c => c.ParentReadingQuestionTrial.ShowOrder)); + CreateMap() .ForMember(d => d.GroupName, u => u.MapFrom(s => s.GroupInfo == null ? s.GroupName : s.GroupInfo.GroupName)) .ForMember(d => d.GroupEnName, u => u.MapFrom(s => s.GroupInfo == null ? s.GroupEnName : s.GroupInfo.GroupEnName))