代码表整理

This commit is contained in:
2022-11-22 14:15:21 +08:00
parent 84904f67a2
commit eb076028c6
20 changed files with 101 additions and 200 deletions
@@ -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;
@@ -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);
}
}