From 243cbec7823a628dab28780c09332d36f6585972 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Mon, 20 Jun 2022 15:54:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A3=81=E5=88=A4=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=88=86=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 9 +++- .../DTO/TaskAllocationRuleViewModel.cs | 23 ++++++---- .../Allocation/DTO/VisitTaskViewModel.cs | 10 +++-- .../Interface/ITaskAllocationRuleService.cs | 2 +- .../Allocation/TaskAllocationRuleService.cs | 15 +++++-- .../Allocation/VisitTaskHelpeService.cs | 16 +++---- .../Service/Allocation/VisitTaskService.cs | 42 +++++++++---------- .../TrialSiteUser/DTO/TrialConfigDTO.cs | 29 ++++++++++--- .../TrialSiteUser/TrialConfigService.cs | 26 +++++++++++- .../Service/TrialSiteUser/_MapConfig.cs | 7 +++- .../Allocation/AllocationRelation.cs | 11 +++++ IRaCIS.Core.Domain/Allocation/SubjectUser.cs | 2 +- .../Allocation/TaskAllocationRule.cs | 4 ++ IRaCIS.Core.Domain/Allocation/VisitTask.cs | 2 +- IRaCIS.Core.Domain/Trial/Trial.cs | 4 ++ 15 files changed, 143 insertions(+), 59 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 3c4eeb975..4f599f8a7 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -3344,7 +3344,14 @@ - 配置项目赌片规则信息 + 配置项目读片查看规则 + + + + + + + 配置项目 裁判任务 分配规则 diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskAllocationRuleViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskAllocationRuleViewModel.cs index 42f1dc753..3becd0c7c 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskAllocationRuleViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskAllocationRuleViewModel.cs @@ -39,37 +39,42 @@ namespace IRaCIS.Core.Application.ViewModel //该医生未应用Subject 数量 不是两者相减 跟批量勾选有关系 public int? WaitApplySelfSubjectCount { get; set; } + + //该医生未应用的任务数 public int? WaitApplySelfTaskCount { get; set; } + //该医生已应用的任务数 + public int? SelfApplyedTaskCount { get; set; } + + + //总共未应用的Subejct 数量 public int? WaitApplyTotalSubjectCount { get; set; } public int? WaitApplyTotalTaskCount { get; set; } - //该医生已应用的任务数 - public int? SelfApplyedTaskCount { get; set; } - //已分配但是未读片签名的数量 + //已分配该医生但是未读片签名的数量 public int? SelfUndoTaskCount { get; set; } - - //总共已应用 的Subject 数 public int? ApplyedTotalSubjectCount { get; set; } + //总共 已经应用的任务总数 + public int? ApplyedTotalTaskCount { get; set; } + + //系统 Subject数 public int? TotalSubjectCount { get; set; } //总任务数 public int? TotalTaskCount { get; set; } - //总共 已经应用的任务总数 - public int? ApplyedTotalTaskCount { get; set; } @@ -106,6 +111,8 @@ namespace IRaCIS.Core.Application.ViewModel { [NotDefault] public Guid TrialId { get; set; } + + public bool? IsJudgeDoctor { get; set; } } /// TaskAllocationRuleAddOrEdit 列表查询参数模型 @@ -116,6 +123,8 @@ namespace IRaCIS.Core.Application.ViewModel public int PlanReadingRatio { get; set; } public Guid DoctorUserId { get; set; } public bool IsEnable { get; set; } + + public bool IsJudgeDoctor { get; set; } public string Note { get; set; } = string.Empty; } diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs index 8d865c222..36e400676 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs @@ -30,7 +30,7 @@ namespace IRaCIS.Core.Application.ViewModel public string TaskCode { get; set; } public bool IsUrgent { get; set; } - public int ArmEnum { get; set; } + public Arm ArmEnum { get; set; } public Guid? DoctorUserId { get; set; } @@ -254,7 +254,7 @@ namespace IRaCIS.Core.Application.ViewModel public DateTime? AssignTime { get; set; } - public int ArmEnum { get; set; } + public Arm ArmEnum { get; set; } public bool IsAssignDoctorApplyedTask { get; set; } } @@ -276,7 +276,7 @@ namespace IRaCIS.Core.Application.ViewModel { public Guid DoctorUserId { get; set; } - public int ArmEnum { get; set; } + public Arm ArmEnum { get; set; } } public class CancelSubjectAssignCommand @@ -304,7 +304,7 @@ namespace IRaCIS.Core.Application.ViewModel { public Guid SubjectId { get; set; } - public int ArmEnum { get; set; } + public Arm ArmEnum { get; set; } } @@ -312,6 +312,8 @@ namespace IRaCIS.Core.Application.ViewModel { public Guid TrialId { get; set; } + public bool? IsJudgeDoctor { get; set; } + public List SubjectIdList { get; set; } = new List(); } diff --git a/IRaCIS.Core.Application/Service/Allocation/Interface/ITaskAllocationRuleService.cs b/IRaCIS.Core.Application/Service/Allocation/Interface/ITaskAllocationRuleService.cs index 1395a4779..8947d907e 100644 --- a/IRaCIS.Core.Application/Service/Allocation/Interface/ITaskAllocationRuleService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/Interface/ITaskAllocationRuleService.cs @@ -18,7 +18,7 @@ namespace IRaCIS.Core.Application.Interfaces Task AddOrUpdateTaskAllocationRule(TaskAllocationRuleAddOrEdit addOrEditTaskAllocationRule); - Task DeleteTaskAllocationRule(Guid taskAllocationRuleId); + Task DeleteTaskAllocationRule(Guid taskAllocationRuleId, bool isJudgeDoctor); } diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs index 011b0a21c..0225efa46 100644 --- a/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs @@ -36,11 +36,12 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task<(List,object)> GetTaskAllocationRuleList(TaskAllocationRuleQuery queryTaskAllocationRule) { - var taskAllocationRuleQueryable = _taskAllocationRuleRepository.Where(t=>t.TrialId== queryTaskAllocationRule.TrialId) + var taskAllocationRuleQueryable = _taskAllocationRuleRepository.Where(t=>t.TrialId== queryTaskAllocationRule.TrialId) + .WhereIf(queryTaskAllocationRule.IsJudgeDoctor!=null ,t=>t.IsJudgeDoctor== queryTaskAllocationRule.IsJudgeDoctor) .ProjectTo(_mapper.ConfigurationProvider); - var trialTaskConfig= _trialRepository.Where(t=>t.Id==queryTaskAllocationRule.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault(); + var trialTaskConfig= _trialRepository.Where(t=>t.Id==queryTaskAllocationRule.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault(); return (await taskAllocationRuleQueryable.ToListAsync(), trialTaskConfig); } @@ -54,6 +55,7 @@ namespace IRaCIS.Core.Application.Service public async Task> GetSubjectApplyDoctorTaskStatList(ApplySubjectCommand assignConfirmCommand) { var taskAllocationRuleQueryable = _taskAllocationRuleRepository.Where(t => t.TrialId == assignConfirmCommand.TrialId) + .WhereIf(assignConfirmCommand.IsJudgeDoctor != null, t => t.IsJudgeDoctor == assignConfirmCommand.IsJudgeDoctor) .ProjectTo(_mapper.ConfigurationProvider, new { subjectIdList = assignConfirmCommand.SubjectIdList }); return await taskAllocationRuleQueryable.ToListAsync(); @@ -76,9 +78,14 @@ namespace IRaCIS.Core.Application.Service } - [HttpDelete("{taskAllocationRuleId:guid}")] - public async Task DeleteTaskAllocationRule(Guid taskAllocationRuleId) + [HttpDelete("{taskAllocationRuleId:guid}/{isJudgeDoctor:bool}")] + public async Task DeleteTaskAllocationRule(Guid taskAllocationRuleId, bool isJudgeDoctor ) { + if(await _taskAllocationRuleRepository.Where(t => t.Id == taskAllocationRuleId && t.IsJudgeDoctor== isJudgeDoctor).AnyAsync(t => t.DoctorVisitTaskList.Count() > 0)) + { + return ResponseOutput.NotOk("已分配任务给该医生,不允许删除"); + } + var success = await _taskAllocationRuleRepository.DeleteFromQueryAsync(t => t.Id == taskAllocationRuleId, true); diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs index ac59c0d4d..917c0bbcb 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs @@ -78,7 +78,7 @@ namespace IRaCIS.Core.Application.Service TaskBlindName = subjectVisit.BlindName, TaskName = subjectVisit.VisitName, CheckPassedTime = subjectVisit.CheckPassedTime, - ArmEnum = 1,//特殊 + ArmEnum = Arm.DoubleReadingArm1,//特殊 Code = currentMaxCodeInt + 1, SourceSubjectVisitId=subjectVisit.Id, TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 1, nameof(VisitTask)), @@ -93,7 +93,7 @@ namespace IRaCIS.Core.Application.Service TaskBlindName = subjectVisit.BlindName, TaskName = subjectVisit.VisitName, CheckPassedTime = subjectVisit.CheckPassedTime, - ArmEnum = 2,//特殊 + ArmEnum = Arm.DoubleReadingArm2,//特殊 Code = currentMaxCodeInt + 2, SourceSubjectVisitId = subjectVisit.Id, TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 2, nameof(VisitTask)), @@ -117,10 +117,6 @@ namespace IRaCIS.Core.Application.Service if (trialConfig.IsFollowVisitAutoAssign) { - - - - #region 验证历史任务 var allocateSubjectArmList = _visitTaskRepository.Where(t => t.SubjectId == subjectVisit.SubjectId && t.TrialId == subjectVisit.TrialId && t.DoctorUserId != null).Select(t => new { t.DoctorUserId, t.ArmEnum }).Distinct().ToList(); @@ -140,7 +136,7 @@ namespace IRaCIS.Core.Application.Service } //手动分配的时候 如果只分配了Arm1 没有分配Arm2 就会有问题 - if (!(allocateSubjectArmList.Any(t => t.ArmEnum == 1) && allocateSubjectArmList.Any(t => t.ArmEnum == 2))) + if (!(allocateSubjectArmList.Any(t => t.ArmEnum == Arm.DoubleReadingArm1) && allocateSubjectArmList.Any(t => t.ArmEnum == Arm.DoubleReadingArm2))) { throw new BusinessValidationFailedException("请确认是否改了配置,或者手动分配时,只分配了一个Arm "); } @@ -155,8 +151,8 @@ namespace IRaCIS.Core.Application.Service task2.TaskState = defaultState; //分配给对应Arm的人 - task1.DoctorUserId = assignConfigList.FirstOrDefault(t => t.ArmEnum == 1).DoctorUserId; - task2.DoctorUserId = assignConfigList.FirstOrDefault(t => t.ArmEnum == 2).DoctorUserId; + task1.DoctorUserId = assignConfigList.FirstOrDefault(t => t.ArmEnum == Arm.DoubleReadingArm1).DoctorUserId; + task2.DoctorUserId = assignConfigList.FirstOrDefault(t => t.ArmEnum == Arm.DoubleReadingArm1).DoctorUserId; } } @@ -210,7 +206,7 @@ namespace IRaCIS.Core.Application.Service TaskBlindName = subjectVisit.BlindName, TaskName = subjectVisit.VisitName, CheckPassedTime = subjectVisit.CheckPassedTime, - ArmEnum = 0, //特殊 + ArmEnum = Arm.DoubleReadingArm1, //特殊 Code = currentMaxCodeInt + 1, SourceSubjectVisitId = subjectVisit.Id, TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 1, nameof(VisitTask)), diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index ae3b70d3c..4857e54ed 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -79,7 +79,7 @@ namespace IRaCIS.Core.Application.Service var pageList = await visitTaskQueryable.ToPagedListAsync(queryVisitTask.PageIndex, queryVisitTask.PageSize, queryVisitTask.SortField, queryVisitTask.Asc, string.IsNullOrWhiteSpace(queryVisitTask.SortField), defalutSortArray); - var trialTaskConfig = _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault(); + var trialTaskConfig = _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault(); return (pageList, trialTaskConfig); } @@ -791,35 +791,35 @@ namespace IRaCIS.Core.Application.Service .OrderByDescending(t => t.SubjectCount).FirstOrDefault()?.ArmEnum; //存放医生分配的Arm - var doctor1Arm = 1; - var doctor2Arm = 2; + var doctor1Arm = Arm.DoubleReadingArm1; + var doctor2Arm = Arm.DoubleReadingArm2; if ((preferredDoctor1Arm == null && preferredDoctor2Arm == null) || - (preferredDoctor1Arm == null && preferredDoctor2Arm == 2) || - (preferredDoctor1Arm == 1 && preferredDoctor2Arm == null) || - (preferredDoctor1Arm == 1 && preferredDoctor2Arm == 2) + (preferredDoctor1Arm == null && preferredDoctor2Arm == Arm.DoubleReadingArm2) || + (preferredDoctor1Arm == Arm.DoubleReadingArm1 && preferredDoctor2Arm == null) || + (preferredDoctor1Arm == Arm.DoubleReadingArm1 && preferredDoctor2Arm == Arm.DoubleReadingArm2) ) { - doctor1Arm = 1; - doctor2Arm = 2; + doctor1Arm = Arm.DoubleReadingArm1; + doctor2Arm = Arm.DoubleReadingArm2; } - else if ((preferredDoctor1Arm == null && preferredDoctor2Arm == 1) || - (preferredDoctor1Arm == 2 && preferredDoctor2Arm == 1) || - (preferredDoctor1Arm == 2 && preferredDoctor2Arm == null)) + else if ((preferredDoctor1Arm == null && preferredDoctor2Arm == Arm.DoubleReadingArm1) || + (preferredDoctor1Arm == Arm.DoubleReadingArm2 && preferredDoctor2Arm == Arm.DoubleReadingArm1) || + (preferredDoctor1Arm == Arm.DoubleReadingArm2 && preferredDoctor2Arm == null)) { - doctor1Arm = 2; - doctor2Arm = 1; + doctor1Arm = Arm.DoubleReadingArm2; + doctor2Arm = Arm.DoubleReadingArm1; } - else if (preferredDoctor1Arm == 1 && preferredDoctor2Arm == 1) + else if (preferredDoctor1Arm == Arm.DoubleReadingArm1 && preferredDoctor2Arm == Arm.DoubleReadingArm1) { - doctor1Arm = 1; - doctor2Arm = 2; + doctor1Arm = Arm.DoubleReadingArm1; + doctor2Arm = Arm.DoubleReadingArm2; } - else if (preferredDoctor1Arm == 2 && preferredDoctor2Arm == 2) + else if (preferredDoctor1Arm == Arm.DoubleReadingArm2 && preferredDoctor2Arm == Arm.DoubleReadingArm2) { - doctor1Arm = 2; - doctor2Arm = 1; + doctor1Arm = Arm.DoubleReadingArm2; + doctor2Arm = Arm.DoubleReadingArm1; } @@ -861,10 +861,10 @@ namespace IRaCIS.Core.Application.Service waitAllocationDoctorList.FirstOrDefault(t => t.DoctorUserId == allocateDoctor.DoctorUserId).SubjectArmList.Add(new SubjectArm() { SubjectId = subject.SubjectId, - ArmEnum = 0 + ArmEnum = Arm.SingleReadingArm }); - await _subjectUserRepository.AddAsync(new SubjectUser() { TrialId = trialId, SubjectId = subject.SubjectId, DoctorUserId = allocateDoctor.DoctorUserId, ArmEnum = 0, AssignTime = DateTime.Now }); + await _subjectUserRepository.AddAsync(new SubjectUser() { TrialId = trialId, SubjectId = subject.SubjectId, DoctorUserId = allocateDoctor.DoctorUserId, ArmEnum = Arm.SingleReadingArm, AssignTime = DateTime.Now }); } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs index a085d8406..849e9e3ed 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs @@ -74,7 +74,7 @@ namespace IRaCIS.Core.Application.Contracts public string Modalitys { get; set; } = string.Empty; - + } public class TrialProcessConfig @@ -123,7 +123,7 @@ namespace IRaCIS.Core.Application.Contracts public bool? IsClinicalReading { get; set; } - public int ArbitrationRule { get; set; } + public int ArbitrationRule { get; set; } public int? DigitPlaces { get; set; } @@ -144,10 +144,19 @@ namespace IRaCIS.Core.Application.Contracts public TaskAllocateDefaultState FollowGlobalVisitAutoAssignDefaultState { get; set; } + + + } + + public class TrialTaskConfigView : TrialTaskConfig + { public ReadingTaskViewMethod ReadingTaskViewEnum { get; set; } public bool IsReadingTaskViewInOrder { get; set; } = true; + public bool IsFollowJudgeTaskAutoAssign { get; set; } + + public TaskAllocateDefaultState FollowJudgeTaskAutoAssignDefaultState { get; set; } } public class TrialReadingTaskViewConfig @@ -159,6 +168,16 @@ namespace IRaCIS.Core.Application.Contracts public bool IsReadingTaskViewInOrder { get; set; } = true; } + public class TrialJudgeTaskConfig + { + + public Guid TrialId { get; set; } + + public bool IsFollowJudgeTaskAutoAssign { get; set; } + + public TaskAllocateDefaultState FollowJudgeTaskAutoAssignDefaultState { get; set; } + } + public class TrialUrgentConfig { public Guid TrialId { get; set; } @@ -181,7 +200,7 @@ namespace IRaCIS.Core.Application.Contracts } - public class TrialStateChangeDTO + public class TrialStateChangeDTO { public Guid Id { get; set; } public Guid TrialId { get; set; } @@ -223,7 +242,7 @@ namespace IRaCIS.Core.Application.Contracts public string SignCode { get; set; } = string.Empty; } - public class TrialConfigDTO: BasicTrialConfig + public class TrialConfigDTO : BasicTrialConfig { @@ -271,7 +290,7 @@ namespace IRaCIS.Core.Application.Contracts public bool? IsClinicalReading { get; set; } - public int ArbitrationRule { get; set; } + public int ArbitrationRule { get; set; } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index e12b720de..db8a8b370 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -406,7 +406,7 @@ namespace IRaCIS.Core.Application _mapper.Map(trialConfig, trialInfo); - if (_taskAllocationRuleRepository.Where(t => t.TrialId == trialConfig.TrialId && t.IsEnable).Sum(t => t.PlanReadingRatio) != 100) + if (_taskAllocationRuleRepository.Where(t => t.TrialId == trialConfig.TrialId && t.IsEnable && t.IsJudgeDoctor==false).Sum(t => t.PlanReadingRatio) != 100) { return ResponseOutput.NotOk("已启用医生比率不为百分之100"); } @@ -416,7 +416,7 @@ namespace IRaCIS.Core.Application /// - /// 配置项目赌片规则信息 + /// 配置项目读片查看规则 /// /// /// @@ -430,6 +430,28 @@ namespace IRaCIS.Core.Application return ResponseOutput.Ok(await _trialRepository.SaveChangesAsync()); } + /// + /// 配置项目 裁判任务 分配规则 + /// + /// + /// + [HttpPut] + public async Task ConfigJudgeTaskAllocateRule(TrialJudgeTaskConfig trialConfig) + { + var trialInfo = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId)).IfNullThrowException(); + + _mapper.Map(trialConfig, trialInfo); + + if (_taskAllocationRuleRepository.Where(t => t.TrialId == trialConfig.TrialId && t.IsEnable && t.IsJudgeDoctor ).Sum(t => t.PlanReadingRatio) != 100) + { + return ResponseOutput.NotOk("已启用医生比率不为百分之100"); + } + + return ResponseOutput.Ok(await _trialRepository.SaveChangesAsync()); + } + + + } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs index 10102c15e..cadb287d5 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs @@ -17,11 +17,14 @@ namespace IRaCIS.Core.Application.Service //CreateMap().ForMember(t => t.UserTypes, u => u.MapFrom(k => string.Join(',', k.UserTypeList))); - - + + CreateMap().ForMember(d => d.Id, u => u.MapFrom(s => s.TrialId)).ReverseMap(); CreateMap().ForMember(d => d.Id, u => u.MapFrom(s => s.TrialId)).ReverseMap(); CreateMap().ForMember(d => d.Id, u => u.MapFrom(s => s.TrialId)).ReverseMap(); + + CreateMap().ForMember(d => d.Id, u => u.MapFrom(s => s.TrialId)); + CreateMap(); diff --git a/IRaCIS.Core.Domain.Share/Allocation/AllocationRelation.cs b/IRaCIS.Core.Domain.Share/Allocation/AllocationRelation.cs index b0bbb4601..1b7488a0a 100644 --- a/IRaCIS.Core.Domain.Share/Allocation/AllocationRelation.cs +++ b/IRaCIS.Core.Domain.Share/Allocation/AllocationRelation.cs @@ -29,6 +29,17 @@ namespace IRaCIS.Core.Domain.Share Allocated = 2, } + public enum Arm + { + SingleReadingArm=0, + + DoubleReadingArm1 = 1, + + DoubleReadingArm2 = 2, + + JudgeArm=3 + } + /// /// 分配对象 /// diff --git a/IRaCIS.Core.Domain/Allocation/SubjectUser.cs b/IRaCIS.Core.Domain/Allocation/SubjectUser.cs index 287f10564..34ae75e9f 100644 --- a/IRaCIS.Core.Domain/Allocation/SubjectUser.cs +++ b/IRaCIS.Core.Domain/Allocation/SubjectUser.cs @@ -61,7 +61,7 @@ namespace IRaCIS.Core.Domain.Models public User DoctorUser { get; set; } - public int ArmEnum { get; set; } + public Arm ArmEnum { get; set; } public List SubjectArmVisitTaskList { get; set; } diff --git a/IRaCIS.Core.Domain/Allocation/TaskAllocationRule.cs b/IRaCIS.Core.Domain/Allocation/TaskAllocationRule.cs index adb3d2676..2c4894d18 100644 --- a/IRaCIS.Core.Domain/Allocation/TaskAllocationRule.cs +++ b/IRaCIS.Core.Domain/Allocation/TaskAllocationRule.cs @@ -71,6 +71,10 @@ namespace IRaCIS.Core.Domain.Models public string Note { get; set; } = string.Empty; + //是否是裁判医生 裁判医生单独加入 + public bool IsJudgeDoctor {get;set;} + + public List DoctorVisitTaskList { get; set; } = new List(); diff --git a/IRaCIS.Core.Domain/Allocation/VisitTask.cs b/IRaCIS.Core.Domain/Allocation/VisitTask.cs index 95f0cbf13..0f7fa69a4 100644 --- a/IRaCIS.Core.Domain/Allocation/VisitTask.cs +++ b/IRaCIS.Core.Domain/Allocation/VisitTask.cs @@ -117,7 +117,7 @@ namespace IRaCIS.Core.Domain.Models /// 0 代表 单重阅片 产生的任务 否则就是双重 任务 1 任务 2 /// [Required] - public int ArmEnum { get; set; } + public Arm ArmEnum { get; set; } //分配状态 diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs index 2646ad49f..cb7f0cc85 100644 --- a/IRaCIS.Core.Domain/Trial/Trial.cs +++ b/IRaCIS.Core.Domain/Trial/Trial.cs @@ -328,6 +328,10 @@ namespace IRaCIS.Core.Domain.Models //ȫԶ public bool IsFollowGlobalVisitAutoAssign { get; set; } + public bool IsFollowJudgeTaskAutoAssign { get; set; } + + public TaskAllocateDefaultState FollowJudgeTaskAutoAssignDefaultState { get; set; } + //ԶĬ״̬ public TaskAllocateDefaultState FollowVisitAutoAssignDefaultState { get; set; }