修复bug

Uat_Study
hang 2022-09-30 10:26:10 +08:00
parent eac351f003
commit 83297cab32
4 changed files with 30 additions and 11 deletions

View File

@ -128,6 +128,8 @@ namespace IRaCIS.Core.Application.ViewModel
public Guid? SourceSubjectVisitId { get; set; } public Guid? SourceSubjectVisitId { get; set; }
public Guid? SouceReadModuleId { get; set; } public Guid? SouceReadModuleId { get; set; }
public Guid TrialReadingCriterionId { get; set; }
} }

View File

@ -129,6 +129,7 @@ namespace IRaCIS.Core.Application.Service
{ {
var filterObj = await _taskConsistentRuleRepository.FirstOrDefaultAsync(t => t.Id == inCommand.TaskConsistentRuleId); var filterObj = await _taskConsistentRuleRepository.FirstOrDefaultAsync(t => t.Id == inCommand.TaskConsistentRuleId);
var doctorUserId = inCommand.DoctorUserId; var doctorUserId = inCommand.DoctorUserId;
var trialReadingCriterionId = filterObj.TrialReadingCriterionId;
var list = await GetIQueryableDoctorSelfConsistentSubjectView(filterObj, doctorUserId, inCommand.SubejctIdList).ToListAsync(); var list = await GetIQueryableDoctorSelfConsistentSubjectView(filterObj, doctorUserId, inCommand.SubejctIdList).ToListAsync();
@ -146,14 +147,14 @@ namespace IRaCIS.Core.Application.Service
var blindSubjectCode = string.Empty; var blindSubjectCode = string.Empty;
var subjectTask = _visitTaskRepository.Where(t => t.SubjectId == subject.SubjectId).OrderByDescending(t => t.BlindSubjectCode).FirstOrDefault().IfNullThrowException(); var subjectTask = _visitTaskRepository.Where(t => t.SubjectId == subject.SubjectId && t.TrialReadingCriterionId==trialReadingCriterionId).OrderByDescending(t => t.BlindSubjectCode).FirstOrDefault().IfNullThrowException();
if (subjectTask.BlindSubjectCode != String.Empty) if (subjectTask.BlindSubjectCode != String.Empty)
{ {
blindSubjectCode = subjectTask.BlindSubjectCode; blindSubjectCode = subjectTask.BlindSubjectCode;
} }
else else
{ {
var maxCodeStr = _visitTaskRepository.Where(t => t.TrialId == subject.TrialId).OrderByDescending(t => t.BlindSubjectCode).Select(t => t.BlindSubjectCode).FirstOrDefault(); var maxCodeStr = _visitTaskRepository.Where(t => t.TrialId == subject.TrialId && t.TrialReadingCriterionId == trialReadingCriterionId).OrderByDescending(t => t.BlindSubjectCode).Select(t => t.BlindSubjectCode).FirstOrDefault();
int.TryParse(maxCodeStr, out maxCodeInt); int.TryParse(maxCodeStr, out maxCodeInt);
@ -176,7 +177,7 @@ namespace IRaCIS.Core.Application.Service
{ {
var lastTask = (subject.VisitTaskList.Take(filterObj.PlanVisitCount).Last()).Clone(); var lastTask = (subject.VisitTaskList.Take(filterObj.PlanVisitCount).Last()).Clone();
var existGlobal = _visitTaskRepository.Where(t => t.SubjectId == lastTask.SubjectId && t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Global && t.VisitTaskNum == lastTask.VisitTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Global]).ProjectTo<VisitTaskSimpleDTO>(_mapper.ConfigurationProvider).FirstOrDefault(); var existGlobal = _visitTaskRepository.Where(t => t.SubjectId == lastTask.SubjectId &&t.TrialReadingCriterionId==trialReadingCriterionId && t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Global && t.VisitTaskNum == lastTask.VisitTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Global]).ProjectTo<VisitTaskSimpleDTO>(_mapper.ConfigurationProvider).FirstOrDefault();
if (existGlobal == null) if (existGlobal == null)
@ -188,7 +189,8 @@ namespace IRaCIS.Core.Application.Service
ArmEnum = lastTask.ArmEnum, ArmEnum = lastTask.ArmEnum,
ReadingCategory = ReadingCategory.Global, ReadingCategory = ReadingCategory.Global,
TaskName = lastTask.VisitTaskNum + "Global", TaskName = lastTask.VisitTaskNum + "Global",
TaskBlindName = lastTask.VisitTaskNum + "Global" TaskBlindName = lastTask.VisitTaskNum + "Global",
TrialReadingCriterionId=trialReadingCriterionId,
}; };
} }
@ -266,12 +268,14 @@ namespace IRaCIS.Core.Application.Service
var filterObj = await _taskConsistentRuleRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.IsSelfAnalysis == false); var filterObj = await _taskConsistentRuleRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.IsSelfAnalysis == false);
var trialReadingCriterionId = filterObj.TrialReadingCriterionId;
var query = await GetGroupConsistentQueryAsync(filterObj, inCommand.SubejctIdList); var query = await GetGroupConsistentQueryAsync(filterObj, inCommand.SubejctIdList);
var subjectList = query.ToList(); var subjectList = query.ToList();
var doctorUserIdQuery = from enroll in _repository.Where<Enroll>(t => t.TrialId == trialId).Where(t => t.EnrollReadingCategoryList.Any(c => c.ReadingCategory == ReadingCategory.Global || c.ReadingCategory == ReadingCategory.Visit)) var doctorUserIdQuery = from enroll in _repository.Where<Enroll>(t => t.TrialId == trialId).Where(t => t.EnrollReadingCategoryList.Where(t=>t.TrialReadingCriterionId==trialReadingCriterionId).Any(c => c.ReadingCategory == ReadingCategory.Global || c.ReadingCategory == ReadingCategory.Visit))
join user in _repository.Where<User>() on enroll.DoctorId equals user.DoctorId join user in _repository.Where<User>() on enroll.DoctorId equals user.DoctorId
select user.Id; select user.Id;
@ -316,6 +320,8 @@ namespace IRaCIS.Core.Application.Service
ArmEnum = Arm.GroupConsistentArm, ArmEnum = Arm.GroupConsistentArm,
SouceReadModuleId = task.SouceReadModuleId, SouceReadModuleId = task.SouceReadModuleId,
SourceSubjectVisitId = task.SourceSubjectVisitId, SourceSubjectVisitId = task.SourceSubjectVisitId,
TrialReadingCriterionId=task.TrialReadingCriterionId,
}); });
} }
@ -327,7 +333,7 @@ namespace IRaCIS.Core.Application.Service
var lastTask = (subjectAddTaskList.Take(filterObj.PlanVisitCount).Last()).Clone(); var lastTask = (subjectAddTaskList.Take(filterObj.PlanVisitCount).Last()).Clone();
var existGlobal = _visitTaskRepository.Where(t => t.SubjectId == lastTask.SubjectId && t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Global && t.VisitTaskNum == lastTask.VisitTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Global]).ProjectTo<VisitTaskGroupSimpleDTO>(_mapper.ConfigurationProvider).FirstOrDefault(); var existGlobal = _visitTaskRepository.Where(t => t.SubjectId == lastTask.SubjectId && t.TrialReadingCriterionId==trialReadingCriterionId && t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Global && t.VisitTaskNum == lastTask.VisitTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Global]).ProjectTo<VisitTaskGroupSimpleDTO>(_mapper.ConfigurationProvider).FirstOrDefault();
if (existGlobal == null) if (existGlobal == null)
@ -338,7 +344,9 @@ namespace IRaCIS.Core.Application.Service
TrialId = lastTask.TrialId, TrialId = lastTask.TrialId,
ReadingCategory = ReadingCategory.Global, ReadingCategory = ReadingCategory.Global,
TaskBlindName = lastTask.VisitTaskNum + "Global", TaskBlindName = lastTask.VisitTaskNum + "Global",
TaskName = lastTask.VisitTaskNum + "Global" TaskName = lastTask.VisitTaskNum + "Global",
TrialReadingCriterionId=trialReadingCriterionId,
}; };
} }
@ -453,6 +461,8 @@ namespace IRaCIS.Core.Application.Service
SourceSubjectVisitId = c.SourceSubjectVisitId, SourceSubjectVisitId = c.SourceSubjectVisitId,
SouceReadModuleId = c.SouceReadModuleId, SouceReadModuleId = c.SouceReadModuleId,
TrialReadingCriterionId=c.TrialReadingCriterionId,
//自身一致性才有意义 //自身一致性才有意义
//IsHaveGeneratedTask = c.Subject.SubjectVisitTaskList.Any(t => t.ConsistentAnalysisOriginalTaskId == c.Id), //IsHaveGeneratedTask = c.Subject.SubjectVisitTaskList.Any(t => t.ConsistentAnalysisOriginalTaskId == c.Id),
@ -541,7 +551,7 @@ namespace IRaCIS.Core.Application.Service
SubjectId = t.Id, SubjectId = t.Id,
IsHaveGeneratedTask = t.SubjectVisitTaskList.Any(c => c.IsSelfAnalysis == false), IsHaveGeneratedTask = t.SubjectVisitTaskList.Any(c => c.IsSelfAnalysis == false && c.TrialReadingCriterionId==trialReadingCriterionId),
ValidVisitCount = t.SubjectVisitTaskList.AsQueryable().Where(visitTaskFilter).GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Count(), ValidVisitCount = t.SubjectVisitTaskList.AsQueryable().Where(visitTaskFilter).GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Count(),
@ -561,6 +571,7 @@ namespace IRaCIS.Core.Application.Service
SourceSubjectVisitId = c.SourceSubjectVisitId, SourceSubjectVisitId = c.SourceSubjectVisitId,
SouceReadModuleId = c.SouceReadModuleId, SouceReadModuleId = c.SouceReadModuleId,
TrialReadingCriterionId = c.TrialReadingCriterionId,
}).ToList() }).ToList()

View File

@ -598,7 +598,9 @@ namespace IRaCIS.Core.Application.Service
IsAnalysisCreate = reReadingVisitTask.IsAnalysisCreate, IsAnalysisCreate = reReadingVisitTask.IsAnalysisCreate,
IsSelfAnalysis = reReadingVisitTask.IsSelfAnalysis, IsSelfAnalysis = reReadingVisitTask.IsSelfAnalysis,
BlindSubjectCode = reReadingVisitTask.BlindSubjectCode, BlindSubjectCode = reReadingVisitTask.BlindSubjectCode,
BlindTrialSiteCode = reReadingVisitTask.BlindTrialSiteCode BlindTrialSiteCode = reReadingVisitTask.BlindTrialSiteCode,
// TaskAllocationState = reReadingVisitTask.TaskAllocationState, // TaskAllocationState = reReadingVisitTask.TaskAllocationState,
// AllocateTime = DateTime.Now, // AllocateTime = DateTime.Now,
@ -673,6 +675,7 @@ namespace IRaCIS.Core.Application.Service
IsAnalysisCreate = true, IsAnalysisCreate = true,
IsSelfAnalysis = true, IsSelfAnalysis = true,
TrialReadingCriterionId=task.TrialReadingCriterionId,
}; };
await _visitTaskRepository.AddAsync(consistentTask); await _visitTaskRepository.AddAsync(consistentTask);
@ -714,6 +717,8 @@ namespace IRaCIS.Core.Application.Service
IsAnalysisCreate = true, IsAnalysisCreate = true,
IsSelfAnalysis = false, IsSelfAnalysis = false,
TrialReadingCriterionId = task.TrialReadingCriterionId,
}; };
await _visitTaskRepository.AddAsync(consistentTask); await _visitTaskRepository.AddAsync(consistentTask);

View File

@ -264,7 +264,8 @@ namespace IRaCIS.Application.Contracts
public List<TrialCriterionReadingCategory> CriterionReadingCategoryList { get; set; } public List<TrialCriterionReadingCategory> CriterionReadingCategoryList { get; set; }
public List<CriterionReadingCategory> CriterionCategoryList => CriterionReadingCategoryList public List<CriterionReadingCategory> CriterionCategoryList => CriterionReadingCategoryList.Count==0? TrialReadingCriterionList.Select(t=>new CriterionReadingCategory() { EnrollId= EnrollId ,TrialReadingCriterionId=t.TrialReadingCriterionId}).ToList():
CriterionReadingCategoryList
.GroupBy(t => new { t.TrialReadingCriterionId, t.EnrollId }) .GroupBy(t => new { t.TrialReadingCriterionId, t.EnrollId })
.Select(g => new CriterionReadingCategory() { EnrollId = g.Key.EnrollId, TrialReadingCriterionId = g.Key.TrialReadingCriterionId, ReadingCategorys = g.Select(t => t.ReadingCategory).ToList() }).ToList(); .Select(g => new CriterionReadingCategory() { EnrollId = g.Key.EnrollId, TrialReadingCriterionId = g.Key.TrialReadingCriterionId, ReadingCategorys = g.Select(t => t.ReadingCategory).ToList() }).ToList();
@ -291,7 +292,7 @@ namespace IRaCIS.Application.Contracts
public Guid EnrollId { get; set; } public Guid EnrollId { get; set; }
public Guid TrialReadingCriterionId { get; set; } public Guid TrialReadingCriterionId { get; set; }
public List<ReadingCategory> ReadingCategorys { get; set; } public List<ReadingCategory> ReadingCategorys { get; set; } = new List<ReadingCategory>();
} }