diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 863f2d840..0f8fd807d 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -2560,6 +2560,20 @@ + + + 获取系统其他表格问题 + + + + + + + 获取项目其他表格问题 + + + + 获取项目表格问题 @@ -3218,6 +3232,16 @@ 单位 + + + 关联ID + + + + + 关联Value + + 项目临床数据问题 diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs index e1f4d06b5..42da2853c 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs @@ -11,6 +11,7 @@ using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Infra.EFCore.Common; using IRaCIS.Core.Domain.Share; using MassTransit; +using IRaCIS.Core.Domain.Models; namespace IRaCIS.Core.Application.Service { @@ -455,11 +456,46 @@ namespace IRaCIS.Core.Application.Service var success = await _systemClinicalTableQuestionRepository.DeleteFromQueryAsync(t => t.Id == id, true); return ResponseOutput.Ok(); } + + /// + /// 获取系统其他表格问题 + /// + /// + /// + [HttpPost] + public async Task> GetSystemClinicalOtherTableQuestionList(GetClinicalOtherTableQuestionListInDto inDto) + { + var types = new List() + { + "select","radio" + }; + return await this._systemClinicalTableQuestionRepository.Where(x => x.QuestionId == inDto.QuestionId && types.Contains(x.ClinicalTableQuestionType)) + .Where(x=>x.Id!= inDto.TableQuestionId) + .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + } #endregion #region 项目表格问题 + + /// + /// 获取项目其他表格问题 + /// + /// + /// + [HttpPost] + public async Task> GetTrialClinicalOtherTableQuestionList(GetClinicalOtherTableQuestionListInDto inDto) + { + var types = new List() + { + "select","radio" + }; + return await this._trialClinicalTableQuestionRepository.Where(x => x.QuestionId == inDto.QuestionId && types.Contains(x.ClinicalTableQuestionType)) + .Where(x => x.Id != inDto.TableQuestionId) + .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + } + /// /// 获取项目表格问题 /// @@ -621,6 +657,11 @@ namespace IRaCIS.Core.Application.Service tableQuestionRelation.Add(x.Id, newid); x.Id = newid; } + + if (x.RelevanceId != null) + { + x.RelevanceId = questionRelation[x.RelevanceId ?? default(Guid)]; + } }); foreach (var x in newTrialTableQuestionList) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs index a1988b83e..a9c353b55 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs @@ -370,12 +370,18 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto { public Guid SystemClinicalId { get; set; } } + + public class GetClinicalOtherTableQuestionListInDto + { + public Guid QuestionId { get; set; } + + public Guid TableQuestionId { get; set; } + } #endregion #region 表格问题 public class ClinicalTableQuestionBase - { public Guid? Id { get; set; } @@ -456,6 +462,25 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// 单位 /// public string Unit { get; set; } = string.Empty; + + /// + /// 关联ID + /// + public Guid? RelevanceId { get; set; } + + /// + /// 关联Value + /// + public string RelevanceValue + { + get + { + return string.Join(',', this.RelevanceValueList); + } + } + + + public List RelevanceValueList { get; set; } = new List(); } diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs index 7498f3e25..bb6248f00 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs @@ -7,6 +7,9 @@ using System; using IRaCIS.Core.Domain.Share; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using System.Collections.Generic; +using System.Linq; + namespace IRaCIS.Core.Domain.Models { /// @@ -95,6 +98,34 @@ namespace IRaCIS.Core.Domain.Models /// public string Unit { get; set; } = string.Empty; + /// + /// 关联ID + /// + public Guid? RelevanceId { get; set; } + + /// + /// 关联Value + /// + public string RelevanceValue { get; set; } = string.Empty; + + [NotMapped] + public List RelevanceValueList + { + get + { + try + { + return this.RelevanceValue.Split(',').ToList(); + } + catch (Exception) + { + + return new List(); + } + } + + } + } diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs index 1e88cc3ce..29cb863e9 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs @@ -7,6 +7,9 @@ using System; using IRaCIS.Core.Domain.Share; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using System.Collections.Generic; +using System.Linq; + namespace IRaCIS.Core.Domain.Models { /// @@ -110,6 +113,34 @@ namespace IRaCIS.Core.Domain.Models /// public string Unit { get; set; } = string.Empty; + /// + /// 关联ID + /// + public Guid? RelevanceId { get; set; } + + /// + /// 关联Value + /// + public string RelevanceValue { get; set; } = string.Empty; + + [NotMapped] + public List RelevanceValueList + { + get + { + try + { + return this.RelevanceValue.Split(',').ToList(); + } + catch (Exception) + { + + return new List(); + } + } + + } + } diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionSystem.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionSystem.cs index ba44b85dd..97cdd903b 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionSystem.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionSystem.cs @@ -176,6 +176,8 @@ namespace IRaCIS.Core.Domain.Models [ForeignKey("DependParentId")] [JsonIgnore] public ReadingTableQuestionSystem DependParentQuestion { get; set; } + + }