Compare commits

..

No commits in common. "02a8289ad48141a31c72c48aec34439a2979f5be" and "2149bfa7820d6757ff3fc6d45d46ecd1e396ed2a" have entirely different histories.

2 changed files with 21 additions and 135 deletions

View File

@ -214,20 +214,6 @@ namespace IRaCIS.Core.Application.Contracts
public int FileCount { get; set; } public int FileCount { get; set; }
} }
public class SubejctZipInfoQuery
{
public Guid? SubejctId { get; set; }
public string? SubjectCode { get; set; }
public Guid? SubejectVisitId { get; set; }
public Guid? TrialReadingCriterionId { get; set; }
}
public class TaskArchiveStudyCommand public class TaskArchiveStudyCommand
{ {
[NotDefault] [NotDefault]

View File

@ -4,7 +4,6 @@ using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Filter;
using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Application.Service.ImageAndDoc.DTO; using IRaCIS.Core.Application.Service.ImageAndDoc.DTO;
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure; using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Infrastructure.Extention; using IRaCIS.Core.Infrastructure.Extention;
@ -12,7 +11,6 @@ using MassTransit;
using MathNet.Numerics; using MathNet.Numerics;
using Medallion.Threading; using Medallion.Threading;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal;
using Newtonsoft.Json; using Newtonsoft.Json;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -538,134 +536,36 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
/// <summary> public async Task<IResponseOutput> GetSubejectVisitPathInfo(Guid subjectVisitId)
/// 受试者级别所有的影像
/// 访视级别的影响 传递subjectVisitId
/// 标准Id是可选的 不同标准有些检查可能有过滤
/// </summary>
/// <param name="_subjectRepository"></param>
/// <param name="inQuery"></param>
/// <returns></returns>
public async Task<IResponseOutput> GetSubejectOrVisitZipInfo([FromServices] IRepository<Subject> _subjectRepository, SubejctZipInfoQuery inQuery)
{ {
var isImageFilter = false; var query = from sv in _subjectVisitRepository.Where(t => t.Id == subjectVisitId)
var criterionModalitys = string.Empty; select new
{
if (inQuery.TrialReadingCriterionId != null) SubjectCode = sv.Subject.Code,
{ VisitName = sv.VisitName,
var criterionInfo = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == inQuery.TrialReadingCriterionId).Select(t => new { t.IsImageFilter, t.CriterionModalitys }).FirstOrDefaultAsync(); StudyList = sv.StudyList.Select(u => new
if (criterionInfo != null)
{
isImageFilter = criterionInfo.IsImageFilter;
criterionModalitys = criterionInfo.CriterionModalitys;
}
}
if (inQuery.SubejectVisitId != null)
{
var query = from sv in _subjectVisitRepository.Where(t => t.Id == inQuery.SubejectVisitId)
select new
{ {
SubjectCode = sv.Subject.Code, u.PatientId,
VisitName = sv.VisitName, u.StudyTime,
StudyList = sv.StudyList.AsQueryable().WhereIf(isImageFilter, t => ("|" + criterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|")) u.StudyCode,
.Select(u => new
SeriesList = u.SeriesList.Select(z => new
{ {
u.PatientId, z.Modality,
u.StudyTime,
u.StudyCode,
SeriesList = u.SeriesList.Select(z => new InstancePathList = z.DicomInstanceList.Select(k => new
{ {
z.Modality, k.Path
InstancePathList = z.DicomInstanceList.Select(k => new
{
k.Path
})
})
}),
NoneDicomStudyList = sv.NoneDicomStudyList.AsQueryable().WhereIf(isImageFilter, t => ("|" + criterionModalitys + "|").Contains("|" + t.Modality + "|"))
.Select(nd => new
{
nd.Modality,
nd.StudyCode,
nd.ImageDate,
FileList = nd.NoneDicomFileList.Select(file => new
{
file.FileName,
file.Path,
file.FileType
}) })
}) })
};
var result = query.ToList(); })
};
return ResponseOutput.Ok(result);
}
else if (inQuery.SubejctId != null)
{
var query = from sv in _subjectRepository.Where(t => t.Id == inQuery.SubejctId).SelectMany(t=>t.SubjectVisitList)
select new
{
SubjectCode = sv.Subject.Code,
VisitName = sv.VisitName,
StudyList = sv.StudyList.AsQueryable().WhereIf(isImageFilter, t => ("|" + criterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|"))
.Select(u => new
{
u.PatientId,
u.StudyTime,
u.StudyCode,
SeriesList = u.SeriesList.Select(z => new
{
z.Modality,
InstancePathList = z.DicomInstanceList.Select(k => new
{
k.Path
})
})
}),
NoneDicomStudyList = sv.NoneDicomStudyList.AsQueryable().WhereIf(isImageFilter, t => ("|" + criterionModalitys + "|").Contains("|" + t.Modality + "|"))
.Select(nd => new
{
nd.Modality,
nd.StudyCode,
nd.ImageDate,
FileList = nd.NoneDicomFileList.Select(file => new
{
file.FileName,
file.Path,
file.FileType
})
})
};
var result = query.ToList();
return ResponseOutput.Ok(result);
}
else
{
return ResponseOutput.NotOk("不允许 subjectId subjectId 都不传递");
}
var info = query.FirstOrDefault();
return ResponseOutput.Ok(info);
} }
/// <summary> /// <summary>
@ -865,9 +765,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
foreach (var file in noneDicomStudy.FileList) foreach (var file in noneDicomStudy.FileList)
{ {
string destinationPath = Path.Combine(studyNoneDicomFolderPath, Path.GetFileName(file.FileName)); string destinationPath = Path.Combine(studyNoneDicomFolderPath, Path.GetFileName(file.FileName));
//下载到当前目录 //下载到当前目录
await _oSSService.DownLoadFromOSSAsync(HttpUtility.UrlDecode(file.Path), destinationPath); await _oSSService.DownLoadFromOSSAsync(HttpUtility.UrlDecode(file.Path) , destinationPath);
} }
} }