From 6bfbcd7d2c839c0174277a01d8535f87f8ca320d Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 19 Oct 2022 14:28:29 +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 | 10 ++
.../ReadingJudgeTaskService.cs | 2 +
.../TrialSiteUser/DTO/TrialConfigDTO.cs | 33 +++++-
.../TrialSiteUser/TrialConfigService.cs | 103 ++++++++++++------
.../Common/ReadingCommon.cs | 5 +
5 files changed, 115 insertions(+), 38 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index 4599d6aae..d633cb05b 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -889,6 +889,16 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string TypeValue { get; set; }
+ ///
+ /// 问题类型
+ ///
+ public TableQuestionType? QuestionGenre { get; set; }
+
+ ///
+ /// 字典code
+ ///
+ public string DictionaryCode { get; set; } = string.Empty;
+
///
/// 裁判类别
///
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs
index 16b2d1d60..0c6a9a546 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs
@@ -41,6 +41,8 @@ namespace IRaCIS.Application.Services
QuestionName = x.QuestionName,
PageName = x.ReadingCriterionPage.PageName,
TypeValue = x.TypeValue,
+ QuestionGenre=x.QuestionGenre,
+ DictionaryCode=x.DictionaryCode,
JudgeType = x.JudgeType,
ReadingQuestionTrialId = x.Id
}).ToListAsync();
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
index c526badf4..036083462 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
@@ -347,10 +347,6 @@ namespace IRaCIS.Core.Application.Contracts
///
public int ImagePlatform { get; set; } = 1;
- ///
- /// 全局阅片
- ///
- public bool IsGlobalReading { get; set; }
///
/// 系统标准ID
@@ -419,7 +415,7 @@ namespace IRaCIS.Core.Application.Contracts
public bool? IsArbitrationReading { get; set; }
- public List GlobalAssessTypeIds { get; set; }
+
/////
@@ -763,6 +759,33 @@ namespace IRaCIS.Core.Application.Contracts
}
+ public class GetGlobalReadingOutDto
+ {
+ public List GlobalAssessTypeIds { get; set; }
+
+
+ ///
+ /// 全局阅片
+ ///
+ public bool IsGlobalReading { get; set; }
+
+ public bool IsSystemCriterion { get; set; }
+ }
+
+ public class SetGlobalReadingInfoInDto
+ {
+ [NotDefault]
+ public Guid TrialReadingCriterionId { get; set; }
+
+ public List GlobalAssessTypeIds { get; set; }
+
+
+ ///
+ /// 全局阅片
+ ///
+ public bool IsGlobalReading { get; set; }
+ }
+
public class GetOncologySetInDto
{
public Guid TrialReadingCriterionId { get; set; }
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
index 396059644..e5d2acacb 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
@@ -138,10 +138,57 @@ 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 == "GlobalAssessType"))&& trialCriterion.ReadingQuestionCriterionSystemId!=null)
+
+
+
+ GetTrialReadingInfoOutDto trialInfo= await _readingQuestionCriterionTrialRepository.Where(x=>x.Id==inDto.TrialReadingCriterionId).ProjectTo(_mapper.ConfigurationProvider).FirstNotNullAsync();
+
+
+
+ return trialInfo;
+ }
+
+ ///
+ /// 修改全局阅片配置信息
+ ///
+ ///
+ ///
+ public async Task SetGlobalReadingInfo(SetGlobalReadingInfoInDto inDto)
+ {
+
+ await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(inDto.TrialReadingCriterionId, x => new ReadingQuestionCriterionTrial()
{
- await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id&&x.ParentCode== "GlobalAssessType");
- var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value&&x.ParentCode== "GlobalAssessType").
+ IsGlobalReading = inDto.IsGlobalReading
+
+ });
+ await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.GlobalAssess);
+ await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.GlobalAssessTypeIds.Select(x => new ReadingCriterionDictionary
+ {
+ CriterionId = inDto.TrialReadingCriterionId,
+ DictionaryId = x,
+ IsSystemCriterion = false,
+ ParentCode = ReadingCommon.GlobalAssess
+ }));
+
+ var result= await _readingCriterionDictionaryRepository.SaveChangesAsync();
+
+ return ResponseOutput.Ok(result);
+ }
+
+ ///
+ /// 获取全局阅片信息
+ ///
+ ///
+ ///
+ public async Task GetGlobalReadingInfo(GetOncologySetInDto inDto)
+ {
+
+ 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)
+ {
+ 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,
@@ -154,31 +201,30 @@ namespace IRaCIS.Core.Application
await _readingCriterionDictionaryRepository.AddRangeAsync(criterionDictionaryList);
await _readingCriterionDictionaryRepository.SaveChangesAsync();
}
-
-
- GetTrialReadingInfoOutDto trialInfo= await _readingQuestionCriterionTrialRepository.Where(x=>x.Id==inDto.TrialReadingCriterionId).ProjectTo(_mapper.ConfigurationProvider).FirstNotNullAsync();
-
- trialInfo.GlobalAssessTypeIds = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == "GlobalAssessType").Select(x => x.DictionaryId).ToListAsync();
-
- return trialInfo;
+ GetGlobalReadingOutDto result = new GetGlobalReadingOutDto()
+ {
+ IsGlobalReading = trialCriterion.IsGlobalReading,
+ IsSystemCriterion= trialCriterion.ReadingQuestionCriterionSystemId!=null,
+ GlobalAssessTypeIds = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.GlobalAssess).Select(x => x.DictionaryId).ToListAsync(),
+ };
+ return result;
}
-
- ///
- /// 获取项目肿瘤学配置
- ///
- ///
- ///
+ ///
+ /// 获取项目肿瘤学配置
+ ///
+ ///
+ ///
[HttpPost]
public async Task GetOncologySet(GetOncologySetInDto inDto)
{
- var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstOrDefaultAsync();
+ var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync();
- if ((!await _readingCriterionDictionaryRepository.AnyAsync(x => x.CriterionId == trialCriterion.Id && x.ParentCode == "OncologyAssessType")) && trialCriterion.ReadingQuestionCriterionSystemId != null)
+ if ((!await _readingCriterionDictionaryRepository.AnyAsync(x => x.CriterionId == trialCriterion.Id && x.ParentCode == ReadingCommon.OncologyAssess)) && trialCriterion.ReadingQuestionCriterionSystemId != null)
{
- await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id && x.ParentCode == "OncologyAssessType");
- var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value && x.ParentCode == "OncologyAssessType").
+ 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,
@@ -196,7 +242,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 == "OncologyAssessType").Select(x => x.DictionaryId).ToListAsync(),
+ OncologyAssessIds = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.OncologyAssess).Select(x => x.DictionaryId).ToListAsync(),
IsSystemCriterion= trialCriterion.ReadingQuestionCriterionSystemId!=null,
IsSign = trialCriterion.ReadingInfoSignTime != null,
};
@@ -220,14 +266,14 @@ namespace IRaCIS.Core.Application
});
- await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == "OncologyAssess");
+ await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.OncologyAssess);
await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.OncologyAssessIds.Select(x => new ReadingCriterionDictionary
{
CriterionId = inDto.TrialReadingCriterionId,
DictionaryId = x,
IsSystemCriterion = false,
- ParentCode = "OncologyAssess"
+ ParentCode = ReadingCommon.OncologyAssess
}));
var result = await _readingQuestionCriterionTrialRepository.SaveChangesAsync();
@@ -353,9 +399,6 @@ namespace IRaCIS.Core.Application
DigitPlaces = inDto.DigitPlaces,
});
-
- await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == "GlobalAssessType");
-
@@ -400,13 +443,7 @@ namespace IRaCIS.Core.Application
});
- await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.GlobalAssessTypeIds.Select(x => new ReadingCriterionDictionary
- {
- CriterionId = inDto.TrialReadingCriterionId,
- DictionaryId = x,
- IsSystemCriterion = false,
- ParentCode = "GlobalAssessType"
- }));
+
var result = await _readingQuestionCriterionTrialRepository.SaveChangesAsync();
diff --git a/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs b/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs
index 4c3a06649..7d356e119 100644
--- a/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs
+++ b/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs
@@ -15,6 +15,11 @@ namespace IRaCIS.Core.Infra.EFCore.Common
public static class ReadingCommon
{
+ public const string GlobalAssess = "GlobalAssessType";
+
+ public const string OncologyAssess = "OncologyAssessType";
+
+
public static Dictionary SplitLesionDic = new Dictionary()
{
{1, "a" },