代码表整理

Test.EIImageViewer
hang 2022-11-22 14:15:21 +08:00
parent 84904f67a2
commit eb076028c6
20 changed files with 101 additions and 200 deletions

View File

@ -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);

View File

@ -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))
{

View File

@ -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;

View File

@ -14,7 +14,7 @@ namespace IRaCIS.Core.Application.Interfaces
{
Task<List<TrialUserPreparationView>> GetTrialUserPreparationList(TrialUserPreparationQuery queryTrialUserPreparation );
//Task<List<TrialUserPreparationView>> GetTrialUserPreparationList(TrialUserPreparationQuery queryTrialUserPreparation );

View File

@ -1,61 +0,0 @@
//--------------------------------------------------------------------
// 此代码由T4模板自动生成 byzhouhang 20210918
// 生成时间 2022-10-14 09:26:02
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
using System;
using IRaCIS.Core.Domain.Share;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace IRaCIS.Core.Domain.Models
{
///<summary>
///SystemClinicalDataCriterion
///</summary>
[Table("SystemClinicalDataCriterion")]
public class SystemClinicalDataCriterion : Entity, IAuditUpdate, IAuditAdd
{
[ForeignKey("SystemClinicalDataSetId")]
public ClinicalDataSystemSet SystemClinicalDataSet { get; set; }
[ForeignKey("SystemReadingCriterionId")]
public ReadingQuestionCriterionSystem SystemReadingCriterion { get; set; }
[Required]
public Guid SystemClinicalDataSetId { get; set; }
[Required]
public Guid SystemReadingCriterionId { get; set; }
/// <summary>
/// CreateTime
/// </summary>
[Required]
public DateTime CreateTime { get; set; }
/// <summary>
/// CreateUserId
/// </summary>
[Required]
public Guid CreateUserId { get; set; }
/// <summary>
/// UpdateTime
/// </summary>
[Required]
public DateTime UpdateTime { get; set; }
/// <summary>
/// UpdateUserId
/// </summary>
[Required]
public Guid UpdateUserId { get; set; }
}
}

View File

@ -1,58 +0,0 @@
//--------------------------------------------------------------------
// 此代码由T4模板自动生成 byzhouhang 20210918
// 生成时间 2022-10-14 09:26:02
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
using System;
using IRaCIS.Core.Domain.Share;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace IRaCIS.Core.Domain.Models
{
///<summary>
///TrialClinicalDataCriterion
///</summary>
[Table("TrialClinicalDataCriterion")]
public class TrialClinicalDataCriterion : Entity, IAuditUpdate, IAuditAdd
{
[ForeignKey("TrialClinicalDataSetId")]
public ClinicalDataTrialSet TrialClinicalDataSet { get; set; }
[ForeignKey("TrialReadingCriterionId")]
public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }
[Required]
public Guid TrialClinicalDataSetId { get; set; }
[Required]
public Guid TrialReadingCriterionId { get; set; }
/// <summary>
/// CreateTime
/// </summary>
[Required]
public DateTime CreateTime { get; set; }
/// <summary>
/// CreateUserId
/// </summary>
[Required]
public Guid CreateUserId { get; set; }
/// <summary>
/// UpdateTime
/// </summary>
[Required]
public DateTime UpdateTime { get; set; }
/// <summary>
/// UpdateUserId
/// </summary>
[Required]
public Guid UpdateUserId { get; set; }
}
}

View File

@ -261,8 +261,8 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet<TumorAssessment> TumorAssessment { get; set; }
public virtual DbSet<TrialClinicalDataCriterion> TrialClinicalDataCriterion { get; set; }
public virtual DbSet<SystemClinicalDataCriterion> SystemClinicalDataCriterion { get; set; }
//public virtual DbSet<TrialClinicalDataCriterion> TrialClinicalDataCriterion { get; set; }
//public virtual DbSet<SystemClinicalDataCriterion> SystemClinicalDataCriterion { get; set; }
#endregion
@ -377,12 +377,7 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet<SubjectVisit> SubjectVisit { get; set; }
#endregion
#region 工作量分配
public virtual DbSet<WorkloadTP> WorkloadTPs { get; set; }
public virtual DbSet<WorkloadGlobal> WorkloadGlobals { get; set; }
public virtual DbSet<WorkloadAD> WorkloadADs { get; set; }
public virtual DbSet<WorkloadDetail> WorkloadDetails { get; set; }
#endregion
#region Document
@ -398,19 +393,27 @@ namespace IRaCIS.Core.Infra.EFCore
#endregion
#region 暂时未用
public virtual DbSet<Message> SysMessages { get; set; }
public virtual DbSet<TrialAttachment> TrialAttachment { get; set; }
public virtual DbSet<SystemLog> SystemLogs { get; set; }
public virtual DbSet<TU> TU { get; set; }
public virtual DbSet<TR> TR { get; set; }
public virtual DbSet<RS> RS { get; set; }
public virtual DbSet<Report> Reports { get; set; }
public virtual DbSet<StudyReviewer> StudyReviewer { get; set; }
public virtual DbSet<KeyInstance> KeyInstances { get; set; }
public virtual DbSet<GlobalRS> GlobalRS { get; set; }
public virtual DbSet<GlobalResult> GlobalResult { get; set; }
public virtual DbSet<ImageLabel> ImageLabels { get; set; }
#region 工作量分配
//public virtual DbSet<WorkloadTP> WorkloadTPs { get; set; }
//public virtual DbSet<WorkloadGlobal> WorkloadGlobals { get; set; }
//public virtual DbSet<WorkloadAD> WorkloadADs { get; set; }
//public virtual DbSet<WorkloadDetail> WorkloadDetails { get; set; }
#endregion
//public virtual DbSet<Message> SysMessages { get; set; }
//public virtual DbSet<TrialAttachment> TrialAttachment { get; set; }
//public virtual DbSet<SystemLog> SystemLogs { get; set; }
//public virtual DbSet<TU> TU { get; set; }
//public virtual DbSet<TR> TR { get; set; }
//public virtual DbSet<RS> RS { get; set; }
//public virtual DbSet<Report> Reports { get; set; }
//public virtual DbSet<StudyReviewer> StudyReviewer { get; set; }
//public virtual DbSet<KeyInstance> KeyInstances { get; set; }
//public virtual DbSet<GlobalRS> GlobalRS { get; set; }
//public virtual DbSet<GlobalResult> GlobalResult { get; set; }
//public virtual DbSet<ImageLabel> ImageLabels { get; set; }
//public virtual DbSet<QATemplateItem> QaTemplateItem { get; set; }
//public virtual DbSet<QATemplateItemDictionary> QaTemplateItemDictionary { get; set; }
//public virtual DbSet<QATemplateTemplateItem> QaTemplateTemplateItem { get; set; }
@ -421,6 +424,7 @@ namespace IRaCIS.Core.Infra.EFCore
//public virtual DbSet<QATemplate> QATemplate { get; set; }
//public virtual DbSet<QANoticeUser> QANoticeUser { get; set; }
//public virtual DbSet<QANotice> QANotice { get; set; }
//public virtual DbSet<TrialUserPreparation> TrialUserPreparation { get; set; }
#endregion
@ -439,7 +443,6 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet<DataInspection> DataInspection { get; set; }
public virtual DbSet<TrialUserPreparation> TrialUserPreparation { get; set; }
public virtual DbSet<FrontAuditConfig> FrontAuditConfig { get; set; }