Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 356x 89x | import type { Types } from '@cornerstonejs/core';
export type ImageSliceViewport = Types.IViewport & {
getCurrentImageId(): string | undefined;
getCurrentImageIdIndex(): number;
getImageIds(): string[];
hasImageURI(imageURI: string): boolean;
};
export type StackCompatibilityViewport = ImageSliceViewport & {
setStack(
imageIds: string[],
currentImageIdIndex?: number
): Promise<string> | string;
};
export type StackCalibrationViewport = ImageSliceViewport & {
calibrateSpacing(imageId: string): void;
};
function viewportHasMethod<TMethod extends string>(
viewport: unknown,
method: TMethod
): viewport is Record<TMethod, (...args: unknown[]) => unknown> {
return (
typeof (viewport as Record<TMethod, unknown> | undefined)?.[method] ===
'function'
);
}
export function viewportSupportsImageSlices(
viewport: unknown
): viewport is ImageSliceViewport {
return (
viewportHasMethod(viewport, 'getCurrentImageId') &&
viewportHasMethod(viewport, 'getCurrentImageIdIndex') &&
viewportHasMethod(viewport, 'getImageIds') &&
viewportHasMethod(viewport, 'hasImageURI')
);
}
export function viewportSupportsStackCompatibility(
viewport: unknown
): viewport is StackCompatibilityViewport {
return (
viewportSupportsImageSlices(viewport) &&
viewportHasMethod(viewport, 'setStack')
);
}
export function viewportSupportsStackCalibration(
viewport: unknown
): viewport is StackCalibrationViewport {
return (
viewportSupportsImageSlices(viewport) &&
viewportHasMethod(viewport, 'calibrateSpacing')
);
}
|