Skip to content

Commit 6dff931

Browse files
authored
feat: Add range support for key image tool (#1743)
1 parent 382df4d commit 6dff931

File tree

21 files changed

+861
-364
lines changed

21 files changed

+861
-364
lines changed

common/reviews/api/core.api.md

+36-23
Original file line numberDiff line numberDiff line change
@@ -1187,6 +1187,22 @@ interface FlipDirection {
11871187
flipVertical?: boolean;
11881188
}
11891189

1190+
// @public (undocumented)
1191+
class FrameRange {
1192+
// (undocumented)
1193+
protected static frameRangeExtractor: RegExp;
1194+
// (undocumented)
1195+
protected static framesToImageId(imageId: string, range: FramesRange | string): string;
1196+
// (undocumented)
1197+
static framesToString(range: any): string;
1198+
// (undocumented)
1199+
static imageIdToFrameEnd(imageId: string): number;
1200+
// (undocumented)
1201+
protected static imageIdToFrames(imageId: string): FramesRange;
1202+
// (undocumented)
1203+
static imageIdToFrameStart(imageId: string): number;
1204+
}
1205+
11901206
// @public (undocumented)
11911207
interface GeneralSeriesModuleMetadata {
11921208
// (undocumented)
@@ -3415,7 +3431,7 @@ export class StackViewport extends Viewport {
34153431
// (undocumented)
34163432
getCornerstoneImage: () => IImage;
34173433
// (undocumented)
3418-
getCurrentImageId: () => string;
3434+
getCurrentImageId: (index?: number) => string;
34193435
// (undocumented)
34203436
getCurrentImageIdIndex: () => number;
34213437
// (undocumented)
@@ -3454,6 +3470,8 @@ export class StackViewport extends Viewport {
34543470
// (undocumented)
34553471
getSliceIndex: () => number;
34563472
// (undocumented)
3473+
getSliceIndexForImage(reference: string | ViewReference): number;
3474+
// (undocumented)
34573475
getSliceInfo(): {
34583476
sliceIndex: number;
34593477
slicePlane: number;
@@ -3914,6 +3932,7 @@ function updateVTKImageDataWithCornerstoneImage(sourceImageData: vtkImageData, i
39143932

39153933
declare namespace utilities {
39163934
export {
3935+
FrameRange,
39173936
eventListener,
39183937
invertRgbTransferFunction,
39193938
createSigmoidRGBTransferFunction,
@@ -4042,7 +4061,7 @@ export class VideoViewport extends Viewport {
40424061
// (undocumented)
40434062
getCamera(): ICamera;
40444063
// (undocumented)
4045-
getCurrentImageId(): string;
4064+
getCurrentImageId(index?: number): string;
40464065
// (undocumented)
40474066
getCurrentImageIdIndex(): number;
40484067
// (undocumented)
@@ -4086,6 +4105,8 @@ export class VideoViewport extends Viewport {
40864105
// (undocumented)
40874106
getSliceIndex(): number;
40884107
// (undocumented)
4108+
getSliceIndexForImage(reference: string | ViewReference): number;
4109+
// (undocumented)
40894110
getSliceViewInfo(): {
40904111
width: number;
40914112
height: number;
@@ -4329,7 +4350,7 @@ export class Viewport {
43294350
// (undocumented)
43304351
_isInBounds(point: Point3, bounds: number[]): boolean;
43314352
// (undocumented)
4332-
isReferenceViewable(viewRef: ViewReference, options?: ReferenceCompatibleOptions): boolean | unknown;
4353+
isReferenceViewable(viewRef: ViewReference, options?: ReferenceCompatibleOptions): boolean;
43334354
// (undocumented)
43344355
options: ViewportInputOptions;
43354356
// (undocumented)
@@ -4566,36 +4587,28 @@ interface ViewPresentationSelector {
45664587
}
45674588

45684589
// @public (undocumented)
4569-
interface ViewReference {
4570-
// (undocumented)
4571-
bounds?: BoundsLPS;
4572-
// (undocumented)
4573-
cameraFocalPoint?: Point3;
4574-
// (undocumented)
4590+
type ViewReference = {
45754591
FrameOfReferenceUID?: string;
4576-
// (undocumented)
45774592
referencedImageId?: string;
4578-
// (undocumented)
4579-
sliceIndex?: number | [number, number];
4580-
// (undocumented)
4593+
referencedImageURI?: string;
4594+
multiSliceReference?: ReferencedImageRange;
4595+
cameraFocalPoint?: Point3;
45814596
viewPlaneNormal?: Point3;
4582-
// (undocumented)
45834597
viewUp?: Point3;
4584-
// (undocumented)
4598+
sliceIndex?: number;
45854599
volumeId?: string;
4586-
}
4600+
bounds?: BoundsLPS;
4601+
};
45874602

45884603
// @public (undocumented)
4589-
interface ViewReferenceSpecifier {
4590-
// (undocumented)
4604+
type ViewReferenceSpecifier = {
4605+
sliceIndex?: number;
4606+
rangeEndSliceIndex?: number;
4607+
frameNumber?: number;
45914608
forFrameOfReference?: boolean;
4592-
// (undocumented)
45934609
points?: Point3[];
4594-
// (undocumented)
4595-
sliceIndex?: number | [number, number];
4596-
// (undocumented)
45974610
volumeId?: string;
4598-
}
4611+
};
45994612

46004613
// @public (undocumented)
46014614
interface VOI {

common/reviews/api/tools.api.md

+22-21
Original file line numberDiff line numberDiff line change
@@ -336,25 +336,6 @@ export abstract class AnnotationDisplayTool extends BaseTool {
336336
static toolName: any;
337337
}
338338

339-
// @public (undocumented)
340-
class AnnotationFrameRange {
341-
// (undocumented)
342-
protected static frameRangeExtractor: RegExp;
343-
// (undocumented)
344-
protected static framesToImageId(imageId: string, range: FramesRange | string): string;
345-
// (undocumented)
346-
static framesToString(range: any): string;
347-
// (undocumented)
348-
static getFrameRange(annotation: Annotation): number | [number, number];
349-
// (undocumented)
350-
protected static imageIdToFrames(imageId: string): FramesRange;
351-
// (undocumented)
352-
static setFrameRange(annotation: Annotation, range: FramesRange | string, eventBase?: {
353-
viewportId: any;
354-
renderingEngineId: any;
355-
}): void;
356-
}
357-
358339
// @public (undocumented)
359340
class AnnotationGroup {
360341
constructor();
@@ -433,6 +414,24 @@ type AnnotationModifiedEventDetail = {
433414
// @public (undocumented)
434415
type AnnotationModifiedEventType = Types_2.CustomEventType<AnnotationModifiedEventDetail>;
435416

417+
// @public (undocumented)
418+
class AnnotationMultiSlice {
419+
// (undocumented)
420+
static getFrameRange(annotation: Annotation): number | [number, number];
421+
// (undocumented)
422+
static getFrameRangeStr(annotation: Annotation): string;
423+
// (undocumented)
424+
static setEndRange(viewport: any, annotation: any, endRange?: any): void;
425+
// (undocumented)
426+
static setRange(viewport: any, annotation: any, startRange?: number, endRange?: number): void;
427+
// (undocumented)
428+
static setSingle(viewport: any, annotation: any, current?: any): void;
429+
// (undocumented)
430+
static setStartRange(viewport: any, annotation: any, startRange?: any): void;
431+
// (undocumented)
432+
static setViewportFrameRange(viewport: any, specifier: any): void;
433+
}
434+
436435
// @public (undocumented)
437436
type AnnotationRemovedEventDetail = {
438437
annotation: Annotation;
@@ -519,7 +518,7 @@ export abstract class AnnotationTool extends AnnotationDisplayTool {
519518
// (undocumented)
520519
static createAnnotation(...annotationBaseData: any[]): Annotation;
521520
// (undocumented)
522-
static createAnnotationForViewport(viewport: any, ...annotationBaseData: any[]): Annotation;
521+
static createAnnotationForViewport<T extends Annotation>(viewport: any, ...annotationBaseData: any[]): T;
523522
// (undocumented)
524523
static createAnnotationMemo(element: any, annotation: Annotation, options?: {
525524
newAnnotation?: boolean;
@@ -992,6 +991,8 @@ enum ChangeTypes {
992991
// (undocumented)
993992
InterpolationUpdated = "InterpolationUpdated",
994993
// (undocumented)
994+
MetadataReferenceModified = "MetadataReferenceModified",
995+
// (undocumented)
995996
StatsUpdated = "StatsUpdated"
996997
}
997998

@@ -6738,7 +6739,7 @@ declare namespace utilities {
67386739
pointToString,
67396740
polyDataUtils,
67406741
voi,
6741-
AnnotationFrameRange as annotationFrameRange,
6742+
AnnotationMultiSlice,
67426743
contourSegmentation,
67436744
annotationHydration,
67446745
getClosestImageIdForStackViewport,

0 commit comments

Comments
 (0)