修改上传
parent
cc3513846f
commit
38b9775ad2
|
@ -1,4 +1,5 @@
|
||||||
using AutoMapper;
|
using AutoMapper;
|
||||||
|
using DocumentFormat.OpenXml.Drawing;
|
||||||
using EasyCaching.Core;
|
using EasyCaching.Core;
|
||||||
using ExcelDataReader;
|
using ExcelDataReader;
|
||||||
using IRaCIS.Application.Contracts;
|
using IRaCIS.Application.Contracts;
|
||||||
|
@ -12,6 +13,7 @@ using IRaCIS.Core.Application.Helper;
|
||||||
using IRaCIS.Core.Application.MediatR.CommandAndQueries;
|
using IRaCIS.Core.Application.MediatR.CommandAndQueries;
|
||||||
using IRaCIS.Core.Application.MediatR.Handlers;
|
using IRaCIS.Core.Application.MediatR.Handlers;
|
||||||
using IRaCIS.Core.Application.Service;
|
using IRaCIS.Core.Application.Service;
|
||||||
|
using IRaCIS.Core.Application.Service.ImageAndDoc;
|
||||||
using IRaCIS.Core.Application.Service.Reading.Dto;
|
using IRaCIS.Core.Application.Service.Reading.Dto;
|
||||||
using IRaCIS.Core.Domain.Models;
|
using IRaCIS.Core.Domain.Models;
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
@ -223,6 +225,38 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
_repository = repository;
|
_repository = repository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<IResponseOutput> PreArchiveStudy(PreArchiveStudyCommand preArchiveStudyCommand,
|
||||||
|
[FromServices] IStudyService _studyService,
|
||||||
|
[FromServices] IRepository<StudyMonitor> _studyMonitorRepository)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (_provider.Get<List<SystemAnonymization>>(StaticData.Anonymize.Anonymize_AddFixedFiled).Value == null)
|
||||||
|
{
|
||||||
|
await _mediator.Send(new AnonymizeCacheRequest());
|
||||||
|
}
|
||||||
|
|
||||||
|
var savedInfo = _studyService.GetSaveToDicomInfo(preArchiveStudyCommand.SubjectVisitId);
|
||||||
|
|
||||||
|
var studyMonitor = new StudyMonitor()
|
||||||
|
{
|
||||||
|
TrialId = savedInfo.TrialId,
|
||||||
|
SiteId = savedInfo.SiteId,
|
||||||
|
SubjectId = savedInfo.SubjectId,
|
||||||
|
SubjectVisitId = savedInfo.SubjectVisitId,
|
||||||
|
|
||||||
|
IsSuccess = false,
|
||||||
|
UploadStartTime = DateTime.Now,
|
||||||
|
IsDicom = true,
|
||||||
|
IP = _userInfo.IP
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var addEntity = await _studyMonitorRepository.AddAsync(studyMonitor, true);
|
||||||
|
|
||||||
|
return ResponseOutput.Ok(addEntity.Id);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>Dicom 归档</summary>
|
/// <summary>Dicom 归档</summary>
|
||||||
[HttpPost, Route("Study/ArchiveStudy")]
|
[HttpPost, Route("Study/ArchiveStudy")]
|
||||||
|
@ -235,17 +269,15 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
[FromServices] IStudyService _studyService,
|
[FromServices] IStudyService _studyService,
|
||||||
[FromServices] IHubContext<UploadHub, IUploadClient> _uploadHub,
|
[FromServices] IHubContext<UploadHub, IUploadClient> _uploadHub,
|
||||||
[FromServices] IDicomArchiveService _dicomArchiveService,
|
[FromServices] IDicomArchiveService _dicomArchiveService,
|
||||||
[FromServices] IRepository _repository
|
[FromServices] IRepository _repository,
|
||||||
|
[FromServices] IRepository<StudyMonitor> _studyMonitorRepository
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
if (_provider.Get<List<SystemAnonymization>>(StaticData.Anonymize.Anonymize_AddFixedFiled).Value == null)
|
|
||||||
{
|
|
||||||
await _mediator.Send(new AnonymizeCacheRequest());
|
|
||||||
}
|
|
||||||
|
|
||||||
//_logger.LogError("请求到达接口");
|
|
||||||
|
|
||||||
|
|
||||||
if (!HttpContext.Request.HasFormContentType ||
|
if (!HttpContext.Request.HasFormContentType ||
|
||||||
!MediaTypeHeaderValue.TryParse(HttpContext.Request.ContentType, out var mediaTypeHeader) ||
|
!MediaTypeHeaderValue.TryParse(HttpContext.Request.ContentType, out var mediaTypeHeader) ||
|
||||||
|
@ -270,6 +302,13 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
_provider.Set($"StudyUid_{trialId}_{archiveStudyCommand.StudyInstanceUid}", _userInfo.Id, TimeSpan.FromMinutes(30));
|
_provider.Set($"StudyUid_{trialId}_{archiveStudyCommand.StudyInstanceUid}", _userInfo.Id, TimeSpan.FromMinutes(30));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//到了接口,代表上传结束了
|
||||||
|
|
||||||
|
var studyMonitor = await _studyMonitorRepository.FirstOrDefaultAsync(t => t.Id == archiveStudyCommand.StudyMonitorId);
|
||||||
|
|
||||||
|
studyMonitor.UploadFinishedTime = DateTime.Now;
|
||||||
|
|
||||||
|
|
||||||
var (archiveResult, archivedStudyIds) = (new DicomArchiveResult(), new List<Guid>());
|
var (archiveResult, archivedStudyIds) = (new DicomArchiveResult(), new List<Guid>());
|
||||||
|
|
||||||
|
|
||||||
|
@ -332,23 +371,12 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
throw new BusinessValidationFailedException("请求异常,请重试!");
|
throw new BusinessValidationFailedException("请求异常,请重试!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
studyMonitor.FileSize = (decimal)HttpContext.Request.ContentLength;
|
||||||
|
studyMonitor.FileCount = archiveResult.ReceivedFileCount;
|
||||||
|
studyMonitor.FailedFileCount = archiveResult.ErrorFiles.Count;
|
||||||
|
studyMonitor.IsDicomReUpload = archiveStudyCommand.AbandonStudyId != null;
|
||||||
|
studyMonitor.Note = JsonConvert.SerializeObject(archiveResult);
|
||||||
|
|
||||||
var studyMonitor = new StudyMonitor()
|
|
||||||
{
|
|
||||||
TrialId = savedInfo.TrialId,
|
|
||||||
SiteId = savedInfo.SiteId,
|
|
||||||
SubjectId = savedInfo.SubjectId,
|
|
||||||
SubjectVisitId = savedInfo.SubjectVisitId,
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
UploadStartTime = startTime,
|
|
||||||
FileSize = (decimal)HttpContext.Request.ContentLength,
|
|
||||||
FileCount = archiveResult.ReceivedFileCount,
|
|
||||||
IsDicom = true,
|
|
||||||
IsDicomReUpload = archiveStudyCommand.AbandonStudyId != null,
|
|
||||||
IP = _userInfo.IP
|
|
||||||
};
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -365,21 +393,12 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
studyMonitor.IsSuccess = true;
|
studyMonitor.IsSuccess = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
studyMonitor.IsSuccess = false;
|
|
||||||
studyMonitor.Note = JsonConvert.SerializeObject(archiveResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
||||||
studyMonitor.IsSuccess = false;
|
|
||||||
studyMonitor.Note = JsonConvert.SerializeObject(new { Message = e.Message, Result = archiveResult });
|
studyMonitor.Note = JsonConvert.SerializeObject(new { Message = e.Message, Result = archiveResult });
|
||||||
|
|
||||||
_logger.LogError(e.Message + e.StackTrace);
|
_logger.LogError(e.Message + e.StackTrace);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -389,9 +408,7 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
|
|
||||||
studyMonitor.StudyId = archiveResult.ArchivedDicomStudies.FirstOrDefault()?.Id ?? Guid.Empty;
|
studyMonitor.StudyId = archiveResult.ArchivedDicomStudies.FirstOrDefault()?.Id ?? Guid.Empty;
|
||||||
studyMonitor.StudyCode = archiveResult.ArchivedDicomStudies.FirstOrDefault()?.StudyCode;
|
studyMonitor.StudyCode = archiveResult.ArchivedDicomStudies.FirstOrDefault()?.StudyCode;
|
||||||
studyMonitor.UploadFinishedTime = DateTime.Now;
|
studyMonitor.ArchiveFinishedTime = DateTime.Now;
|
||||||
await _repository.AddAsync(studyMonitor, true);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -642,6 +659,7 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
return serverFilePath;
|
return serverFilePath;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var uploadFinishedTime = DateTime.Now;
|
||||||
|
|
||||||
|
|
||||||
//// 上传非Dicom 后 将状态改为待提交 分为普通上传 和QC后重传 普通上传时才改为待提交
|
//// 上传非Dicom 后 将状态改为待提交 分为普通上传 和QC后重传 普通上传时才改为待提交
|
||||||
|
@ -660,7 +678,8 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
StudyId = noneDicomStudyId,
|
StudyId = noneDicomStudyId,
|
||||||
StudyCode = noneDicomStudy.StudyCode,
|
StudyCode = noneDicomStudy.StudyCode,
|
||||||
UploadStartTime = startTime,
|
UploadStartTime = startTime,
|
||||||
UploadFinishedTime = DateTime.Now,
|
UploadFinishedTime = uploadFinishedTime,
|
||||||
|
ArchiveFinishedTime=DateTime.Now,
|
||||||
IP = _userInfo.IP,
|
IP = _userInfo.IP,
|
||||||
TrialId = sv.TrialId,
|
TrialId = sv.TrialId,
|
||||||
SiteId = sv.SiteId,
|
SiteId = sv.SiteId,
|
||||||
|
|
|
@ -31,7 +31,7 @@ public static class ExcelExportHelper
|
||||||
//一个值 对应不同的字典翻译
|
//一个值 对应不同的字典翻译
|
||||||
var needTranslatePropertyList = translateType.GetProperties().Where(t => t.IsDefined(typeof(DictionaryTranslateAttribute), true))
|
var needTranslatePropertyList = translateType.GetProperties().Where(t => t.IsDefined(typeof(DictionaryTranslateAttribute), true))
|
||||||
.SelectMany(c =>
|
.SelectMany(c =>
|
||||||
c.GetCustomAttributes(typeof(DictionaryTranslateAttribute), false).Select(f => (DictionaryTranslateAttribute?)f).Where(t => t.CriterionType == criterionType || t.CriterionType == null)
|
c.GetCustomAttributes(typeof(DictionaryTranslateAttribute), false).Select(f => (DictionaryTranslateAttribute?)f).Where(t => t?.CriterionType == criterionType || t?.CriterionType == null)
|
||||||
.Select(k => new { c.Name, k.DicParentCode ,k.IsTranslateDenpendOtherProperty, k.DependPropertyName,k.DependPropertyValueStr})
|
.Select(k => new { c.Name, k.DicParentCode ,k.IsTranslateDenpendOtherProperty, k.DependPropertyName,k.DependPropertyValueStr})
|
||||||
).ToList();
|
).ToList();
|
||||||
|
|
||||||
|
|
|
@ -458,6 +458,9 @@
|
||||||
质疑列表
|
质疑列表
|
||||||
</summary>
|
</summary>
|
||||||
<param name="challengeQuery"></param>
|
<param name="challengeQuery"></param>
|
||||||
|
<param name="_commonDocumentRepository"></param>
|
||||||
|
<param name="_dictionaryService"></param>
|
||||||
|
<param name="_trialRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetSubjectList_Export(IRaCIS.Application.Contracts.SubjectQueryParam,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetSubjectList_Export(IRaCIS.Application.Contracts.SubjectQueryParam,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
||||||
|
@ -465,6 +468,9 @@
|
||||||
受试者信息导出表
|
受试者信息导出表
|
||||||
</summary>
|
</summary>
|
||||||
<param name="param"></param>
|
<param name="param"></param>
|
||||||
|
<param name="_commonDocumentRepository"></param>
|
||||||
|
<param name="_dictionaryService"></param>
|
||||||
|
<param name="_trialRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetSubjectProgress_Export(IRaCIS.Core.Application.Contracts.SubjectProgressQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetSubjectProgress_Export(IRaCIS.Core.Application.Contracts.SubjectProgressQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
||||||
|
@ -492,6 +498,9 @@
|
||||||
阅片期信息表
|
阅片期信息表
|
||||||
</summary>
|
</summary>
|
||||||
<param name="param"></param>
|
<param name="param"></param>
|
||||||
|
<param name="_commonDocumentRepository"></param>
|
||||||
|
<param name="_dictionaryService"></param>
|
||||||
|
<param name="_trialRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetDicomAndNoneDicomStudyList_Export(IRaCIS.Core.Application.Contracts.StudyQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetDicomAndNoneDicomStudyList_Export(IRaCIS.Core.Application.Contracts.StudyQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
||||||
|
@ -499,6 +508,9 @@
|
||||||
一致性核查 检查信息表
|
一致性核查 检查信息表
|
||||||
</summary>
|
</summary>
|
||||||
<param name="studyQuery"></param>
|
<param name="studyQuery"></param>
|
||||||
|
<param name="_commonDocumentRepository"></param>
|
||||||
|
<param name="_dictionaryService"></param>
|
||||||
|
<param name="_trialRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetConsistencyVerificationList_Export(IRaCIS.Core.Application.Contracts.CheckQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit})">
|
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetConsistencyVerificationList_Export(IRaCIS.Core.Application.Contracts.CheckQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit})">
|
||||||
|
@ -506,6 +518,10 @@
|
||||||
一致性核查记录表
|
一致性核查记录表
|
||||||
</summary>
|
</summary>
|
||||||
<param name="checkQuery"></param>
|
<param name="checkQuery"></param>
|
||||||
|
<param name="_commonDocumentRepository"></param>
|
||||||
|
<param name="_dictionaryService"></param>
|
||||||
|
<param name="_trialRepository"></param>
|
||||||
|
<param name="_subjectVisitRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetReadingTaskList_Export(IRaCIS.Core.Application.ViewModel.VisitTaskQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetReadingTaskList_Export(IRaCIS.Core.Application.ViewModel.VisitTaskQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
||||||
|
@ -513,6 +529,9 @@
|
||||||
PM阅片跟踪
|
PM阅片跟踪
|
||||||
</summary>
|
</summary>
|
||||||
<param name="queryVisitTask"></param>
|
<param name="queryVisitTask"></param>
|
||||||
|
<param name="_commonDocumentRepository"></param>
|
||||||
|
<param name="_dictionaryService"></param>
|
||||||
|
<param name="_trialRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetReReadingTaskList_Export(IRaCIS.Core.Application.ViewModel.VisitTaskQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetReReadingTaskList_Export(IRaCIS.Core.Application.ViewModel.VisitTaskQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
||||||
|
@ -520,6 +539,9 @@
|
||||||
PM 重阅追踪
|
PM 重阅追踪
|
||||||
</summary>
|
</summary>
|
||||||
<param name="queryVisitTask"></param>
|
<param name="queryVisitTask"></param>
|
||||||
|
<param name="_commonDocumentRepository"></param>
|
||||||
|
<param name="_dictionaryService"></param>
|
||||||
|
<param name="_trialRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetMedicalReviewTaskList_Export(IRaCIS.Core.Application.ViewModel.TaskMedicalReviewQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetMedicalReviewTaskList_Export(IRaCIS.Core.Application.ViewModel.TaskMedicalReviewQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
||||||
|
@ -527,6 +549,9 @@
|
||||||
PM 医学审核(挑选任务生成后的列表)
|
PM 医学审核(挑选任务生成后的列表)
|
||||||
</summary>
|
</summary>
|
||||||
<param name="inQuery"></param>
|
<param name="inQuery"></param>
|
||||||
|
<param name="_commonDocumentRepository"></param>
|
||||||
|
<param name="_dictionaryService"></param>
|
||||||
|
<param name="_trialRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetSelfAnalysisTaskList_Export(IRaCIS.Core.Application.ViewModel.VisitTaskQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetSelfAnalysisTaskList_Export(IRaCIS.Core.Application.ViewModel.VisitTaskQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
||||||
|
@ -534,12 +559,19 @@
|
||||||
自身一致性分析(仅做了resist1.1)
|
自身一致性分析(仅做了resist1.1)
|
||||||
</summary>
|
</summary>
|
||||||
<param name="queryVisitTask"></param>
|
<param name="queryVisitTask"></param>
|
||||||
|
<param name="_commonDocumentRepository"></param>
|
||||||
|
<param name="_dictionaryService"></param>
|
||||||
|
<param name="_trialRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetGroupAnalysisTaskList_Export(IRaCIS.Core.Application.ViewModel.VisitTaskQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetGroupAnalysisTaskList_Export(IRaCIS.Core.Application.ViewModel.VisitTaskQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
||||||
<summary>
|
<summary>
|
||||||
组件一致性分析(仅做了resist1.1)
|
组件一致性分析(仅做了resist1.1)
|
||||||
</summary>
|
</summary>
|
||||||
|
<param name="queryVisitTask"></param>
|
||||||
|
<param name="_commonDocumentRepository"></param>
|
||||||
|
<param name="_dictionaryService"></param>
|
||||||
|
<param name="_trialRepository"></param>
|
||||||
<param name="inQuery"></param>
|
<param name="inQuery"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
@ -555,6 +587,9 @@
|
||||||
整体肿瘤评估 (目前仅仅 RECIST1.1 多个标准一个接口 Excel 列是一样的 )
|
整体肿瘤评估 (目前仅仅 RECIST1.1 多个标准一个接口 Excel 列是一样的 )
|
||||||
</summary>
|
</summary>
|
||||||
<param name="queryVisitTask"></param>
|
<param name="queryVisitTask"></param>
|
||||||
|
<param name="_commonDocumentRepository"></param>
|
||||||
|
<param name="_dictionaryService"></param>
|
||||||
|
<param name="_trialRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetEvaluationOfTumorEfficacy_Export(IRaCIS.Core.Application.ViewModel.VisitTaskQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetEvaluationOfTumorEfficacy_Export(IRaCIS.Core.Application.ViewModel.VisitTaskQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
||||||
|
@ -573,6 +608,9 @@
|
||||||
评估病灶明细表 (目前仅仅 RECIST1.1 RECIST1.1 PGW3 表都是不同的)
|
评估病灶明细表 (目前仅仅 RECIST1.1 RECIST1.1 PGW3 表都是不同的)
|
||||||
</summary>
|
</summary>
|
||||||
<param name="queryVisitTask"></param>
|
<param name="queryVisitTask"></param>
|
||||||
|
<param name="_commonDocumentRepository"></param>
|
||||||
|
<param name="_dictionaryService"></param>
|
||||||
|
<param name="_trialRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="T:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService">
|
<member name="T:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService">
|
||||||
|
|
|
@ -86,6 +86,9 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
/// 质疑列表
|
/// 质疑列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="challengeQuery"></param>
|
/// <param name="challengeQuery"></param>
|
||||||
|
/// <param name="_commonDocumentRepository"></param>
|
||||||
|
/// <param name="_dictionaryService"></param>
|
||||||
|
/// <param name="_trialRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
|
@ -128,6 +131,9 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
/// 受试者信息导出表
|
/// 受试者信息导出表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="param"></param>
|
/// <param name="param"></param>
|
||||||
|
/// <param name="_commonDocumentRepository"></param>
|
||||||
|
/// <param name="_dictionaryService"></param>
|
||||||
|
/// <param name="_trialRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IActionResult> GetSubjectList_Export(SubjectQueryParam param,
|
public async Task<IActionResult> GetSubjectList_Export(SubjectQueryParam param,
|
||||||
|
@ -409,6 +415,9 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
/// 阅片期信息表
|
/// 阅片期信息表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="param"></param>
|
/// <param name="param"></param>
|
||||||
|
/// <param name="_commonDocumentRepository"></param>
|
||||||
|
/// <param name="_dictionaryService"></param>
|
||||||
|
/// <param name="_trialRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IActionResult> GetReadingPeriodList_Export(ReadPeriodQuery param,
|
public async Task<IActionResult> GetReadingPeriodList_Export(ReadPeriodQuery param,
|
||||||
|
@ -435,6 +444,9 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
/// 一致性核查 检查信息表
|
/// 一致性核查 检查信息表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="studyQuery"></param>
|
/// <param name="studyQuery"></param>
|
||||||
|
/// <param name="_commonDocumentRepository"></param>
|
||||||
|
/// <param name="_dictionaryService"></param>
|
||||||
|
/// <param name="_trialRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
|
@ -519,6 +531,10 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
/// 一致性核查记录表
|
/// 一致性核查记录表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="checkQuery"></param>
|
/// <param name="checkQuery"></param>
|
||||||
|
/// <param name="_commonDocumentRepository"></param>
|
||||||
|
/// <param name="_dictionaryService"></param>
|
||||||
|
/// <param name="_trialRepository"></param>
|
||||||
|
/// <param name="_subjectVisitRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IActionResult> GetConsistencyVerificationList_Export(CheckQuery checkQuery,
|
public async Task<IActionResult> GetConsistencyVerificationList_Export(CheckQuery checkQuery,
|
||||||
|
@ -555,6 +571,9 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
/// PM阅片跟踪
|
/// PM阅片跟踪
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="queryVisitTask"></param>
|
/// <param name="queryVisitTask"></param>
|
||||||
|
/// <param name="_commonDocumentRepository"></param>
|
||||||
|
/// <param name="_dictionaryService"></param>
|
||||||
|
/// <param name="_trialRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IActionResult> GetReadingTaskList_Export(VisitTaskQuery queryVisitTask,
|
public async Task<IActionResult> GetReadingTaskList_Export(VisitTaskQuery queryVisitTask,
|
||||||
|
@ -602,6 +621,9 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
/// PM 重阅追踪
|
/// PM 重阅追踪
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="queryVisitTask"></param>
|
/// <param name="queryVisitTask"></param>
|
||||||
|
/// <param name="_commonDocumentRepository"></param>
|
||||||
|
/// <param name="_dictionaryService"></param>
|
||||||
|
/// <param name="_trialRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IActionResult> GetReReadingTaskList_Export(VisitTaskQuery queryVisitTask,
|
public async Task<IActionResult> GetReReadingTaskList_Export(VisitTaskQuery queryVisitTask,
|
||||||
|
@ -648,6 +670,9 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
/// PM 医学审核(挑选任务生成后的列表)
|
/// PM 医学审核(挑选任务生成后的列表)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="inQuery"></param>
|
/// <param name="inQuery"></param>
|
||||||
|
/// <param name="_commonDocumentRepository"></param>
|
||||||
|
/// <param name="_dictionaryService"></param>
|
||||||
|
/// <param name="_trialRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IActionResult> GetMedicalReviewTaskList_Export(TaskMedicalReviewQuery inQuery,
|
public async Task<IActionResult> GetMedicalReviewTaskList_Export(TaskMedicalReviewQuery inQuery,
|
||||||
|
@ -686,6 +711,9 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
/// 自身一致性分析(仅做了resist1.1)
|
/// 自身一致性分析(仅做了resist1.1)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="queryVisitTask"></param>
|
/// <param name="queryVisitTask"></param>
|
||||||
|
/// <param name="_commonDocumentRepository"></param>
|
||||||
|
/// <param name="_dictionaryService"></param>
|
||||||
|
/// <param name="_trialRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IActionResult> GetSelfAnalysisTaskList_Export(VisitTaskQuery queryVisitTask,
|
public async Task<IActionResult> GetSelfAnalysisTaskList_Export(VisitTaskQuery queryVisitTask,
|
||||||
|
@ -763,6 +791,10 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 组件一致性分析(仅做了resist1.1)
|
/// 组件一致性分析(仅做了resist1.1)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="queryVisitTask"></param>
|
||||||
|
/// <param name="_commonDocumentRepository"></param>
|
||||||
|
/// <param name="_dictionaryService"></param>
|
||||||
|
/// <param name="_trialRepository"></param>
|
||||||
/// <param name="inQuery"></param>
|
/// <param name="inQuery"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
|
@ -923,6 +955,9 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
/// 整体肿瘤评估 (目前仅仅 RECIST1.1 多个标准一个接口 Excel 列是一样的 )
|
/// 整体肿瘤评估 (目前仅仅 RECIST1.1 多个标准一个接口 Excel 列是一样的 )
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="queryVisitTask"></param>
|
/// <param name="queryVisitTask"></param>
|
||||||
|
/// <param name="_commonDocumentRepository"></param>
|
||||||
|
/// <param name="_dictionaryService"></param>
|
||||||
|
/// <param name="_trialRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IActionResult> GetOverallTumorEvaluationList_Export(VisitTaskQuery queryVisitTask,
|
public async Task<IActionResult> GetOverallTumorEvaluationList_Export(VisitTaskQuery queryVisitTask,
|
||||||
|
@ -935,7 +970,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
|
|
||||||
|
|
||||||
//每次查询必须是单标准的
|
//每次查询必须是单标准的
|
||||||
var criterion = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName }).FirstOrDefaultAsync();
|
var criterion = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName }).FirstNotNullAsync();
|
||||||
|
|
||||||
if (criterion.CriterionType != CriterionType.RECIST1Pointt1 && criterion.CriterionType != CriterionType.PCWG3)
|
if (criterion.CriterionType != CriterionType.RECIST1Pointt1 && criterion.CriterionType != CriterionType.PCWG3)
|
||||||
{
|
{
|
||||||
|
@ -1040,6 +1075,9 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
/// 评估病灶明细表 (目前仅仅 RECIST1.1 RECIST1.1 PGW3 表都是不同的)
|
/// 评估病灶明细表 (目前仅仅 RECIST1.1 RECIST1.1 PGW3 表都是不同的)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="queryVisitTask"></param>
|
/// <param name="queryVisitTask"></param>
|
||||||
|
/// <param name="_commonDocumentRepository"></param>
|
||||||
|
/// <param name="_dictionaryService"></param>
|
||||||
|
/// <param name="_trialRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IActionResult> GetDetailedOfEvaluatedLesion_Export(VisitTaskQuery queryVisitTask,
|
public async Task<IActionResult> GetDetailedOfEvaluatedLesion_Export(VisitTaskQuery queryVisitTask,
|
||||||
|
|
|
@ -197,7 +197,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
foreach (var taskId in taskIdList)
|
foreach (var taskId in taskIdList)
|
||||||
{
|
{
|
||||||
await _taskMedicalReviewRepository.AddAsync(new TaskMedicalReview() { TrialId = trialId, VisitTaskId = taskId, MedicalManagerUserId = minUserIdList.FirstOrDefault(), AllocateTime = DateTime.Now
|
await _taskMedicalReviewRepository.AddAsync(new TaskMedicalReview() { TrialId = trialId, VisitTaskId = taskId, MedicalManagerUserId = minUserIdList.FirstOrDefault(), AllocateTime = DateTime.Now
|
||||||
,IsAutoGenerate=true,PDRelationTaskIdListStr=string.Join('|', taskIdList)
|
,IsAutoGenerate=true,PDRelationTaskIdListStr=string.Join('|', taskIdList.Distinct())
|
||||||
},true);
|
},true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,9 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
|
|
||||||
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 string ArchiveFinishedTimeStr => ArchiveFinishedTime?.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||||
|
|
||||||
|
|
||||||
public double TotalMillisecondsInterval { get; set; }
|
public double TotalMillisecondsInterval { get; set; }
|
||||||
|
@ -90,7 +92,9 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public DateTime UploadStartTime { get; set; }
|
public DateTime UploadStartTime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public DateTime UploadFinishedTime { get; set; }
|
public DateTime? UploadFinishedTime { get; set; }
|
||||||
|
|
||||||
|
public DateTime? ArchiveFinishedTime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public decimal FileSize { get; set; }
|
public decimal FileSize { get; set; }
|
||||||
|
|
|
@ -50,6 +50,9 @@ namespace IRaCIS.Core.Application.Services
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public async Task<(Guid StudyId, string StudyCode)> ArchiveDicomStreamAsync(Stream dicomStream,
|
public async Task<(Guid StudyId, string StudyCode)> ArchiveDicomStreamAsync(Stream dicomStream,
|
||||||
DicomTrialSiteSubjectInfo addtionalInfo, List<string> seriesInstanceUidList, List<string> instanceUidList)
|
DicomTrialSiteSubjectInfo addtionalInfo, List<string> seriesInstanceUidList, List<string> instanceUidList)
|
||||||
{
|
{
|
||||||
|
|
|
@ -188,6 +188,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
FileSize = t.FileSize,
|
FileSize = t.FileSize,
|
||||||
UploadFinishedTime = t.UploadFinishedTime,
|
UploadFinishedTime = t.UploadFinishedTime,
|
||||||
UploadStartTime = t.UploadStartTime,
|
UploadStartTime = t.UploadStartTime,
|
||||||
|
ArchiveFinishedTime=t.ArchiveFinishedTime,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TotalMillisecondsInterval = t.TotalMillisecondsInterval,
|
TotalMillisecondsInterval = t.TotalMillisecondsInterval,
|
||||||
|
|
||||||
|
|
|
@ -219,10 +219,17 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public List<DicomSeriesDTO> SeriesList { get; set; } = new List<DicomSeriesDTO>();
|
public List<DicomSeriesDTO> SeriesList { get; set; } = new List<DicomSeriesDTO>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class PreArchiveStudyCommand
|
||||||
|
{
|
||||||
|
public Guid SubjectVisitId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public class ArchiveStudyCommand
|
public class ArchiveStudyCommand
|
||||||
{
|
{
|
||||||
|
[NotDefault]
|
||||||
|
public Guid StudyMonitorId { get; set; }
|
||||||
public Guid? AbandonStudyId { get; set; }
|
public Guid? AbandonStudyId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -200,7 +200,7 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
public bool IsAutoGenerate { get; set; }
|
public bool IsAutoGenerate { get; set; }
|
||||||
|
|
||||||
// | 分割
|
// | 分割
|
||||||
public string PDRelationTaskIdListStr { get; set; }
|
public string PDRelationTaskIdListStr { get; set; }=string.Empty;
|
||||||
|
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public List<Guid> PDRelationTaskIdList=> PDRelationTaskIdListStr.Split('|',StringSplitOptions.RemoveEmptyEntries).Select(t=> Guid.Parse(t) ).ToList();
|
public List<Guid> PDRelationTaskIdList=> PDRelationTaskIdListStr.Split('|',StringSplitOptions.RemoveEmptyEntries).Select(t=> Guid.Parse(t) ).ToList();
|
||||||
|
|
|
@ -37,7 +37,12 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
public DateTime UploadStartTime { get; set; }
|
public DateTime UploadStartTime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public DateTime UploadFinishedTime { get; set; }
|
public DateTime? UploadFinishedTime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public DateTime? ArchiveFinishedTime { get; set; }
|
||||||
|
|
||||||
|
public int FailedFileCount { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public decimal FileSize { get; set; }
|
public decimal FileSize { get; set; }
|
||||||
|
|
Loading…
Reference in New Issue