Table of Contents

Class DicomDetails

Namespace
Egami.Formats.Extended.Dicom
Assembly
Egami.Formats.Extended.dll

What a DICOM load read and did, in FormatDetails: the frame, how its pixels were stored, and the transforms that made the loaded values.

[Experimental("EGAMIX001", UrlFormat = "https://github.com/inexin/Egami/blob/main/docs/articles/formats/dicom.md")]
public sealed class DicomDetails : FormatDetails
Inheritance
DicomDetails
Inherited Members

Examples

// A load gives what a viewer shows: rescaled, windowed, inverted for MONOCHROME1, colour as RGB.
EgamiContext context = new EgamiContext().WithDicom();
using Raster image = Raster.Load("scan.dcm", context);
DicomDetails details = (DicomDetails)image.Metadata.FormatDetails!;
Console.WriteLine($"{image.Layout}: window {details.WindowCenter}/{details.WindowWidth}, slope {details.RescaleSlope}");
image.Save("scan.png");

Properties

AppliedMinMax

Gets or sets whether the shown values were stretched from the frame's smallest to its largest modality value, because the file has no window and no VOI LUT.

public bool AppliedMinMax { get; set; }

Property Value

bool

AppliedModalityLut

Gets or sets whether a Modality LUT Sequence gave the modality values.

public bool AppliedModalityLut { get; set; }

Property Value

bool

AppliedVoiLut

Gets or sets whether a VOI LUT Sequence gave the shown values.

public bool AppliedVoiLut { get; set; }

Property Value

bool

BitsStored

Gets or sets the bits each stored sample has (Bits Stored).

public int BitsStored { get; set; }

Property Value

int

Frame

Gets or sets the frame loaded, from 0.

public int Frame { get; set; }

Property Value

int

FrameCount

Gets or sets the number of frames in the file.

public int FrameCount { get; set; }

Property Value

int

FrameRate

Gets or sets the Recommended Display Frame Rate (0008,2144) or Cine Rate (0018,0040), in frames a second, or null.

public double? FrameRate { get; set; }

Property Value

double?

FrameTime

Gets or sets the time from this frame to the next of a cine series: Frame Time (0018,1063), or this frame's entry of the Frame Time Vector (0018,1065); null when the file gives none.

public TimeSpan? FrameTime { get; set; }

Property Value

TimeSpan?

Inverted

Gets or sets whether the shown values were inverted: MONOCHROME1, or Presentation LUT Shape INVERSE.

public bool Inverted { get; set; }

Property Value

bool

IsSigned

Gets or sets whether stored samples are signed (Pixel Representation 1).

public bool IsSigned { get; set; }

Property Value

bool

PhotometricInterpretation

Gets or sets the Photometric Interpretation (0028,0004), such as MONOCHROME2 or YBR_FULL_422.

public string PhotometricInterpretation { get; set; }

Property Value

string

RescaleIntercept

Gets or sets the Rescale Intercept applied, 0 when there is none or a Modality LUT was used.

public double RescaleIntercept { get; set; }

Property Value

double

RescaleSlope

Gets or sets the Rescale Slope applied, 1 when there is none or a Modality LUT was used.

public double RescaleSlope { get; set; }

Property Value

double

TransferSyntax

Gets or sets the transfer syntax the pixel data was stored in.

public DicomTransferSyntax TransferSyntax { get; set; }

Property Value

DicomTransferSyntax

Values

Gets or sets what the load gave.

public DicomValues Values { get; set; }

Property Value

DicomValues

WindowCenter

Gets or sets the window center applied, or null when no window was.

public double? WindowCenter { get; set; }

Property Value

double?

WindowFunction

Gets or sets the window function applied.

public DicomWindowFunction WindowFunction { get; set; }

Property Value

DicomWindowFunction

WindowWidth

Gets or sets the window width applied, or null when no window was.

public double? WindowWidth { get; set; }

Property Value

double?

Methods

Copy()

Returns a deep copy.

public override FormatDetails Copy()

Returns

FormatDetails

The copy.