From 37320c5be5f72b636f2534cdc98df85fe55a87b6 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 27 Jun 2022 14:14:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/Dto/ReadingClinicalDataDto.cs | 12 ++++- .../Reading/ReadingClinicalDataService.cs | 54 ++++++++++++------- IRaCIS.Core.Domain/Reading/ReadModule.cs | 26 ++++----- 3 files changed, 60 insertions(+), 32 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs index 9b8c70082..5aca377c1 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs @@ -63,6 +63,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class GetCRCClinicalDataOutDto { + + public Guid Id { get; set; } + /// /// 名称 /// @@ -95,7 +98,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public string Path { get; set; } - public List ReadingClinicalDataList { get; set; } + //public List ReadingClinicalDataList { get; set; } + + public List PDFFileList { get; set; } = new List(); public ClinicalDataTable ClinicalTableData { get; set; } } @@ -347,6 +352,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public string FileName { get; set; } + + /// + /// 上传时间 + /// + public DateTime CreateTime { get; set; } } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs index eff07d4e0..cc2765a03 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs @@ -70,7 +70,6 @@ namespace IRaCIS.Application.Services { return ResponseOutput.NotOk("存在同类型的临床数据"); } - var clinicalDataTrialSet = (await _clinicalDataTrialSetRepository.Where(x => x.Id == indto.ClinicalDataTrialSetId).FirstOrDefaultAsync()).IfNullThrowException(); if (indto.Id == null) { @@ -86,8 +85,6 @@ namespace IRaCIS.Application.Services ClinicalDataLevel= clinicalDataTrialSet.ClinicalDataLevel, ReadingId=indto.ReadingId }).ToList(); - - await _readingClinicalDataRepository.AddAsync(entity, true); var success = await _readingClinicalDataRepository.SaveChangesAsync(); return ResponseOutput.Ok(entity.Id); @@ -100,7 +97,6 @@ namespace IRaCIS.Application.Services await _readingClinicalDataRepository.SaveChangesAsync(); var addFileList = indto.AddFileList.Select(x => new ReadingClinicalDataPDF() { - TrialId = entity.TrialId, SubjectId = indto.SubjectId, FileName = x.FileName, @@ -112,7 +108,6 @@ namespace IRaCIS.Application.Services ReadingClinicalDataId= entity.Id, }).ToList(); await _readingClinicalDataPDFRepository.AddRangeAsync(addFileList); - var success = await _readingClinicalDataRepository.SaveChangesAsync(); return ResponseOutput.Ok(entity.Id); @@ -128,16 +123,19 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task> GetCRCClinicalData(GetCRCClinicalDataInDto inDto) { + await this.AddCRCClinicalData(inDto); - List cRCClinicalDataList = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == inDto.TrialId && x.UploadRole == UploadRole.CRC&&x.ClinicalDataLevel != ClinicalLevel.Read) + List cRCClinicalDataList = await _readingClinicalDataRepository.Where(x =>x.ReadingId==inDto.SubjectVisitId) + .Where(x=> x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.Read && x.ClinicalDataTrialSet.IsConfirm) .Select(x => new GetCRCClinicalDataOutDto() { - ClinicalDataSetName = x.ClinicalDataSetName, - ClinicalUploadType=x.ClinicalUploadType, - ClinicalDataTrialSetId = x.Id, - FileName=x.FileName, - UploadRole=x.UploadRole, - Path=x.Path, + Id=x.Id, + ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName, + ClinicalUploadType=x.ClinicalDataTrialSet.ClinicalUploadType, + ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id, + FileName=x.ClinicalDataTrialSet.FileName, + UploadRole=x.ClinicalDataTrialSet.UploadRole, + Path=x.ClinicalDataTrialSet.Path, }).ToListAsync() ; PageOutput clinicalData = await this.GetReadingClinicalDataList(new GetReadingClinicalDataListIndto() @@ -155,7 +153,7 @@ namespace IRaCIS.Application.Services foreach (var item in cRCClinicalDataList) { - item.ReadingClinicalDataList = clinicalData.CurrentPageData.Where(y => y.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(); + item.PDFFileList = clinicalData.CurrentPageData.Where(y => y.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).SelectMany(x=>x.FileList).ToList(); item.ClinicalTableData = new ClinicalDataTable() { PreviousHistoryList = previousHistoryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(), @@ -164,12 +162,31 @@ namespace IRaCIS.Application.Services }; } - - - - return cRCClinicalDataList; + } + /// + /// 添加CRC数据类型 + /// + /// + private async Task AddCRCClinicalData(GetCRCClinicalDataInDto inDto) + { + var cRCClinicalDataIds = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == inDto.TrialId && x.UploadRole == UploadRole.CRC && x.ClinicalDataLevel != ClinicalLevel.Read && x.IsConfirm).Select(x => x.Id).ToListAsync(); + + var needAddIds = cRCClinicalDataIds.Where(x => _readingClinicalDataRepository.Where(y => y.ReadingId == inDto.SubjectVisitId && x == y.ClinicalDataTrialSetId).Count() == 0).ToList(); + + List readingClinicals = needAddIds.Select(x => new ReadingClinicalData() + { + ClinicalDataTrialSetId = x, + IsVisit = true, + SubjectId = inDto.SubjectId, + ReadingId = inDto.SubjectVisitId, + TrialId = inDto.TrialId + }).ToList(); + + await _readingClinicalDataRepository.AddRangeAsync(readingClinicals); + + await _readingClinicalDataRepository.SaveChangesAsync(); } @@ -301,7 +318,8 @@ namespace IRaCIS.Application.Services { Id = y.Id, FileName = y.FileName, - Path = y.Path + Path = y.Path, + CreateTime=y.CreateTime, }).ToList() }); diff --git a/IRaCIS.Core.Domain/Reading/ReadModule.cs b/IRaCIS.Core.Domain/Reading/ReadModule.cs index 94894ecc3..8f79e012a 100644 --- a/IRaCIS.Core.Domain/Reading/ReadModule.cs +++ b/IRaCIS.Core.Domain/Reading/ReadModule.cs @@ -55,15 +55,15 @@ namespace IRaCIS.Core.Domain.Models /// public Guid? ReadingPeriodSetId { get; set; } - /// - /// 上一次访视(截止访视) - /// - public Guid? LastVisitIdSetId { get; set; } + ///// + ///// 上一次访视(截止访视) + ///// + //public Guid? LastVisitIdSetId { get; set; } - /// - /// 裁判对应原阅片模块的Id - /// - public Guid? ReadModuleId { get; set; } + // /// + ///// 裁判对应原阅片模块的Id + ///// + //public Guid? ReadModuleId { get; set; } /// /// 项目ID @@ -109,11 +109,11 @@ namespace IRaCIS.Core.Domain.Models public ReadingSetType ReadingSetType { get; set; } - /// - /// 访视 - /// - [ForeignKey("LastVisitIdSetId")] - public SubjectVisit LastSubjectVisit { get; set; } + ///// + ///// 访视 + ///// + //[ForeignKey("LastVisitIdSetId")] + //public SubjectVisit LastSubjectVisit { get; set; } public ReadingStatusEnum ReadingStatus { get; set; } }