From 8653ef23af0820a14246bbfb7d03eb53d095187f Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Fri, 21 Oct 2022 14:32:24 +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 --- .../Service/Common/DTO/DictionaryModel.cs | 7 +++++ .../Service/Common/DictionaryService.cs | 16 ++++++++++++ .../ReadingCriterionService.cs | 6 ++--- .../ReadingGlobalTaskService.cs | 2 +- .../ReadingOncologyTaskService.cs | 2 +- .../TrialSiteUser/TrialConfigService.cs | 12 ++++----- .../Common/ReadingCommon.cs | 26 +++++++++++++++++-- 7 files changed, 58 insertions(+), 13 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs b/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs index fe0f3be1a..08ccd2e0c 100644 --- a/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs +++ b/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs @@ -84,6 +84,13 @@ namespace IRaCIS.Application.Contracts } + public class GetCriterionDictionaryListOutDto + { + public string Code { get; set; } = string.Empty; + + public string Description { get; set; } = string.Empty; + } + public class BasicDicSelect { public Guid Id { get; set; } diff --git a/IRaCIS.Core.Application/Service/Common/DictionaryService.cs b/IRaCIS.Core.Application/Service/Common/DictionaryService.cs index 45fa9bd85..8bc6037a5 100644 --- a/IRaCIS.Core.Application/Service/Common/DictionaryService.cs +++ b/IRaCIS.Core.Application/Service/Common/DictionaryService.cs @@ -219,6 +219,22 @@ namespace IRaCIS.Application.Services return searchList; } + /// + /// 获取标准字典 + /// + /// + public async Task> GetCriterionDictionaryList() + { + var dictionaryList = await _dicRepository.Where(x => ReadingCommon.CriterionDictionary.CriterionDictionaryCodeList.Contains(x.Code)) + .OrderBy(x => x.ShowOrder).Select(x => new GetCriterionDictionaryListOutDto() + { + Code = x.Code, + Description = x.Description + + }).ToListAsync(); + + return dictionaryList; + } /// diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs index faf060990..c968e575e 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs @@ -71,7 +71,7 @@ namespace IRaCIS.Core.Application.Service.RC GetSystemOncologyInfoOutDto result = new GetSystemOncologyInfoOutDto() { IsOncologyReading = await _readingQuestionCriterionSystemRepository.Where(x => x.Id == inDto.SystemCriterionId).Select(x => x.IsOncologyReading).FirstOrDefaultAsync(), - DictionaryList = await _readingCriterionDictionaryRepository.AsQueryable().Where(x => x.CriterionId == inDto.SystemCriterionId && x.ParentCode == ReadingCommon.OncologyAssess) + DictionaryList = await _readingCriterionDictionaryRepository.AsQueryable().Where(x => x.CriterionId == inDto.SystemCriterionId && x.ParentCode == ReadingCommon.CriterionDictionary.OncologyAssess) .ProjectTo(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync() }; @@ -88,14 +88,14 @@ namespace IRaCIS.Core.Application.Service.RC public async Task SetSystemOncologyInfo(SetSystemOncologyInfoInDto inDto) { - await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.SystemCriterionId && x.ParentCode == ReadingCommon.OncologyAssess); + await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.SystemCriterionId && x.ParentCode == ReadingCommon.CriterionDictionary.OncologyAssess); await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.DictionaryIds.Select(x => new ReadingCriterionDictionary { CriterionId = inDto.SystemCriterionId, DictionaryId = x, IsSystemCriterion = true, - ParentCode = ReadingCommon.OncologyAssess + ParentCode = ReadingCommon.CriterionDictionary.OncologyAssess })); await _readingQuestionCriterionSystemRepository.UpdatePartialFromQueryAsync(inDto.SystemCriterionId, x => new ReadingQuestionCriterionSystem() diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs index ab843ab81..7c1edd428 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs @@ -203,7 +203,7 @@ 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 + && x.ParentCode == ReadingCommon.CriterionDictionary.GlobalAssess ) .WhereIf(isBaseLine,x=>x.IsBaseLineUse) .WhereIf(!isBaseLine,x=>x.IsFollowVisitUse) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs index b4c1fa367..94471ae0f 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs @@ -137,7 +137,7 @@ namespace IRaCIS.Application.Services result.OncologyVisits = oncologyVisits; List assessTypeList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == taskInfo.TrialReadingCriterionId - && x.ParentCode == ReadingCommon.OncologyAssess + && x.ParentCode == ReadingCommon.CriterionDictionary.OncologyAssess ) .Select(x => new CriterionDictionaryInfo() { diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index e0671153c..7b62b2473 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -192,7 +192,7 @@ namespace IRaCIS.Core.Application // IsGlobalReading = inDto.IsGlobalReading //}); - await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.GlobalAssess); + await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.CriterionDictionary.GlobalAssess); await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.GlobalAssessList.Select(x => new ReadingCriterionDictionary { CriterionId = inDto.TrialReadingCriterionId, @@ -200,7 +200,7 @@ namespace IRaCIS.Core.Application IsBaseLineUse=x.IsBaseLineUse, IsFollowVisitUse=x.IsFollowVisitUse, IsSystemCriterion = false, - ParentCode = ReadingCommon.GlobalAssess + ParentCode = ReadingCommon.CriterionDictionary.GlobalAssess })); var result= await _readingCriterionDictionaryRepository.SaveChangesAsync(); @@ -224,7 +224,7 @@ namespace IRaCIS.Core.Application IsSystemCriterion= trialCriterion.ReadingQuestionCriterionSystemId!=null, IsSign=trialCriterion.ReadingInfoSignTime!=null, GlobalAssessTypes = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId - && x.ParentCode == ReadingCommon.GlobalAssess + && x.ParentCode == ReadingCommon.CriterionDictionary.GlobalAssess ) .Select(x => new CriterionDictionaryInfo() { @@ -257,7 +257,7 @@ namespace IRaCIS.Core.Application return new GetOncologySetOutDto { EvaluationReason = trialCriterion.EvaluationReason.IsNullOrEmpty()? ReadingCommon.EvaluationReason : trialCriterion.EvaluationReason, - OncologyAssessIds = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.OncologyAssess).Select(x => x.DictionaryId).ToListAsync(), + OncologyAssessIds = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.CriterionDictionary.OncologyAssess).Select(x => x.DictionaryId).ToListAsync(), IsSystemCriterion= trialCriterion.ReadingQuestionCriterionSystemId!=null, IsSign = trialCriterion.ReadingInfoSignTime != null, }; @@ -281,14 +281,14 @@ namespace IRaCIS.Core.Application }); - await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.OncologyAssess); + await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.CriterionDictionary.OncologyAssess); await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.OncologyAssessIds.Select(x => new ReadingCriterionDictionary { CriterionId = inDto.TrialReadingCriterionId, DictionaryId = x, IsSystemCriterion = false, - ParentCode = ReadingCommon.OncologyAssess + ParentCode = ReadingCommon.CriterionDictionary.OncologyAssess })); var result = await _readingQuestionCriterionTrialRepository.SaveChangesAsync(); diff --git a/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs b/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs index 7d356e119..f3e7a9e65 100644 --- a/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs +++ b/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs @@ -14,10 +14,32 @@ namespace IRaCIS.Core.Infra.EFCore.Common { public static class ReadingCommon { + /// + /// 标准字典设置 + /// + public static class CriterionDictionary + { + /// + /// 全局评估类型 + /// + public const string GlobalAssess = "GlobalAssessType"; - public const string GlobalAssess = "GlobalAssessType"; + /// + /// 肿瘤学评估类型 + /// + public const string OncologyAssess = "OncologyAssessType"; - public const string OncologyAssess = "OncologyAssessType"; + /// + /// 标准字典需要配置的相 + /// + public static List CriterionDictionaryCodeList = new List() + { + "LesionType", + "QuestionType" + }; + } + + public static Dictionary SplitLesionDic = new Dictionary()