From 481b232f23f8725aa6c52c964bcd460769c50a02 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 16 Aug 2022 15:01:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=85=E7=89=87=E4=BA=BA=E5=85=A5=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 2 +- .../Allocation/TaskAllocationRuleService.cs | 2 +- .../Service/Doctor/DoctorListService.cs | 20 ++++++------ .../Service/Doctor/DoctorService.cs | 8 ++--- .../Service/Doctor/_MapConfig.cs | 8 ++--- .../Service/Inspection/InspectionService.cs | 2 +- .../Service/Stat/StatisticsService.cs | 18 +++++------ .../TrialSiteUser/DTO/TrialViewModel.cs | 2 +- .../TrialSiteUser/Interface/ITrialService.cs | 3 +- .../TrialSiteUser/TrialConfigService.cs | 2 +- .../Service/TrialSiteUser/TrialService.cs | 14 ++++---- .../Service/WorkLoad/DoctorWorkloadService.cs | 4 +-- .../Service/WorkLoad/EnrollService.cs | 32 +++++++++---------- IRaCIS.Core.Domain/Trial/Enroll.cs | 5 ++- IRaCIS.Core.Domain/Trial/EnrollDetail.cs | 3 +- IRaCIS.Core.Domain/Trial/Trial.cs | 2 ++ 16 files changed, 65 insertions(+), 62 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index f62caf44b..7a723c8da 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -7038,7 +7038,7 @@ 分页获取医生参与的临床实验项目列表(查询条件) - + 医生确认入组或拒绝入组 diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs index 5ba9652dd..ee350d78a 100644 --- a/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs @@ -158,7 +158,7 @@ namespace IRaCIS.Core.Application.Service [HttpGet("{trialId:guid}")] public async Task> GetDoctorUserSelectList(Guid trialId, [FromServices] IRepository _enrollRepository) { - var query = from enroll in _enrollRepository.Where(t => t.TrialId == trialId && t.EnrollStatus >= (int)EnrollStatus.ConfirmIntoGroup) + var query = from enroll in _enrollRepository.Where(t => t.TrialId == trialId && t.EnrollStatus >= EnrollStatus.ConfirmIntoGroup) join user in _userRepository.AsQueryable() on enroll.DoctorId equals user.DoctorId select new TrialDoctorUserSelectView() { diff --git a/IRaCIS.Core.Application/Service/Doctor/DoctorListService.cs b/IRaCIS.Core.Application/Service/Doctor/DoctorListService.cs index ed4c34311..9ca8c0232 100644 --- a/IRaCIS.Core.Application/Service/Doctor/DoctorListService.cs +++ b/IRaCIS.Core.Application/Service/Doctor/DoctorListService.cs @@ -48,7 +48,7 @@ namespace IRaCIS.Application.Services //用户类型 看到简历的范围这里需要确认 .WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ReviewerCoordinator, t => t.UserList.Any(u => u.UserId == _userInfo.Id)) .WhereIf(count > 0, t => t.DoctorDicRelationList.Count(u => guidList.Contains(u.DictionaryId)) == count) - .WhereIf(doctorSearch.EnrollStatus != null && doctorSearch.EnrollStatus == (int)ReviewerEnrollStatus.Yes, t => t.EnrollList.Any(u => u.EnrollStatus == (int)EnrollStatus.DoctorReading)) + .WhereIf(doctorSearch.EnrollStatus != null && doctorSearch.EnrollStatus == (int)ReviewerEnrollStatus.Yes, t => t.EnrollList.Any(u => u.EnrollStatus == EnrollStatus.DoctorReading)) .ProjectTo(_mapper.ConfigurationProvider); @@ -93,14 +93,14 @@ namespace IRaCIS.Application.Services //用户类型 看到简历的范围这里需要确认 .WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ReviewerCoordinator, t => t.UserList.Any(u => u.UserId == _userInfo.Id)) .WhereIf(count > 0, t => t.DoctorDicRelationList.Count(u => guidList.Contains(u.DictionaryId)) == count) - .WhereIf(selectionQuery.EnrollStatus != null && selectionQuery.EnrollStatus == (int)ReviewerEnrollStatus.Yes, t => t.EnrollList.Any(u => u.EnrollStatus == (int)EnrollStatus.DoctorReading)) + .WhereIf(selectionQuery.EnrollStatus != null && selectionQuery.EnrollStatus == (int)ReviewerEnrollStatus.Yes, t => t.EnrollList.Any(u => u.EnrollStatus == EnrollStatus.DoctorReading)) .ProjectTo(_mapper.ConfigurationProvider); var result = await query.ToPagedListAsync(selectionQuery.PageIndex, selectionQuery.PageSize, selectionQuery.SortField == string.Empty ? "ReviewerCode" : selectionQuery.SortField, selectionQuery.Asc); //是否已申请 申请时间 申请人 - var doctorStateList = await _repository.Where(x => x.TrialId == selectionQuery.TrialId && x.EnrollStatus == (int)EnrollStatus.HasApplyDownloadResume) + var doctorStateList = await _repository.Where(x => x.TrialId == selectionQuery.TrialId && x.EnrollStatus == EnrollStatus.HasApplyDownloadResume) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); result.CurrentPageData.ToList().ForEach(doctor => @@ -133,9 +133,9 @@ namespace IRaCIS.Application.Services var doctorQuery = _repository.Where(x => x.TrialId == param.TrialId) //提交CRO 以及下载简历列表 - .WhereIf(param.IntoGroupSearchState == 1, t => t.EnrollStatus >= (int)EnrollStatus.HasApplyDownloadResume) + .WhereIf(param.IntoGroupSearchState == 1, t => t.EnrollStatus >= EnrollStatus.HasApplyDownloadResume) //CRO确认列表 状态为 已提交CRO - .WhereIf(param.IntoGroupSearchState == 4, t => t.EnrollStatus >= (int)EnrollStatus.HasCommittedToCRO) + .WhereIf(param.IntoGroupSearchState == 4, t => t.EnrollStatus >= EnrollStatus.HasCommittedToCRO) .ProjectTo(_mapper.ConfigurationProvider); var doctorPageList = await doctorQuery.ToPagedListAsync(param.PageIndex, param.PageSize, param.SortField == "" ? "Code" : param.SortField, param.Asc); @@ -143,9 +143,9 @@ namespace IRaCIS.Application.Services var enrollStateList = await _repository.Where(x => x.TrialId == param.TrialId) //提交CRO 以及下载简历列表 - .WhereIf(param.IntoGroupSearchState == 1, t => t.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO) + .WhereIf(param.IntoGroupSearchState == 1, t => t.EnrollStatus == EnrollStatus.HasCommittedToCRO) //CRO确认列表 状态为 已提交CRO - .WhereIf(param.IntoGroupSearchState == 4, t => t.EnrollStatus == (int)EnrollStatus.InviteIntoGroup) + .WhereIf(param.IntoGroupSearchState == 4, t => t.EnrollStatus == EnrollStatus.InviteIntoGroup) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); @@ -167,7 +167,7 @@ namespace IRaCIS.Application.Services //SPM 要看到提交的时间 提交人 var enrollCommitList = await _repository.Where(x => x.TrialId == param.TrialId) //提交CRO 以及下载简历列表 - .WhereIf(param.IntoGroupSearchState == 4, t => t.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO) + .WhereIf(param.IntoGroupSearchState == 4, t => t.EnrollStatus == EnrollStatus.HasCommittedToCRO) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); @@ -235,12 +235,12 @@ namespace IRaCIS.Application.Services { - var doctorQuery = _repository.Where(x => x.TrialId == param.TrialId && x.EnrollStatus >= (int)EnrollStatus.InviteIntoGroup) + var doctorQuery = _repository.Where(x => x.TrialId == param.TrialId && x.EnrollStatus >= EnrollStatus.InviteIntoGroup) .ProjectTo(_mapper.ConfigurationProvider); var doctorPageList = await doctorQuery.ToPagedListAsync(param.PageIndex, param.PageSize, param.SortField == "" ? "Code" : param.SortField, param.Asc); - var enrollStateList = await _repository.Where(x => x.TrialId == param.TrialId && x.EnrollStatus > (int)EnrollStatus.InviteIntoGroup) + var enrollStateList = await _repository.Where(x => x.TrialId == param.TrialId && x.EnrollStatus > EnrollStatus.InviteIntoGroup) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); diff --git a/IRaCIS.Core.Application/Service/Doctor/DoctorService.cs b/IRaCIS.Core.Application/Service/Doctor/DoctorService.cs index 48351bd5a..d7ae7450f 100644 --- a/IRaCIS.Core.Application/Service/Doctor/DoctorService.cs +++ b/IRaCIS.Core.Application/Service/Doctor/DoctorService.cs @@ -505,11 +505,11 @@ namespace IRaCIS.Application.Services // t.EnrollStatus == (int)EnrollStatus.DoctorReading ? 1 : 0) Submitted = g.Count(t => - t.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO), + t.EnrollStatus == EnrollStatus.HasCommittedToCRO), Approved = g.Count(t => - t.EnrollStatus == (int)EnrollStatus.InviteIntoGroup), + t.EnrollStatus == EnrollStatus.InviteIntoGroup), Reading = g.Count(t => - t.EnrollStatus == (int)EnrollStatus.DoctorReading) + t.EnrollStatus == EnrollStatus.DoctorReading) }; return doctorQueryable.FirstOrDefault().IfNullThrowException(); @@ -522,7 +522,7 @@ namespace IRaCIS.Application.Services [HttpGet("{doctorId:guid}")] public List GetDoctorSowList(Guid doctorId) { - var query = from enroll in _enrollRepository.Where(u => u.DoctorId == doctorId && u.EnrollStatus >= 10) + var query = from enroll in _enrollRepository.Where(u => u.DoctorId == doctorId && u.EnrollStatus >= EnrollStatus.ConfirmIntoGroup) join trialExt in _trialExtRepository.AsQueryable() on enroll.TrialId equals trialExt.TrialId join trial in _trialRepository.AsQueryable() on enroll.TrialId equals trial.Id select new SowDTO diff --git a/IRaCIS.Core.Application/Service/Doctor/_MapConfig.cs b/IRaCIS.Core.Application/Service/Doctor/_MapConfig.cs index ab87ae8e5..610451c85 100644 --- a/IRaCIS.Core.Application/Service/Doctor/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Doctor/_MapConfig.cs @@ -90,10 +90,10 @@ namespace IRaCIS.Core.Application.Service .ForMember(d => d.Speciality, u => u.MapFrom(s => s.Speciality.Value)) .ForMember(d => d.SpecialityCN, u => u.MapFrom(s => s.Speciality.ValueCN)) .ForMember(d => d.HasResume, u => u.MapFrom(s => s.AttachmentList.Any(u => u.Type == "Resume" && u.IsOfficial))) - .ForMember(d => d.Submitted, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO))) - .ForMember(d => d.Approved, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == (int)EnrollStatus.InviteIntoGroup))) - .ForMember(d => d.Reading, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == (int)EnrollStatus.DoctorReading))) - .ForMember(d => d.Finished, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == (int)EnrollStatus.Finished))) + .ForMember(d => d.Submitted, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == EnrollStatus.HasCommittedToCRO))) + .ForMember(d => d.Approved, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == EnrollStatus.InviteIntoGroup))) + .ForMember(d => d.Reading, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == EnrollStatus.DoctorReading))) + .ForMember(d => d.Finished, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == EnrollStatus.Finished))) .ForMember(d => d.Reconfirmed, u => u.MapFrom(s => s.ReviewStatus == ReviewerInformationConfirmStatus.ConfirmPass)) .ForMember(o => o.DictionaryList, t => t.MapFrom(u => u.DoctorDicRelationList.Where(t => t.KeyName == StaticData.ReadingType || t.KeyName == StaticData.Subspeciality).Select(t => t.Dictionary).OrderBy(t => t.ShowOrder))); CreateMap(); diff --git a/IRaCIS.Core.Application/Service/Inspection/InspectionService.cs b/IRaCIS.Core.Application/Service/Inspection/InspectionService.cs index 8bae5cffc..28689d15f 100644 --- a/IRaCIS.Core.Application/Service/Inspection/InspectionService.cs +++ b/IRaCIS.Core.Application/Service/Inspection/InspectionService.cs @@ -35,7 +35,7 @@ namespace IRaCIS.Core.Application.Service.Inspection trialData.TrialFinishTime = trialData.TrialFinishTime == null ? DateTime.Now : trialData.TrialFinishTime; #region 逻辑代码 - var query = from data in _repository.GetQueryable().Where(x => (x.TrialId == dto.TrialId)||(x.TrialId==null&&x.CreateTime> trialData.CreateTime&&x.CreateTime < trialData.TrialFinishTime)) + var query = from data in _repository.GetQueryable().Where(x => (x.TrialId == dto.TrialId)||(x.TrialId==null&&x.CreateTime>= trialData.CreateTime && x.CreateTime <= trialData.TrialFinishTime)) join trial in _repository.GetQueryable().IgnoreQueryFilters() on data.TrialId equals trial.Id into trialtemp from leftrial in trialtemp.DefaultIfEmpty() diff --git a/IRaCIS.Core.Application/Service/Stat/StatisticsService.cs b/IRaCIS.Core.Application/Service/Stat/StatisticsService.cs index 0c555f442..c13ae8372 100644 --- a/IRaCIS.Core.Application/Service/Stat/StatisticsService.cs +++ b/IRaCIS.Core.Application/Service/Stat/StatisticsService.cs @@ -217,13 +217,13 @@ namespace IRaCIS.Application.Services { DoctorId = g.Key.DoctorId, Submitted = g.Sum(t => - t.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO ? 1 : 0), + t.EnrollStatus == EnrollStatus.HasCommittedToCRO ? 1 : 0), Approved = g.Sum(t => - t.EnrollStatus == (int)EnrollStatus.InviteIntoGroup ? 1 : 0), + t.EnrollStatus == EnrollStatus.InviteIntoGroup ? 1 : 0), Reading = g.Sum(t => - t.EnrollStatus == (int)EnrollStatus.DoctorReading ? 1 : 0), + t.EnrollStatus == EnrollStatus.DoctorReading ? 1 : 0), Finished = g.Sum(t => - t.EnrollStatus >= (int)EnrollStatus.Finished ? 1 : 0), + t.EnrollStatus >= EnrollStatus.Finished ? 1 : 0), }; @@ -318,7 +318,7 @@ namespace IRaCIS.Application.Services #endregion var trialEnrollStatQuery = _enrollRepository.AsQueryable() - .Where(t => t.EnrollStatus >= (int)EnrollStatus.ConfirmIntoGroup).GroupBy(t => t.TrialId).Select(g => new + .Where(t => t.EnrollStatus >= EnrollStatus.ConfirmIntoGroup).GroupBy(t => t.TrialId).Select(g => new { TrialId = g.Key, EnrollCount = g.Count() @@ -356,7 +356,7 @@ namespace IRaCIS.Application.Services var trialIds = trialList.Select(t => t.TrialId).ToList(); var enrollReviewerQuery = from enroll in _enrollRepository.AsQueryable() - .Where(t => t.EnrollStatus >= (int)EnrollStatus.ConfirmIntoGroup && trialIds.Contains(t.TrialId)) + .Where(t => t.EnrollStatus >= EnrollStatus.ConfirmIntoGroup && trialIds.Contains(t.TrialId)) join reviewer in _doctorRepository.AsQueryable() on enroll.DoctorId equals reviewer.Id select new @@ -662,7 +662,7 @@ namespace IRaCIS.Application.Services var endMonth = DateTime.Now; var querySql = from enrollDetail in _enrollDetailRepository.Where(t => t.CreateTime > beginMonth && t.CreateTime < endMonth && - t.EnrollStatus == (int)EnrollStatus.ConfirmIntoGroup) + t.EnrollStatus == EnrollStatus.ConfirmIntoGroup) select new { @@ -726,7 +726,7 @@ namespace IRaCIS.Application.Services var endMonth = DateTime.Now; var querySql = from enrollDetail in _enrollDetailRepository.Where(t => t.CreateTime > beginMonth && t.CreateTime < endMonth && - t.EnrollStatus == (int)EnrollStatus.ConfirmIntoGroup) + t.EnrollStatus == EnrollStatus.ConfirmIntoGroup) select new { @@ -786,7 +786,7 @@ namespace IRaCIS.Application.Services public List GetTrialCountRank(int topCount) { var queryList = (from enrollDetail in _enrollDetailRepository.Where(t => - t.EnrollStatus == (int)EnrollStatus.ConfirmIntoGroup) + t.EnrollStatus == EnrollStatus.ConfirmIntoGroup) group enrollDetail by enrollDetail.DoctorId into g select new diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialViewModel.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialViewModel.cs index 36a1953ef..6985b8b8d 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialViewModel.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialViewModel.cs @@ -202,7 +202,7 @@ namespace IRaCIS.Application.Contracts { public string Code { get; set; } = string.Empty; public string Indication { get; set; } = string.Empty; - public int? EnrollStatus { get; set; } + public EnrollStatus? EnrollStatus { get; set; } public int? Expedited { get; set; } } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/Interface/ITrialService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/Interface/ITrialService.cs index 5c9c1376e..ff2193eb0 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/Interface/ITrialService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/Interface/ITrialService.cs @@ -1,4 +1,5 @@ using IRaCIS.Application.Contracts; +using IRaCIS.Core.Domain.Share; namespace IRaCIS.Application.Interfaces { @@ -17,6 +18,6 @@ namespace IRaCIS.Application.Interfaces Task> GetTrialList(TrialQueryDTO searchParam); Task> GetTrialListByReviewer(ReviewerTrialQueryDTO searchModel); Task GetTrialMaxState(Guid trialId); - Task UpdateEnrollStatus(Guid trialId, int status); + Task UpdateEnrollStatus(Guid trialId, EnrollStatus status); } } \ No newline at end of file diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index d030ed193..095ed7f2a 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -546,7 +546,7 @@ namespace IRaCIS.Core.Application { await _repository.BatchUpdateAsync(u => u.TrialId == trialId, e => new Enroll { - EnrollStatus = (int)EnrollStatus.Finished + EnrollStatus = EnrollStatus.Finished }); await _trialRepository.BatchUpdateNoTrackingAsync(u => u.Id == trialId, s => new Trial { TrialFinishedTime = DateTime.UtcNow.AddHours(8) }); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs index 7c3d546b9..7471fd1fa 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs @@ -465,10 +465,10 @@ namespace IRaCIS.Application.Services { var query = _trialRepository.AsQueryable() - .WhereIf(param.Status == 5, t => t.EnrollList.Any(u => u.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO)) - .WhereIf(param.Status == 8, t => t.EnrollList.Any(u => u.EnrollStatus == (int)EnrollStatus.InviteIntoGroup)) - .WhereIf(param.Status == 10, t => t.EnrollList.Any(u => u.EnrollStatus == (int)EnrollStatus.DoctorReading)) - .WhereIf(param.Status == 14, t => t.EnrollList.Any(u => u.EnrollStatus == (int)EnrollStatus.Finished)) + .WhereIf(param.Status == 5, t => t.EnrollList.Any(u => u.EnrollStatus == EnrollStatus.HasCommittedToCRO)) + .WhereIf(param.Status == 8, t => t.EnrollList.Any(u => u.EnrollStatus == EnrollStatus.InviteIntoGroup)) + .WhereIf(param.Status == 10, t => t.EnrollList.Any(u => u.EnrollStatus == EnrollStatus.DoctorReading)) + .WhereIf(param.Status == 14, t => t.EnrollList.Any(u => u.EnrollStatus == EnrollStatus.Finished)) .ProjectTo(_mapper.ConfigurationProvider, new { userTypeEnumInt = _userInfo.UserTypeEnumInt, userId = _userInfo.Id }); return await query.ToPagedListAsync(param.PageIndex, param.PageSize, string.IsNullOrWhiteSpace(param.SortField) ? "CreateTime" : param.SortField, param.Asc); @@ -483,7 +483,7 @@ namespace IRaCIS.Application.Services public async Task> GetTrialEnrollmentReviewerIds(Guid trialId) { return await _repository.Where(u => u.TrialId == trialId && - u.EnrollStatus >= (int)EnrollStatus.DoctorReading).Select(u => u.DoctorId).Distinct().ToListAsync(); + u.EnrollStatus >= EnrollStatus.DoctorReading).Select(u => u.DoctorId).Distinct().ToListAsync(); } @@ -498,7 +498,7 @@ namespace IRaCIS.Application.Services { var query = _trialRepository .WhereIf(searchModel.EnrollStatus != null, o => (int)searchModel.EnrollStatus! == 10 ? - o.EnrollList.Any(o => o.EnrollStatus >= 10 && o.EnrollStatus <= 13 && o.DoctorId == _userInfo.Id) : + o.EnrollList.Any(o => o.EnrollStatus >= EnrollStatus.ConfirmIntoGroup && o.EnrollStatus <= EnrollStatus.DoctorReading && o.DoctorId == _userInfo.Id) : o.EnrollList.Any(o => o.EnrollStatus == searchModel.EnrollStatus && o.DoctorId == _userInfo.Id)) .WhereIf(searchModel.Expedited != null, o => o.Expedited == searchModel.Expedited) .WhereIf(!string.IsNullOrEmpty(searchModel.Code), o => o.TrialCode.Contains(searchModel.Code)) @@ -523,7 +523,7 @@ namespace IRaCIS.Application.Services [HttpPost("{trialId:guid}/{status:int}")] [TypeFilter(typeof(TrialResourceFilter))] - public async Task UpdateEnrollStatus(Guid trialId, int status) + public async Task UpdateEnrollStatus(Guid trialId, EnrollStatus status) { await _repository.AddAsync(new EnrollDetail() { diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs index 22a65a679..09623eb25 100644 --- a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs +++ b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs @@ -166,7 +166,7 @@ namespace IRaCIS.Application.Services var doctorIntoGroupQueryable = - from intoGroup in _enrollRepository.Where(x => x.TrialId == trialId && x.EnrollStatus >= (int)EnrollStatus.ConfirmIntoGroup) + from intoGroup in _enrollRepository.Where(x => x.TrialId == trialId && x.EnrollStatus >= EnrollStatus.ConfirmIntoGroup) join doctor in _doctorRepository.AsQueryable() on intoGroup.DoctorId equals doctor.Id join attachmentItem in _attachmentRepository.AsQueryable() on intoGroup.AttachmentId equals attachmentItem.Id into cc from attachment in cc.DefaultIfEmpty() @@ -682,7 +682,7 @@ namespace IRaCIS.Application.Services await _enrollRepository.BatchUpdateNoTrackingAsync( t => t.DoctorId == workLoadAddOrUpdateModel.DoctorId && t.TrialId == workLoadAddOrUpdateModel.TrialId, u => new Enroll() { - EnrollStatus = (int)EnrollStatus.DoctorReading, + EnrollStatus = EnrollStatus.DoctorReading, }); var success = await _doctorWorkloadRepository.SaveChangesAsync(); diff --git a/IRaCIS.Core.Application/Service/WorkLoad/EnrollService.cs b/IRaCIS.Core.Application/Service/WorkLoad/EnrollService.cs index 1ef42a4b5..f8ca5591d 100644 --- a/IRaCIS.Core.Application/Service/WorkLoad/EnrollService.cs +++ b/IRaCIS.Core.Application/Service/WorkLoad/EnrollService.cs @@ -163,14 +163,14 @@ namespace IRaCIS.Application.Services { DoctorId = doctorId, TrialId = trialId, - EnrollStatus = (int)EnrollStatus.HasApplyDownloadResume, + EnrollStatus = EnrollStatus.HasApplyDownloadResume, }); await _enrollDetailRepository.AddAsync(new EnrollDetail() { DoctorId = doctorId, TrialId = trialId, - EnrollStatus = (int)EnrollStatus.HasApplyDownloadResume, + EnrollStatus = EnrollStatus.HasApplyDownloadResume, OptUserType = (int)SystemUserType.AdminUser, }); } @@ -217,7 +217,7 @@ namespace IRaCIS.Application.Services { if (doctorIdArray.Contains(intoGroupItem.DoctorId)) { - intoGroupItem.EnrollStatus = (int)EnrollStatus.HasCommittedToCRO; + intoGroupItem.EnrollStatus = EnrollStatus.HasCommittedToCRO; //_enrollRepository.Update(intoGroupItem); await _enrollDetailRepository.AddAsync(new EnrollDetail() @@ -225,7 +225,7 @@ namespace IRaCIS.Application.Services TrialDetailId = trialDetail.Id, DoctorId = intoGroupItem.DoctorId, TrialId = trialId, - EnrollStatus = (int)EnrollStatus.HasCommittedToCRO, + EnrollStatus = EnrollStatus.HasCommittedToCRO, OptUserType = (int)SystemUserType.AdminUser, //后台用户 }); } @@ -242,14 +242,14 @@ namespace IRaCIS.Application.Services { if (doctorIdArray.Contains(intoGroupItem.DoctorId)) { - intoGroupItem.EnrollStatus = (int)EnrollStatus.HasApplyDownloadResume; + intoGroupItem.EnrollStatus = EnrollStatus.HasApplyDownloadResume; //_enrollRepository.Update(intoGroupItem); var deleteItem = await _enrollDetailRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.DoctorId == intoGroupItem.DoctorId && - t.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO); + t.EnrollStatus == EnrollStatus.HasCommittedToCRO); await _enrollDetailRepository.DeleteAsync(deleteItem); } @@ -305,14 +305,14 @@ namespace IRaCIS.Application.Services { if (doctorIdArray.Contains(intoGroupItem.DoctorId)) { - intoGroupItem.EnrollStatus = (int)EnrollStatus.InviteIntoGroup; + intoGroupItem.EnrollStatus = EnrollStatus.InviteIntoGroup; //_enrollRepository.Update(intoGroupItem); await _enrollDetailRepository.AddAsync(new EnrollDetail() { DoctorId = intoGroupItem.DoctorId, TrialId = trialId, - EnrollStatus = (int)EnrollStatus.InviteIntoGroup, + EnrollStatus = EnrollStatus.InviteIntoGroup, OptUserType = (int)SystemUserType.AdminUser, //后台用户 }); } @@ -328,13 +328,13 @@ namespace IRaCIS.Application.Services { if (doctorIdArray.Contains(intoGroupItem.DoctorId)) { - intoGroupItem.EnrollStatus = (int)EnrollStatus.HasCommittedToCRO; + intoGroupItem.EnrollStatus = EnrollStatus.HasCommittedToCRO; //_enrollRepository.Update(intoGroupItem); var deleteItem = await _enrollDetailRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.DoctorId == intoGroupItem.DoctorId && - t.EnrollStatus == (int)EnrollStatus.InviteIntoGroup); + t.EnrollStatus == EnrollStatus.InviteIntoGroup); await _enrollDetailRepository.DeleteAsync(deleteItem); } @@ -383,7 +383,7 @@ namespace IRaCIS.Application.Services { if (confirmReviewerCommand.DoctorIdArray.Contains(intoGroupItem.DoctorId)) { - intoGroupItem.EnrollStatus = (int)EnrollStatus.ConfirmIntoGroup; + intoGroupItem.EnrollStatus = EnrollStatus.ConfirmIntoGroup; intoGroupItem.EnrollTime = DateTime.Now; var userId= await _mailVerificationService.DoctorJoinTrialEmail(trialId, intoGroupItem.DoctorId, confirmReviewerCommand.BaseUrl, confirmReviewerCommand.RouteUrl); @@ -402,7 +402,7 @@ namespace IRaCIS.Application.Services { DoctorId = intoGroupItem.DoctorId, TrialId = trialId, - EnrollStatus = (int)EnrollStatus.ConfirmIntoGroup, + EnrollStatus = EnrollStatus.ConfirmIntoGroup, OptUserType = (int)SystemUserType.AdminUser, //后台用户 }); } @@ -415,13 +415,13 @@ namespace IRaCIS.Application.Services { if (confirmReviewerCommand.DoctorIdArray.Contains(intoGroupItem.DoctorId)) { - intoGroupItem.EnrollStatus = (int)EnrollStatus.InviteIntoGroup; + intoGroupItem.EnrollStatus = EnrollStatus.InviteIntoGroup; intoGroupItem.EnrollTime = null; var deleteItem = await _enrollDetailRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.DoctorId == intoGroupItem.DoctorId && - t.EnrollStatus == (int)EnrollStatus.ConfirmIntoGroup); + t.EnrollStatus == EnrollStatus.ConfirmIntoGroup); await _enrollDetailRepository.DeleteAsync(deleteItem); } @@ -460,12 +460,12 @@ namespace IRaCIS.Application.Services return ResponseOutput.NotOk("Reviewers with workload cannot go back"); } - intoGroupItem.EnrollStatus = (int)EnrollStatus.InviteIntoGroup; + intoGroupItem.EnrollStatus = EnrollStatus.InviteIntoGroup; intoGroupItem.EnrollTime = null; var deleteItem = await _enrollDetailRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.DoctorId == intoGroupItem.DoctorId && - t.EnrollStatus == (int)EnrollStatus.ConfirmIntoGroup); + t.EnrollStatus == EnrollStatus.ConfirmIntoGroup); await _enrollDetailRepository.DeleteAsync(deleteItem); diff --git a/IRaCIS.Core.Domain/Trial/Enroll.cs b/IRaCIS.Core.Domain/Trial/Enroll.cs index 8a653ce73..63b383223 100644 --- a/IRaCIS.Core.Domain/Trial/Enroll.cs +++ b/IRaCIS.Core.Domain/Trial/Enroll.cs @@ -1,3 +1,4 @@ +using IRaCIS.Core.Domain.Share; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; @@ -19,7 +20,7 @@ namespace IRaCIS.Core.Domain.Models public Guid DoctorId { get; set; } public Guid TrialId { get; set; } public Guid AttachmentId { get; set; } = Guid.Empty; - public int EnrollStatus { get; set; } + public EnrollStatus EnrollStatus { get; set; } public decimal? AdjustmentMultiple { get; set; } public DateTime? EnrollTime { get; set; } @@ -56,8 +57,6 @@ namespace IRaCIS.Core.Domain.Models public int? Downtime { get; set; } - public int DoctorTrialState { get; set; } - /// /// ˺ 뵽Ŀк ֵ diff --git a/IRaCIS.Core.Domain/Trial/EnrollDetail.cs b/IRaCIS.Core.Domain/Trial/EnrollDetail.cs index f866242c2..6db35bb24 100644 --- a/IRaCIS.Core.Domain/Trial/EnrollDetail.cs +++ b/IRaCIS.Core.Domain/Trial/EnrollDetail.cs @@ -1,3 +1,4 @@ +using IRaCIS.Core.Domain.Share; using System; using System.ComponentModel.DataAnnotations.Schema; @@ -10,7 +11,7 @@ namespace IRaCIS.Core.Domain.Models public Guid DoctorId { get; set; } public Guid TrialId { get; set; } - public int EnrollStatus { get; set; } + public EnrollStatus EnrollStatus { get; set; } public Guid? EnrollId { get; set; } public string Memo { get; set; } = string.Empty; public Guid CreateUserId { get; set; } diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs index ac1b2a340..6bb8a5fe5 100644 --- a/IRaCIS.Core.Domain/Trial/Trial.cs +++ b/IRaCIS.Core.Domain/Trial/Trial.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using IRaCIS.Core.Domain.Share; +using Newtonsoft.Json; namespace IRaCIS.Core.Domain.Models { @@ -15,6 +16,7 @@ namespace IRaCIS.Core.Domain.Models TrialDicList = new List(); } + public List TaskConsistentRuleList { get; set; } public List SubjectDoctorUserList { get; set; } = new List();