From fe046d8842e00812aa8bb6ca454582c20d3f2d50 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 20 Oct 2022 16:26:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 36 ++++++++++++++++- .../Reading/Dto/ReadingImageTaskViewModel.cs | 5 +++ .../Reading/Dto/ReadingMedicalReviewDto.cs | 11 +++++ .../ReadingMedicalReviewService.cs | 11 +++-- .../ReadingGlobalTaskService.cs | 6 ++- .../ReadingImageTaskService.cs | 9 +++-- .../TrialSiteUser/TrialConfigService.cs | 40 +++++++++---------- 7 files changed, 87 insertions(+), 31 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 892a3ca17..18a546798 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -2965,6 +2965,16 @@ 评估结果 + + + 字典code + + + + + 问题类型 + + 项目ID @@ -3265,6 +3275,16 @@ 整体疗效 + + + IsBaseUse + + + + + IsBaseUse + + 表格问题类型 @@ -4521,6 +4541,20 @@ + + + 修改是否是随访使用 + + + + + + + 修改是否是基线使用 + + + + 获取标准字典 @@ -7242,7 +7276,7 @@ - + 获取所有下拉框 枚举 bool 数据 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 9de059254..3c82e7933 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -56,6 +56,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public QuestionType? QuestionType { get; set; } + /// + /// 病灶类型 + /// + public LesionType? LesionType { get; set; } + public string GroupName { get; set; } public string QuestionName { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs index d7f7958cf..6d921de4c 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs @@ -582,6 +582,17 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string Answer { get; set; } + + /// + /// 字典code + /// + public string DictionaryCode { get; set; } = string.Empty; + + /// + /// 问题类型 + /// + public TableQuestionType? QuestionGenre { get; set; } + } } diff --git a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs index 20c1b1781..de5f38e23 100644 --- a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs +++ b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs @@ -115,12 +115,15 @@ namespace IRaCIS.Core.Application.Service { Answer=y.Answer, QuestionName=y.ReadingQuestionTrial.QuestionName, + DictionaryCode=y.ReadingQuestionTrial.DictionaryCode, + QuestionGenre=y.ReadingQuestionTrial.QuestionGenre, }).ToList() : x.ReadingTaskQuestionAnswerList.Where(y => y.ReadingQuestionTrial.IsJudgeQuestion).Select(y => new JudgeQuestionAnswerInfo() { Answer = y.Answer, QuestionName = y.ReadingQuestionTrial.QuestionName, - + DictionaryCode = y.ReadingQuestionTrial.DictionaryCode, + QuestionGenre = y.ReadingQuestionTrial.QuestionGenre, }).ToList() }).ToListAsync(); @@ -161,12 +164,14 @@ namespace IRaCIS.Core.Application.Service { Answer = y.Answer, QuestionName = y.ReadingQuestionTrial.QuestionName, - + DictionaryCode = y.ReadingQuestionTrial.DictionaryCode, + QuestionGenre = y.ReadingQuestionTrial.QuestionGenre, }).ToList() : x.ReadingTaskQuestionAnswerList.Where(y => y.ReadingQuestionTrial.IsJudgeQuestion).Select(y => new JudgeQuestionAnswerInfo() { Answer = y.Answer, QuestionName = y.ReadingQuestionTrial.QuestionName, - + DictionaryCode = y.ReadingQuestionTrial.DictionaryCode, + QuestionGenre = y.ReadingQuestionTrial.QuestionGenre, }).ToList() }).ToListAsync(); diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs index 7f69ccdb0..7b38c2ed7 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs @@ -92,7 +92,6 @@ namespace IRaCIS.Application.Services { GlobalTaskId = inDto.VisitTaskId, ReadingTaskState = taskInfo.ReadingTaskState, - GlobalUpdateType = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == taskInfo.TrialReadingCriterionId).Select(x => x.GlobalUpdateType).FirstOrDefaultAsync(), }; @@ -201,10 +200,13 @@ namespace IRaCIS.Application.Services }); - + var subjectVisitId = await _readModuleRepository.Where(x => x.Id == taskInfo.SouceReadModuleId).Select(x => x.SubjectVisitId).FirstOrDefaultAsync(); + var isBaseLine = await _subjectVisitRepository.Where(x => x.Id == subjectVisitId).Select(x => x.IsBaseLine).FirstOrDefaultAsync(); List assessTypeList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == taskInfo.TrialReadingCriterionId && x.ParentCode == ReadingCommon.GlobalAssess ) + .WhereIf(isBaseLine,x=>x.IsBaseLineUse) + .WhereIf(!isBaseLine,x=>x.IsFollowVisitUse) .Select(x => new GetAssessTypeOutDto() { Id = x.Id, diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 709e69df3..80e44e032 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -387,7 +387,8 @@ namespace IRaCIS.Application.Services IsShowInDicom = x.IsShowInDicom, Type = x.Type, QuestionType=x.QuestionType, - QuestionGenre=x.QuestionGenre, + LesionType=x.LesionType, + QuestionGenre =x.QuestionGenre, DictionaryCode =x.DictionaryCode, TypeValue = x.TypeValue, QuestionName = x.QuestionName, @@ -406,7 +407,7 @@ namespace IRaCIS.Application.Services QuestionId = x.Id, IsShowInDicom = x.IsShowInDicom, QuestionName = x.QuestionName, - + LesionType = x.LesionType, QuestionGenre = x.QuestionGenre, DictionaryCode = x.DictionaryCode, Type = x.Type, @@ -445,7 +446,8 @@ namespace IRaCIS.Application.Services QuestionName = question.OrderMark + x.RowIndex.GetLesionMark(), SplitOrMergeLesionName = x.MergeName.IsNullOrEmpty() ? x.SplitName : x.MergeName, SplitOrMergeType = x.SplitOrMergeType, - IsCanEditPosition=x.IsCanEditPosition, + LesionType = question.LesionType, + IsCanEditPosition =x.IsCanEditPosition, RowIndex =x.RowIndex, }).ToList(); @@ -459,6 +461,7 @@ namespace IRaCIS.Application.Services QuestionId = x.ReadingQuestionId, TableQuestionId = x.Id, Type = x.Type, + LesionType = x.ReadingQuestionTrial.LesionType, TableQuestionType = x.TableQuestionType, DictionaryCode = x.DictionaryCode, QuestionMark = x.QuestionMark, diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 002a0b116..66618c3e4 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -187,18 +187,16 @@ namespace IRaCIS.Core.Application var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync(); - if ((!await _readingCriterionDictionaryRepository.AnyAsync(x => x.CriterionId == trialCriterion.Id && x.ParentCode == ReadingCommon.GlobalAssess)) && trialCriterion.ReadingQuestionCriterionSystemId != null) + if (trialCriterion.ReadingQuestionCriterionSystemId != null) { - await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id && x.ParentCode == ReadingCommon.GlobalAssess); - var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value && x.ParentCode == ReadingCommon.GlobalAssess). - Select(x => new ReadingCriterionDictionary() - { - CriterionId = trialCriterion.Id, - DictionaryId = x.DictionaryId, - IsSystemCriterion = false, - ParentCode = x.ParentCode, - - }).ToListAsync(); + await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id); + var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value) + .ToListAsync(); + criterionDictionaryList.ForEach(x => { + x.Dictionary = null; + x.IsSystemCriterion = false; + x.CriterionId = inDto.TrialReadingCriterionId; + }); await _readingCriterionDictionaryRepository.AddRangeAsync(criterionDictionaryList); await _readingCriterionDictionaryRepository.SaveChangesAsync(); @@ -224,18 +222,16 @@ namespace IRaCIS.Core.Application var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync(); - if ((!await _readingCriterionDictionaryRepository.AnyAsync(x => x.CriterionId == trialCriterion.Id && x.ParentCode == ReadingCommon.OncologyAssess)) && trialCriterion.ReadingQuestionCriterionSystemId != null) + if (trialCriterion.ReadingQuestionCriterionSystemId != null) { - await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id && x.ParentCode == ReadingCommon.OncologyAssess); - var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value && x.ParentCode == ReadingCommon.OncologyAssess). - Select(x => new ReadingCriterionDictionary() - { - CriterionId = trialCriterion.Id, - DictionaryId = x.DictionaryId, - IsSystemCriterion = false, - ParentCode = x.ParentCode, - - }).ToListAsync(); + await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id); + var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value) + .ToListAsync(); + criterionDictionaryList.ForEach(x => { + x.Dictionary = null; + x.IsSystemCriterion = false; + x.CriterionId = inDto.TrialReadingCriterionId; + }); await _readingCriterionDictionaryRepository.AddRangeAsync(criterionDictionaryList); await _readingCriterionDictionaryRepository.SaveChangesAsync();