末次访视添加Global
parent
9230aed1ec
commit
d16ac8a5ca
|
@ -110,64 +110,6 @@ namespace IRaCIS.Core.Application.Services
|
|||
}
|
||||
}
|
||||
|
||||
// 是否全局阅片
|
||||
var isGlobalReading = await _trialRepository.Where(x => x.Id == dbBeforeEntity.TrialId).Select(x => x.IsGlobalReading).FirstOrDefaultAsync();
|
||||
if (isGlobalReading)
|
||||
{
|
||||
// 末次访视添加全局阅片
|
||||
if (dbBeforeEntity.IsFinalVisit == false && svCommand.IsFinalVisit == true)
|
||||
{
|
||||
|
||||
ReadingPeriodSet? readingPeriodSet = await _readingPeriodSetRepository.FirstOrDefaultNoTrackingAsync(x => x.TrialId == dbBeforeEntity.TrialId && x.IsGlobal);
|
||||
|
||||
if (readingPeriodSet == null)
|
||||
{
|
||||
readingPeriodSet = new ReadingPeriodSet()
|
||||
{
|
||||
Id = NewId.NextGuid(),
|
||||
ReadingScope = ReadingScopeEnum.All,
|
||||
ReadingSetType = ReadingSetType.ImageReading,
|
||||
IsTakeEffect = ReadingPeriodStatus.TakeEffect,
|
||||
ReadingPeriodName = "Global",
|
||||
TrialId = dbBeforeEntity.TrialId,
|
||||
|
||||
EffectOfTime = DateTime.Now,
|
||||
IsGlobal = true,
|
||||
};
|
||||
|
||||
|
||||
await _readingPeriodSetRepository.AddAsync(readingPeriodSet);
|
||||
|
||||
}
|
||||
|
||||
await _readingPeriodPlanRepository.AddAsync(new ReadingPeriodPlan()
|
||||
{
|
||||
SubjectVisitId = dbBeforeEntity.Id,
|
||||
ReadingPeriodSetId = readingPeriodSet.Id,
|
||||
});
|
||||
|
||||
|
||||
//var trialid = await _subjectVisitRepository.Where(x => x.Id == svCommand.Id).Select(x => x.TrialId).FirstOrDefaultAsync();
|
||||
|
||||
// 当前访视没有阅片期才添加
|
||||
if (!await _readModuleRepository.AnyAsync(x => x.SubjectVisitId == svCommand.Id && x.ReadingSetType == ReadingSetType.ImageReading))
|
||||
{
|
||||
await _readModuleRepository.AddAsync(new ReadModule()
|
||||
{
|
||||
ReadingPeriodSetId = readingPeriodSet.Id,
|
||||
IsUrgent = dbBeforeEntity.IsUrgent,
|
||||
SubjectVisitId = svCommand.Id.Value,
|
||||
Status = ReadModuleEnum.TaskAllocation,
|
||||
SubjectId = dbBeforeEntity.SubjectId,
|
||||
ModuleName = "Global",// 全局阅片
|
||||
ReadingSetType = ReadingSetType.ImageReading,
|
||||
ModuleType = ModuleTypeEnum.Global,
|
||||
TrialId= dbBeforeEntity.TrialId,
|
||||
VisitNum= dbBeforeEntity.VisitNum,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
using EntityFrameworkCore.Triggered;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using IRaCIS.Core.Domain.Share.Reading;
|
||||
using IRaCIS.Core.Infrastructure;
|
||||
using MassTransit;
|
||||
|
||||
namespace IRaCIS.Core.Application.Triggers
|
||||
{
|
||||
|
@ -11,11 +13,13 @@ namespace IRaCIS.Core.Application.Triggers
|
|||
{
|
||||
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
||||
private readonly IRepository<Subject> _subjectRepository;
|
||||
private readonly IRepository _repository;
|
||||
|
||||
public SubjectVisitFinalVisitTrigger(IRepository<SubjectVisit> subjectVisitRepository, IRepository<Subject> subjectRepository)
|
||||
public SubjectVisitFinalVisitTrigger(IRepository<SubjectVisit> subjectVisitRepository, IRepository<Subject> subjectRepository, IRepository repository)
|
||||
{
|
||||
_subjectVisitRepository = subjectVisitRepository;
|
||||
_subjectRepository = subjectRepository;
|
||||
_repository = repository;
|
||||
}
|
||||
|
||||
public async Task AfterSave(ITriggerContext<SubjectVisit> context, CancellationToken cancellationToken)
|
||||
|
@ -39,14 +43,14 @@ namespace IRaCIS.Core.Application.Triggers
|
|||
//回退
|
||||
|
||||
await _subjectRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisit.SubjectId,
|
||||
u => new Subject() { Status = SubjectStatus.OnVisit, FinalSubjectVisitId =null });
|
||||
u => new Subject() { Status = SubjectStatus.OnVisit, FinalSubjectVisitId = null });
|
||||
|
||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == subjectVisit.SubjectId && t.VisitExecuted == VisitExecutedEnum.Unavailable, u => new SubjectVisit() { VisitExecuted = VisitExecutedEnum.UnExecuted });
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else if(context.ChangeType == ChangeType.Added && subjectVisit.IsFinalVisit)
|
||||
else if (context.ChangeType == ChangeType.Added && subjectVisit.IsFinalVisit)
|
||||
{
|
||||
await VerifyDealFinalVisitAsync(subjectVisit);
|
||||
}
|
||||
|
@ -56,7 +60,7 @@ namespace IRaCIS.Core.Application.Triggers
|
|||
}
|
||||
|
||||
|
||||
private async Task VerifyDealFinalVisitAsync(SubjectVisit subjectVisit)
|
||||
private async Task VerifyDealFinalVisitAsync(SubjectVisit subjectVisit)
|
||||
{
|
||||
if (await _subjectVisitRepository.AnyAsync(t => t.SubjectId == subjectVisit.SubjectId && t.VisitNum > subjectVisit.VisitNum &&
|
||||
(t.SubmitState == SubmitStateEnum.ToSubmit || t.SubmitState == SubmitStateEnum.Submitted)))
|
||||
|
@ -71,8 +75,71 @@ namespace IRaCIS.Core.Application.Triggers
|
|||
//末次访视后的 访视设置为不可用
|
||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == subjectVisit.SubjectId && t.VisitNum > subjectVisit.VisitNum &&
|
||||
t.VisitExecuted == VisitExecutedEnum.UnExecuted, u => new SubjectVisit() { VisitExecuted = VisitExecutedEnum.Unavailable });
|
||||
|
||||
|
||||
var trialId = subjectVisit.TrialId;
|
||||
var subjectVisitId= subjectVisit.Id;
|
||||
// 是否全局阅片
|
||||
var isGlobalReading = await _repository.Where<Trial>(x => x.Id == trialId).Select(x => x.IsGlobalReading).FirstOrDefaultAsync();
|
||||
|
||||
|
||||
if (isGlobalReading)
|
||||
{
|
||||
|
||||
if (!await _repository.AnyAsync<ReadingPeriodSet>(x => x.TrialId == trialId && x.IsGlobal))
|
||||
{
|
||||
var readingPeriodSet = new ReadingPeriodSet()
|
||||
{
|
||||
Id = NewId.NextGuid(),
|
||||
ReadingScope = ReadingScopeEnum.All,
|
||||
ReadingSetType = ReadingSetType.ImageReading,
|
||||
IsTakeEffect = ReadingPeriodStatus.TakeEffect,
|
||||
ReadingPeriodName = "Global",
|
||||
TrialId = trialId,
|
||||
|
||||
EffectOfTime = DateTime.Now,
|
||||
IsGlobal = true,
|
||||
|
||||
};
|
||||
|
||||
readingPeriodSet.ReadingPeriodPlanList.Add(new ReadingPeriodPlan()
|
||||
{
|
||||
SubjectVisitId = subjectVisitId,
|
||||
ReadingPeriodSetId = readingPeriodSet.Id,
|
||||
});
|
||||
|
||||
|
||||
// 当前访视没有阅片期才添加
|
||||
if (!await _repository.AnyAsync<ReadModule>(x => x.SubjectVisitId == subjectVisitId && x.ReadingSetType == ReadingSetType.ImageReading))
|
||||
{
|
||||
await _repository.AddAsync(new ReadModule()
|
||||
{
|
||||
ReadingPeriodSetId = readingPeriodSet.Id,
|
||||
IsUrgent = subjectVisit.IsUrgent,
|
||||
SubjectVisitId = subjectVisitId,
|
||||
Status = ReadModuleEnum.TaskAllocation,
|
||||
SubjectId = subjectVisit.SubjectId,
|
||||
ModuleName = "Global",// 全局阅片
|
||||
ReadingSetType = ReadingSetType.ImageReading,
|
||||
ModuleType = ModuleTypeEnum.Global,
|
||||
TrialId = subjectVisit.TrialId,
|
||||
VisitNum = subjectVisit.VisitNum,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
await _repository.AddAsync(readingPeriodSet);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue