From 56e3bf64f2cdb76fd9fb28dbb3dac77cdac8345b Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Mon, 7 Aug 2023 12:22:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E9=98=85=E7=89=87=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 18 +--- .../Allocation/Interface/IVisitTaskService.cs | 2 + .../Service/Allocation/VisitTaskService.cs | 91 +++++++++++-------- .../ReadingImageTaskService.cs | 57 ++++++++---- .../TrialSiteUser/TrialMaintenanceService.cs | 2 +- 5 files changed, 99 insertions(+), 71 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 5fd42050b..e666c4b8e 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -9460,11 +9460,11 @@ - - 发送验证码 - - - + + site 调研 发送验证码 + + + @@ -9520,14 +9520,6 @@ - - - 驳回 - - - - - 提交 后台自动识别是谁提交 diff --git a/IRaCIS.Core.Application/Service/Allocation/Interface/IVisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/Interface/IVisitTaskService.cs index c9a5a55bd..7d91e0221 100644 --- a/IRaCIS.Core.Application/Service/Allocation/Interface/IVisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/Interface/IVisitTaskService.cs @@ -17,5 +17,7 @@ namespace IRaCIS.Core.Application.Service Task ConfirmReReading(ConfirmReReadingCommand agreeReReadingCommand, [FromServices] IVisitTaskHelpeService _visitTaskCommonService); Task<(int, List)> GetOrderReadingIQueryable(GetOrderReadingIQueryableInDto inDto); + + Task> GetNotOrderReadingQueryableAsync(Guid trialId, Guid trialReadingCriterionId); } } \ No newline at end of file diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index cd21a404b..9bbeef1b5 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -518,44 +518,17 @@ namespace IRaCIS.Core.Application.Service.Allocation else { - var readingDivisionEnum = critrion.ReadingDivisionEnum; - - var piReadingScopenEnum = critrion.PIReadingScopenEnum; - - var taskQuery = _visitTaskRepository.Where(x => x.TrialId == iRUnReadSubjectQuery.TrialId /*&& x.DoctorUserId == _userInfo.Id*/ && x.TaskState == TaskState.Effect && x.TrialReadingCriterionId == trialReadingCriterionId) - - .Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign) - .WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR, t => t.Subject.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.Id)) - // 仅仅SR阅片 PI 没有任务列表 - .WhereIf(readingDivisionEnum == ReadingDivisionEnum.OnlySR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI, t => t.TrialId == Guid.Empty) - .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllBaseline, - t => t.SourceSubjectVisit.IsBaseLine == true) - //PI 阅片所有 - .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllBaselineandVisit, - t => true) + var taskQuery = await GetNotOrderReadingQueryableAsync(iRUnReadSubjectQuery.TrialId, trialReadingCriterionId); - .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllVisit, - t => t.SourceSubjectVisit.IsBaseLine == false) - - .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllBaseline, - t => t.SourceSubjectVisit.IsBaseLine == false) - - //SR 不阅片 - .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllBaselineandVisit, - t => t.TrialId == Guid.Empty) - - .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllVisit, - t => t.SourceSubjectVisit.IsBaseLine == true); IRUnReadOutDto iRUnReadOut = new IRUnReadOutDto() { FinishTaskCount = await taskQuery.Where(x => x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState == ReadingTaskState.HaveSigned).CountAsync(), SuggesteFinishedTime = await taskQuery.Where(x => x.ReadingTaskState != ReadingTaskState.HaveSigned).MaxAsync(x => x.SuggesteFinishedTime), - UnReadTaskCount = await taskQuery.Where(x => x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState != ReadingTaskState.HaveSigned).CountAsync(), }; @@ -586,6 +559,46 @@ namespace IRaCIS.Core.Application.Service.Allocation } + + public async Task> GetNotOrderReadingQueryableAsync(Guid trialId, Guid trialReadingCriterionId) + { + var critrion = await _trialReadingCriterionRepository.FindAsync(trialReadingCriterionId); + + var readingDivisionEnum = critrion.ReadingDivisionEnum; + + var piReadingScopenEnum = critrion.PIReadingScopenEnum; + + var taskQuery = _visitTaskRepository.Where(x => x.TrialId == trialId /*&& x.DoctorUserId == _userInfo.Id*/ && x.TaskState == TaskState.Effect && x.TrialReadingCriterionId == trialReadingCriterionId) + + .Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign) + .WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR, t => t.Subject.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.Id)) + // 仅仅SR阅片 PI 没有任务列表 + .WhereIf(readingDivisionEnum == ReadingDivisionEnum.OnlySR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI, t => t.TrialId == Guid.Empty) + + + .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllBaseline, + t => t.SourceSubjectVisit.IsBaseLine == true) + + //PI 阅片所有 + .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllBaselineandVisit, + t => true) + + .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllVisit, + t => t.SourceSubjectVisit.IsBaseLine == false) + + .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllBaseline, + t => t.SourceSubjectVisit.IsBaseLine == false) + + //SR 不阅片 + .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllBaselineandVisit, + t => t.TrialId == Guid.Empty) + + .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllVisit, + t => t.SourceSubjectVisit.IsBaseLine == true); + + return taskQuery; + } + /// /// 获取有序阅片IQuery对象 /// @@ -609,11 +622,11 @@ namespace IRaCIS.Core.Application.Service.Allocation //PI 读基线的时候,subject 如果PI基线没阅片完,SR就不能看 .WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllBaseline, - t => t.Subject.SubjectVisitTaskList.Any(c => c.SourceSubjectVisit.IsBaseLine == true && c.ReadingTaskState == ReadingTaskState.HaveSigned && c.TaskState == TaskState.Effect && c.TrialReadingCriterionId==trialReadingCriterionId)) + t => t.Subject.SubjectVisitTaskList.Any(c => c.SourceSubjectVisit.IsBaseLine == true && c.ReadingTaskState == ReadingTaskState.HaveSigned && c.TaskState == TaskState.Effect && c.TrialReadingCriterionId == trialReadingCriterionId)) //PI 读随访的时候, subject 如果SR基线没阅片完,PI就不能看 .WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllVisit, - t => t.Subject.SubjectVisitTaskList.Any(c => c.SourceSubjectVisit.IsBaseLine == true && c.ReadingTaskState == ReadingTaskState.HaveSigned && c.TaskState == TaskState.Effect && c.TrialReadingCriterionId == trialReadingCriterionId)) + t => t.Subject.SubjectVisitTaskList.Any(c => c.SourceSubjectVisit.IsBaseLine == true && c.ReadingTaskState == ReadingTaskState.HaveSigned && c.TaskState == TaskState.Effect && c.TrialReadingCriterionId == trialReadingCriterionId)) @@ -630,7 +643,7 @@ namespace IRaCIS.Core.Application.Service.Allocation t => true) .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllVisit, - t => t.SourceSubjectVisit.IsBaseLine == false ) + t => t.SourceSubjectVisit.IsBaseLine == false) .WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllBaseline, t => t.SourceSubjectVisit.IsBaseLine == false) @@ -644,7 +657,7 @@ namespace IRaCIS.Core.Application.Service.Allocation // 前序 不存在 未一致性核查未通过的 并且前序不存在未完成阅片的有效任务 - .Where(t => !t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum > sv.VisitNum )) + .Where(t => !t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum > sv.VisitNum)) //.WhereIf(piReadingScopenEnum == PIReadingScopenEnum.AllVisit,t => // !t.Subject.SubjectVisitTaskList.Any(tk => tk.ReadingTaskState != ReadingTaskState.HaveSigned && tk.TaskState == TaskState.Effect && tk.VisitTaskNum < t.VisitTaskNum)) @@ -652,7 +665,7 @@ namespace IRaCIS.Core.Application.Service.Allocation .WhereIf(!string.IsNullOrEmpty(inDto.SubjectCode), t => (t.Subject.Code.Contains(inDto.SubjectCode) && t.IsAnalysisCreate == false) || (t.BlindSubjectCode.Contains(inDto.SubjectCode) && t.IsAnalysisCreate)); - var visitGroupQuery = visitQuery.GroupBy(x => new { x.SubjectId, x.Subject.Code, x.BlindSubjectCode, x.SubjectCriterionClaimUserId ,x.SubjectCriterionClaimUser.UserName }); + var visitGroupQuery = visitQuery.GroupBy(x => new { x.SubjectId, x.Subject.Code, x.BlindSubjectCode, x.SubjectCriterionClaimUserId, x.SubjectCriterionClaimUser.UserName }); var visitTaskQuery = visitGroupQuery.Select(x => new IRUnReadSubjectView() { @@ -660,7 +673,7 @@ namespace IRaCIS.Core.Application.Service.Allocation SubjectCode = x.Key.BlindSubjectCode == string.Empty ? x.Key.Code : x.Key.BlindSubjectCode, ClaimUserId = x.Key.SubjectCriterionClaimUserId, - ClaimUserName=x.Key.UserName, + ClaimUserName = x.Key.UserName, SuggesteFinishedTime = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned).Min(x => x.SuggesteFinishedTime), @@ -857,13 +870,13 @@ namespace IRaCIS.Core.Application.Service.Allocation { // 针对同一个subject 不同阅片人 针对同一个访视申请重阅,是允许的,所以同一阅片人,针对同一suject 有访视申请重阅还未处理,不允许申请重阅 if (await _visitTaskReReadingRepository.AnyAsync(t => t.OriginalReReadingTask.TrialId == task.TrialId && t.OriginalReReadingTask.SubjectId == task.SubjectId && t.OriginalReReadingTask.TaskState == TaskState.Effect - && t.OriginalReReadingTask.TrialReadingCriterionId == task.TrialReadingCriterionId + && t.OriginalReReadingTask.TrialReadingCriterionId == task.TrialReadingCriterionId && t.OriginalReReadingTask.ReadingTaskState == ReadingTaskState.HaveSigned && t.RequestReReadingType == RequestReReadingType.DocotorApply && t.RequestReReadingResultEnum == RequestReReadingResult.Default)) { //---当前为有序阅片,该受试者已有访视已申请重阅还未处理,暂不能继续申请重阅 throw new BusinessValidationFailedException(_localizer["VisitTask_SequentialReading"]); } - + } else { @@ -1101,7 +1114,7 @@ namespace IRaCIS.Core.Application.Service.Allocation await SetMedicalReviewInvalidAsync(influenceTaskList, false); - + } @@ -1486,7 +1499,7 @@ namespace IRaCIS.Core.Application.Service.Allocation if (influenceTask.Id == task.Id) { - + await SetReReadingOrBackInfluenceAnalysisAsync(influenceTask.SubjectId); @@ -1564,7 +1577,7 @@ namespace IRaCIS.Core.Application.Service.Allocation } - + //包括临床数据签名状态 private async Task VisitBackAsync(Guid? subjectVisitId) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index a7b900325..fc10a4b61 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -178,7 +178,7 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task> GetCustomTag(GetCustomTagInDto inQuery) { - var result= await _readingCustomTagRepository.Where(x => x.VisitTaskId == inQuery.VisitTaskId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var result = await _readingCustomTagRepository.Where(x => x.VisitTaskId == inQuery.VisitTaskId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); return result; } @@ -664,7 +664,7 @@ namespace IRaCIS.Application.Services throw new BusinessValidationFailedException(_localizer["ReadingImage_BeSigned"]); } - if(await _visitTaskRepository.AnyAsync(x=> x.Id == visitTaskid && x.DoctorUserId != _userInfo.Id && x.SubjectCriterionClaimUserId != _userInfo.Id)) + if (await _visitTaskRepository.AnyAsync(x => x.Id == visitTaskid && x.DoctorUserId != _userInfo.Id && x.SubjectCriterionClaimUserId != _userInfo.Id)) { throw new BusinessValidationFailedException("当前任务领取人不是你,不允许提交签名"); } @@ -2111,7 +2111,7 @@ namespace IRaCIS.Application.Services [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] public async Task SubmitDicomVisitTask(SubmitDicomVisitTaskInDto inDto) { - + await this.SubmitTaskChangeState(inDto.VisitTaskId); return ResponseOutput.Ok(true); } @@ -2209,7 +2209,7 @@ namespace IRaCIS.Application.Services SubjectId = taskInfo.SubjectId, TrialId = taskInfo.TrialId, VisitTaskId = taskInfo.Id, - + }); var isBaseLine = false; @@ -2330,16 +2330,37 @@ namespace IRaCIS.Application.Services if (task != null) { // 有序 自动领取该Subject - await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, SubejctId = task.SubjectId, TrialReadingCriterionId=task.TrialReadingCriterionId, VisitTaskId=task.VisitTaskId, IsInOrder = true }); + await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, SubejctId = task.SubjectId, TrialReadingCriterionId = task.TrialReadingCriterionId, VisitTaskId = task.VisitTaskId, IsInOrder = true }); } } else { - //无序取数据 - task = await _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialReadingCriterionId == trialReadingCriterionId && x.ReadingTaskState != ReadingTaskState.HaveSigned /*&& x.DoctorUserId == _userInfo.Id*/ - && x.TrialReadingCriterionId == trialReadingCriterionId - && x.TaskState == TaskState.Effect) - .Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign) + + #region 这里多了分配,删除之前的逻辑 + ////无序取数据 + //task = await _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialReadingCriterionId == trialReadingCriterionId && x.ReadingTaskState != ReadingTaskState.HaveSigned /*&& x.DoctorUserId == _userInfo.Id*/ + //&& x.TrialReadingCriterionId == trialReadingCriterionId + //&& x.TaskState == TaskState.Effect) + // .Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign) + // .Select(x => new GetReadingTaskDto() + // { + // VisitTaskId = x.Id, + // ArmEnum = x.ArmEnum, + // TaskBlindName = x.TaskBlindName, + // ReadingCategory = x.ReadingCategory, + // VisistId = x.SourceSubjectVisitId != null ? x.SourceSubjectVisitId.Value : x.ReadModule == null ? default(Guid) : x.ReadModule.SubjectVisitId, + // VisitNum = x.VisitTaskNum, + // SubjectId = x.SubjectId, + // SubjectCode = x.Subject.Code, + // TrialReadingCriterionId = x.TrialReadingCriterionId, + // }).OrderByDescending(t => t.TaskBlindName).FirstOrDefaultAsync(); + #endregion + + var taskQuery = await _visitTaskService.GetNotOrderReadingQueryableAsync(inDto.TrialId,(Guid) trialReadingCriterionId); + + var list = taskQuery.ToList(); + + task = await taskQuery.OrderByDescending(t => t.TaskBlindName) .Select(x => new GetReadingTaskDto() { VisitTaskId = x.Id, @@ -2351,12 +2372,12 @@ namespace IRaCIS.Application.Services SubjectId = x.SubjectId, SubjectCode = x.Subject.Code, TrialReadingCriterionId = x.TrialReadingCriterionId, - }).OrderByDescending(t => t.TaskBlindName).FirstOrDefaultAsync(); + }).OrderByDescending(t => t.TaskBlindName).FirstOrDefaultAsync(); if (task != null) { // 无序 - await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, VisitTaskId = task.VisitTaskId, IsInOrder = false }); + await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, VisitTaskId = task.VisitTaskId, IsInOrder = false }); } } @@ -2506,14 +2527,14 @@ namespace IRaCIS.Application.Services if (claimSubjectDto.IsClaim) { //每个subject 每个标准的领取放在 任务上 免得加表 - if(_visitTaskRepository.Any(t=>t.Id== claimSubjectDto.SubejctId && t.TrialReadingCriterionId==claimSubjectDto.TrialReadingCriterionId + if (_visitTaskRepository.Any(t => t.Id == claimSubjectDto.SubejctId && t.TrialReadingCriterionId == claimSubjectDto.TrialReadingCriterionId && t.SubjectCriterionClaimUserId != _userInfo.Id && t.SubjectCriterionClaimUserId != null)) { throw new BusinessValidationFailedException("当前任务已被其他人领取,请进行其他的阅片任务"); } else { - await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == claimSubjectDto.SubejctId && t.TrialReadingCriterionId == claimSubjectDto.TrialReadingCriterionId , u => new VisitTask() { SubjectCriterionClaimUserId = _userInfo.Id }); + await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == claimSubjectDto.SubejctId && t.TrialReadingCriterionId == claimSubjectDto.TrialReadingCriterionId, u => new VisitTask() { SubjectCriterionClaimUserId = _userInfo.Id }); //列表可以看到当前阅片人是谁 await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.Id == claimSubjectDto.VisitTaskId, u => new VisitTask() { DoctorUserId = _userInfo.Id }); @@ -2524,7 +2545,7 @@ namespace IRaCIS.Application.Services // 创建一个任务 IJobDetail job = JobBuilder.Create() - + .UsingJobData("SubjectId", claimSubjectDto.SubejctId) // 传递GUID参数给任务 .UsingJobData("TrialReadingCriterionId", claimSubjectDto.TrialReadingCriterionId) .UsingJobData("IsInOrder", claimSubjectDto.IsInOrder) @@ -2543,7 +2564,7 @@ namespace IRaCIS.Application.Services } else { - await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == claimSubjectDto.SubejctId && t.TrialReadingCriterionId == claimSubjectDto.TrialReadingCriterionId , u => new VisitTask() { SubjectCriterionClaimUserId = null }); + await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == claimSubjectDto.SubejctId && t.TrialReadingCriterionId == claimSubjectDto.TrialReadingCriterionId, u => new VisitTask() { SubjectCriterionClaimUserId = null }); } } //无序 直接用DoctorUserId 当做领取人 @@ -2563,7 +2584,7 @@ namespace IRaCIS.Application.Services IJobDetail job = JobBuilder.Create() - .UsingJobData("VisitTaskId",(Guid) claimSubjectDto.VisitTaskId) // 传递GUID参数给任务 + .UsingJobData("VisitTaskId", (Guid)claimSubjectDto.VisitTaskId) // 传递GUID参数给任务 .UsingJobData("IsInOrder", claimSubjectDto.IsInOrder).Build(); // 创建一个触发器,设置任务执行时间为24小时后 @@ -2590,7 +2611,7 @@ namespace IRaCIS.Application.Services await VerifyTaskIsSign(visitTaskId); await _visitTaskRepository.UpdatePartialFromQueryAsync(visitTaskId, x => new VisitTask() { - DoctorUserId=_userInfo.Id, + DoctorUserId = _userInfo.Id, ReadingTaskState = ReadingTaskState.HaveSigned, SignTime = DateTime.Now, }); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs index b7404b4df..cd3ce5564 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs @@ -97,7 +97,7 @@ namespace IRaCIS.Application.Services // 最开始过滤site已经选择的用户 现在又改回去。。。 var query = _trialUseRepository.Where(t => t.TrialId == param.TrialId).IgnoreQueryFilters() - .Where(t => t.User.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator || t.User.UserTypeEnum == UserTypeEnum.CRA) + .Where(t => t.User.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator || t.User.UserTypeEnum == UserTypeEnum.CRA ||t.User.UserTypeEnum==UserTypeEnum.SR) .WhereIf(param.UserTypeId != null, t => t.User.UserTypeId == param.UserTypeId) .WhereIf(!string.IsNullOrWhiteSpace(param.UserRealName), t => (t.User.FullName).Contains(param.UserRealName)) .WhereIf(!string.IsNullOrWhiteSpace(param.OrganizationName), t => t.User.OrganizationName.Contains(param.OrganizationName))