diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 901b3793f..b9efc7f35 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -9271,7 +9271,7 @@ - 因为可能先一致性核查通过,生成其他标准的任务了,新签名的标准也需要产生任务 + 维护 IsFrontTaskNeedSignButNotSign 字段 另外附加评估结果 diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index 47ae89828..01a5f77e1 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -90,11 +90,12 @@ namespace IRaCIS.Core.Application.Service.Allocation return await _visitTaskRepository.SaveChangesAsync(); } - public async Task> GetTrialCriterionList(Guid trialId, bool isHaveSigned = true) + public async Task> GetTrialCriterionList(Guid trialId, bool isHaveSigned = true,bool? isAutoCreate = null) { var list = await _repository.Where(t => t.TrialId == trialId && t.IsConfirm) + .OrderBy(t => t.ShowOrder) - .Select(t => new TrialReadingCriterionDto() { TrialReadingCriterionId = t.Id, TrialReadingCriterionName = t.CriterionName, CriterionType = t.CriterionType, ReadingType = t.ReadingType, ReadingInfoSignTime = t.ReadingInfoSignTime }) + .Select(t => new TrialReadingCriterionDto() { TrialReadingCriterionId = t.Id, IsAutoCreate=t.IsAutoCreate,IsAdditionalAssessment=t.IsAdditionalAssessment, TrialReadingCriterionName = t.CriterionName, CriterionType = t.CriterionType, ReadingType = t.ReadingType, ReadingInfoSignTime = t.ReadingInfoSignTime }) .ToListAsync(); if (list.Count == 0) @@ -106,7 +107,8 @@ namespace IRaCIS.Core.Application.Service.Allocation - return list.AsQueryable().WhereIf(isHaveSigned == true, t => t.ReadingInfoSignTime != null).ToList(); + return list.AsQueryable().WhereIf(isHaveSigned == true, t => t.ReadingInfoSignTime != null) + .WhereIf(isAutoCreate == false, t => t.IsAutoCreate == isAutoCreate).ToList(); } diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index cc35e0c0b..a58d864f8 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -412,6 +412,8 @@ namespace IRaCIS.Core.Application.Service.Common + + /// /// 阅片期信息表 /// diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationViewModel.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationViewModel.cs index 8f6792956..656f271fe 100644 --- a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationViewModel.cs @@ -32,16 +32,17 @@ namespace IRaCIS.Core.Application.ViewModel public string TrialSiteCode { get; set; } public SubjectStatus SubjectStatus { get; set; } - public List EvaluationList { get; set; } + public List FinalEvaluationList { get; set; }=new List(); + + + public List ReadingEvaluationList { get; set; } } public class EvaluationInfo { - public string QuestioName { get; set; } - - public string QuestioNameEn { get; set; } + public Guid? QuestionId { get; set; } public string Answer { get; set; } public string FinalTranslateDictionaryCode { get; set; } = string.Empty; diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitFilterViewModel.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitFilterViewModel.cs index 49ec90376..ba0c13edc 100644 --- a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitFilterViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitFilterViewModel.cs @@ -11,15 +11,22 @@ using System.ComponentModel.DataAnnotations; namespace IRaCIS.Core.Application.ViewModel { /// SubjectCriteriaEvaluationVisitFilterView 列表视图模型 - public class SubjectCriteriaEvaluationVisitFilterView: SubjectCriteriaEvaluationVisitFilterAddOrEdit + public class SubjectCriteriaEvaluationVisitFilterView { public DateTime? CreateTime { get; set; } public Guid? CreateUserId { get; set; } public Guid? UpdateUserId { get; set; } public DateTime? UpdateTime { get; set; } - public new ImageFilterState? ImageFilterState { get; set; } - public new ImageDeterminationResultState? ImageDeterminationResultState { get; set; } + public Guid? Id { get; set; } + public Guid SubjectId { get; set; } + public Guid TrialReadingCriterionId { get; set; } + public Guid SubjectVisitId { get; set; } + + public ImageFilterState? ImageFilterState { get; set; } + public ImageDeterminationResultState? ImageDeterminationResultState { get; set; } + + public bool? IsGeneratedTask { get; set; } @@ -29,7 +36,7 @@ namespace IRaCIS.Core.Application.ViewModel } ///SubjectCriteriaEvaluationVisitFilterQuery 列表查询参数模型 - public class SubjectCriteriaEvaluationVisitFilterQuery : PageInput + public class SubjectCriteriaEvaluationVisitFilterQuery { [NotDefault] public Guid TrialReadingCriterionId { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationService.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationService.cs index 119a85055..821834fd6 100644 --- a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationService.cs +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationService.cs @@ -14,7 +14,7 @@ namespace IRaCIS.Core.Application.Interfaces { - Task> GetSubjectCriteriaEvaluationList(SubjectCriteriaEvaluationQuery inQuery); + //Task> GetSubjectCriteriaEvaluationList(SubjectCriteriaEvaluationQuery inQuery); //Task AddOrUpdateSubjectCriteriaEvaluation(SubjectCriteriaEvaluationAddOrEdit addOrEditSubjectCriteriaEvaluation); diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs index 1316bbfd5..f7a212f4d 100644 --- a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs @@ -15,6 +15,7 @@ using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Application.Contracts; using DocumentFormat.OpenXml.Spreadsheet; using Panda.DynamicWebApi.Attributes; +using IRaCIS.Core.Domain.Share.Reading; namespace IRaCIS.Core.Application.Service { @@ -33,12 +34,14 @@ namespace IRaCIS.Core.Application.Service private readonly IRepository _trialReadingCriterionRepository; + private readonly IRepository _trialReadingQuestionRepository; + private readonly IVisitTaskHelpeService _IVisitTaskHelpeService; public SubjectCriteriaEvaluationService(IRepository subjectCriteriaEvaluationRepository, IRepository subjectRepository, IRepository subjectCriteriaEvaluationVisitFilterRepository, IRepository subjectVisitRepository, IRepository subjectCriteriaEvaluationVisitStudyFilterRepository, - IRepository trialReadingCriterionRepository, IVisitTaskHelpeService IVisitTaskHelpeService) + IRepository trialReadingCriterionRepository, IVisitTaskHelpeService IVisitTaskHelpeService, IRepository trialReadingQuestionRepository) { _subjectCriteriaEvaluationRepository = subjectCriteriaEvaluationRepository; _subjectRepository = subjectRepository; @@ -49,6 +52,8 @@ namespace IRaCIS.Core.Application.Service _IVisitTaskHelpeService = IVisitTaskHelpeService; + _trialReadingQuestionRepository = trialReadingQuestionRepository; + } @@ -58,20 +63,36 @@ namespace IRaCIS.Core.Application.Service /// /// [HttpPost] - public async Task> GetSubjectCriteriaEvaluationList(SubjectCriteriaEvaluationQuery inQuery) + public async Task<(PageOutput,object)> GetSubjectCriteriaEvaluationList(SubjectCriteriaEvaluationQuery inQuery) { var trialReadingCritionList = _trialReadingCriterionRepository.Where(t => t.TrialId == inQuery.TrialId).ToList(); var resultTrialReadingCriterionId = Guid.Empty; + var resultTrialReadingCriterion = trialReadingCritionList.First(); + + var curentCriterionType = CriterionType.NoCriterion; + + //BM 需要找基线 两个人做的结果 if (trialReadingCritionList.First(t => t.Id == inQuery.TrialReadingCriterionId).CriterionType == CriterionType.RECIST1Pointt1_MB) { - - resultTrialReadingCriterionId = trialReadingCritionList.First(t => t.CriterionType == CriterionType.RECIST1Point1).Id; + + resultTrialReadingCriterion = trialReadingCritionList.First(t => t.CriterionType == CriterionType.RECIST1Point1); + resultTrialReadingCriterionId = resultTrialReadingCriterion.Id; + + curentCriterionType = CriterionType.RECIST1Pointt1_MB; } + var addtionalQustionInfoList = _trialReadingQuestionRepository.Where(t => t.ReadingQuestionCriterionTrialId == resultTrialReadingCriterionId && t.IsAdditional == true && t.Type != "group").IgnoreQueryFilters().Select(t => new + { + QuestionId= t.Id, + t.QuestionEnName, + t.QuestionName + }).ToList(); + + var questionIdList= addtionalQustionInfoList.Select(t=>t.QuestionId).ToList(); var subjectCriteriaEvaluationQueryable = from subject in _subjectRepository.Where(t=>t.TrialId==inQuery.TrialId) @@ -96,17 +117,110 @@ namespace IRaCIS.Core.Application.Service IsJoinEvaluation = subjectCriteriaEvaluation.IsJoinEvaluation, - EvaluationList=subject.SubjectAdditionalEvaluationResult.Where(t=>t.IsFinalResult && t.TrialReadingCriterionId==resultTrialReadingCriterionId).Select(u=>new EvaluationInfo() - { Answer=u.Answer,FinalTranslateDictionaryCode=u.FinalTranslateDictionaryCode,QuestioName=u.TrialReadingQuestion .QuestionName,QuestioNameEn=u.TrialReadingQuestion.QuestionEnName}).ToList() + + ReadingEvaluationList= subject.ReadingTaskQuestionAnswerList + .Where(t=>t.ReadingQuestionCriterionTrialId == resultTrialReadingCriterionId && + questionIdList.Contains(t.ReadingQuestionTrialId) + && t.VisitTask.TaskState==TaskState.Effect) + .Select(u=>new EvaluationInfo() + { + QuestionId=u.ReadingQuestionTrialId, + Answer=u.Answer, + + FinalTranslateDictionaryCode=u.ReadingQuestionTrial.DictionaryCode + }).ToList() + + //EvaluationList=subject + //.SubjectAdditionalEvaluationResult + //.Where(t=>t.IsFinalResult && t.TrialReadingCriterionId==resultTrialReadingCriterionId) + //.Select(u=>new EvaluationInfo() + //{ Answer=u.Answer,FinalTranslateDictionaryCode=u.FinalTranslateDictionaryCode,QuestioName=u.TrialReadingQuestion .QuestionName,QuestioNameEn=u.TrialReadingQuestion.QuestionEnName}).ToList() + + }; - - - - var pageList = await subjectCriteriaEvaluationQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, inQuery.SortField == string.Empty ? nameof(SubjectCriteriaEvaluationView.SubjectCode) : inQuery.SortField, inQuery.Asc); - return pageList; + + foreach (var item in pageList.CurrentPageData) + { + switch (curentCriterionType) + { + + case CriterionType.RECIST1Pointt1_MB: + + if (resultTrialReadingCriterion.ReadingType == ReadingMethod.Double) + { + if (item.ReadingEvaluationList.Count==2) + { + if (item.ReadingEvaluationList.All(t => t.Answer == 1.ToString())) + { + item.FinalEvaluationList.Add(new EvaluationInfo() { QuestionId=item.ReadingEvaluationList.First().QuestionId, Answer = ((int)BrainMetastasisResult.Yes).ToString(), FinalTranslateDictionaryCode = nameof(BrainMetastasisResult) + }); + } + else if (item.ReadingEvaluationList.All(t => t.Answer == 0.ToString())) + { + item.FinalEvaluationList.Add(new EvaluationInfo() { + QuestionId = item.ReadingEvaluationList.First().QuestionId, + Answer = ((int)BrainMetastasisResult.No).ToString(), FinalTranslateDictionaryCode = nameof(BrainMetastasisResult) + }); + } + else if (item.ReadingEvaluationList.First().Answer != item.ReadingEvaluationList.Last().Answer) + { + item.FinalEvaluationList.Add(new EvaluationInfo() { QuestionId = item.ReadingEvaluationList.First().QuestionId, Answer = ((int)BrainMetastasisResult.Maybe).ToString(), FinalTranslateDictionaryCode = nameof(BrainMetastasisResult)}); + } + else + { + + } + + } + else + { + item.FinalEvaluationList.Add(new EvaluationInfo() { QuestionId= addtionalQustionInfoList.FirstOrDefault()?.QuestionId, Answer = ((int)BrainMetastasisResult.Unknown).ToString(), FinalTranslateDictionaryCode = nameof(BrainMetastasisResult) }); + } + } + else if (resultTrialReadingCriterion.ReadingType == ReadingMethod.Single) + { + + if (item.ReadingEvaluationList.Count == 1) + { + if (item.ReadingEvaluationList.All(t => t.Answer == 1.ToString())) + { + item.FinalEvaluationList.Add(new EvaluationInfo() { QuestionId = item.ReadingEvaluationList.First().QuestionId, Answer = ((int)BrainMetastasisResult.Yes).ToString(), FinalTranslateDictionaryCode = nameof(BrainMetastasisResult) }); + } + else if (item.ReadingEvaluationList.All(t => t.Answer == 0.ToString())) + { + item.FinalEvaluationList.Add(new EvaluationInfo() { QuestionId = item.ReadingEvaluationList.First().QuestionId, Answer = ((int)BrainMetastasisResult.No).ToString(), FinalTranslateDictionaryCode = nameof(BrainMetastasisResult) }); + } + else + { + + } + } + else + { + item.FinalEvaluationList.Add(new EvaluationInfo() { QuestionId = addtionalQustionInfoList.FirstOrDefault()?.QuestionId, Answer = ((int)BrainMetastasisResult.Unknown).ToString(), FinalTranslateDictionaryCode = nameof(BrainMetastasisResult) }); + } + + } + else + { + + } + + break; + default: + break; + } + } + + + + + + + return (pageList, addtionalQustionInfoList); } @@ -124,7 +238,7 @@ namespace IRaCIS.Core.Application.Service { - if (addOrEditSubjectCriteriaEvaluation.Id != null) + if (addOrEditSubjectCriteriaEvaluation.Id == null) { var entity = await _subjectCriteriaEvaluationRepository.InsertFromDTOAsync(addOrEditSubjectCriteriaEvaluation); @@ -310,6 +424,12 @@ namespace IRaCIS.Core.Application.Service ImageDeterminationResultState = subjectCriteriaEvaluationVisitFilter.ImageDeterminationResultState, ImageFilterState = subjectCriteriaEvaluationVisitFilter.ImageFilterState, IsGeneratedTask = subjectCriteriaEvaluationVisitFilter.IsGeneratedTask, + Id = subjectCriteriaEvaluationVisitFilter.Id, + + CreateTime = subjectCriteriaEvaluationVisitFilter.CreateTime, + CreateUserId=subjectCriteriaEvaluationVisitFilter.CreateUserId, + UpdateTime= subjectCriteriaEvaluationVisitFilter.UpdateTime, + UpdateUserId= subjectCriteriaEvaluationVisitFilter.UpdateUserId, }; diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs index 7abf0c702..244523aa2 100644 --- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs @@ -237,7 +237,7 @@ namespace IRaCIS.Core.Application.Service .ForMember(x => x.CreateUserName, y => y.MapFrom(n => n.CreateUser.UserName)); #endregion - + #region 阅片部位 @@ -254,6 +254,8 @@ namespace IRaCIS.Core.Application.Service // .ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.subject.Code)) // .ForMember(d => d.SubjectStatus, u => u.MapFrom(s => s.subject.Status)); + + CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs b/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs index fe2a4b76e..093c7a829 100644 --- a/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs +++ b/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs @@ -343,6 +343,12 @@ namespace IRaCIS.Application.Contracts public bool IsGlobalReading { get; set; } = true; + //是否附加评估 + public bool IsAdditionalAssessment { get; set; } + + + //自动 手动生成任务 + public bool IsAutoCreate { get; set; } public bool IsArbitrationReading { get; set; } = true; diff --git a/IRaCIS.Core.Application/Triggers/VisitTaskIsFrontTaskNeedSignButNotSignTrigger.cs b/IRaCIS.Core.Application/Triggers/VisitTaskIsFrontTaskNeedSignButNotSignTrigger.cs index 5a3523799..f528dbd6c 100644 --- a/IRaCIS.Core.Application/Triggers/VisitTaskIsFrontTaskNeedSignButNotSignTrigger.cs +++ b/IRaCIS.Core.Application/Triggers/VisitTaskIsFrontTaskNeedSignButNotSignTrigger.cs @@ -10,21 +10,34 @@ using System.Linq.Expressions; namespace IRaCIS.Core.Application.Triggers { /// - /// 因为可能先一致性核查通过,生成其他标准的任务了,新签名的标准也需要产生任务 + /// 维护 IsFrontTaskNeedSignButNotSign 字段 另外附加评估结果 /// public class VisitTaskIsFrontTaskNeedSignButNotSignTrigger : IAfterSaveTrigger { private readonly IRepository _visitTaskRepository; + private readonly IRepository _trialReadingCriterionRepository; + + private readonly IRepository _trialReadingQuestionRepository; + + private readonly IRepository _readingTaskQuestionAnswerRepository; + + private readonly IRepository _subjectAdditionalEvaluationResultRepository; + public VisitTaskIsFrontTaskNeedSignButNotSignTrigger( - IRepository visitTaskRepository) + IRepository visitTaskRepository, IRepository trialReadingCriterionRepository, IRepository trialReadingQuestionRepository + , IRepository readingTaskQuestionAnswerRepository, IRepository subjectAdditionalEvaluationResultRepository) { - + _trialReadingCriterionRepository = trialReadingCriterionRepository; _visitTaskRepository = visitTaskRepository; + _trialReadingQuestionRepository = trialReadingQuestionRepository; + + _readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository; + _subjectAdditionalEvaluationResultRepository = subjectAdditionalEvaluationResultRepository; } @@ -38,7 +51,7 @@ namespace IRaCIS.Core.Application.Triggers if (context.ChangeType == ChangeType.Added) { - if (visitTask.IsNeedClinicalDataSign ) + if (visitTask.IsNeedClinicalDataSign) { var visitTaskIdQueryable = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务 @@ -67,6 +80,110 @@ namespace IRaCIS.Core.Application.Triggers } } + + + #region 附加评估 暂时废弃 +// //从未签名状态 改为签名状态时 判断是否进行了附加评估,将附加评估的结果冗余 +// if (context.ChangeType == ChangeType.Modified && visitTask.ReadingTaskState == ReadingTaskState.HaveSigned && context.UnmodifiedEntity.ReadingTaskState != ReadingTaskState.HaveSigned) +// { + +// var criterion = _trialReadingCriterionRepository.Where(t => t.Id == visitTask.TrialReadingCriterionId).FirstOrDefault(); + +// //如果是附加评估 +// if (criterion.IsAdditionalAssessment) +// { + + +// if (visitTask.ReadingCategory == ReadingCategory.Visit) +// { + + +// switch (criterion.CriterionType) +// { +// case CriterionType.RECIST1Point1: +// var isbaseLine = _visitTaskRepository.Where(t => t.Id == visitTask.Id).Select(t => t.SourceSubjectVisit.IsBaseLine).FirstOrDefault(); + + + +// if (isbaseLine) +// { +// var currentTaskAdditionarlAnswer = await _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == visitTask.Id && +// t.ReadingQuestionTrial.IsAdditional == true && t.ReadingQuestionTrial.Type != "group" +// ).Include(t => t.ReadingQuestionTrial).FirstOrDefaultAsync(); + + +// //双重阅片完成了 +// if (criterion.ReadingType == ReadingMethod.Double && +//(_visitTaskRepository.Where(t => t.SubjectId == visitTask.SubjectId && t.TaskName == visitTask.TaskName && t.TaskState == TaskState.Effect && t.ReadingTaskState == ReadingTaskState.HaveSigned).Count() == 2) +// ) +// { + +// var otherTaskId = await _visitTaskRepository.Where(t => t.SubjectId == visitTask.SubjectId && t.TaskName == visitTask.TaskName && t.TaskState == TaskState.Effect && t.ReadingTaskState == ReadingTaskState.HaveSigned && t.Id != visitTask.Id) +// .Select(t => t.Id).FirstOrDefaultAsync(); + + +// var otherTaskAdditionarlAnswer = await _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == otherTaskId && +// t.ReadingQuestionTrial.IsAdditional == true && t.ReadingQuestionTrial.Type != "group" +// ).Include(t => t.ReadingQuestionTrial).FirstOrDefaultAsync(); + + + +// await _subjectAdditionalEvaluationResultRepository.AddAsync(new SubjectAdditionalEvaluationResult() +// { +// TrialReadingCriterionId = visitTask.TrialReadingCriterionId, +// IsFinalResult = true, +// SubjectId = visitTask.SubjectId, +// TrialReadingQuestionId = currentTaskAdditionarlAnswer.ReadingQuestionTrialId, +// FinalAnswer = currentTaskAdditionarlAnswer.Answer, +// FinalTranslateDictionaryCode = currentTaskAdditionarlAnswer.ReadingQuestionTrial.DictionaryCode, + +// }); + +// } +// if (criterion.ReadingType == ReadingMethod.Single) +// { + +// await _subjectAdditionalEvaluationResultRepository.AddAsync(new SubjectAdditionalEvaluationResult() +// { +// TrialReadingCriterionId = visitTask.TrialReadingCriterionId, +// IsFinalResult = true, +// SubjectId = visitTask.SubjectId, +// TrialReadingQuestionId = currentTaskAdditionarlAnswer.ReadingQuestionTrialId, +// FinalAnswer = currentTaskAdditionarlAnswer.Answer, +// FinalTranslateDictionaryCode = currentTaskAdditionarlAnswer.ReadingQuestionTrial.DictionaryCode, + +// }); + +// } + + + +// } + +// break; +// default: +// break; +// } + + + + + +// } + + + + + + + + +// } +// } + + + #endregion + } diff --git a/IRaCIS.Core.Domain.Share/Reading/UrgentType.cs b/IRaCIS.Core.Domain.Share/Reading/UrgentType.cs index 7c4515320..06788ce7d 100644 --- a/IRaCIS.Core.Domain.Share/Reading/UrgentType.cs +++ b/IRaCIS.Core.Domain.Share/Reading/UrgentType.cs @@ -36,4 +36,31 @@ namespace IRaCIS.Core.Domain.Share.Reading TNM = 2 } + + /// + /// 阅片脑转移推断结果 + /// + public enum BrainMetastasisResult + { + + /// + /// 否 + /// + No = 0, + + /// + /// 是 + /// + Yes = 1, + + /// + /// 可能 + /// + Maybe = 3, + + /// + /// 未知 + /// + Unknown = 4 + } } diff --git a/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluation.cs b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluation.cs index b70fab15c..72d1a76c0 100644 --- a/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluation.cs +++ b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluation.cs @@ -63,16 +63,20 @@ namespace IRaCIS.Core.Domain.Models public DateTime UpdateTime { get; set; } - + [JsonIgnore] public List SubjectCriteriaEvaluationVisitFilterList { get; set; } - - ///// - // /// 是否影像筛选 - // /// - //[Required] - //public bool IsImageFiltering { get; set; } - - } + + + + + + ///// + // /// 是否影像筛选 + // /// + //[Required] + //public bool IsImageFiltering { get; set; } + + } } diff --git a/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilter.cs b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilter.cs index 05f2f7539..28135100b 100644 --- a/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilter.cs +++ b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilter.cs @@ -58,22 +58,28 @@ namespace IRaCIS.Core.Domain.Models } - + /// + /// 影像确认结果 + /// public enum ImageDeterminationResultState { //待定 None = 0, + //通过 Passed = 1, } + /// + /// 影像筛选状态 + /// public enum ImageFilterState { //默认值 待筛选 None = 0, - //已完成 + //筛选已完成 Finished = 1 } diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/TrialCriterionAdditionalAssessmentType.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/TrialCriterionAdditionalAssessmentType.cs index 3f385cdde..c46d0fef0 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterion/TrialCriterionAdditionalAssessmentType.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/TrialCriterionAdditionalAssessmentType.cs @@ -18,49 +18,25 @@ namespace IRaCIS.Core.Domain.Models public class TrialCriterionAdditionalAssessmentType : Entity, IAuditUpdate, IAuditAdd { - - /// - /// TrialReadingCriterionId - /// - [Required] public Guid TrialReadingCriterionId { get; set; } - /// - /// CriterionType - /// - public CriterionType CriterionType { get; set; } public AdditionalAssessmentType AdditionalAssessmentType { get; set; } - /// - /// IsSelected - /// public bool? IsSelected { get; set; } - /// - /// CreateTime - /// - [Required] + public DateTime CreateTime { get; set; } - /// - /// CreateUserId - /// - [Required] + public Guid CreateUserId { get; set; } - /// - /// UpdateTime - /// - [Required] + public DateTime UpdateTime { get; set; } - /// - /// UpdateUserId - /// - [Required] + public Guid UpdateUserId { get; set; } diff --git a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTaskQuestionAnswer.cs b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTaskQuestionAnswer.cs index 38c8fdff9..ccc45dda0 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTaskQuestionAnswer.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTaskQuestionAnswer.cs @@ -74,7 +74,9 @@ namespace IRaCIS.Core.Domain.Models public ReadingQuestionTrial ReadingQuestionTrial { get; set; } - } + + + } diff --git a/IRaCIS.Core.Domain/Visit/Subject.cs b/IRaCIS.Core.Domain/Visit/Subject.cs index 0a16d6309..2a901ed65 100644 --- a/IRaCIS.Core.Domain/Visit/Subject.cs +++ b/IRaCIS.Core.Domain/Visit/Subject.cs @@ -31,7 +31,11 @@ namespace IRaCIS.Core.Domain.Models [JsonIgnore] - public List SubjectAdditionalEvaluationResult { get; set; } + public List SubjectAdditionalEvaluationResult { get; set; } + + + [JsonIgnore] + public List ReadingTaskQuestionAnswerList { get; set; } [JsonIgnore] [ForeignKey("FinalSubjectVisitId")]