@abasb75/dicom-pixel-decoder
Version:
A lightweight DICOM image decoder.
114 lines (110 loc) • 3.9 kB
text/typescript
interface DicomVOILutModule {
voiLUTFunction: string;
windowWidth: number | undefined;
windowCenter: number | undefined;
voiLUTSequence: unknown;
lutDescriptor: any;
lutExplanation: any;
lutData: any;
windowCenterAndWidthExplanation: string;
}
interface DicomPatientModule {
patientName: string;
patientID: string;
typeofPatientID: string;
patientSex: string;
patientBirthDate: string;
patientAge: string;
patientSize: string;
otherPatientIDs: string;
otherPatientNames: string;
patientWeight: string;
}
interface DicomPixelModule {
photometricInterpretation: string;
numberOfFrames: number | undefined;
pixelRepresentation: number | undefined;
pixelSpacing: any | undefined;
rows: number | number | undefined;
columns: number | number | undefined;
bitsAllocated: number | undefined;
highBit: number | undefined;
bitsStored: number | undefined;
samplesPerPixel: number | undefined;
pixelDataProviderURL: any;
pixelPaddingRangeLimit: any;
extendedOffsetTable: any;
extendedOffsetTableLengths: any;
pixelAspectRatio: any;
planarConfiguration: number | undefined;
redPaletteColorLookupTableDescriptor: unknown;
greenPaletteColorLookupTableDescriptor: unknown;
bluePaletteColorLookupTableDescriptor: unknown;
alphaPaletteColorLookupTableDescriptor: unknown;
redPaletteColorLookupTableData: any;
greenPaletteColorLookupTableData: any;
bluePaletteColorLookupTableData: any;
alphaPaletteColorLookupTableData: any;
segmentedRedPaletteColorLookupTableData: any;
segmentedGreenPaletteColorLookupTableData: any;
segmentedBluePaletteColorLookupTableData: any;
segmentedAlphaPaletteColorLookupTableData: any;
pixelMeasuresSequence: any;
spacingBetweenSlices: any;
}
interface DicomScalingModule {
rescaleSlope: number | undefined;
rescaleIntercept: number | undefined;
modality: string;
}
interface DecodeOptions extends Partial<DicomVOILutModule>, Partial<DicomPatientModule>, Partial<DicomPixelModule> {
transferSyntaxUID: string;
bitsAllocated: number;
littleEndian: boolean;
pixelRepresentation: number;
samplesPerPixel: number;
rows: number | undefined;
columns: number | undefined;
rescaleSlope: number | undefined;
rescaleIntercept: number | undefined;
modality: string;
windowWidth: number | undefined;
windowCenter: number | undefined;
planarConfiguration: number | undefined;
photometricInterpretation: string;
bitsStored: number | undefined;
isFloat: boolean;
}
type PixelArray = Float64Array | Float32Array | Int32Array | Uint32Array | Uint16Array | Uint8Array | Int32Array | Int16Array | Int8Array;
declare class DecodedImage {
transferSyntax: string;
width: number;
height: number;
min: number | undefined;
max: number | undefined;
windowWidth: number | undefined;
windowCenter: number | undefined;
pixelData: PixelArray;
photometricInterpretation: string | undefined;
pixelModule: DicomPixelModule | undefined;
scalingModule: DicomScalingModule | undefined;
voiLUTModule: DicomVOILutModule | undefined;
arrayType: "Int8Array" | "Uint8Array" | "Int16Array" | "Uint16Array" | "Float32Array" | undefined;
littleEndian: boolean;
pixelTypes: 'Integer' | 'Float';
constructor(transferSyntax: string, width: number, height: number, pixelData: PixelArray);
getMinMax(): {
min: number;
max: number;
};
getLUT(): {
windowWidth: number;
windowCenter: number;
min: number;
max: number;
};
applyPaletteColor(paleteData: any): void;
applySpacing(): void;
}
declare function decode(pixelData: DataView | ArrayBuffer, options: DecodeOptions): Promise<DecodedImage>;
export { type DecodeOptions, decode };