修改CRC 提交和末次访视评估逻辑
This commit is contained in:
@@ -55,6 +55,14 @@ namespace IRaCIS.Core.Application.Triggers
|
||||
if (subjectVisit.IsFinalVisit)
|
||||
{
|
||||
await VerifyDealFinalVisitAsync(subjectVisit);
|
||||
|
||||
await _subjectRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisit.SubjectId,
|
||||
u => new Subject() { Status = SubjectStatus.OutOfVisit, FinalSubjectVisitId = subjectVisit.Id });
|
||||
|
||||
|
||||
//末次访视后的 访视设置为不可用
|
||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == subjectVisit.SubjectId && t.VisitNum > subjectVisit.VisitNum &&
|
||||
t.VisitExecuted == VisitExecutedEnum.UnExecuted, u => new SubjectVisit() { VisitExecuted = VisitExecutedEnum.Unavailable });
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -65,19 +73,16 @@ namespace IRaCIS.Core.Application.Triggers
|
||||
|
||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == subjectVisit.SubjectId && t.VisitExecuted == VisitExecutedEnum.Unavailable, u => new SubjectVisit() { VisitExecuted = VisitExecutedEnum.UnExecuted });
|
||||
|
||||
var readingPeriodSet =await _readingPeriodSetRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.IsGlobal).FirstOrDefaultAsync();
|
||||
//var readingPeriodSet =await _readingPeriodSetRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.IsGlobal).FirstOrDefaultAsync();
|
||||
|
||||
if (readingPeriodSet != null)
|
||||
{
|
||||
await _readingPeriodPlanRepository.DeleteFromQueryAsync(x => x.ReadingPeriodSetId == readingPeriodSet.Id && x.SubjectVisitId == subjectVisit.Id);
|
||||
await _readModuleRepository.UpdatePartialFromQueryAsync(x => x.SubjectVisitId == subjectVisit.Id && x.ReadingPeriodSetId == readingPeriodSet.Id,x=> new ReadModule() {
|
||||
IsDeleted = true
|
||||
|
||||
});
|
||||
|
||||
await _readModuleRepository.SaveChangesAsync();
|
||||
|
||||
}
|
||||
//if (readingPeriodSet != null)
|
||||
//{
|
||||
// await _readingPeriodPlanRepository.DeleteFromQueryAsync(x => x.ReadingPeriodSetId == readingPeriodSet.Id && x.SubjectVisitId == subjectVisit.Id);
|
||||
// await _readModuleRepository.UpdatePartialFromQueryAsync(x => x.SubjectVisitId == subjectVisit.Id && x.ReadingPeriodSetId == readingPeriodSet.Id,x=> new ReadModule() {
|
||||
// IsDeleted = true
|
||||
// });
|
||||
// await _readModuleRepository.SaveChangesAsync();
|
||||
//}
|
||||
|
||||
|
||||
|
||||
@@ -99,27 +104,21 @@ namespace IRaCIS.Core.Application.Triggers
|
||||
throw new BusinessValidationFailedException("该受试者已有后续访视已上传影像或已提交,当前访视不允许设置为末次访视。");
|
||||
}
|
||||
|
||||
await _subjectRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisit.SubjectId,
|
||||
u => new Subject() { Status = SubjectStatus.OutOfVisit, FinalSubjectVisitId = subjectVisit.Id });
|
||||
|
||||
|
||||
//末次访视后的 访视设置为不可用
|
||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == subjectVisit.SubjectId && t.VisitNum > subjectVisit.VisitNum &&
|
||||
t.VisitExecuted == VisitExecutedEnum.UnExecuted, u => new SubjectVisit() { VisitExecuted = VisitExecutedEnum.Unavailable });
|
||||
#region 末次访视生成阅片器和任务 更换位置 废弃
|
||||
|
||||
|
||||
var trialId = subjectVisit.TrialId;
|
||||
var subjectVisitId= subjectVisit.Id;
|
||||
var subjectVisitId = subjectVisit.Id;
|
||||
// 是否全局阅片
|
||||
|
||||
|
||||
var trial = await _repository.Where<Trial>(x => x.Id == trialId).FirstNotNullAsync();
|
||||
|
||||
|
||||
|
||||
if (!subjectVisit.IsBaseLine)
|
||||
if (!subjectVisit.IsBaseLine && subjectVisit.SubmitState == SubmitStateEnum.Submitted)
|
||||
{
|
||||
var criterionList = await _repository.Where<ReadingQuestionCriterionTrial>(x => x.TrialId == trialId&&x.ReadingInfoSignTime!=null && x.IsConfirm && x.IsReadingPeriod && x.IsReadingTaskViewInOrder).ToListAsync();
|
||||
var criterionList = await _repository.Where<ReadingQuestionCriterionTrial>(x => x.TrialId == trialId && x.ReadingInfoSignTime != null && x.IsConfirm && x.IsReadingPeriod && x.IsReadingTaskViewInOrder).ToListAsync();
|
||||
foreach (var item in criterionList)
|
||||
{
|
||||
//ReadingPeriodSet? readingPeriodSet = await _readingPeriodSetRepository.FirstOrDefaultNoTrackingAsync(x => x.TrialId == trialId && x.IsGlobal && x.TrialReadingCriterionId == item.Id);
|
||||
@@ -160,7 +159,7 @@ namespace IRaCIS.Core.Application.Triggers
|
||||
ReadModule newReadModule = new ReadModule()
|
||||
{
|
||||
//ReadingPeriodSetId = readingPeriodSet.Id,
|
||||
Id= NewId.NextGuid(),
|
||||
Id = NewId.NextGuid(),
|
||||
IsUrgent = subjectVisit.IsUrgent,
|
||||
SubjectVisitId = subjectVisitId,
|
||||
ReadingStatus = ReadingStatusEnum.TaskAllocate,
|
||||
@@ -173,43 +172,43 @@ namespace IRaCIS.Core.Application.Triggers
|
||||
TrialReadingCriterionId = item.Id,
|
||||
};
|
||||
|
||||
await _readModuleRepository.AddAsync(newReadModule);
|
||||
readModule = await _readModuleRepository.AddAsync(newReadModule);
|
||||
}
|
||||
|
||||
var visitTaskList = await _visitTaskRepository.Where(x => x.TrialReadingCriterionId == item.Id && x.SourceSubjectVisitId == subjectVisitId && x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned).ToListAsync();
|
||||
var visitTaskList = await _visitTaskRepository.Where(x => x.TrialReadingCriterionId == item.Id && x.SourceSubjectVisitId == subjectVisitId && x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned).ToListAsync();
|
||||
|
||||
foreach (var visitTask in visitTaskList)
|
||||
foreach (var visitTask in visitTaskList)
|
||||
{
|
||||
await _ivisitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand()
|
||||
{
|
||||
await _ivisitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand()
|
||||
{
|
||||
OriginalVisitId = visitTask.Id,
|
||||
ReadingCategory = GenerateTaskCategory.Global,
|
||||
TrialId = subjectVisit.TrialId,
|
||||
OriginalVisitId = visitTask.Id,
|
||||
ReadingCategory = GenerateTaskCategory.Global,
|
||||
TrialId = subjectVisit.TrialId,
|
||||
|
||||
ReadingGenerataTaskList = new List<ReadingGenerataTaskDTO>() {
|
||||
ReadingGenerataTaskList = new List<ReadingGenerataTaskDTO>() {
|
||||
|
||||
new ReadingGenerataTaskDTO (){
|
||||
IsUrgent=subjectVisit.IsUrgent,
|
||||
ReadingCategory=ReadingCategory.Global,
|
||||
ReadingName=newReadModule.ModuleName,
|
||||
ReadModuleId=newReadModule.Id,
|
||||
ReadingName=readModule.ModuleName,
|
||||
ReadModuleId=readModule.Id,
|
||||
SubjectId=subjectVisit.SubjectId,
|
||||
VisitNum=visitTask.VisitTaskNum,
|
||||
},
|
||||
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
await _readModuleRepository.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user