diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs
index 0a2315ad7..1b15b16db 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs
@@ -67,8 +67,10 @@ namespace IRaCIS.Core.Application.ViewModel
public class GetCriterionLesionTypeInDto
{
- public Guid CriterionId { get; set; }
- }
+ public Guid? SystemCriterionId { get; set; }
+
+ public Guid? TrialCriterionId { get; set; }
+ }
///CriterionNidusQuery 列表查询参数模型
public class CriterionNidusQuery
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs
index 45a7a039e..f7e35166c 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs
@@ -28,14 +28,18 @@ namespace IRaCIS.Core.Application.Service
private readonly IRepository _organTrialInfoRepository;
private readonly IRepository _readingQuestionCriterionTrial;
private readonly IRepository _criterionNidusRepository;
+ private readonly IRepository _criterionNidusTrialRepository;
+ private readonly IRepository _readingQuestionCriterionSystemRepository;
- public OrganInfoService(
+ public OrganInfoService(
IRepository organInfoRepository,
IRepository dictionaryRepository,
IRepository visitTaskRepository,
IRepository organTrialInfoRepository,
IRepository readingQuestionCriterionTrial,
- IRepository criterionNidusRepository
+ IRepository criterionNidusTrialRepository,
+ IRepository readingQuestionCriterionSystemRepository,
+ IRepository criterionNidusRepository
)
{
_organInfoRepository = organInfoRepository;
@@ -44,7 +48,9 @@ namespace IRaCIS.Core.Application.Service
this._organTrialInfoRepository = organTrialInfoRepository;
this._readingQuestionCriterionTrial = readingQuestionCriterionTrial;
this._criterionNidusRepository = criterionNidusRepository;
- }
+ this._criterionNidusTrialRepository = criterionNidusTrialRepository;
+ this._readingQuestionCriterionSystemRepository = readingQuestionCriterionSystemRepository;
+ }
#region 系统器官
@@ -146,7 +152,7 @@ namespace IRaCIS.Core.Application.Service
join trialData in _organTrialInfoRepository.AsQueryable().Where( x => x.IsEnable&&x.TrialCriterionId== trialReadingCriterionId)
on data.Id equals trialData.OrganInfoId
- join criterionNidus in _criterionNidusRepository.AsQueryable().Where(x=>x.CriterionId== trialReadingCriterionId)
+ join criterionNidus in _criterionNidusTrialRepository.AsQueryable().Where(x=>x.CriterionId== trialReadingCriterionId)
on data.OrganType equals criterionNidus.OrganType
select new ReadingOrganDto()
{
@@ -203,7 +209,7 @@ namespace IRaCIS.Core.Application.Service
if (inDto.LesionType != null)
{
var criterion = await _readingQuestionCriterionTrial.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstOrDefaultAsync();
- organs = await _criterionNidusRepository.Where(x => x.CriterionId == (criterion == null ? default(Guid) : criterion.Id) && x.LesionType == inDto.LesionType)
+ organs = await _criterionNidusTrialRepository.Where(x => x.CriterionId == (criterion == null ? default(Guid) : criterion.Id) && x.LesionType == inDto.LesionType)
.Select(x => x.OrganType).ToListAsync();
}
@@ -315,7 +321,15 @@ namespace IRaCIS.Core.Application.Service
public async Task> GetCriterionLesionType(GetCriterionLesionTypeInDto inDto)
{
var dicNums = new List();
- dicNums = await _criterionNidusRepository.Where(x => x.CriterionId == inDto.CriterionId).Select(x => ((int)x.LesionType).ToString()).Distinct().ToListAsync();
+ if (inDto.TrialCriterionId != null)
+ {
+ dicNums = await _criterionNidusTrialRepository.Where(x => x.CriterionId == inDto.TrialCriterionId).Select(x => ((int)x.LesionType).ToString()).Distinct().ToListAsync();
+ }
+ else
+ {
+ dicNums = await _criterionNidusRepository.Where(x => x.CriterionId == inDto.SystemCriterionId).Select(x => ((int)x.LesionType).ToString()).Distinct().ToListAsync();
+ }
+
var dictionaryId = await _dictionaryRepository.Where(x => x.Code == "LesionType").Select(x => x.Id).FirstOrDefaultAsync();
var result = await _dictionaryRepository.Where(x => x.ParentId == dictionaryId && dicNums.Contains(x.Code)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
@@ -332,11 +346,19 @@ namespace IRaCIS.Core.Application.Service
public async Task> GetCriterionNidusList(CriterionNidusQuery inQuery)
{
- var criterionNidusQueryable = _criterionNidusRepository
- .Where(x => x.CriterionId == inQuery.CriterionId)
- .ProjectTo(_mapper.ConfigurationProvider);
-
- return await criterionNidusQueryable.ToListAsync();
+ if (await _readingQuestionCriterionSystemRepository.AnyAsync(x => x.Id == inQuery.CriterionId))
+ {
+ return await _criterionNidusRepository
+ .Where(x => x.CriterionId == inQuery.CriterionId)
+ .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+ }
+ else
+ {
+ return await _criterionNidusTrialRepository
+ .Where(x => x.CriterionId == inQuery.CriterionId)
+ .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+ }
+
}
///
@@ -418,20 +440,22 @@ namespace IRaCIS.Core.Application.Service
{
inDto.SystemCriterionId = readingQuestionCriterionTrial.ReadingQuestionCriterionSystemId;
}
- await _criterionNidusRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterionId);
- List criterionNidusList = await _criterionNidusRepository.Where(x => x.CriterionId == inDto.SystemCriterionId).Select(x => new CriterionNidusData()
+ await _criterionNidusTrialRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterionId);
+
+
+ List criterionNidusList = await _criterionNidusRepository.Where(x => x.CriterionId == inDto.SystemCriterionId).Select(x => new CriterionNidusTrial()
{
Id = x.Id,
CriterionId = trialCriterionId,
LesionType = x.LesionType,
- OriginalId = x.Id,
+
OrganType=x.OrganType,
- IsSystemCriterion=false,
+
}).ToListAsync();
criterionNidusList.ForEach(x => x.Id = NewId.NextGuid());
- await _criterionNidusRepository.AddRangeAsync(criterionNidusList);
+ await _criterionNidusTrialRepository.AddRangeAsync(criterionNidusList);
await _organTrialInfoRepository.BatchDeleteNoTrackingAsync(x => x.TrialCriterionId == readingQuestionCriterionTrial.Id);
List organTrialInfoList = await _organInfoRepository.Where(x =>x.SystemCriterionId== inDto.SystemCriterionId).Select(x => new OrganTrialInfo()
{
diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
index 0bb8cad44..741a612e2 100644
--- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
@@ -238,12 +238,12 @@ namespace IRaCIS.Core.Application.Service
//.ForMember(x => x.FileList, y => y.MapFrom(n => n.FileList))
.ForMember(x => x.CreateUserName, y => y.MapFrom(n => n.CreateUser.UserName));
- #endregion
-
- #region 阅片部位
+ #endregion
+ #region 阅片部位
- CreateMap();
+ CreateMap();
+ CreateMap();
CreateMap().ReverseMap();
CreateMap();
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/CriterionNidus.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/CriterionNidus.cs
index dfe935bc5..63dee9c27 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingCriterion/CriterionNidus.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/CriterionNidus.cs
@@ -9,16 +9,16 @@ using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace IRaCIS.Core.Domain.Models
{
- ///
- /// 标准病灶中间表
- ///
- [Table("CriterionNidus")]
- public class CriterionNidus : Entity, IAuditAdd
- {
-
+ ///
+ /// 标准病灶中间表
+ ///
+ [Table("CriterionNidus")]
+ public class CriterionNidus : Entity, IAuditAdd
+ {
+
///
- /// 标准ID
- ///
+ /// 标准ID
+ ///
public Guid CriterionId { get; set; }
@@ -33,14 +33,14 @@ namespace IRaCIS.Core.Domain.Models
///
public LesionType LesionType { get; set; }
- ///
- /// CreateTime
- ///
- public DateTime CreateTime { get; set; }
-
///
- /// CreateUserId
- ///
+ /// CreateTime
+ ///
+ public DateTime CreateTime { get; set; }
+
+ ///
+ /// CreateUserId
+ ///
public Guid CreateUserId { get; set; }
///
@@ -49,12 +49,12 @@ namespace IRaCIS.Core.Domain.Models
public bool IsSystemCriterion { get; set; }
- [ForeignKey("CriterionId")]
- [JsonIgnore]
- public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }
+ [ForeignKey("CriterionId")]
+ [JsonIgnore]
+ public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }
- }
+ }
+
-
}
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/CriterionNidusTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/CriterionNidusTrial.cs
new file mode 100644
index 000000000..7ead42443
--- /dev/null
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/CriterionNidusTrial.cs
@@ -0,0 +1,51 @@
+
+//--------------------------------------------------------------------
+// 此代码由T4模板自动生成 byzhouhang 20210918
+// 生成时间 2023-04-24 09:29:54
+// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
+using System;
+using IRaCIS.Core.Domain.Share;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+namespace IRaCIS.Core.Domain.Models
+{
+ ///
+ ///CriterionNidusTrial
+ ///
+ [Table("CriterionNidusTrial")]
+ public class CriterionNidusTrial : Entity, IAuditAdd
+ {
+
+ ///
+ /// CriterionId
+ ///
+ [Required]
+ public Guid CriterionId { get; set; }
+
+ ///
+ /// CreateTime
+ ///
+ [Required]
+ public DateTime CreateTime { get; set; }
+
+ ///
+ /// CreateUserId
+ ///
+ [Required]
+ public Guid CreateUserId { get; set; }
+
+
+ ///
+ /// 病灶类型
+ ///
+ public LesionType LesionType { get; set; }
+
+ ///
+ /// 器官类型
+ ///
+ public OrganType OrganType { get; set; }
+
+ }
+
+
+}
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTrialCriterionDictionary.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTrialCriterionDictionary.cs
new file mode 100644
index 000000000..6a574de75
--- /dev/null
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTrialCriterionDictionary.cs
@@ -0,0 +1,77 @@
+
+//--------------------------------------------------------------------
+// 此代码由T4模板自动生成 byzhouhang 20210918
+// 生成时间 2023-04-24 09:32:01
+// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
+using System;
+using IRaCIS.Core.Domain.Share;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+namespace IRaCIS.Core.Domain.Models
+{
+ ///
+ ///ReadingTrialCriterionDictionary
+ ///
+ [Table("ReadingTrialCriterionDictionary")]
+ public class ReadingTrialCriterionDictionary : Entity, IAuditAdd
+ {
+
+ ///
+ /// Id
+ ///
+ [Key]
+ [Required]
+ public Guid Id { get; set; }
+
+ ///
+ /// CriterionId
+ ///
+ [Required]
+ public Guid CriterionId { get; set; }
+
+ ///
+ /// DictionaryId
+ ///
+ [Required]
+ public Guid DictionaryId { get; set; }
+
+ ///
+ /// CreateTime
+ ///
+ [Required]
+ public DateTime CreateTime { get; set; }
+
+ ///
+ /// CreateUserId
+ ///
+ [Required]
+ public Guid CreateUserId { get; set; }
+
+ ///
+ /// ParentCode
+ ///
+ [Required]
+ public string ParentCode { get; set; } = string.Empty;
+
+ ///
+ /// IsBaseLineUse
+ ///
+ [Required]
+ public bool IsBaseLineUse { get; set; }
+
+ ///
+ /// IsFollowVisitUse
+ ///
+ [Required]
+ public bool IsFollowVisitUse { get; set; }
+
+ ///
+ /// CrterionDictionaryGroup
+ ///
+ [Required]
+ public int CrterionDictionaryGroup { get; set; }
+
+ }
+
+
+}
diff --git a/IRaCIS.Core.Domain/SQLFile/Test.sql b/IRaCIS.Core.Domain/SQLFile/Test.sql
index 9e56e04ea..da2c35a15 100644
--- a/IRaCIS.Core.Domain/SQLFile/Test.sql
+++ b/IRaCIS.Core.Domain/SQLFile/Test.sql
@@ -1013,3 +1013,10 @@ delete ReadingTaskRelation where RelevanceType=2
INSERT INTO ReadingTaskRelation(Id, TaskId, RelevanceTaskId, RelevanceType, CreateTime,CreateUserId)
SELECT NEWID(), TaskId, RelevanceTaskId, 2,ReadingTaskRelation.CreateTime ,ReadingTaskRelation.CreateUserId FROM ReadingTaskRelation inner join VisitTask on VisitTask.Id=ReadingTaskRelation.TaskId WHERE RelevanceType = 1 and ReadingCategory=1
+
+-----------------------------------------2023-04-24-----------------------------------
+--维护CriterionNidusTrial 数据
+INSERT INTO CriterionNidusTrial (Id, CriterionId, CreateTime, CreateUserId, LesionType, OrganType)
+SELECT NEWID(), CriterionId, GETDATE(), '00000000-0000-0000-0000-000000000000', LesionType, OrganType
+FROM CriterionNidus
+WHERE CriterionId NOT IN (SELECT DISTINCT CriterionId FROM CriterionNidusTrial ) and IsSystemCriterion=0
\ No newline at end of file
diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
index 0842531aa..5c834ca38 100644
--- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
+++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
@@ -261,7 +261,11 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet CriterionNidus { get; set; }
- public virtual DbSet ReadingTableQuestionTrial { get; set; }
+ public virtual DbSet CriterionNidusTrial { get; set; }
+
+ public virtual DbSet ReadingTrialCriterionDictionary { get; set; }
+
+ public virtual DbSet ReadingTableQuestionTrial { get; set; }
public virtual DbSet TumorAssessment_RECIST1Point1BM { get; set; }
diff --git a/IRaCIS.Core.Test/DbHelper.ttinclude b/IRaCIS.Core.Test/DbHelper.ttinclude
index e1c821df4..793d43cb7 100644
--- a/IRaCIS.Core.Test/DbHelper.ttinclude
+++ b/IRaCIS.Core.Test/DbHelper.ttinclude
@@ -4,7 +4,7 @@
public static readonly string ConnectionString = "Server=123.56.94.154,1433\\MSSQLSERVER;Database=IRaCIS_New_Tet;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true";
public static readonly string DbDatabase = "IRaCIS_New_Tet";
//ַ,ƴ
- public static readonly string TableName = "SubjectCriteriaEvaluation";
+ public static readonly string TableName = "ReadingTrialCriterionDictionary";
//ļ service Ƿҳ
}
#>