diff --git a/IRaCIS.Core.API/_ServiceExtensions/AutofacModuleSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/AutofacModuleSetup.cs index fd321596e..9869271d4 100644 --- a/IRaCIS.Core.API/_ServiceExtensions/AutofacModuleSetup.cs +++ b/IRaCIS.Core.API/_ServiceExtensions/AutofacModuleSetup.cs @@ -15,6 +15,7 @@ using MediatR; using IRaCIS.Application.Services; using IRaCIS.Application.Interfaces; using AutoMapper; +using Quartz; namespace IRaCIS.Core.API { @@ -65,7 +66,6 @@ namespace IRaCIS.Core.API containerBuilder.RegisterType().As().SingleInstance(); containerBuilder.RegisterType().As().InstancePerLifetimeScope(); - //containerBuilder.RegisterType().InstancePerLifetimeScope(); //Autofac 注册拦截器 需要注意的是生成api上服务上的动态代理AOP失效 间接掉用不影响 //containerBuilder.RegisterType(); diff --git a/IRaCIS.Core.API/_ServiceExtensions/QuartZSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/QuartZSetup.cs index d3aaacfd9..a7f602d85 100644 --- a/IRaCIS.Core.API/_ServiceExtensions/QuartZSetup.cs +++ b/IRaCIS.Core.API/_ServiceExtensions/QuartZSetup.cs @@ -11,6 +11,7 @@ namespace IRaCIS.Core.API public static void AddQuartZSetup(this IServiceCollection services, IConfiguration configuration) { services.AddTransient(); + services.AddTransient(); services.AddQuartz(q => { diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 60aa2edfe..1947d3750 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -7947,16 +7947,6 @@ 完成阅片量 - - - 未完成裁判任务数量 - - - - - 完成裁判任务数量 - - 建议完成时间 diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 29971a7f2..5b2126d95 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -59,7 +59,7 @@ namespace IRaCIS.Application.Services private readonly IRepository _readingQuestionSystem; private readonly IRepository _noneDicomStudyFileSystem; private readonly IRepository _readingQuestionTrialRepository; - private readonly IScheduler _scheduler; + private readonly ISchedulerFactory _schedulerFactory; private readonly IMemoryCache _cache; private readonly ITrialEmailNoticeConfigService _trialEmailNoticeConfigService; @@ -100,10 +100,10 @@ namespace IRaCIS.Application.Services ITrialEmailNoticeConfigService trialEmailNoticeConfigService, IRepository noneDicomStudyFileSystem, IRepository readingQuestionTrialRepository, - IScheduler scheduler + ISchedulerFactory schedulerFactory ) { - _scheduler = scheduler; + _schedulerFactory = schedulerFactory; base._mapper = mapper; this._noneDicomStudyRepository = noneDicomStudyRepository; this._visitTaskRepository = visitTaskRepository; @@ -2336,7 +2336,7 @@ namespace IRaCIS.Application.Services if (task != null) { // 有序 自动领取该Subject - await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, SubejctId = task.SubjectId, IsInOrder = true }, _scheduler); + await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, SubejctId = task.SubjectId, IsInOrder = true }, _schedulerFactory); } } else @@ -2362,7 +2362,7 @@ namespace IRaCIS.Application.Services if (task != null) { // 有序 自动领取该Subject - await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, VisitTaskId = task.VisitTaskId, IsInOrder = false }, _scheduler); + await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, VisitTaskId = task.VisitTaskId, IsInOrder = false }, _schedulerFactory); } } @@ -2496,8 +2496,10 @@ namespace IRaCIS.Application.Services [HttpPost] - public async Task ClaimOrCancelSubjectAsync(ClaimSubjectDto claimSubjectDto, IScheduler _scheduler) + public async Task ClaimOrCancelSubjectAsync(ClaimSubjectDto claimSubjectDto, ISchedulerFactory _schedulerFactory) { + IScheduler scheduler = await _schedulerFactory.GetScheduler(); + if (claimSubjectDto.IsInOrder) { if (claimSubjectDto.IsClaim) @@ -2520,7 +2522,7 @@ namespace IRaCIS.Application.Services .Build(); // 将任务和触发器关联起来,将任务安排到调度器中 - await _scheduler.ScheduleJob(job, trigger); + await scheduler.ScheduleJob(job, trigger); //BackgroundJob.Schedule(t => t.CancelQCObtaion(subjectVisitId, DateTime.Now), TimeSpan.FromHours(1)); @@ -2548,13 +2550,11 @@ namespace IRaCIS.Application.Services .Build(); // 将任务和触发器关联起来,将任务安排到调度器中 - await _scheduler.ScheduleJob(job, trigger); + await scheduler.ScheduleJob(job, trigger); } } - - - + await scheduler.Start(); } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs index 405bb4488..287b8c2ad 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs @@ -965,9 +965,9 @@ namespace IRaCIS.Core.Application.Contracts public List TrialCriterionAdditionalAssessmentTypeList { get; set; }=new List(); - public int ReadingDivisionEnum { get; set; } + public ReadingDivisionEnum ReadingDivisionEnum { get; set; } - public int PIReadingScopenEnum { get; set; } + public PIReadingScopenEnum PIReadingScopenEnum { get; set; } } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 8298f8838..3f3097efc 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -598,7 +598,9 @@ namespace IRaCIS.Core.Application IsOncologyReading = inDto.IsOncologyReading, IsUrgent= inDto.IsUrgent, IsAdditionalAssessment = inDto.IsAdditionalAssessment, - IsAutoCreate = inDto.IsAutoCreate + IsAutoCreate = inDto.IsAutoCreate, + PIReadingScopenEnum=inDto.PIReadingScopenEnum, + ReadingDivisionEnum=inDto.ReadingDivisionEnum, }); diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs index 96ee51a61..cda0d91d1 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs @@ -126,7 +126,7 @@ namespace IRaCIS.Core.Domain.Models public bool IseCRFShowInDicomReading { get; set; } = false; - public ReadingDivisionEnum ReadingDivisionEnum { get; set; } + public ReadingDivisionEnum ReadingDivisionEnum { get; set; } = ReadingDivisionEnum.OnlySR; public PIReadingScopenEnum PIReadingScopenEnum { get; set; }