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 Ƿҳ } #>