From 4e777e05dbe7b0d44ca6d5d6dee690f1e3a1b524 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Tue, 18 Jul 2023 16:35:31 +0800 Subject: [PATCH] S-80 --- IRaCIS.Core.Application/IRaCIS.Core.Application.xml | 10 ++++++++++ .../Reading/ClinicalData/ClinicalAnswerService.cs | 7 ++++++- .../TrialSiteUser/DTO/PersonalWorkstationViewModel.cs | 4 ++++ .../Service/TrialSiteUser/PersonalWorkstation.cs | 6 ++++-- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 68e3841c2..5f2106e63 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -2791,6 +2791,16 @@ 模块名称 + + + 临床数据是否完整 + + + + + 临床数据是否盲化 + + 受试者Id diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index b5531c3ad..9588f5ace 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -515,6 +515,11 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task> GetCRCConfirmList(GetCRCConfirmListInDto inDto) { + if (inDto.ReadModuleId != null) + { + var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadModuleId).FirstNotNullAsync(); + inDto.TrialReadingCriterionId = readModule.TrialReadingCriterionId; + } var query = _readModuleRepository.Where(x => x.TrialId == inDto.TrialId) .WhereIf(inDto.ReadModuleId != null, x => x.Id == inDto.ReadModuleId) .WhereIf(inDto.IsCRCConfirm != null, x => x.IsCRCConfirm == inDto.IsCRCConfirm) @@ -819,7 +824,7 @@ namespace IRaCIS.Core.Application.Service var presentData = dataList.Where(x => x.ReadModuleId == inDto.ReadModuleId).First(); - if (dataList.Any(x => x.IsPMConfirm && x.LatestScanDate > presentData.LatestScanDate && x.ReadingSetType == presentData.ReadingSetType)) + if (dataList.Any(x => x.IsCRCConfirm && x.LatestScanDate > presentData.LatestScanDate && x.ReadingSetType == presentData.ReadingSetType)) { throw new BusinessValidationFailedException("当前数据并非最后一条确认信息,无法取消!"); } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs index 2bdfd6ff9..f8d22c930 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs @@ -257,6 +257,10 @@ namespace IRaCIS.Core.Application.Contracts public int? ToBeDealedCount { get; set; } + public int? ToAllCount { get; set; } + + public int? ToBeVisitCount { get; set; } + public int? ReadModuleCount { get; set; } } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs index 9e8e8eded..2af9ed5ad 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs @@ -441,8 +441,10 @@ namespace IRaCIS.Core.Application TrialCode = t.TrialCode, UrgentCount = t.SubjectVisitList.Where(u => u.IsBaseLine && u.SubmitState != SubmitStateEnum.Submitted && u.IsUrgent).Count(), ToBeDealedCount = t.ReadingClinicalDataList.Where(x=>!x.IsSign&& x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.SubjectVisit).Count(), - ReadModuleCount=t.ReadModuleList.Where(x=>!x.IsPMConfirm).Count(), - }).Where(x=>x.ToBeDealedCount>0|| x.ReadModuleCount > 0); + ToBeVisitCount= t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit).Count(), + ToAllCount= t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC ).Count(), + ReadModuleCount =t.ReadModuleList.Where(x=>!x.IsPMConfirm).Count(), + }).Where(x=>x.ToAllCount > 0); var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrEmpty(inQuery.SortField) ? nameof(ImageClinicalDataToBeDoneDto.TrialId) : inQuery.SortField, inQuery.Asc);