From 2c45d4f1a58a4985d98f78c8c41a8c96330efbd2 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 2 Nov 2023 09:10:31 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ImageAndDoc/DTO/DicomSeriesModel.cs | 2 ++ .../Third-partyProject/UltrasonicDicomService.cs | 2 +- .../Service/Visit/SubjectVisitService.cs | 10 ++++++---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs index a9062fd24..5dcd1e3fa 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs @@ -37,6 +37,8 @@ public List InstancePathList { get; set; } = new List(); + public List InstanceHtmlPathList { get; set; } + //存放在instance 上面 public string WindowCenter { get; set; } = string.Empty; public string WindowWidth { get; set; } = string.Empty; diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs index 98b33fd25..d5a9e076c 100644 --- a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs +++ b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs @@ -85,7 +85,7 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject [HttpPost] public async Task> GetVisitTaskList(VisitTaskQuery_UltrasonicDicom queryVisitTask) { - var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId && t.IsAnalysisCreate == false && t.TaskState == TaskState.Effect && t.SourceSubjectVisitId != null) + var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId && t.IsAnalysisCreate == false && t.TaskState == TaskState.Effect &&t.TaskAllocationState==TaskAllocationState.Allocated && t.SourceSubjectVisitId != null) .WhereIf(queryVisitTask.SiteId != null, t => t.Subject.SiteId == queryVisitTask.SiteId) .WhereIf(queryVisitTask.SubjectId != null, t => t.SubjectId == queryVisitTask.SubjectId) diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs index 695454728..e4c19c5e9 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs @@ -262,7 +262,7 @@ namespace IRaCIS.Core.Application.Services var studyIds = studyList.Select(t => t.StudyId).ToList(); var instanceList = await _repository.Where(t => studyIds.Contains(t.StudyId)) - .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames }).ToListAsync(); + .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames,t.HtmlPath }).ToListAsync(); foreach (var t in studyList) { @@ -275,7 +275,9 @@ namespace IRaCIS.Core.Application.Services { series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList(); - //series.InstancePathList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Path).ToList(); + + series.InstanceHtmlPathList = instanceList.Where(t => t.SeriesId == series.Id && t.HtmlPath != string.Empty).OrderBy(t => t.InstanceNumber).Select(k => k.HtmlPath).ToList(); + //处理多帧 series.InstancePathList = instanceList.OrderBy(t => t.InstanceNumber).Where(s => s.SeriesId == series.Id) @@ -458,7 +460,7 @@ namespace IRaCIS.Core.Application.Services var studyIds = studyList.Select(t => t.StudyId).ToList(); var instanceList = await _repository.Where(t => studyIds.Contains(t.StudyId)) - .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames,t.WindowCenter,t.WindowWidth }).ToListAsync(); + .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames,t.WindowCenter,t.WindowWidth,t.HtmlPath }).ToListAsync(); @@ -478,7 +480,7 @@ namespace IRaCIS.Core.Application.Services series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList(); - //series.InstancePathList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Path).ToList(); + series.InstanceHtmlPathList = instanceList.Where(t => t.SeriesId == series.Id && t.HtmlPath!=string.Empty).OrderBy(t => t.InstanceNumber).Select(k => k.HtmlPath).ToList(); //处理多帧 series.InstancePathList = instanceList.Where(s => s.SeriesId == series.Id).OrderBy(t => t.InstanceNumber) From c53390beb3221641050beabb8d7f02e7ed02998c Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 2 Nov 2023 09:21:06 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B6=85=E5=A3=B0?= =?UTF-8?q?=E9=87=8D=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 18 ++++++----- .../ImageAndDoc/DTO/UnionStudyViewDodel.cs | 30 +++++++++---------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 1809aa067..e134eefbf 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -405,14 +405,8 @@ - - - 重阅原任务跟踪处理 只会在同意的时候调用这个 - - - - - + + PM 申请重阅 被同意 或者 PM 直接退回的时候影响 @@ -2045,6 +2039,14 @@ + + + 保留小数 + + + + + 删除病灶获取起始病灶序号 diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs index a2ff95f1e..37fbae848 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs @@ -264,17 +264,17 @@ namespace IRaCIS.Core.Application.Contracts public string SeriesInstanceUid { get; set; } public int SeriesNumber { get; set; } public DateTime? SeriesTime { get; set; } - public string Modality { get; set; } - public string Description { get; set; } + public string Modality { get; set; } = string.Empty; + public string Description { get; set; } = string.Empty; public int InstanceCount { get; set; } - public string SliceThickness { get; set; } + public string SliceThickness { get; set; } = string.Empty; - public string ImagePositionPatient { get; set; } - public string ImageOrientationPatient { get; set; } - public string BodyPartExamined { get; set; } - public string SequenceName { get; set; } - public string ProtocolName { get; set; } - public string ImagerPixelSpacing { get; set; } + public string ImagePositionPatient { get; set; } = string.Empty; + public string ImageOrientationPatient { get; set; } = string.Empty; + public string BodyPartExamined { get; set; } = string.Empty; + public string SequenceName { get; set; } = string.Empty; + public string ProtocolName { get; set; } = string.Empty; + public string ImagerPixelSpacing { get; set; } = string.Empty; public string AcquisitionTime { get; set; } = string.Empty; public string AcquisitionNumber { get; set; } = string.Empty; @@ -300,14 +300,14 @@ namespace IRaCIS.Core.Application.Contracts public int SliceLocation { get; set; } - public string SliceThickness { get; set; } + public string SliceThickness { get; set; } = string.Empty; public int NumberOfFrames { get; set; } - public string PixelSpacing { get; set; } + public string PixelSpacing { get; set; } = string.Empty; - public string ImagerPixelSpacing { get; set; } - public string FrameOfReferenceUID { get; set; } - public string WindowCenter { get; set; } - public string WindowWidth { get; set; } + public string ImagerPixelSpacing { get; set; } = string.Empty; + public string FrameOfReferenceUID { get; set; } = string.Empty; + public string WindowCenter { get; set; } = string.Empty; + public string WindowWidth { get; set; } = string.Empty; public bool Anonymize { get; set; } public string Path { get; set; } = string.Empty; From a8771052f3058eef548e1c5b9211ec5a03ffa994 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 2 Nov 2023 10:08:56 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=92=E8=89=B2?= =?UTF-8?q?=EF=BC=8C=E5=92=8Cadmin=E6=9F=A5=E7=9C=8B=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/TrialSiteUser/PersonalWorkstation.cs | 2 +- IRaCIS.Core.Domain.Share/User/UserType.cs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs index 67f574346..ac8f54f33 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs @@ -1108,7 +1108,7 @@ namespace IRaCIS.Core.Application .WhereIf(!string.IsNullOrEmpty(inQuery.Code), o => o.TrialCode.Contains(inQuery.Code)) .WhereIf(!string.IsNullOrEmpty(inQuery.ResearchProgramNo), o => o.ResearchProgramNo.Contains(inQuery.ResearchProgramNo)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.ExperimentName), o => o.ExperimentName.Contains(inQuery.ExperimentName)) - .WhereIf(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin, t => t.TrialUserList.Any(t => t.UserId == _userInfo.Id && t.IsDeleted == false) && t.IsDeleted == false) + .WhereIf(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin, t => t.TrialUserList.Any(t => t.UserId == _userInfo.Id && t.IsDeleted == false) && t.IsDeleted == false) .Select(t => new TrialToBeDoneDto() { TrialId = t.Id, diff --git a/IRaCIS.Core.Domain.Share/User/UserType.cs b/IRaCIS.Core.Domain.Share/User/UserType.cs index 10c1e767d..d38149bdd 100644 --- a/IRaCIS.Core.Domain.Share/User/UserType.cs +++ b/IRaCIS.Core.Domain.Share/User/UserType.cs @@ -26,12 +26,12 @@ Dashboard = 6, // 超级管理员用户类型,用于取代 SuperAdmin字段 数据库不内置这个用户类型和角色的配置,因为只允许有一个 - SuperAdmin=8, + SuperAdmin=7, + + Admin = 8, - - - CRA=9, + CRA =9, SPM=10, From 8a1970bb3db45c531b4c8c93a949cfdba179c816 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Fri, 3 Nov 2023 12:01:09 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=BF=E9=97=AE?= =?UTF-8?q?=E5=BD=B1=E5=83=8F=E6=96=87=E4=BB=B6=E4=B8=8D=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/Properties/launchSettings.json | 2 +- IRaCIS.Core.API/Startup.cs | 11 ++++------- .../IRacisHostFile/MultiDiskStaticFilesMiddleware.cs | 12 +++++++++++- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/IRaCIS.Core.API/Properties/launchSettings.json b/IRaCIS.Core.API/Properties/launchSettings.json index aed031839..9016eb3ac 100644 --- a/IRaCIS.Core.API/Properties/launchSettings.json +++ b/IRaCIS.Core.API/Properties/launchSettings.json @@ -36,7 +36,7 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Staging" }, - "applicationUrl": "http://localhost:6200" + "applicationUrl": "http://localhost:6100" }, "IRaCIS.Production": { "commandName": "Project", diff --git a/IRaCIS.Core.API/Startup.cs b/IRaCIS.Core.API/Startup.cs index 21772cf98..dcd24c696 100644 --- a/IRaCIS.Core.API/Startup.cs +++ b/IRaCIS.Core.API/Startup.cs @@ -179,6 +179,7 @@ namespace IRaCIS.Core.API //Ҫ token ʵľ̬ļ wwwroot css, JavaScript, and images don't require authentication. app.UseStaticFiles(); + app.UseMiddleware(); //LogDashboard app.UseLogDashboard("/LogDashboard"); @@ -186,8 +187,7 @@ namespace IRaCIS.Core.API //hangfire app.UseHangfireConfig(env); - ////ʱ - //app.UseHttpReports(); + //// м //app.UseIpRateLimiting(); @@ -204,7 +204,6 @@ namespace IRaCIS.Core.API } Console.WriteLine("ǰ " + env.EnvironmentName); - //app.UseMiddleware(); // 쳣 404 app.UseStatusCodePagesWithReExecute("/Error/{0}"); @@ -221,15 +220,13 @@ namespace IRaCIS.Core.API app.UseCors(t => t.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()); //app.UseIRacisHostStaticFileStore(env); - app.UseMiddleware(); + + app.UseAuthentication(); - //app.UseJwtBearerQueryString(); app.UseAuthorization(); - ////ļŷ Token - ////app.UseIRacisHostStaticFileStore(env); app.UseEndpoints(endpoints => { diff --git a/IRaCIS.Core.API/_PipelineExtensions/IRacisHostFile/MultiDiskStaticFilesMiddleware.cs b/IRaCIS.Core.API/_PipelineExtensions/IRacisHostFile/MultiDiskStaticFilesMiddleware.cs index e8137fbd8..681419848 100644 --- a/IRaCIS.Core.API/_PipelineExtensions/IRacisHostFile/MultiDiskStaticFilesMiddleware.cs +++ b/IRaCIS.Core.API/_PipelineExtensions/IRacisHostFile/MultiDiskStaticFilesMiddleware.cs @@ -1,8 +1,11 @@ -using IRaCIS.Core.Application.Helper; +using Azure; +using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Domain.Share; +using IRaCIS.Core.Infrastructure.Extention; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.StaticFiles; using Microsoft.Extensions.FileProviders; using Microsoft.Extensions.FileProviders.Physical; @@ -11,6 +14,7 @@ using Microsoft.Extensions.Hosting.Internal; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Microsoft.VisualBasic; +using Newtonsoft.Json; using SharpCompress.Common; using System.IO; using System.Linq; @@ -147,6 +151,12 @@ namespace IRaCIS.Core.API return; } } + + // 如果没有找到文件,返回404 + context.Response.StatusCode = 404; + context.Response.ContentType = "application/json"; + + await context.Response.WriteAsync(JsonConvert.SerializeObject(ResponseOutput.NotOk("File not found"))); } From 15834921a8f6bd4643d943be0cbb16c0881718b3 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Fri, 3 Nov 2023 13:41:37 +0800 Subject: [PATCH 5/5] =?UTF-8?q?ImageResizePath=20=20=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E6=8E=89=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ImageAndDoc/InstanceService.cs | 10 +++++++--- .../Service/ImageAndDoc/Interface/IInstanceService.cs | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/InstanceService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/InstanceService.cs index 7a1912366..32032bdac 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/InstanceService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/InstanceService.cs @@ -23,11 +23,15 @@ namespace IRaCIS.Core.Application.Services /// 指定资源Id,获取Dicom序列所属的实例信息列表 /// Dicom序列的Id [HttpGet("{seriesId:guid}")] - public async Task> List(Guid seriesId) + public async Task>> List(Guid seriesId) { - return await _instanceRepository.Where(s => s.SeriesId == seriesId).OrderBy(s => s.InstanceNumber). + var list = await _instanceRepository.Where(s => s.SeriesId == seriesId).OrderBy(s => s.InstanceNumber). ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + + var imageResizePath = await _instanceRepository.Where(s => s.SeriesId == seriesId).Select(t => t.DicomSerie.ImageResizePath).FirstOrDefaultAsync(); + + return ResponseOutput.Ok(list, new { ImageResizePath = imageResizePath }); } @@ -103,6 +107,6 @@ namespace IRaCIS.Core.Application.Services } } - + } } \ No newline at end of file diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/Interface/IInstanceService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/Interface/IInstanceService.cs index 24a3f6307..792923e3a 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/Interface/IInstanceService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/Interface/IInstanceService.cs @@ -6,7 +6,7 @@ namespace IRaCIS.Core.Application.Services public interface IInstanceService { Task Content(Guid instanceId); - Task> List(Guid seriesId); + Task>> List(Guid seriesId); IEnumerable List(Guid seriesId, string tpCode, bool? key); Task Preview(Guid instanceId); }