diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index ec743870b..1d435bd13 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -3000,12 +3000,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } - public class AnswerCombinationDto - { - public List AnswerGroupA { get; set; } - - public List AnswerGroupB { get; set; } - } + public class TaskAnswerDto { diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs index 75821232d..192f6e8b7 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs @@ -33,14 +33,55 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class TrialQuestionVisitJudgeRuleItemDto { - public Guid ReadingQuestionId { get; set; } + public Guid ReadingQuestionTrialId { get; set; } public string QuestionName { get; set; } = string.Empty; public int ShowOrder { get; set; } public List AnswerGroup { get; set; } = new List(); - public List AnswerCombination { get; set; } = new List(); public JudgeTypeEnum JudgeType { get; set; } public decimal? JudgeDifferenceValue { get; set; } public JudgeDifferenceType JudgeDifferenceType { get; set; } + + + + + + /// + /// 类型 + /// + public string Type { get; set; } = string.Empty; + + + + + public string PageName { get; set; } + + + public string TypeValue { get; set; } + + /// + /// 问题类型 + /// + public TableQuestionType? QuestionGenre { get; set; } + + /// + /// 字典code + /// + public string DictionaryCode { get; set; } = string.Empty; + + + + + /// + /// 单位 + /// + public ValueUnit? Unit { get; set; } + + public string CustomUnit { get; set; } = string.Empty; + + /// + /// 答案组合 + /// + public List AnswerCombination { get; set; } } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs index c76353280..3d0f5638b 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs @@ -55,27 +55,34 @@ namespace IRaCIS.Core.Application.Service .OrderBy(x => x.ShowOrder) .Select(x => new TrialQuestionVisitJudgeRuleItemDto { - ReadingQuestionId = x.Id, + ReadingQuestionTrialId = x.Id, QuestionName = x.QuestionName.LanguageName(x.QuestionEnName, _userInfo.IsEn_Us), ShowOrder = x.ShowOrder, }) .ToListAsync(); - var questionIds = questionList.Select(x => x.ReadingQuestionId).ToList(); + var questionIds = questionList.Select(x => x.ReadingQuestionTrialId).ToList(); var ruleList = await _readingQuestionVisitJudgeRuleRepository .Where(x => x.VisitNum == inDto.VisitNum && questionIds.Contains(x.ReadingQuestionId)) .ToListAsync(); return questionList.Select(question => { - var rule = ruleList.FirstOrDefault(x => x.ReadingQuestionId == question.ReadingQuestionId); + var rule = ruleList.FirstOrDefault(x => x.ReadingQuestionId == question.ReadingQuestionTrialId); return new TrialQuestionVisitJudgeRuleItemDto { - ReadingQuestionId = question.ReadingQuestionId, + ReadingQuestionTrialId = question.ReadingQuestionTrialId, QuestionName = question.QuestionName, ShowOrder = question.ShowOrder, + Type = question.Type, + PageName = question.PageName, + TypeValue = question.TypeValue, + QuestionGenre = question.QuestionGenre, + DictionaryCode = question.DictionaryCode, + Unit = question.Unit, + CustomUnit = question.CustomUnit, AnswerGroup = rule?.AnswerGroup ?? new List(), - AnswerCombination = rule?.AnswerCombination ?? new List(), + AnswerCombination = rule?.AnswerCombination ?? new List(), JudgeType = rule?.JudgeType ?? JudgeTypeEnum.None, JudgeDifferenceValue = rule?.JudgeDifferenceValue, JudgeDifferenceType = rule?.JudgeDifferenceType ?? default, @@ -100,10 +107,10 @@ namespace IRaCIS.Core.Application.Service var rules = inDto.QuestionList.Select(question => new ReadingQuestionVisitJudgeRule { Id = NewId.NextGuid(), - ReadingQuestionId = question.ReadingQuestionId, + ReadingQuestionId = question.ReadingQuestionTrialId, VisitNum = inDto.VisitNum, AnswerGroup = question.AnswerGroup ?? new List(), - AnswerCombination = question.AnswerCombination ?? new List(), + AnswerCombination = question.AnswerCombination ?? new List(), JudgeType = question.JudgeType, JudgeDifferenceValue = question.JudgeDifferenceValue, JudgeDifferenceType = question.JudgeDifferenceType, diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionVisitJudgeRule.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionVisitJudgeRule.cs index 70109492d..67dcf892d 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionVisitJudgeRule.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionVisitJudgeRule.cs @@ -37,7 +37,7 @@ public class ReadingQuestionVisitJudgeRule : BaseAddAuditEntity /// [Comment("答案组合")] [MaxLength] - public List AnswerCombination { get; set; } = new List(); + public List AnswerCombination { get; set; } = new List(); /// /// 裁判类型 @@ -58,3 +58,10 @@ public class ReadingQuestionVisitJudgeRule : BaseAddAuditEntity public JudgeDifferenceType JudgeDifferenceType { get; set; } } + +public class AnswerCombinationDto +{ + public List AnswerGroupA { get; set; } + + public List AnswerGroupB { get; set; } +} diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index 31b757711..d3fa00088 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -119,6 +119,14 @@ public class IRaCISDBContext : DbContext ); }); + modelBuilder.Entity(entity => + { + entity.Property(e => e.AnswerCombination).HasConversion( + v => v == null ? null : JsonConvert.SerializeObject(v), + v => string.IsNullOrEmpty(v) ? new List() { } : JsonConvert.DeserializeObject>(v) + ); + }); + #region pgsql codefirst 配置 暂时屏蔽 //if (base.Database.IsNpgsql()) //{