diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs index 94eb0108a..3a408f938 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs @@ -96,7 +96,7 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task> GetTrialClinicalGroupQuestionList(GetTrialGroupDto inDto) { - return await this._trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId&&x.ClinicalQuestionTypeEnum== ClinicalQuestionType.Group) + return await this._trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId&&x.ClinicalQuestionType== "group") .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); } @@ -108,7 +108,11 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task> GetTrialClinicalOtherQuestionList(GetTrialGroupDto inDto) { - return await this._trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId && x.ClinicalQuestionTypeEnum == ClinicalQuestionType.Select) + var types = new List() + { + "select","radio" + }; + return await this._trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId && types.Contains( x.ClinicalQuestionType)) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); } @@ -171,7 +175,7 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task> GetSystemClinicalGroupQuestionList(GetSystemGroupDto inDto) { - return await this._systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && x.ClinicalQuestionTypeEnum == ClinicalQuestionType.Group) + return await this._systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && x.ClinicalQuestionType =="group") .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); } @@ -184,7 +188,11 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task> GetSystemClinicalOtherQuestionList(GetSystemGroupDto inDto) { - return await this._systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && x.ClinicalQuestionTypeEnum == ClinicalQuestionType.Select) + var types = new List() + { + "select","radio" + }; + return await this._systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && types.Contains(x.ClinicalQuestionType)) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); } @@ -292,5 +300,31 @@ namespace IRaCIS.Core.Application.Service } #endregion + + #region 同步系统问题 + + public async Task SynchronizationQuestion(List inDto) + { + var trialClinicalId = inDto.Select(x => x.TrialClinicalId).ToList(); + + var systemClinicalId = inDto.Select(x => x.SystemClinicalId).ToList(); + var questionRelation = _trialClinicalQuestionRepository.Where(x => trialClinicalId.Contains(x.TrialClinicalId)).ToDictionary( + x => x.SystemClinicalQuestionId ?? default(Guid), + x => x.Id + ); + + var tableQuestionRelation = _trialClinicalTableQuestionRepository.Where(x => trialClinicalId.Contains(x.TrialClinicalId)).ToDictionary( + x => x.SystemTableQuestionId ?? default(Guid), + x => x.Id + ); + + + //var + + } + + + #endregion + } } diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs index bc469e571..9c5cc15f5 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs @@ -32,7 +32,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// /// 临床问题类型(分组,单选。) /// - public ClinicalQuestionType ClinicalQuestionTypeEnum { get; set; } + public string ClinicalQuestionType { get; set; } /// /// 问题标识 @@ -192,7 +192,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// /// 临床问题类型(分组,单选。) /// - public ClinicalTableQuestionType ClinicalTableQuestionTypeEnum { get; set; } + public string ClinicalTableQuestionType { get; set; } /// /// 问题标识 @@ -314,8 +314,25 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto { } - - #endregion + + #region 同步临床数据 + + public class SynchronizationQuestionDto + { + /// + /// 系统临床数据Id + /// + public Guid SystemClinicalId { get; set; } + + + + /// + /// 项目临床数据Id + /// + public Guid TrialClinicalId { get; set; } + } + + #endregion } diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs index d1c6e3868..2ea05fb7c 100644 --- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs @@ -29,6 +29,13 @@ namespace IRaCIS.Core.Application.Service CreateMap(); CreateMap(); + + CreateMap() + .ForMember(d => d.SystemClinicalQuestionId, u => u.MapFrom(s => s.Id)); + + CreateMap() + .ForMember(d => d.SystemTableQuestionId, u => u.MapFrom(s => s.Id)); + #endregion CreateMap(); diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs index 50e7e5fce..c55251892 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs @@ -35,7 +35,7 @@ namespace IRaCIS.Core.Domain.Models /// /// 临床问题类型(分组,单选。) /// - public ClinicalQuestionType ClinicalQuestionTypeEnum { get; set; } + public string ClinicalQuestionType { get; set; } /// /// 问题标识 diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs index 8a7eccaed..2719cfcc3 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs @@ -33,7 +33,7 @@ namespace IRaCIS.Core.Domain.Models /// /// 临床问题类型(分组,单选。) /// - public ClinicalTableQuestionType ClinicalTableQuestionTypeEnum { get; set; } + public string ClinicalTableQuestionType { get; set; } /// /// 问题标识 diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs index 81f1e4da6..20e436b36 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs @@ -35,7 +35,7 @@ namespace IRaCIS.Core.Domain.Models /// /// 临床问题类型(分组,单选。) /// - public ClinicalQuestionType ClinicalQuestionTypeEnum { get; set; } + public string ClinicalQuestionType { get; set; } /// /// 问题标识 diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs index 129dc32a5..73a12f283 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs @@ -33,7 +33,7 @@ namespace IRaCIS.Core.Domain.Models /// /// 临床问题类型(分组,单选。) /// - public ClinicalTableQuestionType ClinicalTableQuestionTypeEnum { get; set; } + public string ClinicalTableQuestionType { get; set; } /// /// 问题标识 @@ -85,6 +85,11 @@ namespace IRaCIS.Core.Domain.Models /// public Guid QuestionId { get; set; } + /// + /// 系统表格问题Id + /// + public Guid? SystemTableQuestionId { get; set; } + /// /// 自定义计算标记 ///