代码表整理
This commit is contained in:
@@ -16,7 +16,7 @@ namespace IRaCIS.Core.Application.Services
|
||||
private readonly IRepository<DicomStudy> _studyRepository;
|
||||
private readonly IRepository<KeyInstance> _keyInstanceRepository;
|
||||
public SeriesService(IRepository<DicomInstance> instanceRepository, IRepository<DicomStudy> studyRepository,
|
||||
IRepository<KeyInstance> keyInstanceRepository, IRepository<DicomSeries> seriesRepository, IRepository<ImageLabel> imageLabelRepository)
|
||||
IRepository<KeyInstance> keyInstanceRepository, IRepository<DicomSeries> seriesRepository, IRepository<ImageLabel> imageLabelRepository)
|
||||
{
|
||||
_seriesRepository = seriesRepository;
|
||||
_instanceRepository = instanceRepository;
|
||||
@@ -35,56 +35,74 @@ namespace IRaCIS.Core.Application.Services
|
||||
public async Task<IResponseOutput<List<DicomSeriesWithLabelDTO>>> List(Guid studyId, string? tpCode)
|
||||
{
|
||||
|
||||
var seriesList = await _seriesRepository.Where(s => s.StudyId == studyId).OrderBy(s => s.SeriesNumber).
|
||||
var seriesList = await _seriesRepository.Where(s => s.StudyId == studyId).OrderBy(s => s.SeriesNumber).
|
||||
ThenBy(s => s.SeriesTime).ThenBy(s => s.CreateTime)
|
||||
.ProjectTo<DicomSeriesWithLabelDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
|
||||
bool hasKeyInstance = false;
|
||||
var SeriesIdList = _imageLabelRepository.Where(u => u.TpCode == tpCode).Select(s => s.SeriesId).Distinct().ToList();
|
||||
var instanceIdList = _imageLabelRepository.Where(u => u.TpCode == tpCode).Select(s => s.InstanceId).Distinct().ToList();
|
||||
foreach (var item in seriesList)
|
||||
{
|
||||
if (SeriesIdList.Contains(item.Id))
|
||||
{
|
||||
item.HasLabel = true;
|
||||
hasKeyInstance = true;
|
||||
}
|
||||
else item.HasLabel = false;
|
||||
}
|
||||
if (hasKeyInstance)
|
||||
{
|
||||
seriesList.Add(new DicomSeriesWithLabelDTO
|
||||
{
|
||||
KeySeries = true,
|
||||
Id = SeriesIdList[0],
|
||||
InstanceCount = instanceIdList.Count,
|
||||
HasLabel = true,
|
||||
Modality = seriesList[0].Modality,
|
||||
Description = "Key Series"
|
||||
});
|
||||
}
|
||||
|
||||
var idList = await _instanceRepository.Where(s => s.StudyId == studyId).OrderBy(t=>t.SeriesId).ThenBy(t => t.InstanceNumber)
|
||||
var idList = await _instanceRepository.Where(s => s.StudyId == studyId).OrderBy(t => t.SeriesId).ThenBy(t => t.InstanceNumber)
|
||||
.ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime)
|
||||
.Select(t=>new {t.SeriesId, t.Id,t.Path}).ToListAsync();//.GroupBy(u => u.SeriesId);
|
||||
.Select(t => new { t.SeriesId, t.Id, t.Path }).ToListAsync();//.GroupBy(u => u.SeriesId);
|
||||
|
||||
foreach (var item in seriesList)
|
||||
{
|
||||
if (item.KeySeries)
|
||||
{
|
||||
item.InstanceList = instanceIdList;
|
||||
}
|
||||
else
|
||||
{
|
||||
//item.InstanceList = idList.Where(s => s.SeriesId == item.Id).OrderBy(t => t.InstanceNumber)
|
||||
// .ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime).Select(u => u.Id).ToList();
|
||||
item.InstanceList = idList.Where(s => s.SeriesId == item.Id).Select(u => u.Id).ToList();
|
||||
|
||||
item.InstanceList = idList.Where(s => s.SeriesId == item.Id).Select(u => u.Id).ToList();
|
||||
|
||||
item.InstancePathList = idList.Where(s => s.SeriesId == item.Id).Select(u => u.Path).ToList();
|
||||
}
|
||||
item.InstancePathList = idList.Where(s => s.SeriesId == item.Id).Select(u => u.Path).ToList();
|
||||
}
|
||||
|
||||
#region 暂时废弃
|
||||
|
||||
//bool hasKeyInstance = false;
|
||||
//var SeriesIdList = _imageLabelRepository.Where(u => u.TpCode == tpCode).Select(s => s.SeriesId).Distinct().ToList();
|
||||
//var instanceIdList = _imageLabelRepository.Where(u => u.TpCode == tpCode).Select(s => s.InstanceId).Distinct().ToList();
|
||||
//foreach (var item in seriesList)
|
||||
//{
|
||||
// if (SeriesIdList.Contains(item.Id))
|
||||
// {
|
||||
// item.HasLabel = true;
|
||||
// hasKeyInstance = true;
|
||||
// }
|
||||
// else item.HasLabel = false;
|
||||
//}
|
||||
//if (hasKeyInstance)
|
||||
//{
|
||||
// seriesList.Add(new DicomSeriesWithLabelDTO
|
||||
// {
|
||||
// KeySeries = true,
|
||||
// Id = SeriesIdList[0],
|
||||
// InstanceCount = instanceIdList.Count,
|
||||
// HasLabel = true,
|
||||
// Modality = seriesList[0].Modality,
|
||||
// Description = "Key Series"
|
||||
// });
|
||||
//}
|
||||
|
||||
//var idList = await _instanceRepository.Where(s => s.StudyId == studyId).OrderBy(t => t.SeriesId).ThenBy(t => t.InstanceNumber)
|
||||
// .ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime)
|
||||
// .Select(t => new { t.SeriesId, t.Id, t.Path }).ToListAsync();//.GroupBy(u => u.SeriesId);
|
||||
|
||||
//foreach (var item in seriesList)
|
||||
//{
|
||||
// if (item.KeySeries)
|
||||
// {
|
||||
// item.InstanceList = instanceIdList;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// //item.InstanceList = idList.Where(s => s.SeriesId == item.Id).OrderBy(t => t.InstanceNumber)
|
||||
// // .ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime).Select(u => u.Id).ToList();
|
||||
|
||||
// item.InstanceList = idList.Where(s => s.SeriesId == item.Id).Select(u => u.Id).ToList();
|
||||
|
||||
// item.InstancePathList = idList.Where(s => s.SeriesId == item.Id).Select(u => u.Path).ToList();
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
return ResponseOutput.Ok(seriesList);
|
||||
}
|
||||
|
||||
@@ -100,7 +118,7 @@ namespace IRaCIS.Core.Application.Services
|
||||
{
|
||||
string path = string.Empty;
|
||||
|
||||
path= (await _instanceRepository.Where(s => s.SeriesId == seriesId).Select(t=>t.Path).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
path = (await _instanceRepository.Where(s => s.SeriesId == seriesId).Select(t => t.Path).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
var physicalPath = FileStoreHelper.GetPhysicalFilePath(_hostEnvironment, path);
|
||||
|
||||
|
||||
@@ -317,18 +317,20 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||
{
|
||||
string path = String.Empty;
|
||||
|
||||
DicomInstance dicomInstance = await _repository.FirstOrDefaultAsync<DicomInstance>(s => s.StudyId == studyId);
|
||||
path = (await _dicomInstanceRepository.Where(s => s.StudyId == studyId).Select(t => t.Path).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
if (dicomInstance != null)
|
||||
{
|
||||
DicomStudy dicomStudy = await _repository.FirstOrDefaultAsync<DicomStudy>(s => s.Id == dicomInstance.StudyId);
|
||||
if (dicomStudy != null)
|
||||
{
|
||||
var( physicalPath ,relativePath )= FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, dicomInstance.Id);
|
||||
//DicomInstance dicomInstance = await _repository.FirstOrDefaultAsync<DicomInstance>(s => s.StudyId == studyId);
|
||||
|
||||
path = physicalPath;
|
||||
}
|
||||
}
|
||||
//if (dicomInstance != null)
|
||||
//{
|
||||
// DicomStudy dicomStudy = await _repository.FirstOrDefaultAsync<DicomStudy>(s => s.Id == dicomInstance.StudyId);
|
||||
// if (dicomStudy != null)
|
||||
// {
|
||||
// var( physicalPath ,relativePath )= FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, dicomInstance.Id);
|
||||
|
||||
// path = physicalPath;
|
||||
// }
|
||||
//}
|
||||
|
||||
using (var sw = ImageHelper.RenderPreviewJpeg(path))
|
||||
{
|
||||
|
||||
@@ -17,22 +17,19 @@ namespace IRaCIS.Application.Services
|
||||
private readonly IRepository<ClinicalDataSystemSet> _clinicalDataSystemSetRepository;
|
||||
private readonly IRepository<PreviousPDF> _previousPDFRepository;
|
||||
private readonly IRepository<Trial> _trialRepository;
|
||||
private readonly IRepository<SystemClinicalDataCriterion> _systemClinicalDataCriterionRepository;
|
||||
private readonly IRepository<TrialClinicalDataCriterion> _trialClinicalDataCriterionRepository;
|
||||
|
||||
|
||||
public ClinicalDataSetService(IRepository<SubjectVisit> subjectVisitRepository,
|
||||
|
||||
IRepository<ClinicalDataTrialSet> ClinicalDataTrialSetRepository,
|
||||
IRepository<ClinicalDataSystemSet> ClinicalDataSystemSetRepository,
|
||||
IRepository<PreviousPDF> previousPDFRepository,
|
||||
IRepository<Trial> trialRepository,
|
||||
IRepository<Trial> trialRepository
|
||||
|
||||
IRepository<SystemClinicalDataCriterion> systemClinicalDataCriterionRepository,
|
||||
IRepository<TrialClinicalDataCriterion> trialClinicalDataCriterionRepository
|
||||
|
||||
)
|
||||
{
|
||||
_systemClinicalDataCriterionRepository = systemClinicalDataCriterionRepository;
|
||||
_trialClinicalDataCriterionRepository = trialClinicalDataCriterionRepository;
|
||||
|
||||
_subjectVisitRepository = subjectVisitRepository;
|
||||
|
||||
_clinicalDataTrialSetRepository = ClinicalDataTrialSetRepository;
|
||||
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
//--------------------------------------------------------------------
|
||||
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||
// 生成时间 2022-03-24 13:22:50
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
using IRaCIS.Core.Application.ViewModel;
|
||||
namespace IRaCIS.Core.Application.Interfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// ITrialUserPreparation Service
|
||||
/// </summary>
|
||||
public interface ITrialUserPreparationService
|
||||
{
|
||||
|
||||
|
||||
Task<List<TrialUserPreparationView>> GetTrialUserPreparationList(TrialUserPreparationQuery queryTrialUserPreparation );
|
||||
|
||||
|
||||
|
||||
//Task<IResponseOutput> AddOrUpdateTrialUserPreparation (TrialUserPreparationAddOrEdit addOrEditTrialUserPreparation );
|
||||
|
||||
//Task<IResponseOutput> DeleteTrialUserPreparation (Guid trialUserPreparationId);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user