From 5681f06b1fadd528de023057e1d5b5123c4aa232 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 29 Jun 2022 15:54:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 18 ++- .../DTO/TaskMedicalReviewRuleViewModel.cs | 39 +++--- .../DTO/TaskMedicalReviewViewModel.cs | 10 +- .../Allocation/DTO/VisitTaskViewModel.cs | 3 + ...ice.cs => TaskMedicalReviewRuleService.cs} | 2 +- .../Allocation/TaskMedicalReviewService.cs | 124 +++++++++++++++++- .../Service/Allocation/VisitTaskService.cs | 2 + .../Service/Allocation/_MapConfig.cs | 24 ++-- .../Allocation/VisitTaskReReading.cs | 2 + 9 files changed, 185 insertions(+), 39 deletions(-) rename IRaCIS.Core.Application/Service/Allocation/{TaskTaskMedicalReviewRuleService.cs => TaskMedicalReviewRuleService.cs} (96%) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index e8303a6e1..412881ada 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -53,6 +53,11 @@ + + + 医学审核生成规则 + + 任务医学审核 @@ -65,6 +70,12 @@ + + + 产生医学审核任务 + + + MIM 医学审核 @@ -79,17 +90,12 @@ - + 获取医学经理列表 - - - 医学审核生成规则 - - 访视读片任务 diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskMedicalReviewRuleViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskMedicalReviewRuleViewModel.cs index 9dbae91ad..ed3a95de7 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskMedicalReviewRuleViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskMedicalReviewRuleViewModel.cs @@ -24,42 +24,49 @@ namespace IRaCIS.Core.Application.ViewModel [JsonIgnore] - public List ActualVisitTaskIdList { get; set; } + public List ActualVisitTaskList { get; set; } [JsonIgnore] - public List ActualJudgeTaskIdList { get; set; } + public List ActualJudgeTaskList { get; set; } [JsonIgnore] - public List ActualGlobalTaskIdList { get; set; } + public List ActualGlobalTaskList { get; set; } [JsonIgnore] - public List ActualTumorTaskIdList { get; set; } + public List ActualTumorTaskList { get; set; } [JsonIgnore] - public List GeneratedVisitTaskIdList { get; set; } + public List GeneratedVisitTaskList { get; set; } [JsonIgnore] - public List GeneratedJudgeTaskIdList { get; set; } + public List GeneratedJudgeTaskList { get; set; } [JsonIgnore] - public List GeneratedGlobalTaskIdList { get; set; } + public List GeneratedGlobalTaskList { get; set; } [JsonIgnore] - public List GeneratedTumorTaskIdList { get; set; } + public List GeneratedTumorTaskList { get; set; } - public int GeneratedVisitCount => GeneratedVisitTaskIdList.Count; - public int GeneratedJudgeCount => GeneratedJudgeTaskIdList.Count; - public int GeneratedGlobalCount => GeneratedGlobalTaskIdList.Count; - public int GeneratedTumorCount => GeneratedTumorTaskIdList.Count; + public int GeneratedVisitCount => GeneratedVisitTaskList.Count; + public int GeneratedJudgeCount => GeneratedJudgeTaskList.Count; + public int GeneratedGlobalCount => GeneratedGlobalTaskList.Count; + public int GeneratedTumorCount => GeneratedTumorTaskList.Count; - public int ActualVisitCount => ActualVisitTaskIdList.Count; - public int ActualJudgeCount => ActualJudgeTaskIdList.Count; - public int ActualGlobalCount => ActualGlobalTaskIdList.Count; - public int ActualTumorCount => ActualTumorTaskIdList.Count; + public int ActualVisitCount => ActualVisitTaskList.Count; + public int ActualJudgeCount => ActualJudgeTaskList.Count; + public int ActualGlobalCount => ActualGlobalTaskList.Count; + public int ActualTumorCount => ActualTumorTaskList.Count; } + + public class TaskBasicIdView + { + public Guid TaskId { get; set; } + public Guid TrialId { get; set; } + public Guid? DoctorUserId { get; set; } + } ///TaskTaskMedicalReviewRuleQuery 列表查询参数模型 public class TaskMedicalReviewRuleQuery { diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskMedicalReviewViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskMedicalReviewViewModel.cs index 93705db0a..d99418bdb 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskMedicalReviewViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskMedicalReviewViewModel.cs @@ -53,7 +53,15 @@ namespace IRaCIS.Core.Application.ViewModel } - + public class GenerateMedicalReviewTaskCommand + { + public Guid TrialId { get; set; } + + + } + + + public class AssignMedicalReviewTaskCommand { public Guid Id { get; set; } diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs index b5dd9b3a7..6304e014b 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs @@ -67,6 +67,7 @@ namespace IRaCIS.Core.Application.ViewModel public class UserSimpleInfo { + public Guid UserId { get; set; } public string UserCode { get; set; } public string UserName { get; set; } public string FullName { get; set; } @@ -213,6 +214,8 @@ namespace IRaCIS.Core.Application.ViewModel public DateTime? EndAllocateDate { get; set; } public Guid? RootReReadingTaskId { get; set; } + + public string TaskCode { get; set; } } diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskTaskMedicalReviewRuleService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewRuleService.cs similarity index 96% rename from IRaCIS.Core.Application/Service/Allocation/TaskTaskMedicalReviewRuleService.cs rename to IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewRuleService.cs index 3c013881a..1fbfd048b 100644 --- a/IRaCIS.Core.Application/Service/Allocation/TaskTaskMedicalReviewRuleService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewRuleService.cs @@ -33,7 +33,7 @@ namespace IRaCIS.Core.Application.Service var taskTaskMedicalReviewRuleQueryable = _taskMedicalReviewRuleRepository.Where(t => t.TrialId == inQuery.TrialId) .ProjectTo(_mapper.ConfigurationProvider); - var isHaveMIM = await _repository.AnyAsync(t => t.User.UserTypeEnum == Domain.Share.UserTypeEnum.MIM); + var isHaveMIM = await _repository.AnyAsync(t => t.User.UserTypeEnum == Domain.Share.UserTypeEnum.MIM && t.TrialId==inQuery.TrialId); return (await taskTaskMedicalReviewRuleQueryable.ToListAsync(),new {IsHaveMIM=isHaveMIM}); } diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs index 11033cc75..1e194e994 100644 --- a/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs @@ -24,7 +24,7 @@ namespace IRaCIS.Core.Application.Service private readonly IRepository _taskMedicalReviewRuleRepository; - public TaskMedicalReviewService(IRepository taskMedicalReviewRepository,IRepository trialUserRepository, IRepository taskMedicalReviewRuleRepository) + public TaskMedicalReviewService(IRepository taskMedicalReviewRepository, IRepository trialUserRepository, IRepository taskMedicalReviewRuleRepository) { _taskMedicalReviewRepository = taskMedicalReviewRepository; @@ -60,6 +60,122 @@ namespace IRaCIS.Core.Application.Service + /// + /// 产生医学审核任务 + /// + /// + public async Task GenerateMedicalReviewTask(GenerateMedicalReviewTaskCommand generateCommand) + { + var trialId = generateCommand.TrialId; + + var mimUserList = await _trialUserRepository.Where(t => t.User.UserTypeEnum == Domain.Share.UserTypeEnum.MIM && t.TrialId == trialId).Select(t => t.User).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + + if (mimUserList.Count == 0) + { + return ResponseOutput.NotOk("没有MIM"); + } + + var defalutMIMUserId = mimUserList.FirstOrDefault().UserId; + + //获取当前医生数据 已经生成的,和配置的数量 + var taskTaskMedicalReviewRuleList = await _taskMedicalReviewRuleRepository.Where(t => t.TrialId == trialId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + + foreach (var item in taskTaskMedicalReviewRuleList) + { + + if (item.IsEnable) + { + + if (item.PlanGlobalCount > item.GeneratedGlobalCount) + { + var needGenerateCount = item.PlanGlobalCount - item.GeneratedGlobalCount; + + var canGenerateCount = item.ActualGlobalCount - item.GeneratedGlobalCount; + + var toGenerateCount = canGenerateCount > needGenerateCount ? needGenerateCount : canGenerateCount; + + //分配给MIM + + if (toGenerateCount > 0) + { + var toGenerateTaskList = item.ActualGlobalTaskList.Except(item.GeneratedGlobalTaskList).Take(toGenerateCount).ToList(); + + foreach (var toGenerateTask in toGenerateTaskList) + { + await _taskMedicalReviewRepository.AddAsync(new TaskMedicalReview() { DoctorUserId = (Guid)toGenerateTask.DoctorUserId, TrialId = toGenerateTask.TrialId, VisitTaskId = toGenerateTask.TaskId ,MedicalManagerUserId= defalutMIMUserId }); + } + } + + + } + if (item.PlanJudgeCount > item.GeneratedJudgeCount) + { + var needGenerateCount = item.PlanJudgeCount - item.GeneratedJudgeCount; + + var canGenerateCount = item.ActualJudgeCount - item.GeneratedGlobalCount; + + var toGenerateCount = canGenerateCount > needGenerateCount ? needGenerateCount : canGenerateCount; + + if (toGenerateCount > 0) + { + var toGenerateTaskList = item.ActualJudgeTaskList.Except(item.GeneratedJudgeTaskList).Take(toGenerateCount).ToList(); + + foreach (var toGenerateTask in toGenerateTaskList) + { + await _taskMedicalReviewRepository.AddAsync(new TaskMedicalReview() { DoctorUserId = (Guid)toGenerateTask.DoctorUserId, TrialId = toGenerateTask.TrialId, VisitTaskId = toGenerateTask.TaskId, MedicalManagerUserId = defalutMIMUserId }); + } + } + + } + if (item.PlanTumorCount > item.GeneratedTumorCount) + { + var needGenerateCount = item.PlanTumorCount - item.GeneratedTumorCount; + + var canGenerateCount = item.ActualTumorCount - item.GeneratedGlobalCount; + + var toGenerateCount = canGenerateCount > needGenerateCount ? needGenerateCount : canGenerateCount; + + if (toGenerateCount > 0) + { + var toGenerateTaskList = item.ActualTumorTaskList.Except(item.GeneratedTumorTaskList).Take(toGenerateCount).ToList(); + + foreach (var toGenerateTask in toGenerateTaskList) + { + await _taskMedicalReviewRepository.AddAsync(new TaskMedicalReview() { DoctorUserId = (Guid)toGenerateTask.DoctorUserId, TrialId = toGenerateTask.TrialId, VisitTaskId = toGenerateTask.TaskId, MedicalManagerUserId = defalutMIMUserId }); + } + } + + } + if (item.PlanVisitCount > item.GeneratedVisitCount) + { + var needGenerateCount = item.PlanVisitCount - item.GeneratedVisitCount; + + var canGenerateCount = item.ActualVisitCount - item.GeneratedGlobalCount; + + var toGenerateCount = canGenerateCount > needGenerateCount ? needGenerateCount : canGenerateCount; + + if (toGenerateCount > 0) + { + + var toGenerateTaskList = item.ActualVisitTaskList.Except(item.GeneratedVisitTaskList).Take(toGenerateCount).ToList(); + + foreach (var toGenerateTask in toGenerateTaskList) + { + await _taskMedicalReviewRepository.AddAsync(new TaskMedicalReview() { DoctorUserId = (Guid)toGenerateTask.DoctorUserId, TrialId = toGenerateTask.TrialId, VisitTaskId = toGenerateTask.TaskId, MedicalManagerUserId = defalutMIMUserId }); + } + } + + } + + } + + } + + + + return ResponseOutput.Ok(); + + } /// @@ -121,11 +237,11 @@ namespace IRaCIS.Core.Application.Service /// /// [HttpDelete("{trialId:guid}")] - public async Task> GetMIMUserList(Guid trialId) + public async Task> GetMIMUserList(Guid trialId) { - var query = _trialUserRepository.Where(t => t.User.UserTypeEnum == Domain.Share.UserTypeEnum.MIM && t.TrialId== trialId).Select(t => t.User).ProjectTo(_mapper.ConfigurationProvider); + var query = _trialUserRepository.Where(t => t.User.UserTypeEnum == Domain.Share.UserTypeEnum.MIM && t.TrialId == trialId).Select(t => t.User).ProjectTo(_mapper.ConfigurationProvider); - return await query.ToListAsync(); + return await query.ToListAsync(); } } diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index 0f8e9369d..dbb3ee1d8 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -283,6 +283,7 @@ namespace IRaCIS.Core.Application.Service var visitTaskQueryable = _visitTaskReReadingRepository .Where(t => t.NewReReadingTask.TrialId == queryVisitTask.TrialId) .WhereIf(queryVisitTask.RootReReadingTaskId != null, t => t.RootReReadingTaskId == queryVisitTask.RootReReadingTaskId || t.OriginalReReadingTaskId == queryVisitTask.RootReReadingTaskId) + .WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskCode), t => t.OriginalReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode) || t.RootReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode)) .WhereIf(queryVisitTask.SiteId != null, t => t.NewReReadingTask.Subject.SiteId == queryVisitTask.SiteId) .WhereIf(queryVisitTask.SubjectId != null, t => t.NewReReadingTask.SubjectId == queryVisitTask.SubjectId) @@ -431,6 +432,7 @@ namespace IRaCIS.Core.Application.Service .Where(t => t.OriginalReReadingTask.DoctorUserId == _userInfo.Id) .Where(t => t.NewReReadingTask.TrialId == queryVisitTask.TrialId) .WhereIf(queryVisitTask.RootReReadingTaskId != null, t => t.RootReReadingTaskId == queryVisitTask.RootReReadingTaskId || t.OriginalReReadingTaskId == queryVisitTask.RootReReadingTaskId) + .WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskCode), t => t.OriginalReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode) || t.RootReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode)) .WhereIf(queryVisitTask.SiteId != null, t => t.NewReReadingTask.Subject.SiteId == queryVisitTask.SiteId) .WhereIf(queryVisitTask.SubjectId != null, t => t.NewReReadingTask.SubjectId == queryVisitTask.SubjectId) .WhereIf(queryVisitTask.IsUrgent != null, t => t.NewReReadingTask.IsUrgent == queryVisitTask.IsUrgent) diff --git a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs index 63dd4738b..27611a1d1 100644 --- a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs @@ -171,6 +171,8 @@ namespace IRaCIS.Core.Application.Service CreateMap(); CreateMap() + + .ForMember(o => o.UserId, t => t.MapFrom(u => u.Id)) .ForMember(o => o.UserCode, t => t.MapFrom(u => u.UserCode)) .ForMember(o => o.UserName, t => t.MapFrom(u => u.UserName)) .ForMember(o => o.FullName, t => t.MapFrom(u => u.FullName)) @@ -180,18 +182,18 @@ namespace IRaCIS.Core.Application.Service CreateMap() .ForMember(o => o.DoctorUser, t => t.MapFrom(u => u.DoctorUser)) - .ForMember(o => o.ActualVisitTaskIdList, t => t.MapFrom(u => u.DoctorVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Visit && t.TaskState == TaskState.Effect && t.ReadingTaskState==ReadingTaskState.HaveSigned).OrderBy(t=>t.SignTime).Select(t=>t.Id))) - .ForMember(o => o.ActualJudgeTaskIdList, t => t.MapFrom(u => u.DoctorVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Judge && t.TaskState == TaskState.Effect && - t.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.SignTime).Select(t => t.Id))) - .ForMember(o => o.ActualGlobalTaskIdList, t => t.MapFrom(u => u.DoctorVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Global && t.TaskState == TaskState.Effect && - t.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.SignTime).Select(t => t.Id))) - .ForMember(o => o.ActualTumorTaskIdList, t => t.MapFrom(u => u.DoctorVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Oncology && t.TaskState == TaskState.Effect && - t.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.SignTime).Select(t => t.Id))) + .ForMember(o => o.ActualVisitTaskList, t => t.MapFrom(u => u.DoctorVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Visit && t.TaskState == TaskState.Effect && t.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.SignTime).Select(t => new TaskBasicIdView() { TaskId = t.Id, TrialId = t.TrialId, DoctorUserId = t.DoctorUserId }))) + .ForMember(o => o.ActualJudgeTaskList, t => t.MapFrom(u => u.DoctorVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Judge && t.TaskState == TaskState.Effect && + t.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.SignTime).Select(t => new TaskBasicIdView() { TaskId = t.Id, TrialId = t.TrialId, DoctorUserId = t.DoctorUserId }))) + .ForMember(o => o.ActualGlobalTaskList, t => t.MapFrom(u => u.DoctorVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Global && t.TaskState == TaskState.Effect && + t.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.SignTime).Select(t => new TaskBasicIdView() { TaskId = t.Id, TrialId = t.TrialId, DoctorUserId = t.DoctorUserId }))) + .ForMember(o => o.ActualTumorTaskList, t => t.MapFrom(u => u.DoctorVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Oncology && t.TaskState == TaskState.Effect && + t.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.SignTime).Select(t => new TaskBasicIdView() { TaskId = t.Id, TrialId = t.TrialId, DoctorUserId = t.DoctorUserId }))) - .ForMember(o => o.GeneratedGlobalTaskIdList, t => t.MapFrom(u => u.TaskMedicalReviewList.Where(t => t.VisitTask.ReadingCategory == ReadingCategory.Global && t.VisitTask.TaskState == TaskState.Effect && t.VisitTask.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.VisitTask.SignTime).Select(t=>t.VisitTaskId))) - .ForMember(o => o.GeneratedJudgeTaskIdList, t => t.MapFrom(u => u.TaskMedicalReviewList.Where(t => t.VisitTask.ReadingCategory == ReadingCategory.Judge && t.VisitTask.TaskState == TaskState.Effect && t.VisitTask.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.VisitTask.SignTime).Select(t => t.VisitTaskId))) - .ForMember(o => o.GeneratedTumorTaskIdList, t => t.MapFrom(u => u.TaskMedicalReviewList.Where(t => t.VisitTask.ReadingCategory == ReadingCategory.Oncology && t.VisitTask.TaskState == TaskState.Effect && t.VisitTask.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.VisitTask.SignTime).Select(t => t.VisitTaskId))) - .ForMember(o => o.GeneratedVisitTaskIdList, t => t.MapFrom(u => u.TaskMedicalReviewList.Where(t => t.VisitTask.ReadingCategory == ReadingCategory.Visit && t.VisitTask.TaskState == TaskState.Effect && t.VisitTask.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.VisitTask.SignTime).Select(t => t.VisitTaskId))); + .ForMember(o => o.GeneratedGlobalTaskList, t => t.MapFrom(u => u.TaskMedicalReviewList.Where(t => t.VisitTask.ReadingCategory == ReadingCategory.Global && t.VisitTask.TaskState == TaskState.Effect && t.VisitTask.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.VisitTask.SignTime).Select(t => new TaskBasicIdView() { TaskId = t.VisitTaskId, TrialId = t.TrialId, DoctorUserId = t.DoctorUserId }))) + .ForMember(o => o.GeneratedJudgeTaskList, t => t.MapFrom(u => u.TaskMedicalReviewList.Where(t => t.VisitTask.ReadingCategory == ReadingCategory.Judge && t.VisitTask.TaskState == TaskState.Effect && t.VisitTask.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.VisitTask.SignTime).Select(t => new TaskBasicIdView() { TaskId = t.VisitTaskId, TrialId = t.TrialId, DoctorUserId = t.DoctorUserId }))) + .ForMember(o => o.GeneratedTumorTaskList, t => t.MapFrom(u => u.TaskMedicalReviewList.Where(t => t.VisitTask.ReadingCategory == ReadingCategory.Oncology && t.VisitTask.TaskState == TaskState.Effect && t.VisitTask.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.VisitTask.SignTime).Select(t => new TaskBasicIdView() {TaskId = t.VisitTaskId,TrialId=t.TrialId,DoctorUserId=t.DoctorUserId }))) + .ForMember(o => o.GeneratedVisitTaskList, t => t.MapFrom(u => u.TaskMedicalReviewList.Where(t => t.VisitTask.ReadingCategory == ReadingCategory.Visit && t.VisitTask.TaskState == TaskState.Effect && t.VisitTask.ReadingTaskState == ReadingTaskState.HaveSigned).OrderBy(t => t.VisitTask.SignTime).Select(t => new TaskBasicIdView() { TaskId = t.VisitTaskId, TrialId = t.TrialId, DoctorUserId = t.DoctorUserId }))); CreateMap(); diff --git a/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs b/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs index e7ad11a13..a0318cdcf 100644 --- a/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs +++ b/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs @@ -37,6 +37,8 @@ namespace IRaCIS.Core.Domain.Models public VisitTask NewReReadingTask { get; set; } + public VisitTask RootReReadingTask { get; set; } + public VisitTask OriginalReReadingTask { get; set; } //申请回退类型