From 819dfe9b689aad2fec414becbf32d9c159f766f3 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Mon, 25 Nov 2024 11:21:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingClinicalDataService.cs | 43 +++++++++---------- .../Reading/Dto/ReadingClinicalDataDto.cs | 5 +++ .../QC/ClinicalData/PreviousHistory.cs | 5 +++ .../QC/ClinicalData/PreviousOther.cs | 5 +++ .../QC/ClinicalData/PreviousSurgery.cs | 4 ++ 5 files changed, 39 insertions(+), 23 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index 1843dfe7c..a264f9bc2 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -681,6 +681,7 @@ namespace IRaCIS.Core.Application.Service { var readingNameOrTaskBlindName = string.Empty; var subjectCode = string.Empty; + inDto.IsGetTaskClinicalData = true; if (inDto.ReadingId == null) { var visitTask = await _visitTaskRepository.AsQueryable().Include(x => x.Subject) @@ -701,23 +702,6 @@ namespace IRaCIS.Core.Application.Service } } - - var readingIds = result.Select(x => x.ReadingId).ToList(); - - var previousHistoryList = await _previousHistoryRepository.Where(x => readingIds.Contains(x.SubjectVisitId)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); - var previousOtherList = await _previousOtherRepository.Where(x => readingIds.Contains(x.SubjectVisitId)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); - var previousSurgeryList = await _previousSurgeryRepository.Where(x => readingIds.Contains(x.SubjectVisitId)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); - foreach (var item in result) - { - item.ClinicalTableData = new ClinicalDataTable() - { - PreviousHistoryList = previousHistoryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(), - PreviousOtherList = previousOtherList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(), - PreviousSurgeryList = previousSurgeryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(), - }; - - } - Dictionary keys = new Dictionary() { {ClinicalLevel.SubjectVisit,0 }, {ClinicalLevel.ImageRead,2 }, @@ -809,6 +793,19 @@ namespace IRaCIS.Core.Application.Service isSelfAnalysis = true; } } + + //下面改用readingIdList筛选 不然 + List readingIdList = new List() {}; + if (inDto.IsGetTaskClinicalData) + { + var subjectVisit = await _subjectVisitRepository.Where(x => x.Id == inDto.ReadingId.Value).FirstOrDefaultAsync(); + if (subjectVisit != null && !subjectVisit.IsBaseLine) + { + var baseId = await _subjectVisitRepository.Where(x => x.SubjectId == subjectVisit.SubjectId && x.IsBaseLine).Select(x => x.Id).FirstOrDefaultAsync(); + readingIdList.Add(baseId); + } + } + // 一致性分析 if (isSelfAnalysis) { @@ -817,7 +814,7 @@ namespace IRaCIS.Core.Application.Service .WhereIf(inDto.ReadingClinicalDataId != null, x => x.Id == inDto.ReadingClinicalDataId) .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId) .WhereIf(inDto.SelectIsSign, x => x.IsSign == true) - .Where(x => x.ReadingId == inDto.ReadingId) + .Where(x => x.ReadingId == inDto.ReadingId||(readingIdList.Contains(x.ReadingId)&&x.ClinicalDataTrialSet.ClinicalDataLevel== ClinicalLevel.Subject)) .WhereIf(inDto.TrialReadingCriterionId != null, x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inDto.TrialReadingCriterionId)) .Select(x => new GetReadingClinicalDataListOutDto() { @@ -858,7 +855,7 @@ namespace IRaCIS.Core.Application.Service .WhereIf(inDto.ReadingClinicalDataId != null, x => x.Id == inDto.ReadingClinicalDataId) .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId) .WhereIf(inDto.SelectIsSign, x => x.IsSign == true) - .Where(x => x.ReadingId == inDto.ReadingId) + .Where(x => x.ReadingId == inDto.ReadingId || (readingIdList.Contains(x.ReadingId) && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject)) .WhereIf(inDto.TrialReadingCriterionId != null, x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inDto.TrialReadingCriterionId)) .Where(x => x.ClinicalDataTrialSet.ClinicalUploadType != ClinicalUploadType.PDF || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Study) .Select(x => new GetReadingClinicalDataListOutDto() @@ -901,7 +898,7 @@ namespace IRaCIS.Core.Application.Service .WhereIf(inDto.ReadingClinicalDataId != null, x => x.Id == inDto.ReadingClinicalDataId) .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId) .WhereIf(inDto.SelectIsSign, x => x.IsSign == true) - .Where(x => x.ReadingId == inDto.ReadingId) + .Where(x => x.ReadingId == inDto.ReadingId || (readingIdList.Contains(x.ReadingId) && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject)) .WhereIf(inDto.TrialReadingCriterionId != null, x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inDto.TrialReadingCriterionId)) .Select(x => new GetReadingClinicalDataListOutDto() { @@ -1061,9 +1058,9 @@ namespace IRaCIS.Core.Application.Service } } - var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); - var previousOtherList = await _previousOtherRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); - var previousSurgeryList = await _previousSurgeryRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.ReadingId || (readingIdList.Contains(x.SubjectVisitId) && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var previousOtherList = await _previousOtherRepository.Where(x => x.SubjectVisitId == inDto.ReadingId || (readingIdList.Contains(x.SubjectVisitId) && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var previousSurgeryList = await _previousSurgeryRepository.Where(x => x.SubjectVisitId == inDto.ReadingId || (readingIdList.Contains(x.SubjectVisitId) && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); foreach (var item in result) { diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs index eb18ccd1f..0d88a66fc 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs @@ -259,6 +259,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public bool IsGetAllConsistencyAnalysis { get; set; } = true; + /// + /// 是否是阅片页面获取临床数据 (阅片其他访视任务需要获取受试者级别的) + /// + public bool IsGetTaskClinicalData { get; set; } = false; + } public class GetConsistencyAnalysisReadingClinicalDataListInDto diff --git a/IRaCIS.Core.Domain/QC/ClinicalData/PreviousHistory.cs b/IRaCIS.Core.Domain/QC/ClinicalData/PreviousHistory.cs index 8cd6c9cd2..62e2e6f24 100644 --- a/IRaCIS.Core.Domain/QC/ClinicalData/PreviousHistory.cs +++ b/IRaCIS.Core.Domain/QC/ClinicalData/PreviousHistory.cs @@ -7,6 +7,11 @@ public class PreviousHistory : BaseAddAuditEntity #region 导航属性 [JsonIgnore] public SubjectVisit SubjectVisit { get; set; } + + [JsonIgnore] + [ForeignKey("ClinicalDataTrialSetId")] + + public ClinicalDataTrialSet ClinicalDataTrialSet { get; set; } #endregion public DateTime? StartTime { get; set; } diff --git a/IRaCIS.Core.Domain/QC/ClinicalData/PreviousOther.cs b/IRaCIS.Core.Domain/QC/ClinicalData/PreviousOther.cs index 63756c10b..a11edfcc7 100644 --- a/IRaCIS.Core.Domain/QC/ClinicalData/PreviousOther.cs +++ b/IRaCIS.Core.Domain/QC/ClinicalData/PreviousOther.cs @@ -8,6 +8,11 @@ public class PreviousOther : BaseAddAuditEntity [JsonIgnore] public SubjectVisit SubjectVisit { get; set; } + + [JsonIgnore] + [ForeignKey("ClinicalDataTrialSetId")] + + public ClinicalDataTrialSet ClinicalDataTrialSet { get; set; } #endregion public DateTime? StartTime { get; set; } diff --git a/IRaCIS.Core.Domain/QC/ClinicalData/PreviousSurgery.cs b/IRaCIS.Core.Domain/QC/ClinicalData/PreviousSurgery.cs index 7f596fd70..f790d1a64 100644 --- a/IRaCIS.Core.Domain/QC/ClinicalData/PreviousSurgery.cs +++ b/IRaCIS.Core.Domain/QC/ClinicalData/PreviousSurgery.cs @@ -6,10 +6,14 @@ public class PreviousSurgery : BaseAddAuditEntity { #region 导航属性 + [JsonIgnore] + [ForeignKey("ClinicalDataTrialSetId")] + public ClinicalDataTrialSet ClinicalDataTrialSet { get; set; } #endregion public DateTime? OperationTime { get; set; } + public Guid SubjectVisitId { get; set; } public bool IsSubjectLevel { get; set; }