Uat_Study
hang 2022-08-25 14:39:11 +08:00
parent 7ac2bfe477
commit 42a8e218a8
1 changed files with 27 additions and 19 deletions

View File

@ -1176,44 +1176,52 @@ namespace IRaCIS.Core.Infra.EFCore.Common
};
//if (inspection.TrialId == null && inspection.SubjectId == null && inspection.SubjectVisitId == null && inspection.SiteId == null && inspection.VisitTaskId == null)
//{
// throw new BusinessValidationFailedException("稽查记录 关联TrialId、SubjectId、SubjectVisitId、SiteId 都忘记进行了设置");
//}
if (inspection.VisitTaskId != null)
{
var info = (await _dbContext.VisitTask.Where(x => x.Id == inspection.VisitTaskId).Select(x => new { SubjectId = x.SubjectId, x.Subject.SiteId, x.TrialId, x.SourceSubjectVisitId, ReadModuleSubjectVisitId = (Guid?)x.ReadModule.SubjectVisitId }).FirstOrDefaultAsync()).IfNullThrowException();
if (generalData.TrialId == null || generalData.SiteId == null || generalData.SubjectId == null)
{
var info = await _dbContext.VisitTask.Where(x => x.Id == inspection.VisitTaskId).Select(x => new { SubjectId = x.SubjectId, x.Subject.SiteId, x.TrialId, x.SourceSubjectVisitId, ReadModuleSubjectVisitId = (Guid?)x.ReadModule.SubjectVisitId }).FirstOrDefaultAsync();
generalData.TrialId = info?.TrialId ?? generalData.TrialId;
generalData.SubjectId = info?.SubjectId ?? generalData.SubjectId;
generalData.SiteId = info?.SiteId ?? generalData.SiteId;
generalData.SubjectVisitId = info?.SourceSubjectVisitId != null ? info?.SourceSubjectVisitId : (info?.ReadModuleSubjectVisitId != null ? info?.ReadModuleSubjectVisitId : null);
generalData.TrialId = info?.TrialId ?? generalData.TrialId;
generalData.SubjectId = info?.SubjectId ?? generalData.SubjectId;
generalData.SiteId = info?.SiteId ?? generalData.SiteId;
generalData.SubjectVisitId = info?.SourceSubjectVisitId != null ? info?.SourceSubjectVisitId : (info?.ReadModuleSubjectVisitId != null ? info?.ReadModuleSubjectVisitId : null);
}
}
// Suject visit 都进行了设置 不用处理
if (inspection.SubjectVisitId != null)
{
var info = await _dbContext.SubjectVisit.Where(x => x.Id == generalData.SubjectVisitId).Select(x =>
new { x.SubjectId, x.SiteId, x.TrialId }).FirstOrDefaultAsync();
if (generalData.TrialId == null || generalData.SiteId == null || generalData.SubjectId == null)
{
var info = await _dbContext.SubjectVisit.Where(x => x.Id == generalData.SubjectVisitId).Select(x =>
new { x.SubjectId, x.SiteId, x.TrialId }).FirstOrDefaultAsync();
generalData.TrialId = info?.TrialId ?? generalData.TrialId;
generalData.SiteId = info?.SiteId ?? generalData.SiteId;
generalData.TrialId = info?.TrialId ?? generalData.TrialId;
generalData.SiteId = info?.SiteId ?? generalData.SiteId;
generalData.SubjectId = info?.SubjectId ?? generalData.SubjectId;
}
generalData.SubjectId = info?.SubjectId ?? generalData.SubjectId;
}
if (generalData.SubjectId != null)
{
var info = await _dbContext.Subject.Where(x => x.Id == generalData.SubjectId).Select(x => new { SubjectId = x.Id, x.SiteId, x.TrialId }).FirstOrDefaultAsync();
if (generalData.TrialId == null || generalData.SiteId == null)
{
var info = await _dbContext.Subject.Where(x => x.Id == generalData.SubjectId).Select(x => new { SubjectId = x.Id, x.SiteId, x.TrialId }).FirstOrDefaultAsync();
generalData.TrialId = info?.TrialId ?? generalData.TrialId;
generalData.SiteId = info?.SiteId ?? generalData.SiteId;
}
generalData.TrialId = info?.TrialId ?? generalData.TrialId;
generalData.SiteId = info?.SiteId ?? generalData.SiteId;
}
return generalData;