肿瘤学阅片
This commit is contained in:
+60
-8
@@ -151,18 +151,55 @@ namespace IRaCIS.Application.Services
|
||||
var oncologyReadingQuestions = await _readingOncologyTaskInfoRepository.Where(x => x.OncologyTaskId == inDto.VisitTaskId).ToListAsync();
|
||||
// 上一次肿瘤学阅片
|
||||
|
||||
var lastOncologyTask = await _visitTaskRepository.Where(x =>
|
||||
x.ReadingCategory == ReadingCategory.Oncology
|
||||
&& x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId
|
||||
&& x.TaskState == TaskState.Effect
|
||||
&& x.ReadingTaskState == ReadingTaskState.HaveSigned
|
||||
&& x.IsAnalysisCreate == taskInfo.IsAnalysisCreate
|
||||
&& x.VisitTaskNum < taskInfo.VisitTaskNum
|
||||
).OrderByDescending(x => x.VisitTaskNum).FirstOrDefaultAsync();
|
||||
|
||||
List<ReadingOncologyTaskInfo> lastOncologyAnswerList= new List<ReadingOncologyTaskInfo>();
|
||||
|
||||
if (lastOncologyTask != null)
|
||||
{
|
||||
lastOncologyAnswerList= await _readingOncologyTaskInfoRepository.Where(x => x.OncologyTaskId == lastOncologyTask.Id).ToListAsync();
|
||||
|
||||
}
|
||||
|
||||
|
||||
oncologyVisits.ForEach(x =>
|
||||
oncologyVisits.ForEach(x =>
|
||||
{
|
||||
var oncologyData = oncologyReadingQuestions.Where(y => y.VisitTaskId == x.VisitTaskId).FirstOrDefault();
|
||||
var lastOncologyData = lastOncologyAnswerList.Where(y => y.VisitTaskId == x.VisitTaskId).FirstOrDefault();
|
||||
|
||||
if (oncologyData != null)
|
||||
var evaluationResult = string.Empty;
|
||||
var evaluationReason = string.Empty;
|
||||
if (oncologyData != null && !oncologyData.EvaluationResult.IsNullOrEmpty())
|
||||
{
|
||||
x.EvaluationResult = oncologyData.EvaluationResult;
|
||||
x.EvaluationReason = oncologyData.EvaluationReason;
|
||||
evaluationResult = oncologyData.EvaluationResult;
|
||||
}
|
||||
x.QuestionList = globalTaskReadingInfo.TaskList.Where(y => x.VisitTaskId == y.VisitTaskId).SelectMany(y => y.AfterQuestionList).Where(x => x.GlobalAnswerType == GlobalAnswerType.Question)
|
||||
else if (lastOncologyData != null && !lastOncologyData.EvaluationResult.IsNullOrEmpty())
|
||||
{
|
||||
evaluationResult = lastOncologyData.EvaluationResult;
|
||||
}
|
||||
|
||||
|
||||
if (oncologyData != null && !oncologyData.EvaluationReason.IsNullOrEmpty())
|
||||
{
|
||||
evaluationReason = oncologyData.EvaluationReason;
|
||||
}
|
||||
else if (lastOncologyData != null && !lastOncologyData.EvaluationReason.IsNullOrEmpty())
|
||||
{
|
||||
evaluationReason = lastOncologyData.EvaluationReason;
|
||||
}
|
||||
|
||||
|
||||
x.EvaluationResult = evaluationResult;
|
||||
x.EvaluationReason = evaluationReason;
|
||||
|
||||
x.QuestionList = globalTaskReadingInfo.TaskList.Where(y => x.VisitTaskId == y.VisitTaskId).SelectMany(y => y.AfterQuestionList).Where(x => x.GlobalAnswerType == GlobalAnswerType.Question)
|
||||
.Select(y => new OncologyQuestion
|
||||
{
|
||||
QuestionId = y.QuestionId ?? default(Guid),
|
||||
@@ -295,7 +332,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
finishReading = true;
|
||||
}
|
||||
else if (judgeVisitTaskId != null && (await _visitTaskRepository.AnyAsync(x => x.Id == judgeVisitTaskId.Value && x.ReadingTaskState == ReadingTaskState.HaveSigned)))
|
||||
else if (judgeVisitTaskId != null && (await _visitTaskRepository.AnyAsync(x => x.Id == judgeVisitTaskId.Value&&x.JudgeResultTaskId!=null && x.ReadingTaskState == ReadingTaskState.HaveSigned)))
|
||||
{
|
||||
finishReading = true;
|
||||
}
|
||||
@@ -328,9 +365,24 @@ namespace IRaCIS.Application.Services
|
||||
ReadingCategory = ReadingCategory.Oncology,
|
||||
});
|
||||
|
||||
var originalVisitId = await _visitTaskRepository.Where(x => x.SouceReadModuleId == globalreadModuleId && x.TaskState == TaskState.Effect && x.ReadingCategory == ReadingCategory.Global
|
||||
var originalVisit = await _visitTaskRepository.Where(x => x.SouceReadModuleId == globalreadModuleId && x.TaskState == TaskState.Effect && x.ReadingCategory == ReadingCategory.Global
|
||||
&& x.ReadingTaskState == ReadingTaskState.HaveSigned && !x.IsAnalysisCreate && x.TrialReadingCriterionId == readModuleInfo.TrialReadingCriterionId
|
||||
).Select(x => x.Id).FirstOrDefaultAsync();
|
||||
).OrderByDescending(x => x.VisitTaskNum).ThenBy(x => x.ArmEnum).FirstNotNullAsync();
|
||||
|
||||
var originalVisitId = default(Guid);
|
||||
|
||||
if (originalVisit.JudgeVisitTaskId != null)
|
||||
{
|
||||
originalVisitId = (await _visitTaskRepository.Where(x => x.Id == originalVisit.JudgeVisitTaskId).Select(x => x.JudgeResultTaskId).FirstOrDefaultAsync()) ?? originalVisit.Id;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
originalVisitId = originalVisit.Id;
|
||||
|
||||
}
|
||||
|
||||
|
||||
await _visitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand()
|
||||
{
|
||||
OriginalVisitId= originalVisitId,
|
||||
|
||||
Reference in New Issue
Block a user