From 6d298e775f1c629c81a36299842097259056b839 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Mon, 4 Aug 2025 11:15:01 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=AD=E6=AD=A2=E6=9F=A5=E8=AF=A2=E8=BF=87?=
=?UTF-8?q?=E6=BB=A4+CDISC=E5=AF=BC=E5=87=BA=E9=9D=9E=E8=82=BF=E7=98=A4?=
=?UTF-8?q?=E6=A0=87=E5=87=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Service/Common/ExcelExportService.cs | 52 +++++++++----------
.../Service/QC/QCListService.cs | 1 +
2 files changed, 26 insertions(+), 27 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
index 4fa795ad6..0b00ab56f 100644
--- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
+++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
@@ -407,7 +407,7 @@ namespace IRaCIS.Core.Application.Service.Common
///
///
[HttpPost]
- public async Task GetImageBackList_Export(ImageBackQueryDto inQuery,
+ public async Task GetImageBackList_Export(ImageBackQueryDto inQuery,
[FromServices] IRepository _subjectVisitImageBackRecordReposiotry, [FromServices] IDictionaryService _dictionaryService)
{
var svExpression = QCCommon.GetSubjectVisitImageBackRecordFilter(inQuery.VisitPlanArray);
@@ -428,7 +428,7 @@ namespace IRaCIS.Core.Application.Service.Common
var defalutSortArray = new string[] { nameof(ImageBackViewModel.IsUrgent) + " desc", nameof(ImageBackViewModel.SubjectCode), nameof(ImageBackViewModel.VisitNum) };
- var list = await query.OrderByDescending(t=>t.IsUrgent).ThenBy(t=>t.SubjectCode).ThenBy(t=>t.VisitNum).ToListAsync();
+ var list = await query.OrderByDescending(t => t.IsUrgent).ThenBy(t => t.SubjectCode).ThenBy(t => t.VisitNum).ToListAsync();
var exportInfo = (await _trialRepository.Where(t => t.Id == inQuery.TrialId).IgnoreQueryFilters().ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
@@ -1292,7 +1292,7 @@ namespace IRaCIS.Core.Application.Service.Common
//Uploader = t.Uploader.UserName,
//UploadTime = t.CreateTime
- SubjectStatus=t.Subject.Status
+ SubjectStatus = t.Subject.Status
});
@@ -2619,33 +2619,21 @@ namespace IRaCIS.Core.Application.Service.Common
// 配置在外层问题 或者表格问题上
taskList = await query.ProjectTo(_mapper.ConfigurationProvider,
- new
- {
- readingExportType = inQuery.ReadingExportType,
- criterionType = criterion.CriterionType,
- arbitrationRule = criterion.ArbitrationRule,
- trialReadingCriterionId = inQuery.TrialReadingCriterionId,
- isEn_Us = _userInfo.IsEn_Us
- }).ToListAsync();
+ new
+ {
+ readingExportType = inQuery.ReadingExportType,
+ criterionType = criterion.CriterionType,
+ arbitrationRule = criterion.ArbitrationRule,
+ trialReadingCriterionId = inQuery.TrialReadingCriterionId,
+ isEn_Us = _userInfo.IsEn_Us
+ }).ToListAsync();
}
// CDISC 导出 只管到 外层问题层级 和阅片结果表是保持一致
else if (inQuery.ReadingExportType == ExportResult.CDISC)
{
- if (criterion.CriterionType == CriterionType.SelfDefine)
- {
- taskList = await query.ProjectTo(_mapper.ConfigurationProvider,
- new
- {
- readingExportType = inQuery.ReadingExportType,
- criterionType = criterion.CriterionType,
- arbitrationRule = criterion.ArbitrationRule,
- trialReadingCriterionId = inQuery.TrialReadingCriterionId,
- isEn_Us = _userInfo.IsEn_Us
- }).ToListAsync();
- }
- else
+ if (criterion.CriterionGroup == CriterionGroup.Tumor)
{
list = await query.ProjectTo(_mapper.ConfigurationProvider,
@@ -2658,8 +2646,18 @@ namespace IRaCIS.Core.Application.Service.Common
isEn_Us = _userInfo.IsEn_Us
}).ToListAsync();
}
-
-
+ else
+ {
+ taskList = await query.ProjectTo(_mapper.ConfigurationProvider,
+ new
+ {
+ readingExportType = inQuery.ReadingExportType,
+ criterionType = criterion.CriterionType,
+ arbitrationRule = criterion.ArbitrationRule,
+ trialReadingCriterionId = inQuery.TrialReadingCriterionId,
+ isEn_Us = _userInfo.IsEn_Us
+ }).ToListAsync();
+ }
}
@@ -3150,7 +3148,7 @@ namespace IRaCIS.Core.Application.Service.Common
{
//遍历病灶的每个问题
- foreach (var lessionItem in lession.LessionAnswerList.OrderBy(t=>t.ShowOrder))
+ foreach (var lessionItem in lession.LessionAnswerList.OrderBy(t => t.ShowOrder))
{
var cloneItem = item.Clone();
diff --git a/IRaCIS.Core.Application/Service/QC/QCListService.cs b/IRaCIS.Core.Application/Service/QC/QCListService.cs
index d5ba73af0..a5a60c9e3 100644
--- a/IRaCIS.Core.Application/Service/QC/QCListService.cs
+++ b/IRaCIS.Core.Application/Service/QC/QCListService.cs
@@ -83,6 +83,7 @@ namespace IRaCIS.Core.Application.Image.QA
var svExpression = QCCommon.GetSubjectVisitFilter(inQuery.VisitPlanArray);
var query = _subjectVisitRepository.Where(x => x.TrialId == inQuery.TrialId)
+ .Where(t => !(t.Subject.Status == SubjectStatus.EndOfVisit && t.SubmitState == SubmitStateEnum.None && !t.Subject.SubjectVisitList.Any(c => c.VisitNum > t.VisitNum && c.SubmitState > SubmitStateEnum.None)))
.Where(t => t.Subject.FinalSubjectVisitId != null ? t.VisitNum <= t.Subject.FinalSubjectVisit.VisitNum : true)
.WhereIf(inQuery.TrialSiteId != null, t => t.TrialSiteId == inQuery.TrialSiteId)
.WhereIf(inQuery.SubjectId != null, t => t.Subject.Id == inQuery.SubjectId)