修改上传和归档
parent
271fa2bccc
commit
7cbede4507
|
@ -45,6 +45,7 @@ using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Path = System.IO.Path;
|
||||||
|
|
||||||
namespace IRaCIS.Core.API.Controllers
|
namespace IRaCIS.Core.API.Controllers
|
||||||
{
|
{
|
||||||
|
@ -225,6 +226,7 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
_repository = repository;
|
_repository = repository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("Study/PreArchiveStudy")]
|
||||||
public async Task<IResponseOutput> PreArchiveStudy(PreArchiveStudyCommand preArchiveStudyCommand,
|
public async Task<IResponseOutput> PreArchiveStudy(PreArchiveStudyCommand preArchiveStudyCommand,
|
||||||
[FromServices] IStudyService _studyService,
|
[FromServices] IStudyService _studyService,
|
||||||
[FromServices] IRepository<StudyMonitor> _studyMonitorRepository)
|
[FromServices] IRepository<StudyMonitor> _studyMonitorRepository)
|
||||||
|
|
|
@ -230,7 +230,7 @@
|
||||||
<member name="M:IRaCIS.Core.API.Controllers.UploadBaseController.DicomFileUploadAsync(System.Func{System.String,System.IO.Stream,System.Int32,System.Threading.Tasks.Task},System.String)">
|
<member name="M:IRaCIS.Core.API.Controllers.UploadBaseController.DicomFileUploadAsync(System.Func{System.String,System.IO.Stream,System.Int32,System.Threading.Tasks.Task},System.String)">
|
||||||
<summary> 流式上传 Dicom上传 </summary>
|
<summary> 流式上传 Dicom上传 </summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.API.Controllers.StudyController.ArchiveStudyNew(System.Guid,System.Guid,System.String,System.Nullable{System.Guid},Microsoft.Extensions.Logging.ILogger{IRaCIS.Core.API.Controllers.UploadDownLoadController},EasyCaching.Core.IEasyCachingProvider,IRaCIS.Core.Application.Contracts.IStudyService,Microsoft.AspNetCore.SignalR.IHubContext{IRaCIS.Core.API.UploadHub,IRaCIS.Core.API.IUploadClient},IRaCIS.Core.Application.Contracts.Dicom.IDicomArchiveService,IRaCIS.Core.Infra.EFCore.IRepository)">
|
<member name="M:IRaCIS.Core.API.Controllers.StudyController.ArchiveStudyNew(System.Guid,System.Guid,System.String,System.Nullable{System.Guid},Microsoft.Extensions.Logging.ILogger{IRaCIS.Core.API.Controllers.UploadDownLoadController},EasyCaching.Core.IEasyCachingProvider,IRaCIS.Core.Application.Contracts.IStudyService,Microsoft.AspNetCore.SignalR.IHubContext{IRaCIS.Core.API.UploadHub,IRaCIS.Core.API.IUploadClient},IRaCIS.Core.Application.Contracts.Dicom.IDicomArchiveService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.StudyMonitor})">
|
||||||
<summary>Dicom 归档</summary>
|
<summary>Dicom 归档</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.API.Controllers.StudyController.UploadVisitClinicalData(System.Guid)">
|
<member name="M:IRaCIS.Core.API.Controllers.StudyController.UploadVisitClinicalData(System.Guid)">
|
||||||
|
@ -280,13 +280,15 @@
|
||||||
<param name="taskMedicalReviewId"></param>
|
<param name="taskMedicalReviewId"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.API.Controllers.StudyController.UploadNoneDicomFile(Microsoft.AspNetCore.Http.IFormCollection,System.Guid,System.Guid,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudy})">
|
<member name="M:IRaCIS.Core.API.Controllers.StudyController.UploadNoneDicomFile(Microsoft.AspNetCore.Http.IFormCollection,System.Guid,System.Guid,System.Guid,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudy},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.StudyMonitor})">
|
||||||
<summary>
|
<summary>
|
||||||
上传非Dicom 文件 支持压缩包 多文件上传
|
上传非Dicom 文件 支持压缩包 多文件上传
|
||||||
</summary>
|
</summary>
|
||||||
<param name="formCollection"></param>
|
<param name="formCollection"></param>
|
||||||
<param name="subjectVisitId"></param>
|
<param name="subjectVisitId"></param>
|
||||||
<param name="noneDicomStudyId"></param>
|
<param name="noneDicomStudyId"></param>
|
||||||
|
<param name="studyMonitorId"></param>
|
||||||
|
<param name="_noneDicomStudyRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.API.Controllers.StudyController.UploadVisitCheckExcel(System.Guid)">
|
<member name="M:IRaCIS.Core.API.Controllers.StudyController.UploadVisitCheckExcel(System.Guid)">
|
||||||
|
|
|
@ -385,7 +385,6 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
|
|
||||||
UploadFinishedTime = t.UploadFinishedTime,
|
UploadFinishedTime = t.UploadFinishedTime,
|
||||||
|
|
||||||
TotalMillisecondsInterval = t.TotalMillisecondsInterval,
|
|
||||||
|
|
||||||
UploadTime = t.CreateTime,
|
UploadTime = t.CreateTime,
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,26 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public string ArchiveFinishedTimeStr => ArchiveFinishedTime?.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
public string ArchiveFinishedTimeStr => ArchiveFinishedTime?.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||||
|
|
||||||
|
|
||||||
public double TotalMillisecondsInterval { get; set; }
|
public string UploadIntervalStr
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var uploadTimeSpan = UploadFinishedTime - UploadStartTime;
|
||||||
|
|
||||||
|
return $" {uploadTimeSpan?.Hours}:{uploadTimeSpan?.Minutes}:{uploadTimeSpan?.Seconds}.{uploadTimeSpan?.Milliseconds}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ArchiveIntervalStr
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var uploadTimeSpan = ArchiveFinishedTime - UploadFinishedTime;
|
||||||
|
|
||||||
|
return $" {uploadTimeSpan?.Hours}:{uploadTimeSpan?.Minutes}:{uploadTimeSpan?.Seconds}.{uploadTimeSpan?.Milliseconds}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public string TimeInterval
|
public string TimeInterval
|
||||||
|
@ -67,9 +86,11 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
||||||
var uploadTimeSpan = UploadFinishedTime - UploadStartTime;
|
var uploadTimeSpan = ArchiveFinishedTime - UploadStartTime;
|
||||||
|
|
||||||
return $" {uploadTimeSpan.Hours}:{uploadTimeSpan.Minutes}:{uploadTimeSpan.Seconds}.{uploadTimeSpan.Milliseconds}";
|
return $" {uploadTimeSpan?.Hours}:{uploadTimeSpan?.Minutes}:{uploadTimeSpan?.Seconds}.{uploadTimeSpan?.Milliseconds}";
|
||||||
|
|
||||||
|
#region 废弃
|
||||||
//if (uploadTimeSpan.Seconds == 0 && uploadTimeSpan.Minutes==0 && uploadTimeSpan.Hours == 0)
|
//if (uploadTimeSpan.Seconds == 0 && uploadTimeSpan.Minutes==0 && uploadTimeSpan.Hours == 0)
|
||||||
//{
|
//{
|
||||||
// return $"{uploadTimeSpan.Milliseconds}毫秒";
|
// return $"{uploadTimeSpan.Milliseconds}毫秒";
|
||||||
|
@ -86,6 +107,8 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
//{
|
//{
|
||||||
// return $" {uploadTimeSpan.Hours} 小时 {uploadTimeSpan.Minutes} 分钟 {uploadTimeSpan.Seconds} 秒 {uploadTimeSpan.Milliseconds}毫秒";
|
// return $" {uploadTimeSpan.Hours} 小时 {uploadTimeSpan.Minutes} 分钟 {uploadTimeSpan.Seconds} 秒 {uploadTimeSpan.Milliseconds}毫秒";
|
||||||
//}
|
//}
|
||||||
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -192,7 +192,6 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TotalMillisecondsInterval = t.TotalMillisecondsInterval,
|
|
||||||
|
|
||||||
IsDicomReUpload = t.IsDicomReUpload,
|
IsDicomReUpload = t.IsDicomReUpload,
|
||||||
StudyId = t.Id,
|
StudyId = t.Id,
|
||||||
|
|
|
@ -473,10 +473,9 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public string IsDicomStr => IsDicom ? "DICOM" : "Non-DICOM";
|
public string IsDicomStr => IsDicom ? "DICOM" : "Non-DICOM";
|
||||||
|
|
||||||
public string UploadStartTimeStr => UploadStartTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
public string UploadStartTimeStr => UploadStartTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||||
public string UploadFinishedTimeStr => UploadFinishedTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
public string UploadFinishedTimeStr => UploadFinishedTime?.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||||
|
|
||||||
|
|
||||||
public double TotalMillisecondsInterval { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
public string TimeInterval
|
public string TimeInterval
|
||||||
|
@ -486,14 +485,14 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
var uploadTimeSpan = UploadFinishedTime - UploadStartTime;
|
var uploadTimeSpan = UploadFinishedTime - UploadStartTime;
|
||||||
|
|
||||||
return $" {uploadTimeSpan.Hours}:{uploadTimeSpan.Minutes}:{uploadTimeSpan.Seconds}.{uploadTimeSpan.Milliseconds}";
|
return $" {uploadTimeSpan?.Hours}:{uploadTimeSpan?.Minutes}:{uploadTimeSpan?.Seconds}.{uploadTimeSpan?.Milliseconds}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public DateTime UploadStartTime { get; set; }
|
public DateTime UploadStartTime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public DateTime UploadFinishedTime { get; set; }
|
public DateTime? UploadFinishedTime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public decimal FileSize { get; set; }
|
public decimal FileSize { get; set; }
|
||||||
|
|
|
@ -31,7 +31,7 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public int TotalMillisecondsInterval { get; set; }
|
//public int TotalMillisecondsInterval { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public DateTime UploadStartTime { get; set; }
|
public DateTime UploadStartTime { get; set; }
|
||||||
|
|
|
@ -10,7 +10,6 @@ using Microsoft.EntityFrameworkCore.ChangeTracking;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using EntityFramework.Exceptions.SqlServer;
|
using EntityFramework.Exceptions.SqlServer;
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
using IRaCIS.Core.Infra.EFCore.ValueGenerator;
|
|
||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
using Microsoft.EntityFrameworkCore.Metadata;
|
using Microsoft.EntityFrameworkCore.Metadata;
|
||||||
|
|
|
@ -1,34 +1,34 @@
|
||||||
using System;
|
//using System;
|
||||||
using IRaCIS.Core.Domain.Models;
|
//using IRaCIS.Core.Domain.Models;
|
||||||
using Microsoft.EntityFrameworkCore.ChangeTracking;
|
//using Microsoft.EntityFrameworkCore.ChangeTracking;
|
||||||
using Microsoft.EntityFrameworkCore.ValueGeneration;
|
//using Microsoft.EntityFrameworkCore.ValueGeneration;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Infra.EFCore.ValueGenerator
|
//namespace IRaCIS.Core.Infra.EFCore.ValueGenerator
|
||||||
{
|
//{
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// 上传监控 时间间隔存储 需要按照这个字段进行排序
|
// /// 上传监控 时间间隔存储 需要按照这个字段进行排序
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
public class UploadTotalMillisecondsInterval : ValueGenerator<int>
|
// public class UploadTotalMillisecondsInterval : ValueGenerator<int>
|
||||||
{
|
// {
|
||||||
|
|
||||||
//code first must migration dbfirst must config in db and also need config in code
|
// //code first must migration dbfirst must config in db and also need config in code
|
||||||
//modelBuilder.Entity<StudyMonitor>().Property(e => e.TotalMillisecondsInterval).HasComputedColumnSql("datediff(MS,UploadStartTime,UploadFinishedTime)");
|
// //modelBuilder.Entity<StudyMonitor>().Property(e => e.TotalMillisecondsInterval).HasComputedColumnSql("datediff(MS,UploadStartTime,UploadFinishedTime)");
|
||||||
|
|
||||||
//modelBuilder.Entity<StudyMonitor>().Property(e => e.TestInterval).ValueGeneratedOnAddOrUpdate().HasDefaultValueSql("datediff(MS,UploadStartTime,UploadFinishedTime)");
|
// //modelBuilder.Entity<StudyMonitor>().Property(e => e.TestInterval).ValueGeneratedOnAddOrUpdate().HasDefaultValueSql("datediff(MS,UploadStartTime,UploadFinishedTime)");
|
||||||
|
|
||||||
public override int Next(EntityEntry entry)
|
// public override int Next(EntityEntry entry)
|
||||||
{
|
// {
|
||||||
if (entry.Entity is StudyMonitor entity)
|
// if (entry.Entity is StudyMonitor entity)
|
||||||
{
|
// {
|
||||||
return (entity.UploadFinishedTime - entity.UploadStartTime).Milliseconds;
|
// return (entity.UploadFinishedTime - entity.UploadStartTime)?.Milliseconds;
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
throw new ArgumentException("ValueGenerator用在了不适合的实体");
|
// throw new ArgumentException("ValueGenerator用在了不适合的实体");
|
||||||
|
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
public override bool GeneratesTemporaryValues => false;
|
// public override bool GeneratesTemporaryValues => false;
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
//}
|
|
@ -1,5 +1,5 @@
|
||||||
using IRaCIS.Core.Domain.Models;
|
using IRaCIS.Core.Domain.Models;
|
||||||
using IRaCIS.Core.Infra.EFCore.ValueGenerator;
|
//using IRaCIS.Core.Infra.EFCore.ValueGenerator;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ namespace IRaCIS.Core.Infra.EFCore.EntityConfigration
|
||||||
//.HasForeignKey(s => new { s.TrialId, s.SiteId })
|
//.HasForeignKey(s => new { s.TrialId, s.SiteId })
|
||||||
//.HasPrincipalKey(c => new { c.TrialId, c.SiteId });
|
//.HasPrincipalKey(c => new { c.TrialId, c.SiteId });
|
||||||
|
|
||||||
builder.Property(e => e.TotalMillisecondsInterval).HasValueGenerator<UploadTotalMillisecondsInterval>().ValueGeneratedOnAdd();
|
//builder.Property(e => e.TotalMillisecondsInterval).HasValueGenerator<UploadTotalMillisecondsInterval>().ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
|
||||||
builder
|
builder
|
||||||
|
|
Loading…
Reference in New Issue