修改一版

Uat_Study
he 2022-07-25 17:44:03 +08:00
parent c8db183b43
commit 81600a16e8
3 changed files with 149 additions and 8 deletions

View File

@ -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,

View File

@ -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);
}

View File

@ -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
{