diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 8d97e629..0f18493f 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -4081,24 +4081,23 @@ 阅片问题.标准 - - - 新增修改系统问题标准 - - - - 获取系统问题标准 - + - 删除系统问题标准 + 设置系统问题标准是否生效 + + + + + + + 添加系统qc问题标准 - @@ -4121,6 +4120,12 @@ + + + 添加系统数据到项目里面 + + + 新增修改项目问题标准(项目) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs index 1af6b429..983cbee9 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs @@ -54,6 +54,21 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string CriterionName { get; set; }=String.Empty; } + public class CriterionList + { + public Guid Id { get; set; } + + public string Value { get; set; } + } + + public class SetSystemReadingQuestionCriterionIsIsEnable + { + [NotDefault] + public Guid ReadingQuestionCriterionSystemId { get; set; } + + [NotDefault] + public bool IsEnable { get; set; } + } /// /// diff --git a/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs b/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs index 5a7c16bd..64cae8d9 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs @@ -39,8 +39,8 @@ namespace IRaCIS.Application.Services IRepository subjectRepository, IRepository visitstageRepository, IRepository UserRepository, - IRepository trialRepository, - IRepository clinicalDataTrialSetRepository, + IRepository trialRepository, + IRepository clinicalDataTrialSetRepository, IRepository readModuleViewRepository, IRepository dicomInstanceRepository, IRepository noneDicomStudyFileRepository, diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs index f4e1c1a0..eb32ab91 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs @@ -11,6 +11,7 @@ using IRaCIS.Core.Domain.Share.Reading; using MassTransit; using IRaCIS.Core.Application.Service.Reading; using IRaCIS.Core.Infra.EFCore.Common; +using Panda.DynamicWebApi.Attributes; namespace IRaCIS.Application.Services { @@ -28,6 +29,7 @@ namespace IRaCIS.Application.Services private readonly IRepository _readingQuestionTrialRepository; private readonly IRepository _clinicalDataTrialSetRepository; private readonly IRepository _clinicalDataSystemSetRepository; + private readonly IRepository _dictionaryRepository; private readonly IRepository _previousPDFRepository; public ReadingQuestionService(IRepository subjectVisitRepository, @@ -38,6 +40,7 @@ namespace IRaCIS.Application.Services IRepository readingQuestionTrialRepository, IRepository ClinicalDataTrialSetRepository, IRepository ClinicalDataSystemSetRepository, + IRepository dictionaryRepository, IRepository previousPDFRepository ) { @@ -48,20 +51,21 @@ namespace IRaCIS.Application.Services this._readingQuestionTrialRepository = readingQuestionTrialRepository; _clinicalDataTrialSetRepository = ClinicalDataTrialSetRepository; _clinicalDataSystemSetRepository = ClinicalDataSystemSetRepository; + this._dictionaryRepository = dictionaryRepository; this._previousPDFRepository = previousPDFRepository; } - /// - /// 新增修改系统问题标准 - /// - /// - /// - [HttpPost] - public async Task AddOrUpdateReadingQuestionCriterionSystem(AddOrUpdateReadingQuestionCriterionSystemInDto indto) - { - var entity = await _readingQuestionCriterionSystemRepository.InsertOrUpdateAsync(indto,true); - return ResponseOutput.Ok(entity.Id.ToString()); - } + ///// + ///// 新增修改系统问题标准 + ///// + ///// + ///// + //[HttpPost] + //public async Task AddOrUpdateReadingQuestionCriterionSystem(AddOrUpdateReadingQuestionCriterionSystemInDto indto) + //{ + // var entity = await _readingQuestionCriterionSystemRepository.InsertOrUpdateAsync(indto,true); + // return ResponseOutput.Ok(entity.Id.ToString()); + //} /// /// 获取系统问题标准 @@ -70,6 +74,7 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task> GetReadingQuestionCriterionSystemList(ReadingQuestionCriterionSystemViewInDto inDto) { + await AddSystemQuestionCriterion(); var query= _readingQuestionCriterionSystemRepository.AsQueryable() .WhereIf(!inDto.CriterionName.IsNullOrEmpty(), x => x.CriterionName.Contains(inDto.CriterionName)) .ProjectTo(_mapper.ConfigurationProvider); @@ -78,18 +83,70 @@ namespace IRaCIS.Application.Services } /// - /// 删除系统问题标准 + /// 设置系统问题标准是否生效 /// - /// + /// /// - [HttpDelete("{readingQuestionCriterionSystemId:guid}")] - public async Task DeleteReadingQuestionCriterionSystem(Guid readingQuestionCriterionSystemId) + public async Task SetSystemReadingQuestionCriterionIsIsEnable(SetSystemReadingQuestionCriterionIsIsEnable inDto) { - await _readingQuestionCriterionSystemRepository.DeleteFromQueryAsync(t => t.Id == readingQuestionCriterionSystemId); - var success = await _readingQuestionCriterionSystemRepository.SaveChangesAsync(); - return ResponseOutput.Result(success); + await _readingQuestionCriterionSystemRepository.UpdatePartialFromQueryAsync(inDto.ReadingQuestionCriterionSystemId, x => new ReadingQuestionCriterionSystem() + { + IsEnable = inDto.IsEnable + }); + + var result =await _readingQuestionCriterionSystemRepository.SaveChangesAsync(); + + return ResponseOutput.Ok(result); } + /// + /// 添加系统qc问题标准 + /// + /// + public async Task AddSystemQuestionCriterion() + { + var useSystemQuestionCriterionIds = _readingQuestionCriterionSystemRepository.Select(x => x.CriterionId); + + var dictionaryParentId =await _dictionaryRepository.Where(x => x.Code == "ReadingStandard").Select(x => x.Id).FirstOrDefaultAsync(); + + var criterionList = await _dictionaryRepository.Where(x => x.ParentId == dictionaryParentId && !useSystemQuestionCriterionIds.Contains(x.Id)) + .Select(x => new CriterionList() + { + Id = x.Id, + Value = x.Value + }).ToListAsync(); + + + List needAddCriterionList = new List(); + criterionList.ForEach(x => + { + needAddCriterionList.Add(new ReadingQuestionCriterionSystem() + { + CriterionId = x.Id, + CriterionName = x.Value, + IsEnable = false, + + }); + + }); + await _readingQuestionCriterionSystemRepository.AddRangeAsync(needAddCriterionList); + + await _readingQuestionCriterionSystemRepository.SaveChangesAsync(); + } + + ///// + ///// 删除系统问题标准 + ///// + ///// + ///// + //[HttpDelete("{readingQuestionCriterionSystemId:guid}")] + //public async Task DeleteReadingQuestionCriterionSystem(Guid readingQuestionCriterionSystemId) + //{ + // await _readingQuestionCriterionSystemRepository.DeleteFromQueryAsync(t => t.Id == readingQuestionCriterionSystemId); + // var success = await _readingQuestionCriterionSystemRepository.SaveChangesAsync(); + // return ResponseOutput.Result(success); + //} + /// @@ -133,7 +190,18 @@ namespace IRaCIS.Application.Services return ResponseOutput.Result(success); } + /// + /// 添加系统数据到项目里面 + /// + /// + [NonDynamicMethod] + private async Task AddSystemDataToTrila(Guid trialId) + { + var trialUsrSystemIds = _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == trialId && x.ReadingQuestionCriterionSystemId != null) + .Select(x => x.ReadingQuestionCriterionSystemId); + var needAddSystemDataList = await _readingQuestionCriterionSystemRepository.Where(x => !trialUsrSystemIds.Contains(x.Id)).ToListAsync(); + } ///