Merge branch 'Test.IRC' of http://192.168.3.69:2000/XCKJ/irc-netcore-api into Test.IRC
commit
53c56f5c0a
|
@ -36,7 +36,7 @@
|
|||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Staging"
|
||||
},
|
||||
"applicationUrl": "http://localhost:6200"
|
||||
"applicationUrl": "http://localhost:6100"
|
||||
},
|
||||
"IRaCIS.Production": {
|
||||
"commandName": "Project",
|
||||
|
|
|
@ -179,6 +179,7 @@ namespace IRaCIS.Core.API
|
|||
//不需要 token 访问的静态文件 wwwroot css, JavaScript, and images don't require authentication.
|
||||
app.UseStaticFiles();
|
||||
|
||||
app.UseMiddleware<MultiDiskStaticFilesMiddleware>();
|
||||
|
||||
//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<AuthMiddleware>();
|
||||
|
||||
// 特殊异常处理 比如 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<MultiDiskStaticFilesMiddleware>();
|
||||
|
||||
|
||||
|
||||
|
||||
app.UseAuthentication();
|
||||
//app.UseJwtBearerQueryString();
|
||||
app.UseAuthorization();
|
||||
|
||||
////文件伺服 必须带Token 访问
|
||||
////app.UseIRacisHostStaticFileStore(env);
|
||||
|
||||
app.UseEndpoints(endpoints =>
|
||||
{
|
||||
|
|
|
@ -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")));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -405,14 +405,8 @@
|
|||
<param name="applyReReadingCommand"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.Allocation.VisitTaskService.ReReadingTaskTrackingDeal(IRaCIS.Core.Domain.Models.VisitTask,IRaCIS.Core.Application.ViewModel.ConfirmReReadingCommand)">
|
||||
<summary>
|
||||
重阅原任务跟踪处理 只会在同意的时候调用这个
|
||||
</summary>
|
||||
<param name="origenalTask"></param>
|
||||
<param name="agreeReReadingCommand"></param>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.Allocation.VisitTaskService.SetReReadingOrBackInfluenceAnalysisAsync(System.Guid)">
|
||||
<!-- Badly formed XML comment ignored for member "M:IRaCIS.Core.Application.Service.Allocation.VisitTaskService.ReReadingTaskTrackingDeal(IRaCIS.Core.Domain.Models.VisitTask,IRaCIS.Core.Application.ViewModel.ConfirmReReadingCommand)" -->
|
||||
<member name="M:IRaCIS.Core.Application.Service.Allocation.VisitTaskService.PMReReadingConfirmOrBackInfluenceAnalysisAsync(System.Guid)">
|
||||
<summary>
|
||||
PM 申请重阅 被同意 或者 PM 直接退回的时候影响
|
||||
</summary>
|
||||
|
@ -2045,6 +2039,14 @@
|
|||
<param name="inDto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.ReserveDecimal(System.Decimal,System.Int32)">
|
||||
<summary>
|
||||
保留小数
|
||||
</summary>
|
||||
<param name="answer"></param>
|
||||
<param name="digitPlaces"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.PCWG3CalculateService.GetDeleteLesionStatrIndex(IRaCIS.Core.Application.Service.Reading.Dto.DeleteReadingRowAnswerInDto)">
|
||||
<summary>
|
||||
删除病灶获取起始病灶序号
|
||||
|
|
|
@ -37,6 +37,8 @@
|
|||
|
||||
public List<string> InstancePathList { get; set; } = new List<string>();
|
||||
|
||||
public List<string> InstanceHtmlPathList { get; set; }
|
||||
|
||||
//存放在instance 上面
|
||||
public string WindowCenter { get; set; } = string.Empty;
|
||||
public string WindowWidth { get; set; } = string.Empty;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -23,11 +23,15 @@ namespace IRaCIS.Core.Application.Services
|
|||
/// <summary> 指定资源Id,获取Dicom序列所属的实例信息列表 </summary>
|
||||
/// <param name="seriesId"> Dicom序列的Id </param>
|
||||
[HttpGet("{seriesId:guid}")]
|
||||
public async Task<IEnumerable<DicomInstanceDTO>> List(Guid seriesId)
|
||||
public async Task<IResponseOutput<List<DicomInstanceDTO>>> 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<DicomInstanceDTO>(_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
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -6,7 +6,7 @@ namespace IRaCIS.Core.Application.Services
|
|||
public interface IInstanceService
|
||||
{
|
||||
Task<FileContentResult> Content(Guid instanceId);
|
||||
Task<IEnumerable<DicomInstanceDTO>> List(Guid seriesId);
|
||||
Task<IResponseOutput<List<DicomInstanceDTO>>> List(Guid seriesId);
|
||||
IEnumerable<Guid> List(Guid seriesId, string tpCode, bool? key);
|
||||
Task<FileContentResult> Preview(Guid instanceId);
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject
|
|||
[HttpPost]
|
||||
public async Task<PageOutput<VisitTaskDTO_UltrasonicDicom>> 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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -262,7 +262,7 @@ namespace IRaCIS.Core.Application.Services
|
|||
var studyIds = studyList.Select(t => t.StudyId).ToList();
|
||||
|
||||
var instanceList = await _repository.Where<DicomInstance>(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<DicomInstance>(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)
|
||||
|
|
|
@ -26,12 +26,12 @@
|
|||
Dashboard = 6,
|
||||
|
||||
// 超级管理员用户类型,用于取代 SuperAdmin字段 数据库不内置这个用户类型和角色的配置,因为只允许有一个
|
||||
SuperAdmin=8,
|
||||
SuperAdmin=7,
|
||||
|
||||
Admin = 8,
|
||||
|
||||
|
||||
|
||||
|
||||
CRA=9,
|
||||
CRA =9,
|
||||
|
||||
SPM=10,
|
||||
|
||||
|
|
Loading…
Reference in New Issue