From 07a2bcf446b3d280812afba21f2ccc9ebbfc73df Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Thu, 18 Aug 2022 16:32:32 +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
---
.../Service/Reading/Dto/OrganInfoViewModel.cs | 28 +++++++-----
.../Service/Reading/OrganInfoService.cs | 43 ++++++++++---------
IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 20 +++++++++
IRaCIS.Core.Domain/Reading/CriterionLesion.cs | 9 +++-
IRaCIS.Core.Domain/Reading/OrganInfo.cs | 4 +-
IRaCIS.Core.Domain/Reading/OrganTrialInfo.cs | 2 +-
6 files changed, 70 insertions(+), 36 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs
index c1208f3b0..6a5e68f69 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs
@@ -13,8 +13,12 @@ namespace IRaCIS.Core.Application.ViewModel
{
public Guid? Id { get; set; }
public Guid CriterionId { get; set; }
- public string NidusType { get; set; }
- public string NidusTypeCN { get; set; }
+ ///
+ /// 器官类型
+ ///
+ public OrganType OrganType { get; set; }
+
+ public LesionType LesionType { get; set; }
public DateTime CreateTime { get; set; }
public Guid CreateUserId { get; set; }
}
@@ -62,8 +66,6 @@ namespace IRaCIS.Core.Application.ViewModel
public class GetCriterionLesionTypeInDto
{
public Guid CriterionId { get; set; }
-
- public bool IsSystem { get; set; }
}
///CriterionNidusQuery 列表查询参数模型
@@ -82,6 +84,10 @@ namespace IRaCIS.Core.Application.ViewModel
/// 病灶类型
///
public LesionType LesionType { get; set; }
+ ///
+ /// 器官类型
+ ///
+ public OrganType OrganType { get; set; }
public DateTime CreateTime { get; set; }
public Guid CreateUserId { get; set; }
}
@@ -126,9 +132,9 @@ namespace IRaCIS.Core.Application.ViewModel
public bool IsLymphNodes { get; set; }
///
- /// 病灶类型
+ /// 器官类型
///
- public LesionType LesionType { get; set; }
+ public OrganType OrganType { get; set; }
}
public class GetTrialSelectOrganListInDto
@@ -165,7 +171,7 @@ namespace IRaCIS.Core.Application.ViewModel
///
/// 病灶类型
///
- public LesionType? LesionType { get; set; }
+ public OrganType? OrganType { get; set; }
public bool? IsEnable { get; set; }
}
@@ -187,9 +193,9 @@ namespace IRaCIS.Core.Application.ViewModel
public bool IsEnable { get; set; }
///
- /// 病灶类型
+ /// 器官类型
///
- public LesionType LesionType { get; set; }
+ public OrganType OrganType { get; set; }
@@ -214,7 +220,7 @@ namespace IRaCIS.Core.Application.ViewModel
///
/// 病灶类型
///
- public LesionType? LesionType { get; set; }
+ public OrganType? OrganType { get; set; }
public Guid SystemCriterionId { get; set; }
@@ -244,7 +250,7 @@ namespace IRaCIS.Core.Application.ViewModel
///
/// 病灶类型
///
- public LesionType LesionType { get; set; }
+ public OrganType OrganType { get; set; }
///
/// 标准 病灶类型
diff --git a/IRaCIS.Core.Application/Service/Reading/OrganInfoService.cs b/IRaCIS.Core.Application/Service/Reading/OrganInfoService.cs
index c7315f8b6..bd0fdb2bb 100644
--- a/IRaCIS.Core.Application/Service/Reading/OrganInfoService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/OrganInfoService.cs
@@ -10,6 +10,7 @@ using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Infra.EFCore.Common;
using MassTransit;
+using IRaCIS.Core.Infrastructure;
namespace IRaCIS.Core.Application.Service
{
@@ -50,14 +51,11 @@ namespace IRaCIS.Core.Application.Service
public async Task> GetCriterionLesionType(GetCriterionLesionTypeInDto inDto)
{
var dicNums = new List();
- if (inDto.IsSystem)
- {
- dicNums = await _organInfoRepository.Where(x => x.SystemCriterionId == inDto.CriterionId).Select(x => (int)x.LesionType).Distinct().ToListAsync();
- }
- else
- {
- dicNums = await _organTrialInfoRepository.Where(x => x.TrialCriterionId == inDto.CriterionId).Select(x => (int)x.LesionType).Distinct().ToListAsync();
- }
+
+
+ dicNums = await _criterionNidusRepository.Where(x => x.CriterionId == inDto.CriterionId).Select(x => (int)x.LesionType).Distinct().ToListAsync();
+
+
var dictionaryId = await _dictionaryRepository.Where(x => x.Code == "LesionType").Select(x => x.Id).FirstOrDefaultAsync();
@@ -67,7 +65,7 @@ namespace IRaCIS.Core.Application.Service
}
///
- /// 获取标准病灶列表
+ /// 获取标准病灶器官关系信息
///
///
///
@@ -83,22 +81,26 @@ namespace IRaCIS.Core.Application.Service
}
///
- /// 新增修改标准病灶列表
+ /// 新增修改标准病灶器官关系信息
///
- ///
+ ///
///
[HttpPost]
- public async Task AddOrUpdateCriterionNidus(CriterionNidusAddOrEdit addOrEditCriterionNidus)
+ public async Task AddOrUpdateCriterionNidus(CriterionNidusAddOrEdit inDto)
{
-
- var entity = await _criterionNidusRepository.InsertOrUpdateAsync(addOrEditCriterionNidus, true);
+
+ if (await _criterionNidusRepository.AnyAsync(x => x.OrganType == inDto.OrganType && x.LesionType == inDto.LesionType && x.CriterionId == inDto.CriterionId && x.Id != inDto.Id))
+ {
+ throw new BusinessValidationFailedException("存在相同的数据,操作失败");
+ }
+ var entity = await _criterionNidusRepository.InsertOrUpdateAsync(inDto, true);
return ResponseOutput.Ok(entity.Id.ToString());
}
///
- /// 删除病灶列表
+ /// 删除病灶病灶器官关系信息
///
///
///
@@ -120,7 +122,7 @@ namespace IRaCIS.Core.Application.Service
{
var organInfoQueryable = _organInfoRepository
.Where(x=>x.SystemCriterionId==inQuery.SystemCriterionId)
- .WhereIf(inQuery.LesionType != null, x => x.LesionType == inQuery.LesionType)
+ .WhereIf(inQuery.OrganType != null, x => x.OrganType == inQuery.OrganType)
.ProjectTo(_mapper.ConfigurationProvider);
return await organInfoQueryable.ToListAsync();
}
@@ -198,7 +200,7 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task> GetTrialOrganList(GetTrialOrganListInDto inDto)
{
- var organInfoQueryable = from data in _organInfoRepository.WhereIf(inDto.LesionType != null, x => x.LesionType == inDto.LesionType)
+ var organInfoQueryable = from data in _organInfoRepository.WhereIf(inDto.OrganType != null, x => x.OrganType == inDto.OrganType)
join trialData in _organTrialInfoRepository.WhereIf(inDto.IsEnable != null, x => x.IsEnable == inDto.IsEnable)
.Where(x => x.TrialId == inDto.TrialId)
on data.Id equals trialData.OrganInfoId
@@ -212,7 +214,7 @@ namespace IRaCIS.Core.Application.Service
IsLymphNodes = data.IsLymphNodes,
IsEnable= trialData.IsEnable,
- LesionType= trialData.LesionType,
+ OrganType = trialData.OrganType,
};
@@ -281,6 +283,7 @@ namespace IRaCIS.Core.Application.Service
CriterionId = trialCriterionId,
LesionType = x.LesionType,
OriginalId = x.Id,
+ OrganType=x.OrganType,
}).ToListAsync();
@@ -291,7 +294,7 @@ namespace IRaCIS.Core.Application.Service
var originalIds = criterionNidusList.Select(x => x.OriginalId).Distinct().ToList();
List organTrialInfoList = await _organInfoRepository.Where(x =>x.SystemCriterionId== inDto.SystemCriterionId).Select(x => new OrganTrialInfo()
{
- LesionType=x.LesionType,
+ OrganType=x.OrganType,
Id = x.Id,
IsEnable = true,
TrialCriterionId= readingQuestionCriterionTrial.Id,
@@ -299,7 +302,7 @@ namespace IRaCIS.Core.Application.Service
TrialId = inDto.TrialId,
}).ToListAsync();
- criterionNidusList.ForEach(x => x.Id = NewId.NextGuid());
+ organTrialInfoList.ForEach(x => x.Id = NewId.NextGuid());
await _organTrialInfoRepository.AddRangeAsync(organTrialInfoList);
await _readingQuestionCriterionTrial.UpdatePartialFromQueryAsync(trialCriterionId,x=> new ReadingQuestionCriterionTrial() {
SynchronizeOriginalTime=DateTime.Now
diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
index f9b5041cd..bf419c8d3 100644
--- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
+++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
@@ -156,6 +156,26 @@ namespace IRaCIS.Core.Domain.Share
}
public enum LesionType
+ {
+ ///
+ /// 靶病灶
+ ///
+ TargetLesion = 0,
+
+ ///
+ /// 非靶病灶
+ ///
+ NonTargetLesions = 1,
+
+ ///
+ /// 新病灶
+ ///
+ NewLesions = 1,
+
+ }
+
+
+ public enum OrganType
{
///
/// 非靶和新病灶
diff --git a/IRaCIS.Core.Domain/Reading/CriterionLesion.cs b/IRaCIS.Core.Domain/Reading/CriterionLesion.cs
index edd164f50..0b5219725 100644
--- a/IRaCIS.Core.Domain/Reading/CriterionLesion.cs
+++ b/IRaCIS.Core.Domain/Reading/CriterionLesion.cs
@@ -35,8 +35,13 @@ namespace IRaCIS.Core.Domain.Models
/// CreateUserId
///
public Guid CreateUserId { get; set; }
-
- }
+
+ ///
+ /// 器官类型
+ ///
+ public OrganType OrganType { get; set; }
+
+ }
}
diff --git a/IRaCIS.Core.Domain/Reading/OrganInfo.cs b/IRaCIS.Core.Domain/Reading/OrganInfo.cs
index f75daa716..014773634 100644
--- a/IRaCIS.Core.Domain/Reading/OrganInfo.cs
+++ b/IRaCIS.Core.Domain/Reading/OrganInfo.cs
@@ -44,9 +44,9 @@ namespace IRaCIS.Core.Domain.Models
public bool IsLymphNodes { get; set; }
///
- /// 病灶类型
+ /// 器官类型
///
- public LesionType LesionType { get; set; }
+ public OrganType OrganType { get; set; }
///
/// 标准Id
diff --git a/IRaCIS.Core.Domain/Reading/OrganTrialInfo.cs b/IRaCIS.Core.Domain/Reading/OrganTrialInfo.cs
index ec26b74c9..eb2a3abf8 100644
--- a/IRaCIS.Core.Domain/Reading/OrganTrialInfo.cs
+++ b/IRaCIS.Core.Domain/Reading/OrganTrialInfo.cs
@@ -42,7 +42,7 @@ namespace IRaCIS.Core.Domain.Models
///
/// 病灶类型
///
- public LesionType LesionType { get; set; }
+ public OrganType OrganType { get; set; }
///
/// 标准Id