修改一版
parent
c8db183b43
commit
81600a16e8
|
@ -702,6 +702,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
ReadingCategory = ReadingCategory.Judge,
|
||||
VisitTaskNum = firstTask.VisitTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Judge],
|
||||
TrialId = firstTask.TrialId,
|
||||
TaskBlindName = firstTask.TaskName,
|
||||
Code = currentMaxCodeInt + 1,
|
||||
SourceSubjectVisitId = firstTask.SourceSubjectVisitId,
|
||||
SouceReadModuleId = firstTask.SouceReadModuleId,
|
||||
|
|
|
@ -12,6 +12,8 @@ using Panda.DynamicWebApi.Attributes;
|
|||
using IRaCIS.Core.Application.Contracts;
|
||||
using IRaCIS.Core.Infra.EFCore.Common;
|
||||
using System.Linq.Dynamic.Core;
|
||||
using IRaCIS.Core.Application.Service;
|
||||
using IRaCIS.Core.Application.ViewModel;
|
||||
|
||||
namespace IRaCIS.Application.Services
|
||||
{
|
||||
|
@ -27,6 +29,7 @@ namespace IRaCIS.Application.Services
|
|||
private readonly IRepository<VisitStage> _visitstageRepository;
|
||||
private readonly IRepository<User> _userRepository;
|
||||
private readonly IRepository<Trial> _trialRepository;
|
||||
private readonly IVisitTaskHelpeService _visitTaskHelpeService;
|
||||
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||
private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository;
|
||||
private readonly IRepository<ReadModuleView> _readModuleViewRepository;
|
||||
|
@ -41,6 +44,7 @@ namespace IRaCIS.Application.Services
|
|||
IRepository<VisitStage> visitstageRepository,
|
||||
IRepository<User> UserRepository,
|
||||
IRepository<Trial> trialRepository,
|
||||
IVisitTaskHelpeService visitTaskHelpeService,
|
||||
IRepository<VisitTask> visitTaskRepository,
|
||||
IRepository<ClinicalDataTrialSet> clinicalDataTrialSetRepository,
|
||||
IRepository<ReadModuleView> readModuleViewRepository,
|
||||
|
@ -55,6 +59,7 @@ namespace IRaCIS.Application.Services
|
|||
this._visitstageRepository = visitstageRepository;
|
||||
this._userRepository = UserRepository;
|
||||
this._trialRepository = trialRepository;
|
||||
this._visitTaskHelpeService = visitTaskHelpeService;
|
||||
this._visitTaskRepository = visitTaskRepository;
|
||||
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
|
||||
this._readModuleViewRepository = readModuleViewRepository;
|
||||
|
@ -333,20 +338,78 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
if (visit != null)
|
||||
{
|
||||
await _readModuleRepository.AddAsync(new ReadModule()
|
||||
var readModuleData = new ReadModule()
|
||||
{
|
||||
Id= NewId.NextGuid(),
|
||||
Id = NewId.NextGuid(),
|
||||
SubjectId = dto.SubjectId,
|
||||
ModuleType = dto.ReadingSetType==ReadingSetType.ImageReading? ModuleTypeEnum.Global: ModuleTypeEnum.Oncology,
|
||||
ModuleType = dto.ReadingSetType == ReadingSetType.ImageReading ? ModuleTypeEnum.Global : ModuleTypeEnum.Oncology,
|
||||
IsUrgent = visit.IsUrgent,
|
||||
ModuleName = dto.Name,
|
||||
SubjectVisitId = visit.Id,
|
||||
ReadingSetType= dto.ReadingSetType,
|
||||
TrialId= dto.TrialId,
|
||||
VisitNum= visit.VisitNum,
|
||||
ReadingSetType = dto.ReadingSetType,
|
||||
TrialId = dto.TrialId,
|
||||
VisitNum = visit.VisitNum,
|
||||
ReadingStatus = ReadingStatusEnum.TaskAllocate,
|
||||
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
await _readModuleRepository.AddAsync(readModuleData);
|
||||
|
||||
// 判断是否要添加肿瘤学或者全局阅片任务
|
||||
switch (readModuleData.ModuleType)
|
||||
{
|
||||
case ModuleTypeEnum.Global:
|
||||
var taskInfo = await _visitTaskRepository.FirstOrDefaultAsync(x => x.SourceSubjectVisitId == readModuleData.SubjectVisitId && x.ReadingTaskState == ReadingTaskState.HaveSigned);
|
||||
if (taskInfo != null)
|
||||
{
|
||||
await _visitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand()
|
||||
{
|
||||
OriginalVisitId = taskInfo.Id,
|
||||
ReadingCategory = GenerateTaskCategory.Global,
|
||||
TrialId = dto.TrialId,
|
||||
ReadingGenerataTaskList = new List<ReadingGenerataTaskDTO>() {
|
||||
new ReadingGenerataTaskDTO()
|
||||
{
|
||||
IsUrgent = readModuleData.IsUrgent ?? false,
|
||||
SubjectId = readModuleData.SubjectId,
|
||||
VisitNum=readModuleData.VisitNum,
|
||||
ReadingName = readModuleData.ModuleName,
|
||||
ReadModuleId =readModuleData.Id,
|
||||
ReadingCategory = ReadingCategory.Global,
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
break;
|
||||
|
||||
case ModuleTypeEnum.Oncology:
|
||||
var globalModule = await _readModuleRepository.Where(x => x.SubjectId == readModuleData.SubjectId && x.SubjectVisitId == readModuleData.SubjectVisitId && x.ModuleType == ModuleTypeEnum.Global).FirstOrDefaultAsync();
|
||||
if (globalModule != null)
|
||||
{
|
||||
var globalTaskInfo = await _visitTaskRepository.FirstOrDefaultAsync(x => x.SouceReadModuleId == globalModule.Id && x.ReadingTaskState == ReadingTaskState.HaveSigned);
|
||||
if (globalTaskInfo != null)
|
||||
{
|
||||
await _visitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand()
|
||||
{
|
||||
OriginalVisitId = globalTaskInfo.Id,
|
||||
ReadingCategory = GenerateTaskCategory.Oncology,
|
||||
TrialId = dto.TrialId,
|
||||
ReadingGenerataTaskList = new List<ReadingGenerataTaskDTO>() {
|
||||
new ReadingGenerataTaskDTO()
|
||||
{
|
||||
IsUrgent = readModuleData.IsUrgent ?? false,
|
||||
SubjectId = readModuleData.SubjectId,
|
||||
VisitNum=readModuleData.VisitNum,
|
||||
ReadingName = readModuleData.ModuleName,
|
||||
ReadModuleId =readModuleData.Id,
|
||||
ReadingCategory = ReadingCategory.Oncology,
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
var res = await _readModuleRepository.SaveChangesAsync();
|
||||
return ResponseOutput.Ok(res);
|
||||
}
|
||||
|
|
|
@ -11,6 +11,8 @@ using MassTransit;
|
|||
|
||||
using IRaCIS.Core.Infra.EFCore.Common;
|
||||
using IRaCIS.Core.Infrastructure.Extention;
|
||||
using IRaCIS.Core.Application.Service;
|
||||
using IRaCIS.Core.Application.ViewModel;
|
||||
|
||||
namespace IRaCIS.Application.Services
|
||||
{
|
||||
|
@ -25,6 +27,8 @@ namespace IRaCIS.Application.Services
|
|||
private readonly IRepository<ReadingPeriodSet> _readingPeriodSetRepository;
|
||||
private readonly IRepository<ReadModule> _readModuleRepository;
|
||||
private readonly IRepository<VisitStage> _visitStageRepository;
|
||||
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||
private readonly IVisitTaskHelpeService _visitTaskHelpeService;
|
||||
private readonly IRepository<ReadingPeriodPlan> _readingPeriodPlanRepository;
|
||||
private readonly IRepository<Site> _siteSetRepository;
|
||||
|
||||
|
@ -34,6 +38,8 @@ namespace IRaCIS.Application.Services
|
|||
IRepository<ReadingPeriodSet> ReadingPeriodSetRepository,
|
||||
IRepository<ReadModule> readModuleRepository,
|
||||
IRepository<VisitStage> visitStageRepository,
|
||||
IRepository<VisitTask> visitTaskRepository,
|
||||
IVisitTaskHelpeService visitTaskHelpeService,
|
||||
IRepository<ReadingPeriodPlan> readingPeriodPlanRepository,
|
||||
IRepository<Site> SiteSetRepository,
|
||||
IRepository<Subject> subjectRepository
|
||||
|
@ -43,6 +49,8 @@ namespace IRaCIS.Application.Services
|
|||
_readingPeriodSetRepository = ReadingPeriodSetRepository;
|
||||
this._readModuleRepository = readModuleRepository;
|
||||
this._visitStageRepository = visitStageRepository;
|
||||
this._visitTaskRepository = visitTaskRepository;
|
||||
this._visitTaskHelpeService = visitTaskHelpeService;
|
||||
this._readingPeriodPlanRepository = readingPeriodPlanRepository;
|
||||
_siteSetRepository = SiteSetRepository;
|
||||
|
||||
|
@ -326,7 +334,76 @@ namespace IRaCIS.Application.Services
|
|||
});
|
||||
};
|
||||
|
||||
|
||||
// 判断是否要添加肿瘤学或者全局阅片任务
|
||||
var subjectVisitIds = readModules.Select(x => x.SubjectVisitId).ToList();
|
||||
switch (readingPeriodSet.ReadingSetType)
|
||||
{
|
||||
case ReadingSetType.ImageReading:
|
||||
|
||||
var taskInfoList = await _visitTaskRepository.Where(x => subjectVisitIds.Contains(x.SourceSubjectVisitId ?? default(Guid)) && x.ReadingTaskState == ReadingTaskState.HaveSigned).ToListAsync();
|
||||
|
||||
foreach (var item in taskInfoList)
|
||||
{
|
||||
|
||||
var readModule = readModules.Where(x => x.SubjectVisitId == item.SourceSubjectVisitId).FirstOrDefault();
|
||||
if (readModule != null)
|
||||
{
|
||||
await _visitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand()
|
||||
{
|
||||
OriginalVisitId = item.Id,
|
||||
ReadingCategory = GenerateTaskCategory.Global,
|
||||
TrialId = item.TrialId,
|
||||
ReadingGenerataTaskList = new List<ReadingGenerataTaskDTO>() {
|
||||
new ReadingGenerataTaskDTO()
|
||||
{
|
||||
IsUrgent = readModule.IsUrgent??false,
|
||||
SubjectId = readModule.SubjectId,
|
||||
VisitNum=readModule.VisitNum,
|
||||
ReadingName = readModule.ModuleName,
|
||||
ReadModuleId =readModule.Id,
|
||||
ReadingCategory = ReadingCategory.Global,
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case ReadingSetType.TumorReading:
|
||||
var globalModuleIds = await _readModuleRepository.Where(x => subjectVisitIds.Contains(x.SubjectVisitId) && x.ModuleType == ModuleTypeEnum.Global).Select(x => x.Id).ToListAsync();
|
||||
|
||||
|
||||
var globalTaskInfo = await _visitTaskRepository.Where(x => globalModuleIds.Contains(x.SouceReadModuleId ?? default(Guid)) && x.ReadingTaskState == ReadingTaskState.HaveSigned).ToListAsync();
|
||||
foreach (var item in globalTaskInfo)
|
||||
{
|
||||
var readModule = readModules.Where(x => x.SubjectVisitId == item.SourceSubjectVisitId).FirstOrDefault();
|
||||
await _visitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand()
|
||||
{
|
||||
OriginalVisitId = item.Id,
|
||||
ReadingCategory = GenerateTaskCategory.Oncology,
|
||||
TrialId = item.TrialId,
|
||||
ReadingGenerataTaskList = new List<ReadingGenerataTaskDTO>() {
|
||||
new ReadingGenerataTaskDTO()
|
||||
{
|
||||
IsUrgent = readModule.IsUrgent ?? false,
|
||||
SubjectId = readModule.SubjectId,
|
||||
VisitNum=readModule.VisitNum,
|
||||
ReadingName = readModule.ModuleName,
|
||||
ReadModuleId =readModule.Id,
|
||||
ReadingCategory = ReadingCategory.Oncology,
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
await _readModuleRepository.AddRangeAsync(readModules);
|
||||
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue