From 1815311e72d9e77b4c6a6c6e12afed9678c2a959 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Tue, 28 Mar 2023 13:33:46 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=80=E5=9B=9E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IRaCIS.Core.Application.xml | 686 +++++++++---------
.../DTO/SubjectCriteriaEvaluationViewModel.cs | 4 +
.../SubjectCriteriaEvaluationService.cs | 48 +-
3 files changed, 382 insertions(+), 356 deletions(-)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 2ff417d99..fca4c2296 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1168,349 +1168,6 @@
-
-
- 获取Sod的值
-
-
-
-
- 删除病灶获取起始病灶序号(RECIST1Point1 固定是1)
-
-
-
-
-
- 获取阅片报告
-
-
-
-
-
-
- 测试计算
-
-
-
-
-
-
-
- 计算任务
-
-
-
-
-
-
- 获取报告验证的信息(这里每个标准可能不一样 返回用object)
-
-
-
-
-
-
- 自动计算
-
-
-
-
-
-
-
- 获取报告整体整体评估
-
-
-
-
-
-
- 获取报告是否存在疾病
-
-
-
-
-
-
- 验证访视提交
-
-
-
-
-
-
- 将上一次的访视病灶添加到这一次
-
-
-
-
-
-
- 获取SOD
-
-
- 靶病灶径线之和(SOD)
- 非淋巴结的长径 和淋巴结的短径
-
-
-
-
-
- 非淋巴结靶病灶长径之和
-
-
-
-
-
-
- 与基线SOD相比变化量(mm)
-
-
-
-
-
-
- 与基线访视相比SOD变化百分比
-
-
-
-
-
-
- 与整个访视期间SOD最低点相比增加的值(mm)
-
-
-
- 要更新之前的
-
-
-
-
-
- 与整个访视期间SOD最低点相比增加的百分比
-
-
-
- 要更新之前的
-
-
-
-
-
- 整个访视期间SOD最低点访视名称
-
-
-
- 要更新之前的
-
-
-
-
-
- 是否存在非淋巴结靶病灶
-
-
-
-
-
-
- 是否存在淋巴结靶病灶且该病灶比上一访视短径增加5MM以上
-
-
-
-
-
-
- 获取存在淋巴结靶病灶且该病灶比上一访视短径增加5MM以上的病灶
-
-
-
-
-
-
- 被评估为NE的单个靶病灶
-
-
-
-
-
-
- 整体肿瘤评估
-
-
-
-
-
-
- 是否存在疾病
-
-
-
-
-
-
- 修改与整个访视期间SOD最低点相比增加的值(mm)
-
-
-
-
-
-
- 修改最低方式点名称
-
-
-
-
-
-
- 修改所有访视任务的答案
-
-
-
-
-
-
-
-
- 获取基线SOD
-
-
-
-
-
-
- 获取最低方式
-
-
-
-
-
-
- 获取访视任务信息
-
-
-
-
-
-
- 获取上一个访视任务Id
-
-
-
-
-
-
- 获取非靶病灶评估
-
-
-
-
-
-
- 获取新病灶评估
-
-
-
-
-
-
- 删除病灶获取起始病灶序号
-
-
-
-
-
- 获取阅片报告
-
-
-
-
-
-
- 将上一次的病灶信息添加到这一次
-
-
-
-
-
-
- 测试计算
-
-
-
-
-
-
-
- 计算任务
-
-
-
-
-
-
- 自动计算
-
-
-
-
-
-
-
- 基线病灶计数
-
-
-
-
-
-
- 获取新病灶计数
-
-
-
-
-
-
- 既往新病灶计数
-
-
-
-
-
-
- 自治疗后第二个访视点以来持续的新骨病变数量
-
-
-
-
-
-
- 获取
-
-
-
-
-
-
- 访视点肿瘤评估
-
-
-
-
-
-
- 修改上一次访视结果
-
-
-
-
-
-
- 获取访视日期信息
-
-
-
-
获取Sod的值
@@ -1755,6 +1412,349 @@
+
+
+ 删除病灶获取起始病灶序号
+
+
+
+
+
+ 获取阅片报告
+
+
+
+
+
+
+ 将上一次的病灶信息添加到这一次
+
+
+
+
+
+
+ 测试计算
+
+
+
+
+
+
+
+ 计算任务
+
+
+
+
+
+
+ 自动计算
+
+
+
+
+
+
+
+ 基线病灶计数
+
+
+
+
+
+
+ 获取新病灶计数
+
+
+
+
+
+
+ 既往新病灶计数
+
+
+
+
+
+
+ 自治疗后第二个访视点以来持续的新骨病变数量
+
+
+
+
+
+
+ 获取
+
+
+
+
+
+
+ 访视点肿瘤评估
+
+
+
+
+
+
+ 修改上一次访视结果
+
+
+
+
+
+
+ 获取访视日期信息
+
+
+
+
+
+
+ 获取Sod的值
+
+
+
+
+ 删除病灶获取起始病灶序号(RECIST1Point1 固定是1)
+
+
+
+
+
+ 获取阅片报告
+
+
+
+
+
+
+ 测试计算
+
+
+
+
+
+
+
+ 计算任务
+
+
+
+
+
+
+ 获取报告验证的信息(这里每个标准可能不一样 返回用object)
+
+
+
+
+
+
+ 自动计算
+
+
+
+
+
+
+
+ 获取报告整体整体评估
+
+
+
+
+
+
+ 获取报告是否存在疾病
+
+
+
+
+
+
+ 验证访视提交
+
+
+
+
+
+
+ 将上一次的访视病灶添加到这一次
+
+
+
+
+
+
+ 获取SOD
+
+
+ 靶病灶径线之和(SOD)
+ 非淋巴结的长径 和淋巴结的短径
+
+
+
+
+
+ 非淋巴结靶病灶长径之和
+
+
+
+
+
+
+ 与基线SOD相比变化量(mm)
+
+
+
+
+
+
+ 与基线访视相比SOD变化百分比
+
+
+
+
+
+
+ 与整个访视期间SOD最低点相比增加的值(mm)
+
+
+
+ 要更新之前的
+
+
+
+
+
+ 与整个访视期间SOD最低点相比增加的百分比
+
+
+
+ 要更新之前的
+
+
+
+
+
+ 整个访视期间SOD最低点访视名称
+
+
+
+ 要更新之前的
+
+
+
+
+
+ 是否存在非淋巴结靶病灶
+
+
+
+
+
+
+ 是否存在淋巴结靶病灶且该病灶比上一访视短径增加5MM以上
+
+
+
+
+
+
+ 获取存在淋巴结靶病灶且该病灶比上一访视短径增加5MM以上的病灶
+
+
+
+
+
+
+ 被评估为NE的单个靶病灶
+
+
+
+
+
+
+ 整体肿瘤评估
+
+
+
+
+
+
+ 是否存在疾病
+
+
+
+
+
+
+ 修改与整个访视期间SOD最低点相比增加的值(mm)
+
+
+
+
+
+
+ 修改最低方式点名称
+
+
+
+
+
+
+ 修改所有访视任务的答案
+
+
+
+
+
+
+
+
+ 获取基线SOD
+
+
+
+
+
+
+ 获取最低方式
+
+
+
+
+
+
+ 获取访视任务信息
+
+
+
+
+
+
+ 获取上一个访视任务Id
+
+
+
+
+
+
+ 获取非靶病灶评估
+
+
+
+
+
+
+ 获取新病灶评估
+
+
+
+
获取Sod的值
diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationViewModel.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationViewModel.cs
index eeb2aaff7..72f656cc0 100644
--- a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationViewModel.cs
@@ -64,6 +64,10 @@ namespace IRaCIS.Core.Application.ViewModel
public string TrialSiteCode { get; set; } = string.Empty;
public SubjectStatus? SubjectStatus { get; set; }
+
+ public bool? IsImageFiltering { get; set; }
+
+ public bool? IsJoinEvaluation { get; set; }
}
/// SubjectCriteriaEvaluationAddOrEdit 列表查询参数模型
diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs
index 81b24a7be..a25fbda58 100644
--- a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs
@@ -106,10 +106,13 @@ namespace IRaCIS.Core.Application.Service
var subjectCriteriaEvaluationQueryable = from subject in _subjectRepository.Where(t => t.TrialId == inQuery.TrialId)
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.SubjectCode), t => t.Code.Contains(inQuery.SubjectCode))
- .WhereIf(!string.IsNullOrWhiteSpace(inQuery.TrialSiteCode), t => t.TrialSite.TrialSiteCode.Contains(inQuery.TrialSiteCode))
- .WhereIf(inQuery.SubjectStatus != null, t => t.Status == inQuery.SubjectStatus)
+ .WhereIf(!string.IsNullOrWhiteSpace(inQuery.TrialSiteCode), t => t.TrialSite.TrialSiteCode.Contains(inQuery.TrialSiteCode))
+ .WhereIf(inQuery.SubjectStatus != null, t => t.Status == inQuery.SubjectStatus)
- join subjectCriteriaEvaluation in _subjectCriteriaEvaluationRepository.Where(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) on subject.Id equals subjectCriteriaEvaluation.SubjectId into d
+ join subjectCriteriaEvaluation in _subjectCriteriaEvaluationRepository
+ .Where(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
+
+ on subject.Id equals subjectCriteriaEvaluation.SubjectId into d
from subjectCriteriaEvaluation in d.DefaultIfEmpty()
select new SubjectCriteriaEvaluationView()
@@ -141,7 +144,10 @@ namespace IRaCIS.Core.Application.Service
};
- var pageList = await subjectCriteriaEvaluationQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, inQuery.SortField == string.Empty ? nameof(SubjectCriteriaEvaluationView.SubjectCode) : inQuery.SortField, inQuery.Asc);
+ var pageList = await subjectCriteriaEvaluationQueryable
+ .WhereIf(inQuery.IsImageFiltering != null, t => t.IsImageFiltering==inQuery.IsImageFiltering)
+ .WhereIf(inQuery.IsJoinEvaluation != null, t => t.IsJoinEvaluation == inQuery.IsJoinEvaluation)
+ .ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, inQuery.SortField == string.Empty ? nameof(SubjectCriteriaEvaluationView.SubjectCode) : inQuery.SortField, inQuery.Asc);
foreach (var item in pageList.CurrentPageData)
@@ -322,22 +328,29 @@ namespace IRaCIS.Core.Application.Service
var list = await _repository.Where(t => t.SubjectVisitId == subjectVisitId && t.SubjectId == subjectId).Select(t => new { SeriesId = t.Id, t.StudyId, t.BodyPartForEdit }).ToListAsync();
- //已经自动筛选过
- if (await _subjectCriteriaEvaluationVisitFilterRepository.AnyAsync(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.SubjectVisitId == subjectVisitId))
- {
- await _subjectCriteriaEvaluationVisitFilterRepository.BatchDeleteNoTrackingAsync(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.SubjectVisitId == subjectVisitId);
+ ////已经自动筛选过
+ //if (await _subjectCriteriaEvaluationVisitFilterRepository.AnyAsync(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.SubjectVisitId == subjectVisitId))
+ //{
+ // await _subjectCriteriaEvaluationVisitFilterRepository.BatchDeleteNoTrackingAsync(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.SubjectVisitId == subjectVisitId);
+ // await _subjectCriteriaEvaluationVisitStudyFilterRepository.BatchDeleteNoTrackingAsync(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.SubjectVisitId == subjectVisitId);
+ //}
+
+ var existEntity = await _subjectCriteriaEvaluationVisitFilterRepository.FirstOrDefaultAsync(t => t.SubjectId == subjectId && t.SubjectVisitId == subjectVisitId && t.TrialReadingCriterionId == trialReadingCriterionId);
+
+ //已经自动筛选过
+
+ if (existEntity != null)
+ {
await _subjectCriteriaEvaluationVisitStudyFilterRepository.BatchDeleteNoTrackingAsync(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.SubjectVisitId == subjectVisitId);
}
- //var existEntity = await _subjectCriteriaEvaluationVisitFilterRepository.FirstOrDefaultAsync(t => t.SubjectId == subjectId && t.SubjectVisitId == subjectVisitId && t.TrialReadingCriterionId == trialReadingCriterionId);
-
//有不是脑部的序列
if (list.Any(t => t.BodyPartForEdit != "脑部"))
{
- //if (existEntity == null)
+ if (existEntity == null)
{
var addItem = new SubjectCriteriaEvaluationVisitFilter
{
@@ -351,13 +364,18 @@ namespace IRaCIS.Core.Application.Service
var subjectCriteriaEvaluationVisitFilter = await _subjectCriteriaEvaluationVisitFilterRepository.AddAsync(addItem);
}
+ else
+ {
+ existEntity.ImageDeterminationResultState = ImageDeterminationResultState.None;
+ existEntity.ImageFilterState = ImageFilterState.None;
+ }
}
//都是脑部的序列
else
{
- //if (existEntity == null)
+ if (existEntity == null)
{
var addItem = new SubjectCriteriaEvaluationVisitFilter
{
@@ -372,7 +390,11 @@ namespace IRaCIS.Core.Application.Service
var subjectCriteriaEvaluationVisitFilter = await _subjectCriteriaEvaluationVisitFilterRepository.AddAsync(addItem);
}
-
+ else
+ {
+ existEntity.ImageDeterminationResultState = ImageDeterminationResultState.Passed;
+ existEntity.ImageFilterState = ImageFilterState.Finished;
+ }
foreach (var item in list)
{