增加影像检查下载
This commit is contained in:
@@ -43,6 +43,25 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc.DTO
|
||||
}
|
||||
|
||||
|
||||
public class SubjectUploadTaskInfo
|
||||
{
|
||||
public Guid VisitTaskId { get; set; }
|
||||
|
||||
public Guid SubjectId { get; set; }
|
||||
|
||||
public string SubjectCode { get; set; }
|
||||
|
||||
public string TaskBlindName { get; set; }
|
||||
|
||||
public string TaskName { get; set; }
|
||||
|
||||
public bool IsImageFilter { get; set; }
|
||||
public string CriterionModalitys { get; set; }
|
||||
|
||||
public Guid? SourceSubjectVisitId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class SubjectCRCImageUploadedDto
|
||||
{
|
||||
public Guid VisitTaskId { get; set; }
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Newtonsoft.Json;
|
||||
using IRaCIS.Core.Application.Service.ImageAndDoc.DTO;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
@@ -364,6 +365,46 @@ namespace IRaCIS.Core.Application.Contracts
|
||||
public decimal FileFize { get; set; }
|
||||
}
|
||||
|
||||
public class CRCUploadTaskQuery
|
||||
{
|
||||
[NotDefault]
|
||||
public Guid SubjectId { get; set; }
|
||||
|
||||
[NotDefault]
|
||||
public Guid TrialReadingCriterionId { get; set; }
|
||||
|
||||
[NotDefault]
|
||||
public string SubjectCode { get; set; }
|
||||
}
|
||||
|
||||
public class CRCUploadTaskStudyQuery: SortInput
|
||||
{
|
||||
|
||||
[NotDefault]
|
||||
public Guid VisitTaskId { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class IRUploadTaskDicomStudyDto : DicomStudyBasicInfo
|
||||
{
|
||||
|
||||
public int UploadedSeriesCount { get; set; }
|
||||
|
||||
public int UploadedInstanceCount { get; set; }
|
||||
|
||||
public List<string> UploadedSopInstanceUidList { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class IRUploadTaskNoneDicomStudyDto : NoneDicomStudyBasicInfo
|
||||
{
|
||||
|
||||
public int UploadedFileCount { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class CRCUploadedStudyQuqry
|
||||
{
|
||||
[NotDefault]
|
||||
|
||||
@@ -670,6 +670,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||
/// <param name="isDicom"></param>
|
||||
/// <param name="isAnonymize"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task PackageAndAnonymizImage(Guid trialId, Guid subjectVisitId, bool isDicom, bool isAnonymize = true)
|
||||
{
|
||||
|
||||
@@ -894,6 +895,91 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// IR 影像上传任务列表
|
||||
/// </summary>
|
||||
/// <param name="inQuery"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<List<SubjectUploadTaskInfo>> GetIRUploadTaskList(CRCUploadTaskQuery inQuery)
|
||||
{
|
||||
var query = _visitTaskRepository.Where(t => t.SubjectId == inQuery.SubjectId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId
|
||||
&& t.SourceSubjectVisitId != null && t.DoctorUserId == _userInfo.Id && t.TaskState == TaskState.Effect)
|
||||
.ProjectTo<SubjectUploadTaskInfo>(_mapper.ConfigurationProvider);
|
||||
|
||||
|
||||
var list = await query.Where(t => t.SubjectCode == inQuery.SubjectCode).ToListAsync();
|
||||
|
||||
return list;
|
||||
}
|
||||
/// <summary>
|
||||
/// IR 上传任务 dicom 列表 后处理的数据不能排序
|
||||
/// </summary>
|
||||
/// <param name="inQuery"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<List<IRUploadTaskDicomStudyDto>> GetIRUploadTaskDicomStudyList(CRCUploadTaskStudyQuery inQuery)
|
||||
{
|
||||
var list = await _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId)
|
||||
.SelectMany(t => t.SourceSubjectVisit.StudyList)
|
||||
.ProjectTo<IRUploadTaskDicomStudyDto>(_mapper.ConfigurationProvider).SortToListAsync(inQuery);
|
||||
|
||||
var taskDicomStudyList = _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId)
|
||||
.SelectMany(t => t.TaskStudyList)
|
||||
.Select(u => new
|
||||
{
|
||||
u.Id,
|
||||
u.SeriesCount,
|
||||
u.InstanceCount,
|
||||
SopInstanceList = u.InstanceList.Select(t => t.SopInstanceUid).ToList()
|
||||
})
|
||||
.ToList();
|
||||
|
||||
foreach (var item in list)
|
||||
{
|
||||
var find = taskDicomStudyList.FirstOrDefault(t => t.Id == item.Id);
|
||||
|
||||
if (find != null)
|
||||
{
|
||||
item.UploadedInstanceCount = find.InstanceCount;
|
||||
item.UploadedSopInstanceUidList = find.SopInstanceList;
|
||||
item.UploadedSeriesCount = find.SeriesCount;
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// IR 上传任务 nonedicom 列表 后处理的数据不能排序
|
||||
/// </summary>
|
||||
/// <param name="inQuery"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<List<IRUploadTaskNoneDicomStudyDto>> GetIRUploadTaskNoneDicomStudyList(CRCUploadTaskStudyQuery inQuery)
|
||||
{
|
||||
var list = await _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId)
|
||||
.SelectMany(t => t.SourceSubjectVisit.StudyList)
|
||||
.ProjectTo<IRUploadTaskNoneDicomStudyDto>(_mapper.ConfigurationProvider).SortToListAsync(inQuery);
|
||||
|
||||
var taskNoneDicomStudyList = _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId)
|
||||
.SelectMany(t => t.TaskNoneDicomStudyFileList).Where(t => t.VisitTaskId == inQuery.VisitTaskId)
|
||||
.Select(u => new
|
||||
{
|
||||
u.OriginNoneDicomStudyId,
|
||||
})
|
||||
.ToList();
|
||||
|
||||
foreach (var item in list)
|
||||
{
|
||||
item.UploadedFileCount = taskNoneDicomStudyList.Where(t => t.OriginNoneDicomStudyId == item.Id).Count();
|
||||
}
|
||||
|
||||
return list;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// IQC 获取CRC 上传到某一个访视的的检查信息 (原始影像信息 包含dicom 非dicom)
|
||||
@@ -963,6 +1049,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||
/// </summary>
|
||||
/// <param name="inQuery"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<List<SubjectCRCImageUploadedDto>> GetSubjectImageDownloadSelectList(IRReadingDownloadQuery inQuery)
|
||||
{
|
||||
|
||||
@@ -970,8 +1057,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||
&& t.SourceSubjectVisitId != null && t.DoctorUserId == _userInfo.Id && t.TaskState == TaskState.Effect)
|
||||
.ProjectTo<SubjectCRCImageUploadedDto>(_mapper.ConfigurationProvider);
|
||||
|
||||
|
||||
var list = await query.Where(t=>t.SubjectCode==inQuery.SubjectCode).ToListAsync();
|
||||
|
||||
var list = await query.Where(t => t.SubjectCode == inQuery.SubjectCode).ToListAsync();
|
||||
|
||||
return list;
|
||||
|
||||
@@ -992,7 +1079,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||
var isQueryDicom = inQuery.DicomStudyIdList.Count > 0;
|
||||
var isQueryNoneDicom = inQuery.NoneDicomStudyIdList.Count > 0;
|
||||
|
||||
var query = from sv in _subjectRepository.Where(t => t.Id == inQuery.SubjectId).SelectMany(t => t.SubjectVisitList.Where(t=>inQuery.SubjectVisitIdList.Contains(t.Id)))
|
||||
var query = from sv in _subjectRepository.Where(t => t.Id == inQuery.SubjectId).SelectMany(t => t.SubjectVisitList.Where(t => inQuery.SubjectVisitIdList.Contains(t.Id)))
|
||||
|
||||
select new
|
||||
{
|
||||
|
||||
@@ -125,6 +125,12 @@ namespace IRaCIS.Core.Application.Service
|
||||
.ForMember(d => d.VisitNum, u => u.MapFrom(s => s.SubjectVisit.VisitNum))
|
||||
.ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName));
|
||||
|
||||
CreateMap<VisitTask, SubjectUploadTaskInfo>()
|
||||
.ForMember(d => d.VisitTaskId, u => u.MapFrom(s => s.Id))
|
||||
.ForMember(d => d.IsImageFilter, u => u.MapFrom(s => s.TrialReadingCriterion.IsImageFilter))
|
||||
.ForMember(d => d.CriterionModalitys, u => u.MapFrom(s => s.TrialReadingCriterion.CriterionModalitys))
|
||||
.ForMember(d => d.SubjectCode, u => u.MapFrom(u => u.IsSelfAnalysis == true ? u.BlindSubjectCode : u.Subject.Code));
|
||||
|
||||
CreateMap<DicomStudy, DicomStudyBasicInfo>();
|
||||
CreateMap<NoneDicomStudy, NoneDicomStudyBasicInfo>();
|
||||
CreateMap<VisitTask, SubjectCRCImageUploadedDto>()
|
||||
|
||||
Reference in New Issue
Block a user