diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskAllocationRuleViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskAllocationRuleViewModel.cs index fa13a6bac..1eedb4fad 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskAllocationRuleViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskAllocationRuleViewModel.cs @@ -141,6 +141,20 @@ namespace IRaCIS.Core.Application.ViewModel } + public class ReadingGenerataTaskDTO + { + public Guid Id { get; set; } + + public Guid SubjectId { get; set; } + + public bool IsUrgent { get; set; } + + public string ReadingName { get; set; } + + public ReadingCategory ReadingCategory { get; set; } + + } + public class VisitGenerataTaskDTO { public Guid Id { get; set; } diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs index de98b9b3b..195631a55 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs @@ -56,7 +56,7 @@ namespace IRaCIS.Core.Application.Service var subjectVisitList = _subjectVisitRepository.Where(t => subjectVisitIdList.Contains(t.Id)).ProjectTo(_mapper.ConfigurationProvider).Distinct().ToList(); - await AddTaskAsync(new GenerateTaskCommand() { TrialId = trialId, IsAssignSubjectToDoctor = isAssignSubjectToDoctor, VisitGenerataTaskList = subjectVisitList }); + await AddTaskAsync(new GenerateTaskCommand() { TrialId = trialId, IsAssignSubjectToDoctor = isAssignSubjectToDoctor, VisitGenerataTaskList = subjectVisitList, ReadingCategory= ReadingCategory.Visit }); } @@ -311,7 +311,7 @@ namespace IRaCIS.Core.Application.Service JudgeVisitTaskId = visitTask.Id }); - await _visitTaskRepository.AddAsync(visitTask); + } else if(generateTaskCommand.ReadingCategory == ReadingCategory.ReadingPeriod) { @@ -350,8 +350,7 @@ namespace IRaCIS.Core.Application.Service _provider.Set($"{trialId }_{ StaticData.CacheKey.TaskMaxCode}", currentMaxCodeInt + 2, TimeSpan.FromMinutes(30)); - await _visitTaskRepository.AddAsync(task1); - await _visitTaskRepository.AddAsync(task2); + } else { @@ -375,7 +374,7 @@ namespace IRaCIS.Core.Application.Service _provider.Set($"{trialId }_{ StaticData.CacheKey.TaskMaxCode}", currentMaxCodeInt + 1, TimeSpan.FromMinutes(30)); - await _visitTaskRepository.AddAsync(singleTask); + } } diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index b4a61cf8b..2e0a59b2d 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -150,7 +150,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); } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs index a871815c1..332e8e91e 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs @@ -31,6 +31,7 @@ namespace IRaCIS.Application.Services private readonly IRepository _visitTaskRepository; private readonly IVisitTaskHelpeService _visitTaskHelpeService; private readonly IRepository _subjectVisitRepository; + private readonly IRepository _readModuleRepository; private readonly IRepository _readingTaskQuestionAnswerRepository; private readonly IRepository _readingQuestionCriterionTrialRepository; private readonly IRepository _readingQuestionTrialRepository; @@ -42,6 +43,7 @@ namespace IRaCIS.Application.Services IRepository visitTaskRepository, IVisitTaskHelpeService visitTaskHelpeService, IRepository subjectVisitRepository, + IRepository readModuleRepository, IRepository readingTaskQuestionAnswerRepository, IRepository readingQuestionCriterionTrialRepository, IRepository readingQuestionTrialRepository @@ -52,6 +54,7 @@ namespace IRaCIS.Application.Services this._visitTaskRepository = visitTaskRepository; this._visitTaskHelpeService = visitTaskHelpeService; this._subjectVisitRepository = subjectVisitRepository; + this._readModuleRepository = readModuleRepository; this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository; this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository; this._readingQuestionTrialRepository = readingQuestionTrialRepository; @@ -144,7 +147,8 @@ namespace IRaCIS.Application.Services List result=await _noneDicomStudyRepository.Where(t => visitIds.Contains(t.SubjectVisitId)) .ProjectTo(_mapper.ConfigurationProvider, new { token = _userInfo.UserToken }).ToListAsync(); return (result, new { - VisitTaskId= task.VisistTaskId + VisitTaskId= task.VisistTaskId, + SubjectId=task.SubjectId, }); } @@ -180,7 +184,6 @@ namespace IRaCIS.Application.Services QuestionName = x.QuestionName, TypeValue =x.TypeValue, ReadingQuestionTrialId = x.Id - }).ToListAsync(); return result; } @@ -312,13 +315,32 @@ namespace IRaCIS.Application.Services return ResponseOutput.Ok(result); } + + public async Task FinishReadUpdateState() + { + + } + /// /// 添加阅片期任务 /// /// private async Task AddReadingTask(Guid VisitTaskId) { - + // ****** 先生成阅片期 阅片期任务阅片完成之后生成肿瘤学的 如果没有阅片期 直接生成肿瘤学 *********//// + + + var taskInfo = await _visitTaskRepository.Where(x => x.Id == VisitTaskId).FirstOrDefaultAsync(); + if (taskInfo.ReadingCategory == ReadingCategory.Visit) + { + if (!await _visitTaskRepository.AnyAsync(x => x.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId && x.ReadingTaskState != ReadingTaskState.HaveSigned)) + { + var needReadList = await _readModuleRepository.Where(x => x.SubjectVisitId == taskInfo.SourceSubjectVisitId).ToListAsync(); + + + + } + } } /// @@ -329,7 +351,7 @@ namespace IRaCIS.Application.Services private async Task TriggerJudgeQuestionNew(Guid VisitTaskId) { var visitTask = await _visitTaskRepository.Where(x => x.Id == VisitTaskId).FirstOrDefaultAsync(); - var visitTaskids = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).Select(x => x.Id).ToListAsync(); + var visitTaskids = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned &&x.ReadingCategory!= ReadingCategory.Judge && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).Select(x => x.Id).ToListAsync(); if (visitTaskids.Count == 2) { var query = from questionAnswet in _readingTaskQuestionAnswerRepository.Where(x => visitTaskids.Contains(x.VisitTaskId)) @@ -395,7 +417,7 @@ namespace IRaCIS.Application.Services private async Task TriggerJudgeQuestionOld(Guid VisitTaskId) { var visitTask = await _visitTaskRepository.Where(x => x.Id == VisitTaskId).FirstOrDefaultAsync(); - var visitTaskids = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).Select(x => x.Id).ToListAsync(); + var visitTaskids = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReadingCategory != ReadingCategory.Judge && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).Select(x => x.Id).ToListAsync(); if (visitTaskids.Count == 2) { var query = from questionAnswet in _readingTaskQuestionAnswerRepository.Where(x=> visitTaskids.Contains(x.VisitTaskId)) diff --git a/IRaCIS.Core.Domain.Share/Allocation/AllocationRelation.cs b/IRaCIS.Core.Domain.Share/Allocation/AllocationRelation.cs index 1b7488a0a..c75ba81ff 100644 --- a/IRaCIS.Core.Domain.Share/Allocation/AllocationRelation.cs +++ b/IRaCIS.Core.Domain.Share/Allocation/AllocationRelation.cs @@ -14,7 +14,14 @@ namespace IRaCIS.Core.Domain.Share Global=3, //裁判 - Judge=4 + Judge=4, + + /// + /// 肿瘤学 + /// + Oncology=5, + + } public enum TaskState