@cornerstonejs/core
Version:
Cornerstone3D Core
120 lines (119 loc) • 3.71 kB
TypeScript
import type { Point3 } from '../types/index.js';
export interface WSIImageMetadataSource {
NumberOfFrames?: number;
TotalPixelMatrixColumns: number;
TotalPixelMatrixRows: number;
ImageOrientationSlide?: number[];
ImagedVolumeWidth?: number;
ImagedVolumeHeight?: number;
ImagedVolumeDepth?: number;
TotalPixelMatrixOriginSequence?: Array<{
XOffsetInSlideCoordinateSystem?: number;
YOffsetInSlideCoordinateSystem?: number;
ZOffsetInSlideCoordinateSystem?: number;
}>;
['00080008']?: {
Value?: string[];
};
['00200052']?: {
Value?: string[];
};
isMultiframe?: unknown;
frameNumber?: unknown;
[key: string]: unknown;
}
export interface WSIImageVolumeLike extends WSIImageMetadataSource {
ImageType: string[];
}
export interface WSIClientLike {
getDICOMwebMetadata(imageId: string): WSIImageMetadataSource;
}
export interface WSIMapViewLike {
getCenter(): [number, number];
getExtent?(): number[];
getProjection(): {
getExtent(): number[];
};
getResolution(): number;
getResolutionForZoom?(zoom: number): number;
getRotation(): number;
getZoom(): number;
setCenter(center: [number, number]): void;
setResolution?(resolution: number): void;
setRotation(rotation: number): void;
setZoom(zoom: number): void;
}
export interface WSIMapLike {
getView(): WSIMapViewLike;
getViewport(): HTMLElement;
on(eventName: string, handler: () => void): void;
render(): void;
un(eventName: string, handler: () => void): void;
updateSize?(): void;
}
export interface WSIViewerLike {
cleanup?(): void;
deactivateDragPanInteraction(): void;
getAffine(): unknown;
getMap(): WSIMapLike;
render(args: {
container: HTMLElement;
}): void;
}
export interface WSITransformUtilitiesLike {
applyInverseTransform(args: {
coordinate: [number, number];
affine: unknown;
}): [number, number];
applyTransform(args: {
coordinate: [number, number];
affine: unknown;
}): [number, number];
}
export interface DicomMicroscopyViewerLike {
metadata: {
VLWholeSlideMicroscopyImage: new (args: {
metadata: WSIImageMetadataSource;
}) => WSIImageVolumeLike;
};
utils?: WSITransformUtilitiesLike;
viewer: {
VolumeImageViewer: new (args: {
client: unknown;
metadata: WSIImageVolumeLike[];
controls: string[];
retrieveRendered: boolean;
bindings: Record<string, unknown>;
}) => WSIViewerLike;
};
}
export interface WSIImageDataMetadata {
bitsAllocated: number;
numberOfComponents: number;
origin: Point3;
direction: number[];
dimensions: [number, number, number];
spacing: [number, number, number];
hasPixelSpacing: boolean;
numVoxels: number;
imagePlaneModule: Record<string, unknown>;
}
export interface LoadedWSIData {
volumeImages: WSIImageVolumeLike[];
metadataDicomweb: WSIImageMetadataSource[];
metadata: WSIImageDataMetadata;
frameOfReferenceUID: string | null;
imageURISet: Set<string>;
}
export declare function getDicomMicroscopyViewer(): Promise<DicomMicroscopyViewerLike>;
export declare function addWSIMiniNavigationOverlayCss(): void;
export declare function getWSIImageDataMetadata(args: {
metadataDicomweb: WSIImageMetadataSource[];
imageIds: string[];
imageIndex?: number;
}): WSIImageDataMetadata;
export declare function loadWSIData(args: {
imageIds: string[];
client: WSIClientLike;
dicomMicroscopyViewer?: DicomMicroscopyViewerLike;
}): Promise<LoadedWSIData>;