From 62f28cbe6c8d0d38a2d06182c1ba4af1b5b0d0bb Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 1 Nov 2022 16:13:38 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E7=89=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IRaCIS.Core.Application.xml | 6 ++
.../ReadingImageTaskService.cs | 55 ++++++++++++++++++-
.../RECIST1Point1CalculateService.cs | 2 +-
3 files changed, 60 insertions(+), 3 deletions(-)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index be35e1bef..a0a1ba509 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -8420,6 +8420,12 @@
+
+
+ 添加默认值到任务里面
+
+
+
根据任务ID获取ReadingTool
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 5fbb3c60b..11a337b00 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -113,6 +113,40 @@ namespace IRaCIS.Application.Services
}
+ ///
+ /// 添加默认值到任务里面
+ ///
+ ///
+ [NonDynamicMethod]
+ public async Task AddDefaultValueToTask(Guid visitTaskId)
+ {
+ var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
+
+ var questions = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == visitTaskInfo.TrialReadingCriterionId).ToListAsync();
+ questions = questions.Where(x => !x.DefaultValue.IsNullOrEmpty()).ToList();
+
+ var taskAnswerIds = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == visitTaskId).Select(x => x.ReadingQuestionTrialId).ToListAsync();
+ questions = questions.Where(x => !taskAnswerIds.Contains(x.Id)).ToList();
+
+ List questionAnswers = questions.Select(x => new ReadingTaskQuestionAnswer()
+ {
+
+ Answer=x.DefaultValue,
+ Id= NewId.NextGuid(),
+ ReadingQuestionCriterionTrialId= visitTaskInfo.TrialReadingCriterionId,
+ ReadingQuestionTrialId= x.Id,
+ SubjectId= visitTaskInfo.SubjectId,
+ TrialId= visitTaskInfo.TrialId,
+ VisitTaskId=visitTaskId,
+
+ }).ToList();
+
+ await _readingTaskQuestionAnswerRepository.AddRangeAsync(questionAnswers);
+ await _readingTaskQuestionAnswerRepository.SaveChangesAsync();
+
+ }
+
+
#region 阅片页面 关联信息查询 以及基本验证
///
@@ -299,6 +333,7 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task<(List, object)> GetDicomReadingQuestionAnswer(GetDicomReadingQuestionAnswerInDto inDto)
{
+ await AddDefaultValueToTask(inDto.VisitTaskId);
var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
var criterionId = taskInfo.TrialReadingCriterionId;
@@ -328,7 +363,7 @@ namespace IRaCIS.Application.Services
private void GetDicomReadingAnswer(DicomReadingQuestionAnswer item, List questions, List answers)
{
var answer = answers.Where(x => x.ReadingQuestionTrialId == item.Id).Select(x => x.Answer).FirstIsNullReturnEmpty();
- item.Answer = answer.IsNullOrEmpty()?item.DefaultValue: answer;
+
item.Childrens = questions.Where(x => x.ParentId == item.Id || ((item.Type == ReadingQestionType.Group && x.Type != ReadingQestionType.Group && x.ParentId == null && x.GroupName == item.GroupName))).ToList();
if (item.Childrens != null && item.Childrens.Count > 0)
{
@@ -348,6 +383,21 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task GetReadingReportEvaluation(GetReadingReportEvaluationInDto indto)
{
+ var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).FirstNotNullAsync();
+ if (visitTaskInfo.ReadingTaskState == ReadingTaskState.WaitReading)
+ {
+ await this._readingCalculateService.CalculateTask(new CalculateTaskInDto()
+ {
+ IsChangeOtherTask = false,
+ VisitTaskId = indto.VisitTaskId,
+ });
+ await _visitTaskRepository.UpdatePartialFromQueryAsync(indto.VisitTaskId, x => new VisitTask()
+ {
+ ReadingTaskState=ReadingTaskState.Reading
+ });
+ await _visitTaskRepository.SaveChangesAsync();
+ }
+
return await _readingCalculateService.GetReadingReportEvaluation(indto);
}
@@ -383,6 +433,7 @@ namespace IRaCIS.Application.Services
public async Task<(GetReadingQuestionAndAnswerOutDto, object)> GetReadingQuestionAndAnswer(GetReadingQuestionAndAnswerInDto inDto)
{
+ await AddDefaultValueToTask(inDto.VisitTaskId);
var result = new GetReadingQuestionAndAnswerOutDto();
var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
@@ -413,7 +464,7 @@ namespace IRaCIS.Application.Services
qusetionList.ForEach(x =>
{
- x.Answer = answers.Where(y => y.ReadingQuestionTrialId == x.Id).Select(x => x.Answer).FirstOrDefault() ?? x.DefaultValue;
+ x.Answer = answers.Where(y => y.ReadingQuestionTrialId == x.Id).Select(x => x.Answer).FirstOrDefault() ?? string.Empty;
});
#endregion
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs
index a128d6e35..64189528d 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs
@@ -1234,7 +1234,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
// 比整体访视期间SOD最低点SOD绝对增加值≥5 mm
LowChangeBigger5 = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LowestIncrease).Sum(x => x.Answer.IsNullOrEmptyReturn0()) >= 5
- && inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LowestIncrease).Sum(x => x.Answer.IsNullOrEmptyReturn0()) <=- 5
+ || inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LowestIncrease).Sum(x => x.Answer.IsNullOrEmptyReturn0()) <=- 5
,
// 被评估为NE的单个靶病灶 是否存在状态为不可评估的靶病灶