From 4b50216206efcb111d34bba6a80c8a1bc0438d3a Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 9 Nov 2022 14:28:07 +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 --- .../Service/Visit/DTO/VisitPointViewModel.cs | 2 +- .../Service/Visit/SubjectVisitService.cs | 63 ++++++++++--------- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Visit/DTO/VisitPointViewModel.cs b/IRaCIS.Core.Application/Service/Visit/DTO/VisitPointViewModel.cs index c60f8f3c1..cfa42598a 100644 --- a/IRaCIS.Core.Application/Service/Visit/DTO/VisitPointViewModel.cs +++ b/IRaCIS.Core.Application/Service/Visit/DTO/VisitPointViewModel.cs @@ -192,7 +192,7 @@ namespace IRaCIS.Core.Application.Contracts public int SeriesCount { get; set; } public int InstanceCount { get; set; } - + public bool IsDicom { get; set; } = true; public List SeriesList { get; set; } = new List(); } diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs index deb6acb8d..818733f12 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs @@ -268,46 +268,51 @@ namespace IRaCIS.Core.Application.Services // 非Dicom - List noDicomStudyList =await _noneDicomStudyRepository.Where(x => x.TrialId == trialId && x.SubjectVisitId == sujectVisitId).Select(x => new DicomSeriesDTO() + var noDicomList = await _noneDicomStudyRepository.Where(x => x.TrialId == trialId && x.SubjectVisitId == sujectVisitId).ToListAsync(); + + + List noDicomStudyList = noDicomList.Select(x => new VisitStudyDTO() { InstanceCount = x.FileCount, - Modality = x.Modality, - SiteId=x.SiteId, - TrialId=x.TrialId, - SubjectId=x.SubjectId, - SubjectVisitId=x.SubjectVisitId, - Id=x.Id, StudyId = x.Id, + Modalities=x.Modality, + SeriesCount=1, + StudyCode=x.StudyCode, IsDicom = false, - }).ToListAsync(); + + }).ToList(); foreach (var item in noDicomStudyList) { - item.NoneDicomFileFirstFile = await _noneDicomStudyFileRepository.Where(x => x.NoneDicomStudyId == item.Id).Select(x => x.Path).FirstOrDefaultAsync(); - } - - - if (studyList.Count > 0) - { - studyList[0].SeriesList.AddRange(noDicomStudyList); - } - - else - { - studyList = new List() + var nodicom = noDicomList.Where(x => x.Id == item.StudyId).FirstOrDefault(); + item.SeriesList = new List() { - new VisitStudyDTO(){ - InstanceCount =noDicomStudyList.Count(), - Modalities = noDicomStudyList.Select(x=>x.Modality).FirstOrDefault(), - SeriesCount = noDicomStudyList.Count(), - StudyCode = noDicomStudyList.Select(x=>x.Modality).FirstOrDefault(), - StudyId = noDicomStudyList.Select(x=>x.Id).FirstOrDefault(), - SeriesList=noDicomStudyList, - }, - + new DicomSeriesDTO (){ + IsDicom=false, + Id=item.StudyId, + InstanceCount=await _noneDicomStudyFileRepository.Where(x=>x.NoneDicomStudyId==item.StudyId).CountAsync(), + Modality=item.Modalities, + StudyId=item.StudyId, + TrialId=nodicom.TrialId, + SiteId=nodicom.SiteId, + SubjectVisitId=nodicom.SubjectVisitId, + SubjectId=nodicom.SubjectId, + NoneDicomFileFirstFile=await _noneDicomStudyFileRepository.Where(x=>x.NoneDicomStudyId==item.StudyId).Select(x=>x.Path).FirstOrDefaultAsync(), + } + }; } + + if (studyList==null||studyList.Count == 0) + { + studyList=new List(); + } + + studyList.AddRange(noDicomStudyList); + + + return studyList; //return ResponseOutput.Ok(studyList.Where(t => t.SeriesList.Count > 0).ToList());