irc-netcore-api/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs

107 lines
3.1 KiB
C#

using Newtonsoft.Json;
namespace IRaCIS.Core.Application.Contracts.Dicom.DTO
{
public class DicomSeriesDTO
{
public bool IsDicom { get; set; } = true;
public bool IsBeMark { get; set; } = false;
public Guid Id { get; set; }
public Guid StudyId { get; set; }
public string StudyInstanceUid { get; set; } = String.Empty;
public string SeriesInstanceUid { get; set; } = String.Empty;
public int SeriesNumber { get; set; }
public DateTime? SeriesTime { get; set; }
public string Modality { get; set; } = String.Empty;
public string Description { get; set; } = String.Empty;
public int InstanceCount { get; set; }
public string NoneDicomFileFirstFile { get; set; } = String.Empty;
public string SliceThickness { get; set; } = String.Empty;
public Guid TrialId { get; set; }
public Guid SubjectId { get; set; }
public Guid SubjectVisitId { get; set; }
public Guid CreateUserId { get; set; }
public DateTime CreateTime { get; set; }
public Guid UpdateUserId { get; set; }
public DateTime UpdateTime { get; set; }
public bool IsDeleted { get; set; }
public bool IsReading { get; set; } = true;
public List<InstanceBasicInfo> InstanceInfoList { get; set; } = new List<InstanceBasicInfo>();
public List<Guid> InstanceList => InstanceInfoList.Select(t => t.Id).ToList();
public List<string> InstancePathList => InstanceInfoList.Select(t => t.Path+$"?instanceId={t.Id}").ToList();
public bool IsExistMutiFrames => InstanceInfoList.Any(t => t.NumberOfFrames > 1);
//存放在instance 上面
public string? WindowCenter => InstanceInfoList.FirstOrDefault()?.WindowCenter;
public string? WindowWidth => InstanceInfoList.FirstOrDefault()?.WindowWidth;
public string ImageResizePath { get; set; }
}
public class StudyInstanceInfo
{
public int ShowOrder { get; set; }
public decimal RowIndex { get; set; }
public Guid? SeriesId { get; set; }
public Guid? StudyId { get; set; }
public Guid? InstanceId { get; set; }
public int? NumberOfFrames { get; set; }
}
public class InstanceBasicInfo
{
public Guid Id { get; set; }
public string Path { get; set; }
public string HtmlPath { get; set; }
public int NumberOfFrames { get; set; }
public int InstanceNumber { get; set; }
public Guid? StudyId { get; set; }
public List<int?> KeyFramesList { get; set; } = new List<int?> { };
public Guid? SeriesId { get; set; }
[JsonIgnore]
public int ShowOrder { get; set; }
[JsonIgnore]
public decimal RowIndex { get; set; }
[JsonIgnore]
public string WindowCenter { get; set; }
[JsonIgnore]
public string WindowWidth { get; set; }
}
public class DicomSeriesWithLabelDTO : DicomSeriesDTO
{
public bool HasLabel { get; set; } = false;
public bool KeySeries { get; set; } = false;
}
}