修复bug
parent
eac351f003
commit
83297cab32
|
@ -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; }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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()
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue