末次访视添加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 EntityFrameworkCore.Triggered;
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
using IRaCIS.Core.Domain.Share.Reading;
|
||||||
using IRaCIS.Core.Infrastructure;
|
using IRaCIS.Core.Infrastructure;
|
||||||
|
using MassTransit;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Application.Triggers
|
namespace IRaCIS.Core.Application.Triggers
|
||||||
{
|
{
|
||||||
|
@ -11,11 +13,13 @@ namespace IRaCIS.Core.Application.Triggers
|
||||||
{
|
{
|
||||||
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
||||||
private readonly IRepository<Subject> _subjectRepository;
|
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;
|
_subjectVisitRepository = subjectVisitRepository;
|
||||||
_subjectRepository = subjectRepository;
|
_subjectRepository = subjectRepository;
|
||||||
|
_repository = repository;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task AfterSave(ITriggerContext<SubjectVisit> context, CancellationToken cancellationToken)
|
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,
|
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 });
|
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);
|
await VerifyDealFinalVisitAsync(subjectVisit);
|
||||||
}
|
}
|
||||||
|
@ -71,8 +75,71 @@ namespace IRaCIS.Core.Application.Triggers
|
||||||
//末次访视后的 访视设置为不可用
|
//末次访视后的 访视设置为不可用
|
||||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == subjectVisit.SubjectId && t.VisitNum > subjectVisit.VisitNum &&
|
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == subjectVisit.SubjectId && t.VisitNum > subjectVisit.VisitNum &&
|
||||||
t.VisitExecuted == VisitExecutedEnum.UnExecuted, u => new SubjectVisit() { VisitExecuted = VisitExecutedEnum.Unavailable });
|
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