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()