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)