From b6f398bd2b71e66ebb73f96bfec846ec004aad10 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Tue, 4 Jul 2023 14:15:26 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/ClinicalData/ClinicalAnswerService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 5c26c0bf8..ca1f9af96 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -197,7 +197,7 @@ namespace IRaCIS.Core.Application.Service }).ToListAsync(); - var clinicalData=await _readingClinicalDataRepository.Where(x=>x.TrialId == inDto.TrialId&&x.ClinicalDataTrialSet.UploadRole==UploadRole.CRC) + var clinicalData=await _readingClinicalDataRepository.Where(x=>x.TrialId == inDto.TrialId&&x.ClinicalDataTrialSet.UploadRole==UploadRole.CRC&&x.ClinicalDataTrialSet.ClinicalDataLevel!= ClinicalLevel.SubjectVisit) .Where(x=>!x.IsSign) .Include(x=>x.ClinicalDataTrialSet).Select(x=>new GetCRCSubjectClinicalOutDto() { SubjectId=x.SubjectId, From 7f966b0a247ce84cf657bda275c8ea156679a71a Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Tue, 4 Jul 2023 15:03:52 +0800 Subject: [PATCH 2/4] =?UTF-8?q?S-01=E4=B8=B4=E5=BA=8A=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ClinicalData/ClinicalAnswerService.cs | 24 +++++++------------ .../Service/Reading/Dto/ClinicalAnswerDto.cs | 2 +- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index ca1f9af96..67f17a800 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -178,18 +178,14 @@ namespace IRaCIS.Core.Application.Service /// /// [HttpPost] - public async Task> GetCRCSubjectClinicalList(GetCRCSubjectClinicalInDto inDto) + public async Task> GetCRCSubjectClinicalList(GetCRCSubjectClinicalInDto inDto) { //await AutoAddCRCClinical(new AutoAddClinicalInDto() //{ - // TrialId = inDto.TrialId //}) ; - - - var subjects = await _subjectRepository.Where(x => x.TrialId == inDto.TrialId).Select(x => new GetCRCSubjectClinicalResultDto() { SubjectId = x.Id, @@ -197,7 +193,7 @@ namespace IRaCIS.Core.Application.Service }).ToListAsync(); - var clinicalData=await _readingClinicalDataRepository.Where(x=>x.TrialId == inDto.TrialId&&x.ClinicalDataTrialSet.UploadRole==UploadRole.CRC&&x.ClinicalDataTrialSet.ClinicalDataLevel!= ClinicalLevel.SubjectVisit) + var clinicalData= _readingClinicalDataRepository.Where(x=>x.TrialId == inDto.TrialId&&x.ClinicalDataTrialSet.UploadRole==UploadRole.CRC&&x.ClinicalDataTrialSet.ClinicalDataLevel!= ClinicalLevel.SubjectVisit) .Where(x=>!x.IsSign) .Include(x=>x.ClinicalDataTrialSet).Select(x=>new GetCRCSubjectClinicalOutDto() { SubjectId=x.SubjectId, @@ -206,24 +202,20 @@ namespace IRaCIS.Core.Application.Service ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id, ClinicalDataSetEnName= x.ClinicalDataTrialSet.ClinicalDataSetEnName, ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName, - }).OrderBy(x=>x.SubjectCode).ToListAsync(); + }); - // 一次查询报错 分两次写 - clinicalData.ForEach(x => + var pageList = await clinicalData.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, string.IsNullOrWhiteSpace(inDto.SortField) ? nameof(GetCRCSubjectClinicalOutDto.SubjectCode) : inDto.SortField, inDto.Asc); + // 一次查询报错 分两次写 + pageList.CurrentPageData.ForEach(x => { x.ClinicalDataSetEnName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us); - }); - - var clinicalFormData = await _clinicalFormRepository.Where(x => x.TrialId == inDto.TrialId).ToListAsync(); - clinicalData.ForEach(n => + pageList.CurrentPageData.ForEach(n => { n.ClinicalCount = clinicalFormData.Where(y => y.ClinicalDataTrialSetId == n.ClinicalDataTrialSetId && y.SubjectId == n.SubjectId).Count(); }); - - - return clinicalData; + return pageList; } /// diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs index b22cacbfd..ec8eceddd 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs @@ -18,7 +18,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } - public class GetCRCSubjectClinicalInDto + public class GetCRCSubjectClinicalInDto:PageInput { public Guid TrialId { get; set; } } From c67dcb1d5c7be4480e585ee9b7b01d3da7c6d345 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Tue, 4 Jul 2023 15:24:34 +0800 Subject: [PATCH 3/4] =?UTF-8?q?S-002=20=E4=B8=B4=E5=BA=8A=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ClinicalData/ClinicalAnswerService.cs | 36 +++++++++++-------- .../Service/Reading/Dto/ClinicalAnswerDto.cs | 2 +- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 67f17a800..902957aa5 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -433,20 +433,24 @@ namespace IRaCIS.Core.Application.Service /// /// [HttpPost] - public async Task> GetCRCConfirmList(GetCRCConfirmListInDto inDto) + public async Task> GetCRCConfirmList(GetCRCConfirmListInDto inDto) { - List result = await _readModuleRepository.Where(x => x.TrialId == inDto.TrialId) - .WhereIf(inDto.ReadModuleId!=null,x=>x.Id==inDto.ReadModuleId) - .Select(x => new GetCRCConfirmListOutDto() - { - SubjectId= x.SubjectId, - IsCRCConfirm = x.IsCRCConfirm, - LatestScanDate = x.SubjectVisit.LatestScanDate, - ReadingSetType = x.ReadingSetType, - IsPMConfirm = x.IsPMConfirm, - SubjectCode=x.Subject.Code, - ReadModuleId = x.Id, - }).OrderBy(x => x.LatestScanDate).ToListAsync(); + var query = _readModuleRepository.Where(x => x.TrialId == inDto.TrialId) + .WhereIf(inDto.ReadModuleId != null, x => x.Id == inDto.ReadModuleId) + .Select(x => new GetCRCConfirmListOutDto() + { + SubjectId = x.SubjectId, + IsCRCConfirm = x.IsCRCConfirm, + LatestScanDate = x.SubjectVisit.LatestScanDate, + ReadingSetType = x.ReadingSetType, + IsPMConfirm = x.IsPMConfirm, + SubjectCode = x.Subject.Code, + ReadModuleId = x.Id, + }); + + + var result = await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, string.IsNullOrWhiteSpace(inDto.SortField) ? nameof(GetCRCConfirmListOutDto.LatestScanDate) : inDto.SortField, inDto.Asc); + var formList = await _clinicalFormRepository.Where(x => x.TrialId == inDto.TrialId) .Where(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC) .Where(x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.ImageRead || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.OncologyRead) @@ -461,7 +465,7 @@ namespace IRaCIS.Core.Application.Service ClinicalDataSetEnName=x.ClinicalDataTrialSet.ClinicalDataSetEnName, }).ToListAsync(); var confirmList = await _readModuleCriterionFromRepository.Where(x => x.TrialId == inDto.TrialId).Include(x=>x.ClinicalForm).Include(x=>x.ClinicalForm.ClinicalDataTrialSet).ToListAsync(); - result.ForEach(x => + result.CurrentPageData.ForEach(x => { if (x.IsCRCConfirm) { @@ -516,8 +520,10 @@ namespace IRaCIS.Core.Application.Service { ReadModuleId = inDto.ReadModuleId, TrialId = inDto.TrialId, + PageIndex=1, + PageSize=9999, - })).SelectMany(x => x.ClinicalFormIdList).ToList(); + })).CurrentPageData.SelectMany(x => x.ClinicalFormIdList).ToList(); result.ForEach(x => { diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs index ec8eceddd..fdb9f218a 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs @@ -99,7 +99,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string Answer { get; set; } = string.Empty; } - public class GetCRCConfirmListInDto + public class GetCRCConfirmListInDto:PageInput { public Guid TrialId { get; set; } From 3e49e78dfec081160000bbac9dafac85bcd13e29 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Tue, 4 Jul 2023 15:48:20 +0800 Subject: [PATCH 4/4] =?UTF-8?q?S-003=20=E4=B8=B4=E5=BA=8A=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ClinicalData/ClinicalAnswerService.cs | 30 ++++++++++++++----- .../Service/Reading/Dto/ClinicalAnswerDto.cs | 7 ++++- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 902957aa5..84d052758 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -437,8 +437,11 @@ namespace IRaCIS.Core.Application.Service { var query = _readModuleRepository.Where(x => x.TrialId == inDto.TrialId) .WhereIf(inDto.ReadModuleId != null, x => x.Id == inDto.ReadModuleId) - .Select(x => new GetCRCConfirmListOutDto() + .WhereIf(inDto.TrialReadingCriterionId != null, x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId) + .WhereIf(inDto.SubjectId != null, x => x.SubjectId == inDto.SubjectId) + .Select(x => new GetCRCConfirmListOutDto() { + SubjectId = x.SubjectId, IsCRCConfirm = x.IsCRCConfirm, LatestScanDate = x.SubjectVisit.LatestScanDate, @@ -544,10 +547,17 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task CRCConfirmClinical(CRCConfirmClinicalInDto inDto) { - var dataList =await this.GetCRCConfirmList(new GetCRCConfirmListInDto() + + var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadModuleId).FirstNotNullAsync(); + + var dataList =(await this.GetCRCConfirmList(new GetCRCConfirmListInDto() { - TrialId = inDto.TrialId - }); + TrialId = inDto.TrialId, + SubjectId= readModule.SubjectId, + TrialReadingCriterionId= readModule.TrialReadingCriterionId, + PageIndex=1, + PageSize=9999, + })).CurrentPageData; var presentData = dataList.Where(x => x.ReadModuleId == inDto.ReadModuleId).First(); var confirmlist= dataList.Where(x =>(x.LatestScanDate < presentData.LatestScanDate && x.ReadingSetType == presentData.ReadingSetType) @@ -591,10 +601,16 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task CRCCancelConfirmClinical(CRCCancelConfirmClinicalInDto inDto) { - var dataList = await this.GetCRCConfirmList(new GetCRCConfirmListInDto() + + var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadModuleId).FirstNotNullAsync(); + var dataList = (await this.GetCRCConfirmList(new GetCRCConfirmListInDto() { - TrialId = inDto.TrialId - }); + TrialId = inDto.TrialId, + SubjectId = readModule.SubjectId, + TrialReadingCriterionId = readModule.TrialReadingCriterionId, + PageIndex = 1, + PageSize = 9999, + })).CurrentPageData; var presentData = dataList.Where(x => x.ReadModuleId == inDto.ReadModuleId).First(); diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs index fdb9f218a..8eab4e74f 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs @@ -101,6 +101,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class GetCRCConfirmListInDto:PageInput { + + public Guid? TrialReadingCriterionId { get; set; } + + public Guid? SubjectId { get; set; } + public Guid TrialId { get; set; } public Guid? ReadModuleId { get; set; } @@ -138,7 +143,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto { public Guid TrialId { get; set; } - public Guid SubjectId { get; set; } + public Guid SubjectId { get; set; } public Guid ReadModuleId { get; set; } }