肿瘤学阅片

This commit is contained in:
he
2024-01-17 10:07:58 +08:00
parent 4bbfacd7de
commit 35687c01ec
2 changed files with 84 additions and 15 deletions
@@ -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,