From 44e109cefa90ead014989b6bc135adf83a505e1f Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 12 Jul 2023 17:12:28 +0800 Subject: [PATCH] S-53 --- .../ReadingClinicalDataService.cs | 35 ++++++++++++++++--- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index db3ea8f62..86afe83b0 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -25,6 +25,7 @@ namespace IRaCIS.Application.Services private readonly IRepository _subjectVisitRepository; private readonly IRepository _previousHistoryRepository; private readonly IRepository _readModuleCriterionFromRepository; + private readonly IRepository _clinicalFormRepository; private readonly IRepository _previousOtherRepository; private readonly IRepository _previousSurgeryRepository; private readonly IRepository _readingQuestionCriterionTrialRepository; @@ -39,6 +40,7 @@ namespace IRaCIS.Application.Services IRepository subjectVisitRepository, IRepository previousHistoryRepository, IRepository readModuleCriterionFromRepository, + IRepository clinicalFormRepository, IRepository previousOtherRepository, IRepository previousSurgeryRepository, IRepository readingQuestionCriterionTrialRepository, @@ -55,6 +57,7 @@ namespace IRaCIS.Application.Services this._subjectVisitRepository = subjectVisitRepository; this._previousHistoryRepository = previousHistoryRepository; this._readModuleCriterionFromRepository = readModuleCriterionFromRepository; + this._clinicalFormRepository = clinicalFormRepository; this._previousOtherRepository = previousOtherRepository; this._previousSurgeryRepository = previousSurgeryRepository; this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository; @@ -659,7 +662,6 @@ namespace IRaCIS.Application.Services inDto.ReadingId = visitTask.SouceReadModuleId ?? visitTask.SourceSubjectVisitId; } - var resultQuery = _readingClinicalDataRepository.Where(x => x.SubjectId == inDto.SubjectId) .WhereIf(inDto.ReadingClinicalDataId != null, x => x.Id == inDto.ReadingClinicalDataId) .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId) @@ -694,12 +696,22 @@ namespace IRaCIS.Application.Services { 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).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) + // 这里处理CRC上传 阅片期的临床数据 + var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId) .WhereIf(inDto.SelectIsSign,x=>x.IsPMConfirm) .WhereIf(!inDto.SelectIsSign, x => x.IsCRCConfirm) .FirstOrDefaultAsync(); @@ -857,6 +869,19 @@ namespace IRaCIS.Application.Services 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).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();