代码表整理
parent
84904f67a2
commit
eb076028c6
|
@ -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;
|
||||
|
|
|
@ -14,7 +14,7 @@ namespace IRaCIS.Core.Application.Interfaces
|
|||
{
|
||||
|
||||
|
||||
Task<List<TrialUserPreparationView>> GetTrialUserPreparationList(TrialUserPreparationQuery queryTrialUserPreparation );
|
||||
//Task<List<TrialUserPreparationView>> GetTrialUserPreparationList(TrialUserPreparationQuery queryTrialUserPreparation );
|
||||
|
||||
|
||||
|
|
@ -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; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -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; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -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; }
|
||||
|
|
Loading…
Reference in New Issue