修改一版
parent
c8db183b43
commit
81600a16e8
|
@ -702,6 +702,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
ReadingCategory = ReadingCategory.Judge,
|
ReadingCategory = ReadingCategory.Judge,
|
||||||
VisitTaskNum = firstTask.VisitTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Judge],
|
VisitTaskNum = firstTask.VisitTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Judge],
|
||||||
TrialId = firstTask.TrialId,
|
TrialId = firstTask.TrialId,
|
||||||
|
TaskBlindName = firstTask.TaskName,
|
||||||
Code = currentMaxCodeInt + 1,
|
Code = currentMaxCodeInt + 1,
|
||||||
SourceSubjectVisitId = firstTask.SourceSubjectVisitId,
|
SourceSubjectVisitId = firstTask.SourceSubjectVisitId,
|
||||||
SouceReadModuleId = firstTask.SouceReadModuleId,
|
SouceReadModuleId = firstTask.SouceReadModuleId,
|
||||||
|
|
|
@ -12,6 +12,8 @@ using Panda.DynamicWebApi.Attributes;
|
||||||
using IRaCIS.Core.Application.Contracts;
|
using IRaCIS.Core.Application.Contracts;
|
||||||
using IRaCIS.Core.Infra.EFCore.Common;
|
using IRaCIS.Core.Infra.EFCore.Common;
|
||||||
using System.Linq.Dynamic.Core;
|
using System.Linq.Dynamic.Core;
|
||||||
|
using IRaCIS.Core.Application.Service;
|
||||||
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
|
|
||||||
namespace IRaCIS.Application.Services
|
namespace IRaCIS.Application.Services
|
||||||
{
|
{
|
||||||
|
@ -27,6 +29,7 @@ namespace IRaCIS.Application.Services
|
||||||
private readonly IRepository<VisitStage> _visitstageRepository;
|
private readonly IRepository<VisitStage> _visitstageRepository;
|
||||||
private readonly IRepository<User> _userRepository;
|
private readonly IRepository<User> _userRepository;
|
||||||
private readonly IRepository<Trial> _trialRepository;
|
private readonly IRepository<Trial> _trialRepository;
|
||||||
|
private readonly IVisitTaskHelpeService _visitTaskHelpeService;
|
||||||
private readonly IRepository<VisitTask> _visitTaskRepository;
|
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||||
private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository;
|
private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository;
|
||||||
private readonly IRepository<ReadModuleView> _readModuleViewRepository;
|
private readonly IRepository<ReadModuleView> _readModuleViewRepository;
|
||||||
|
@ -41,6 +44,7 @@ namespace IRaCIS.Application.Services
|
||||||
IRepository<VisitStage> visitstageRepository,
|
IRepository<VisitStage> visitstageRepository,
|
||||||
IRepository<User> UserRepository,
|
IRepository<User> UserRepository,
|
||||||
IRepository<Trial> trialRepository,
|
IRepository<Trial> trialRepository,
|
||||||
|
IVisitTaskHelpeService visitTaskHelpeService,
|
||||||
IRepository<VisitTask> visitTaskRepository,
|
IRepository<VisitTask> visitTaskRepository,
|
||||||
IRepository<ClinicalDataTrialSet> clinicalDataTrialSetRepository,
|
IRepository<ClinicalDataTrialSet> clinicalDataTrialSetRepository,
|
||||||
IRepository<ReadModuleView> readModuleViewRepository,
|
IRepository<ReadModuleView> readModuleViewRepository,
|
||||||
|
@ -55,6 +59,7 @@ namespace IRaCIS.Application.Services
|
||||||
this._visitstageRepository = visitstageRepository;
|
this._visitstageRepository = visitstageRepository;
|
||||||
this._userRepository = UserRepository;
|
this._userRepository = UserRepository;
|
||||||
this._trialRepository = trialRepository;
|
this._trialRepository = trialRepository;
|
||||||
|
this._visitTaskHelpeService = visitTaskHelpeService;
|
||||||
this._visitTaskRepository = visitTaskRepository;
|
this._visitTaskRepository = visitTaskRepository;
|
||||||
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
|
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
|
||||||
this._readModuleViewRepository = readModuleViewRepository;
|
this._readModuleViewRepository = readModuleViewRepository;
|
||||||
|
@ -333,20 +338,78 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
if (visit != null)
|
if (visit != null)
|
||||||
{
|
{
|
||||||
await _readModuleRepository.AddAsync(new ReadModule()
|
var readModuleData = new ReadModule()
|
||||||
{
|
{
|
||||||
Id= NewId.NextGuid(),
|
Id = NewId.NextGuid(),
|
||||||
SubjectId = dto.SubjectId,
|
SubjectId = dto.SubjectId,
|
||||||
ModuleType = dto.ReadingSetType==ReadingSetType.ImageReading? ModuleTypeEnum.Global: ModuleTypeEnum.Oncology,
|
ModuleType = dto.ReadingSetType == ReadingSetType.ImageReading ? ModuleTypeEnum.Global : ModuleTypeEnum.Oncology,
|
||||||
IsUrgent = visit.IsUrgent,
|
IsUrgent = visit.IsUrgent,
|
||||||
ModuleName = dto.Name,
|
ModuleName = dto.Name,
|
||||||
SubjectVisitId = visit.Id,
|
SubjectVisitId = visit.Id,
|
||||||
ReadingSetType= dto.ReadingSetType,
|
ReadingSetType = dto.ReadingSetType,
|
||||||
TrialId= dto.TrialId,
|
TrialId = dto.TrialId,
|
||||||
VisitNum= visit.VisitNum,
|
VisitNum = visit.VisitNum,
|
||||||
ReadingStatus = ReadingStatusEnum.TaskAllocate,
|
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();
|
var res = await _readModuleRepository.SaveChangesAsync();
|
||||||
return ResponseOutput.Ok(res);
|
return ResponseOutput.Ok(res);
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,8 @@ using MassTransit;
|
||||||
|
|
||||||
using IRaCIS.Core.Infra.EFCore.Common;
|
using IRaCIS.Core.Infra.EFCore.Common;
|
||||||
using IRaCIS.Core.Infrastructure.Extention;
|
using IRaCIS.Core.Infrastructure.Extention;
|
||||||
|
using IRaCIS.Core.Application.Service;
|
||||||
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
|
|
||||||
namespace IRaCIS.Application.Services
|
namespace IRaCIS.Application.Services
|
||||||
{
|
{
|
||||||
|
@ -25,6 +27,8 @@ namespace IRaCIS.Application.Services
|
||||||
private readonly IRepository<ReadingPeriodSet> _readingPeriodSetRepository;
|
private readonly IRepository<ReadingPeriodSet> _readingPeriodSetRepository;
|
||||||
private readonly IRepository<ReadModule> _readModuleRepository;
|
private readonly IRepository<ReadModule> _readModuleRepository;
|
||||||
private readonly IRepository<VisitStage> _visitStageRepository;
|
private readonly IRepository<VisitStage> _visitStageRepository;
|
||||||
|
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||||
|
private readonly IVisitTaskHelpeService _visitTaskHelpeService;
|
||||||
private readonly IRepository<ReadingPeriodPlan> _readingPeriodPlanRepository;
|
private readonly IRepository<ReadingPeriodPlan> _readingPeriodPlanRepository;
|
||||||
private readonly IRepository<Site> _siteSetRepository;
|
private readonly IRepository<Site> _siteSetRepository;
|
||||||
|
|
||||||
|
@ -34,6 +38,8 @@ namespace IRaCIS.Application.Services
|
||||||
IRepository<ReadingPeriodSet> ReadingPeriodSetRepository,
|
IRepository<ReadingPeriodSet> ReadingPeriodSetRepository,
|
||||||
IRepository<ReadModule> readModuleRepository,
|
IRepository<ReadModule> readModuleRepository,
|
||||||
IRepository<VisitStage> visitStageRepository,
|
IRepository<VisitStage> visitStageRepository,
|
||||||
|
IRepository<VisitTask> visitTaskRepository,
|
||||||
|
IVisitTaskHelpeService visitTaskHelpeService,
|
||||||
IRepository<ReadingPeriodPlan> readingPeriodPlanRepository,
|
IRepository<ReadingPeriodPlan> readingPeriodPlanRepository,
|
||||||
IRepository<Site> SiteSetRepository,
|
IRepository<Site> SiteSetRepository,
|
||||||
IRepository<Subject> subjectRepository
|
IRepository<Subject> subjectRepository
|
||||||
|
@ -43,6 +49,8 @@ namespace IRaCIS.Application.Services
|
||||||
_readingPeriodSetRepository = ReadingPeriodSetRepository;
|
_readingPeriodSetRepository = ReadingPeriodSetRepository;
|
||||||
this._readModuleRepository = readModuleRepository;
|
this._readModuleRepository = readModuleRepository;
|
||||||
this._visitStageRepository = visitStageRepository;
|
this._visitStageRepository = visitStageRepository;
|
||||||
|
this._visitTaskRepository = visitTaskRepository;
|
||||||
|
this._visitTaskHelpeService = visitTaskHelpeService;
|
||||||
this._readingPeriodPlanRepository = readingPeriodPlanRepository;
|
this._readingPeriodPlanRepository = readingPeriodPlanRepository;
|
||||||
_siteSetRepository = SiteSetRepository;
|
_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);
|
await _readModuleRepository.AddRangeAsync(readModules);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue