From 94e942e3447dfd636c84462dfae3e2c9e23c9e63 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Wed, 24 Jul 2024 14:46:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingClinicalDataService.cs | 167 ++---------------- .../Reading/Dto/ReadingClinicalDataDto.cs | 5 +- .../Interface/IReadingClinicalDataService.cs | 1 - .../ReadingOncologyTaskService.cs | 2 +- 4 files changed, 20 insertions(+), 155 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index 3cafc03c8..c60da920d 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -10,6 +10,7 @@ using System.Linq.Expressions; using IRaCIS.Core.Infrastructure; using System.Linq.Dynamic.Core; using Microsoft.Extensions.Logging; +using IRaCIS.Core.Infrastructure.Extention; namespace IRaCIS.Application.Services { @@ -750,7 +751,14 @@ namespace IRaCIS.Application.Services var isBaseLine = await _subjectVisitRepository.AnyAsync(x => x.Id == inDto.ReadingId && x.IsBaseLine); - var result = await this.GetReadingClinicalList(inDto); + var result = await this.GetClinicalDataList(new GetReadingOrTaskClinicalDataListInDto() { + ClinicalDataTrialSetId = inDto.ClinicalDataTrialSetId, + GetClinicalType=inDto.GetClinicalType, + SubjectId=inDto.SubjectId, + TrialId=inDto.TrialId, + ReadingId=inDto.ReadingId, + TrialReadingCriterionId = inDto.TrialReadingCriterionId, + }); var readingIds = result.Select(x => x.ReadingId).ToList(); var previousHistoryList = await _previousHistoryRepository.Where(x => readingIds.Contains(x.SubjectVisitId)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); @@ -788,6 +796,7 @@ namespace IRaCIS.Application.Services .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId) .WhereIf(inDto.SelectIsSign, x => x.IsSign == true) .Where(x => x.ReadingId == inDto.ReadingId) + .WhereIf(inDto.TrialReadingCriterionId!=null, x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inDto.TrialReadingCriterionId)) .Select(x => new GetReadingClinicalDataListOutDto() { ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel, @@ -803,6 +812,10 @@ namespace IRaCIS.Application.Services Id = x.Id, UploadRole = x.ClinicalDataTrialSet.UploadRole, IsCRCUpload = x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC, + IsBlind = x.IsBlind, + IsComplete = x.IsComplete, + FileCount = x.FileCount, + ReadingClinicalDataState = x.ReadingClinicalDataState, FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto() { Id = y.Id, @@ -835,6 +848,7 @@ namespace IRaCIS.Application.Services // 这里处理CRC上传 阅片期的临床数据 var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId) + //.Where(x=>x.IsCRCConfirm) .WhereIf(inDto.SelectIsSign, x => x.IsPMConfirm) .WhereIf(!inDto.SelectIsSign, x => x.IsCRCConfirm) .FirstOrDefaultAsync(); @@ -952,157 +966,6 @@ namespace IRaCIS.Application.Services return result; } - - /// - /// 获取临床数据集合 - /// - /// - [NonDynamicMethod] - public async Task> GetReadingClinicalList(GetReadingClinicalDataListIndto inDto) - { - var resultQuery = _readingClinicalDataRepository.Where(x => x.SubjectId == inDto.SubjectId) - .Where(x => x.ReadingId == inDto.ReadingId) - .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalDataTrialSetId == inDto.TrialReadingCriterionId) - .Where(x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inDto.TrialReadingCriterionId)) - .Select(x => new GetReadingClinicalDataListOutDto() - { - ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel, - SubjectId = x.SubjectId, - ReadingId = x.ReadingId, - ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us), - ClinicalDataSetEnName = x.ClinicalDataTrialSet.ClinicalDataSetEnName, - ClinicalDataTrialSetId = x.ClinicalDataTrialSetId, - IsSign = x.IsSign, - ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType, - Id = x.Id, - UploadRole = x.ClinicalDataTrialSet.UploadRole, - IsCRCUpload = x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC, - IsBlind = x.IsBlind, - IsComplete = x.IsComplete, - FileCount = x.FileCount, - - ReadingClinicalDataState = x.ReadingClinicalDataState, - - FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto() - { - Id = y.Id, - FileName = y.FileName, - Path = y.Path, - CreateTime = y.CreateTime, - }).ToList() - }); - - var result = await resultQuery.ToListAsync(); - - - var readingIds = result.Select(x => x.ReadingId).ToList(); - var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId ?? default(Guid))).ToListAsync(); - result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x => - { - - x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData() - { - CheckDate = y.CheckDate, - ClinicalFormId = y.Id - }).ToList(); - x.FileCount = x.ClinicalFromList.Count; - }); - - // 这里处理CRC上传 阅片期的临床数据 - var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId && x.IsCRCConfirm) - .FirstOrDefaultAsync(); - if (readModule != null) - { - var moduleCriterionFromList = await _readModuleCriterionFromRepository.Where(x => x.ReadModuleId == readModule.Id) - - .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalForm.ClinicalDataTrialSetId == inDto.TrialReadingCriterionId) - .Select(x => new - { - ClinicalFormId = x.ClinicalFormId, - CheckDate = x.ClinicalForm.CheckDate, - ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId - - - }).ToListAsync(); - - - var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC && x.ClinicalUploadType == ClinicalUploadType.Structuring) - .WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead) - .WhereIf(readModule.ReadingSetType == ReadingSetType.TumorReading, x => x.ClinicalDataLevel == ClinicalLevel.OncologyRead) - .Where(x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == readModule.TrialReadingCriterionId)) - .Select(x => new GetReadingClinicalDataListOutDto() - { - - ClinicalDataLevel = x.ClinicalDataLevel, - SubjectId = inDto.SubjectId, - ReadingId = default(Guid), - IsCRCApplicationRevoke = readModule.IsCRCApplicationRevoke, - IsCRCConfirm = readModule.IsCRCConfirm, - IsPMConfirm = readModule.IsPMConfirm, - - ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us), - ClinicalDataSetEnName = x.ClinicalDataSetEnName, - ClinicalDataTrialSetId = x.Id, - IsSign = readModule.IsPMConfirm, - ClinicalUploadType = x.ClinicalUploadType, - Id = default(Guid), - UploadRole = x.UploadRole, - IsCRCUpload = x.UploadRole == UploadRole.CRC, - IsNeedMerge = true, - ReadModuleId = readModule.Id, - //FileCount = x.FileCount, - - //ReadingClinicalDataState = x.ReadingClinicalDataState, - - //FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto() - //{ - // Id = y.Id, - // FileName = y.FileName, - // Path = y.Path, - // CreateTime = y.CreateTime, - //}).ToList() - - }).ToListAsync(); - - clinicalresult.ForEach(x => - { - x.FileCount = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Count(); - x.ClinicalFromList = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).OrderBy(y => y.CheckDate).Select(x => new ClinicalFromData - { - CheckDate = x.CheckDate, - ClinicalFormId = x.ClinicalFormId - - }).ToList(); - - x.IsSign = readModule.IsPMConfirm ? true : false; - x.ReadingClinicalDataState = readModule.IsPMConfirm ? ReadingClinicalDataStatus.HaveSigned : ReadingClinicalDataStatus.HaveChecked; - - }); - - result.AddRange(clinicalresult); - } - - - if (inDto.GetClinicalType != null) - { - switch (inDto.GetClinicalType) - { - case GetClinicalType.PMUpload: - result = result.Where(x => x.UploadRole == UploadRole.PM).ToList(); - break; - case GetClinicalType.CRCConfirm: - result = result.Where(x => x.UploadRole == UploadRole.CRC && x.IsCRCConfirm && !x.IsPMConfirm).ToList(); - break; - case GetClinicalType.HasSign: - result = result.Where(x => x.IsSign).ToList(); - break; - } - } - - - return result; - } - #endregion diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs index b4cca0cfa..6f2d364bb 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs @@ -199,7 +199,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class GetReadingOrTaskClinicalDataListInDto { - [NotDefault] + + public Guid? TrialReadingCriterionId { get; set; } + + [NotDefault] public Guid SubjectId { get; set; } [NotDefault] diff --git a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs index ccbbc510e..795bab0fc 100644 --- a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs @@ -22,7 +22,6 @@ namespace IRaCIS.Core.Application.Contracts // Task<(List, object)> GetReadingClinicalDataList(GetReadingClinicalDataListIndto inDto); - Task> GetReadingClinicalList(GetReadingClinicalDataListIndto inDto); Task> GetStudyClinicalData(GetStudyClinicalDataInDto inDto); diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs index 594aa2137..e4e374694 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs @@ -470,7 +470,7 @@ namespace IRaCIS.Application.Services if (finishReading) { // 获取临床数据 - var clinicalData = await _readingClinicalDataService.GetReadingClinicalList(new GetReadingClinicalDataListIndto() + var clinicalData = await _readingClinicalDataService.GetClinicalDataList(new GetReadingOrTaskClinicalDataListInDto() { SubjectId = readModuleInfo.SubjectId, ReadingId = readModuleInfo.Id,