From 0a941cee3078ce36a7b3db6f092c444e4c35b325 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Fri, 3 Feb 2023 14:13:42 +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
---
.../IRaCIS.Core.Application.xml | 29 ++++++++++-
.../Service/Common/DTO/DictionaryModel.cs | 6 ++-
.../Service/Common/DictionaryService.cs | 10 +++-
.../Service/Reading/Dto/OrganInfoViewModel.cs | 5 +-
.../Reading/Dto/ReadingQuestionViewModel.cs | 15 ++++++
.../ReadingCriterion/OrganInfoService.cs | 28 ++++++++--
.../ReadingCriterionService.cs | 46 ++++++++++++++++
.../SystemCriterionDictionaryCode.cs | 45 ++++++++++++++++
.../TrialCriterionDictionaryCode.cs | 52 +++++++++++++++++++
.../Common/ReadingCommon.cs | 16 +++---
.../Context/IRaCISDBContext.cs | 2 +
IRaCIS.Core.Test/DbHelper.ttinclude | 2 +-
12 files changed, 238 insertions(+), 18 deletions(-)
create mode 100644 IRaCIS.Core.Domain/Reading/ReadingCriterion/SystemCriterionDictionaryCode.cs
create mode 100644 IRaCIS.Core.Domain/Reading/ReadingCriterion/TrialCriterionDictionaryCode.cs
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index d130b885d..8406f3574 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -5320,6 +5320,13 @@
+
+
+ 同步系统器官
+
+
+
+
同步系统器官到项目
@@ -5327,6 +5334,20 @@
+
+
+ 删除系统标准字典Code
+
+
+
+
+
+
+ 添加系统标准字典Code
+
+
+
+
重置项目标准的重置状态
@@ -8355,7 +8376,7 @@
-
+
获取标准字典
@@ -9321,6 +9342,12 @@
+
+
+ 维护任务关系
+
+
+
修改计算问题
diff --git a/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs b/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs
index a89a813d4..21eefce27 100644
--- a/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs
+++ b/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs
@@ -90,7 +90,11 @@ namespace IRaCIS.Application.Contracts
public Guid? TrialReadingCriterionId { get; set; }
}
-
+ public class GetCriterionDictionaryListInDto
+ {
+ [NotDefault]
+ public Guid SystemCriterionId { get; set; }
+ }
public class GetCriterionDictionaryListOutDto
{
public string Code { get; set; } = string.Empty;
diff --git a/IRaCIS.Core.Application/Service/Common/DictionaryService.cs b/IRaCIS.Core.Application/Service/Common/DictionaryService.cs
index 053fe1c0b..c4358ba46 100644
--- a/IRaCIS.Core.Application/Service/Common/DictionaryService.cs
+++ b/IRaCIS.Core.Application/Service/Common/DictionaryService.cs
@@ -20,11 +20,14 @@ namespace IRaCIS.Application.Services
private readonly IRepository _trialDictionaryRepository;
private readonly IRepository _doctorRepository;
private readonly IRepository _trialRepository;
+ private readonly IRepository _systemCriterionDictionaryCodeRepository;
private readonly IRepository _readingCriterionDictionaryRepository;
private readonly IReadingQuestionService _readingQuestionService;
public DictionaryService(IRepository sysDicRepository, IRepository doctorDictionaryRepository, IRepository trialDictionaryRepository,
IRepository doctorRepository, IRepository trialRepository,
+
+ IRepository systemCriterionDictionaryCodeRepository,
IRepository readingCriterionDictionaryRepository,
IReadingQuestionService readingQuestionService
@@ -36,6 +39,7 @@ namespace IRaCIS.Application.Services
_trialDictionaryRepository = trialDictionaryRepository;
_doctorRepository = doctorRepository;
_trialRepository = trialRepository;
+ this._systemCriterionDictionaryCodeRepository = systemCriterionDictionaryCodeRepository;
this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository;
this._readingQuestionService = readingQuestionService;
}
@@ -232,9 +236,11 @@ namespace IRaCIS.Application.Services
/// 获取标准字典
///
///
- public async Task> GetCriterionDictionaryList()
+ public async Task> GetCriterionDictionaryList(GetCriterionDictionaryListInDto inDto)
{
- var dictionaryList = await _dicRepository.Where(x => ReadingCommon.CriterionDictionary.CriterionDictionaryCodeList.Contains(x.Code))
+ var codes = await _systemCriterionDictionaryCodeRepository.Where(x => x.SystemCriterionId == inDto.SystemCriterionId).Select(x => x.Code).ToListAsync();
+
+ var dictionaryList = await _dicRepository.Where(x => codes.Contains(x.Code))
.OrderBy(x => x.ShowOrder).Select(x => new GetCriterionDictionaryListOutDto()
{
Code = x.Code,
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs
index 6e339098b..52fb841fa 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs
@@ -205,7 +205,10 @@ namespace IRaCIS.Core.Application.ViewModel
public class SynchronizeSystemOrganInDto
{
-
+ [NotDefault]
+ public Guid FromCriterionId { get; set; }
+ [NotDefault]
+ public Guid ToCriterionId { get; set; }
}
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
index 6e5d70773..0c0f3ffe5 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
@@ -191,6 +191,21 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public List DictionaryList { get; set; }
}
+ public class DeleteSystemCriterionDictionaryIndto
+ {
+ public Guid Id { get; set; }
+
+ }
+
+ public class AddSystemCriterionDictionaryCodeInDto
+ {
+ public Guid SystemCriterionId { get; set; }
+
+ [NotDefault]
+ public string Code { get; set; }
+ }
+
+
public class SetSystemGlobalInfoInDto
{
[NotDefault]
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs
index 3257cf065..cfbeef042 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs
@@ -369,10 +369,30 @@ namespace IRaCIS.Core.Application.Service
#endregion
- //public async Task SynchronizeSystemOrgan()
- //{
-
- //}
+ ///
+ /// 同步系统器官
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task SynchronizeSystemOrgan(SynchronizeSystemOrganInDto inDto)
+ {
+ var organList= await _organInfoRepository.Where(x => x.SystemCriterionId == inDto.FromCriterionId).ToListAsync();
+
+ organList.ForEach(x =>
+ {
+
+ x.SystemCriterionId = inDto.ToCriterionId;
+ x.Id = NewId.NextGuid();
+
+ });
+
+ await _organInfoRepository.BatchDeleteNoTrackingAsync(x => x.SystemCriterionId == inDto.ToCriterionId);
+ await _organInfoRepository.AddRangeAsync(organList);
+ await _organInfoRepository.SaveChangesAsync();
+ return ResponseOutput.Ok();
+
+ }
///
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs
index 0bb5a3a24..6914e9ec2 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs
@@ -21,6 +21,7 @@ namespace IRaCIS.Core.Application.Service.RC
private readonly IRepository _readingCriterionPageRepository;
private readonly IRepository _readingCriterionDictionaryRepository;
private readonly IRepository _visitTaskRepository;
+ private readonly IRepository _systemCriterionDictionaryCodeRepository;
private readonly IRepository _readingTableQuestionAnswerRepository;
private readonly IRepository _readingTableAnswerRowInfoRepository;
@@ -32,6 +33,7 @@ namespace IRaCIS.Core.Application.Service.RC
IRepository readingQuestionTrialRepository,
IRepository readingCriterionDictionaryRepository,
IRepository visitTaskRepository,
+ IRepository systemCriterionDictionaryCodeRepository,
IRepository readingTableQuestionTrialRepository,
IRepository readingTableQuestionAnswerRepository,
IRepository readingTableAnswerRowInfoRepository,
@@ -45,11 +47,55 @@ namespace IRaCIS.Core.Application.Service.RC
this._readingCriterionPageRepository = readingCriterionPageRepository;
this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository;
this._visitTaskRepository = visitTaskRepository;
+ this._systemCriterionDictionaryCodeRepository = systemCriterionDictionaryCodeRepository;
this._readingTableQuestionAnswerRepository = readingTableQuestionAnswerRepository;
this._readingTableAnswerRowInfoRepository = readingTableAnswerRowInfoRepository;
this._readingTaskQuestionAnswer = readingTaskQuestionAnswer;
}
+
+ ///
+ /// 删除系统标准字典Code
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task DeleteSystemCriterionDictionary(DeleteSystemCriterionDictionaryIndto inDto)
+ {
+ var criterionDictionaryCode= await _systemCriterionDictionaryCodeRepository.Where(x => x.Id == inDto.Id).FirstNotNullAsync();
+
+ await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.ParentCode == criterionDictionaryCode.Code && x.CriterionId == criterionDictionaryCode.SystemCriterionId);
+
+ await _systemCriterionDictionaryCodeRepository.DeleteFromQueryAsync(inDto.Id);
+
+ return ResponseOutput.Ok();
+ }
+
+
+ ///
+ /// 添加系统标准字典Code
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task AddSystemCriterionDictionaryCode(AddSystemCriterionDictionaryCodeInDto inDto)
+ {
+ if (await _systemCriterionDictionaryCodeRepository.AnyAsync(x => x.SystemCriterionId == inDto.SystemCriterionId && x.Code == inDto.Code))
+ {
+ throw new BusinessValidationFailedException("当前标准存在此Code");
+ }
+
+ await _systemCriterionDictionaryCodeRepository.AddAsync(new SystemCriterionDictionaryCode()
+ {
+ SystemCriterionId = inDto.SystemCriterionId,
+ Code = inDto.Code
+ });
+
+ await _systemCriterionDictionaryCodeRepository.SaveChangesAsync();
+
+ return ResponseOutput.Ok();
+ }
+
///
/// 重置项目标准的重置状态
///
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/SystemCriterionDictionaryCode.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/SystemCriterionDictionaryCode.cs
new file mode 100644
index 000000000..89f0f97f0
--- /dev/null
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/SystemCriterionDictionaryCode.cs
@@ -0,0 +1,45 @@
+
+//--------------------------------------------------------------------
+// 此代码由T4模板自动生成 byzhouhang 20210918
+// 生成时间 2023-02-03 11:20:54
+// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
+using System;
+using IRaCIS.Core.Domain.Share;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+namespace IRaCIS.Core.Domain.Models
+{
+ ///
+ ///SystemCriterionDictionaryCode
+ ///
+ [Table("SystemCriterionDictionaryCode")]
+ public class SystemCriterionDictionaryCode : Entity, IAuditAdd
+ {
+ ///
+ /// SystemCriterionId
+ ///
+ [Required]
+ public Guid SystemCriterionId { get; set; }
+
+ ///
+ /// Code
+ ///
+ [Required]
+ public string Code { get; set; }
+
+ ///
+ /// CreateTime
+ ///
+ [Required]
+ public DateTime CreateTime { get; set; }
+
+ ///
+ /// CreateUserId
+ ///
+ [Required]
+ public Guid CreateUserId { get; set; }
+
+ }
+
+
+}
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/TrialCriterionDictionaryCode.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/TrialCriterionDictionaryCode.cs
new file mode 100644
index 000000000..f36055fca
--- /dev/null
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/TrialCriterionDictionaryCode.cs
@@ -0,0 +1,52 @@
+
+//--------------------------------------------------------------------
+// 此代码由T4模板自动生成 byzhouhang 20210918
+// 生成时间 2023-02-03 11:21:56
+// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
+using System;
+using IRaCIS.Core.Domain.Share;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+namespace IRaCIS.Core.Domain.Models
+{
+ ///
+ ///TrialCriterionDictionaryCode
+ ///
+ [Table("TrialCriterionDictionaryCode")]
+ public class TrialCriterionDictionaryCode : Entity, IAuditAdd
+ {
+
+ ///
+ /// Id
+ ///
+ [Required]
+ public Guid Id { get; set; }
+
+ ///
+ /// TrialCriterionId
+ ///
+ [Required]
+ public Guid TrialCriterionId { get; set; }
+
+ ///
+ /// Code
+ ///
+ [Required]
+ public string Code { get; set; }
+
+ ///
+ /// CreateTime
+ ///
+ [Required]
+ public DateTime CreateTime { get; set; }
+
+ ///
+ /// CreateUserId
+ ///
+ [Required]
+ public Guid CreateUserId { get; set; }
+
+ }
+
+
+}
diff --git a/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs b/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs
index 85f0ce663..e9a472140 100644
--- a/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs
+++ b/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs
@@ -32,14 +32,14 @@ namespace IRaCIS.Core.Infra.EFCore.Common
- ///
- /// 标准字典需要配置的相
- ///
- public static List CriterionDictionaryCodeList = new List()
- {
- "LesionType",
- "QuestionType"
- };
+ /////
+ ///// 标准字典需要配置的相
+ /////
+ //public static List CriterionDictionaryCodeList = new List()
+ //{
+ // "LesionType",
+ // "QuestionType"
+ //};
}
///
diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
index a3f341c8e..dd17dfda2 100644
--- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
+++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
@@ -209,7 +209,9 @@ namespace IRaCIS.Core.Infra.EFCore
#region Reading
+ public virtual DbSet TrialCriterionDictionaryCode { get; set; }
+ public virtual DbSet SystemCriterionDictionaryCode { get; set; }
public virtual DbSet ReadingTaskRelation { get; set; }
public virtual DbSet OrganInfo { get; set; }
diff --git a/IRaCIS.Core.Test/DbHelper.ttinclude b/IRaCIS.Core.Test/DbHelper.ttinclude
index d6d3ddf59..dd972c61f 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 = "ReadingTaskRelation";
+ public static readonly string TableName = "TrialCriterionDictionaryCode";
//ļ service Ƿҳ
}
#>