From 175b0459df75464baba7dceaeb57dc06e1f69f41 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Fri, 26 Aug 2022 09:19:29 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=9Edicom=20=20=E5=A2=9E=E5=8A=A0=E6=95=B0?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/UploadDownLoadController.cs | 8 ++++--- IRaCIS.Core.API/IRaCIS.Core.API.xml | 2 +- .../Service/QC/NoneDicomStudyService.cs | 23 ++++++++++++------- .../Service/QC/_MapConfig.cs | 2 +- .../QC/NoneDicom/NoneDicomStudy.cs | 9 +++++--- .../QC/NoneDicom/NoneDicomStudyFile.cs | 2 +- IRaCIS.Core.Domain/SQLFile/Sql脚本.sql | 3 +++ .../Common/AuditingData.cs | 3 ++- 8 files changed, 34 insertions(+), 18 deletions(-) diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs index 8833e54b1..88347ecad 100644 --- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs +++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs @@ -613,7 +613,7 @@ namespace IRaCIS.Core.API.Controllers [HttpPost("NoneDicomStudy/UploadNoneDicomFile/{trialId:guid}/{subjectVisitId:guid}/{noneDicomStudyId:guid}")] [TypeFilter(typeof(TrialResourceFilter))] [Authorize(Policy = IRaCISPolicy.CRC)] - public async Task UploadNoneDicomFile(IFormCollection formCollection, Guid subjectVisitId, Guid noneDicomStudyId) + public async Task UploadNoneDicomFile(IFormCollection formCollection, Guid subjectVisitId, Guid noneDicomStudyId, [FromServices] IRepository _noneDicomStudyRepository) { var startTime = DateTime.Now; @@ -637,7 +637,9 @@ namespace IRaCIS.Core.API.Controllers //// 上传非Dicom 后 将状态改为待提交 分为普通上传 和QC后重传 普通上传时才改为待提交 //await _repository.UpdatePartialFromQueryAsync(t => t.Id == subjectVisitId && t.SubmitState == SubmitStateEnum.None, u => new SubjectVisit() { SubmitState = SubmitStateEnum.ToSubmit }); - var studyCode = await _repository.Where(t => t.Id == noneDicomStudyId).Select(t => t.StudyCode).FirstOrDefaultAsync(); + var noneDicomStudy = await _noneDicomStudyRepository.FirstOrDefaultAsync((t => t.Id == noneDicomStudyId)); + + noneDicomStudy.FileCount = noneDicomStudy.FileCount + formCollection.Files.Count; await _repository.AddAsync(new StudyMonitor() { @@ -646,7 +648,7 @@ namespace IRaCIS.Core.API.Controllers IsDicom = false, IsDicomReUpload = false, StudyId = noneDicomStudyId, - StudyCode = studyCode, + StudyCode = noneDicomStudy.StudyCode, UploadStartTime = startTime, UploadFinishedTime = DateTime.Now, IP = _userInfo.IP, diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.xml b/IRaCIS.Core.API/IRaCIS.Core.API.xml index 90c23372b..caae87353 100644 --- a/IRaCIS.Core.API/IRaCIS.Core.API.xml +++ b/IRaCIS.Core.API/IRaCIS.Core.API.xml @@ -273,7 +273,7 @@ - + 上传非Dicom 文件 支持压缩包 多文件上传 diff --git a/IRaCIS.Core.Application/Service/QC/NoneDicomStudyService.cs b/IRaCIS.Core.Application/Service/QC/NoneDicomStudyService.cs index 0a5a80307..56e32619c 100644 --- a/IRaCIS.Core.Application/Service/QC/NoneDicomStudyService.cs +++ b/IRaCIS.Core.Application/Service/QC/NoneDicomStudyService.cs @@ -24,21 +24,21 @@ namespace IRaCIS.Core.Application.Contracts public NoneDicomStudyService(IRepository noneDicomStudyRepository, - + IRepository noneDicomStudyFileRepository) { _noneDicomStudyRepository = noneDicomStudyRepository; - + _noneDicomStudyFileRepository = noneDicomStudyFileRepository; } [HttpGet] - public async Task> GetNoneDicomStudyList( [FromQuery,NotDefault] Guid subjectVisitId,Guid? nonedicomStudyId) + public async Task> GetNoneDicomStudyList([FromQuery, NotDefault] Guid subjectVisitId, Guid? nonedicomStudyId) { - var noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => t.SubjectVisitId == subjectVisitId).WhereIf(nonedicomStudyId!=null , t => t.Id== nonedicomStudyId) + var noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => t.SubjectVisitId == subjectVisitId).WhereIf(nonedicomStudyId != null, t => t.Id == nonedicomStudyId) .ProjectTo(_mapper.ConfigurationProvider, new { token = _userInfo.UserToken }); @@ -55,7 +55,7 @@ namespace IRaCIS.Core.Application.Contracts await QCCommon.VerifyStudyImageDataAsync(_repository, addOrEditNoneDicomStudy.SubjectId, addOrEditNoneDicomStudy.SubjectVisitId, addOrEditNoneDicomStudy.ImageDate); - + NoneDicomStudy? optEntity = null; using (await _mutex.LockAsync()) { @@ -72,7 +72,7 @@ namespace IRaCIS.Core.Application.Contracts } else { - + optEntity = await _noneDicomStudyRepository.UpdateFromDTOAsync(addOrEditNoneDicomStudy); } @@ -96,7 +96,7 @@ namespace IRaCIS.Core.Application.Contracts //提交了 但是IQC同意的时候 是可以删除的 | 普通提交后也不能删除 - await QCCommon.VerifyIsCRCSubmmitAsync(_repository,_userInfo, subjectVisitId); + await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); await _noneDicomStudyRepository.DeleteFromQueryAsync(noneDicomStudyId); @@ -118,7 +118,14 @@ namespace IRaCIS.Core.Application.Contracts //提交了 但是IQC同意的时候 是可以删除的 | 普通提交后也不能删除 await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); - var success = await _noneDicomStudyFileRepository.DeleteFromQueryAsync(t => t.Id == noneDicomStudyFileId, true); + var noneDicomStudyFile = await _noneDicomStudyFileRepository.FirstOrDefaultAsync(t => t.Id == noneDicomStudyFileId); + + var success = await _noneDicomStudyFileRepository.DeleteAsync(noneDicomStudyFile, true); + + //维护文件数量数字 + var noneDicomStudy = await _noneDicomStudyRepository.FirstOrDefaultAsync(t => t.Id == noneDicomStudyFile.NoneDicomStudyId); + noneDicomStudy.FileCount = await _noneDicomStudyFileRepository.CountAsync(t => t.NoneDicomStudyId == noneDicomStudyFile.NoneDicomStudyId); + await _noneDicomStudyRepository.SaveChangesAsync(); return ResponseOutput.Ok(); } diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs index fd76114ee..93819b912 100644 --- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs @@ -285,7 +285,7 @@ namespace IRaCIS.Core.Application.Service .ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path + "?access_token=" + token)); CreateMap() - .ForMember(d => d.FileCount, u => u.MapFrom(s => s.NoneDicomFileList.Count)) + //.ForMember(d => d.FileCount, u => u.MapFrom(s => s.NoneDicomFileList.Count)) .ForMember(d => d.NoneDicomStudyFileList, u => u.MapFrom(s => s.NoneDicomFileList)) .ForMember(d => d.CodeView, u => u.MapFrom(s => s.StudyCode)); diff --git a/IRaCIS.Core.Domain/QC/NoneDicom/NoneDicomStudy.cs b/IRaCIS.Core.Domain/QC/NoneDicom/NoneDicomStudy.cs index b76d48e97..ab967b516 100644 --- a/IRaCIS.Core.Domain/QC/NoneDicom/NoneDicomStudy.cs +++ b/IRaCIS.Core.Domain/QC/NoneDicom/NoneDicomStudy.cs @@ -15,16 +15,19 @@ namespace IRaCIS.Core.Domain.Models [Table("NoneDicomStudy")] public class NoneDicomStudy : Entity, IAuditUpdate, IAuditAdd { + [JsonIgnore] public List NoneDicomFileList { get; set; } - + [JsonIgnore] public SubjectVisit SubjectVisit { get; set; } - + [JsonIgnore] public TrialSite TrialSite { get; set; } - + [JsonIgnore] public Subject Subject { get; set; } public string StudyCode { get; set; } = string.Empty; + public int FileCount { get; set; } + public int Code { get; set; } /// diff --git a/IRaCIS.Core.Domain/QC/NoneDicom/NoneDicomStudyFile.cs b/IRaCIS.Core.Domain/QC/NoneDicom/NoneDicomStudyFile.cs index bfc39f8ab..5b5a3189e 100644 --- a/IRaCIS.Core.Domain/QC/NoneDicom/NoneDicomStudyFile.cs +++ b/IRaCIS.Core.Domain/QC/NoneDicom/NoneDicomStudyFile.cs @@ -15,7 +15,7 @@ namespace IRaCIS.Core.Domain.Models public class NoneDicomStudyFile : Entity, IAuditAdd { [ForeignKey("NoneDicomStudyId")] - + [JsonIgnore] public NoneDicomStudy NoneDicomStudy { get; set; } [Required] diff --git a/IRaCIS.Core.Domain/SQLFile/Sql脚本.sql b/IRaCIS.Core.Domain/SQLFile/Sql脚本.sql index b56462a97..19d0954d4 100644 --- a/IRaCIS.Core.Domain/SQLFile/Sql脚本.sql +++ b/IRaCIS.Core.Domain/SQLFile/Sql脚本.sql @@ -23,3 +23,6 @@ update Doctor set Physician='Staff',PhysicianCN='ҽʦ' where RankId='82411c2e- update DataInspection set JsonDetail= replace(cast(JsonDetail as varchar(max)),'Insepection','CommonData') + +update ReadingClinicalData set FileCount=(select count(*) from ReadingClinicalDataPDF where ReadingClinicalDataId =ReadingClinicalData.Id) +update NoneDicomStudy set FileCount=(select count(*) from NoneDicomStudyFile where NoneDicomStudyId =NoneDicomStudy.Id) diff --git a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs index 01e2a22b9..371f85a1c 100644 --- a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs +++ b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs @@ -1103,7 +1103,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common Data = AddJsonItem(entityObj, otherItem), //准确来讲 此处称之为 RelationData 更贴合 - CommonData = AddJsonItem(generalData, otherItem) + CommonData = otherItem + //CommonData = AddJsonItem(generalData, otherItem) }.ToJsonStr();