@cornerstonejs/core 1.31.0 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,9 @@
1
1
  import { VideoViewport as VideoViewportEnum } from '../enums';
2
2
  import { IVideoViewport, VideoViewportProperties, Point3, Point2, ICamera, VideoViewportInput, VOIRange } from '../types';
3
+ import { Transform } from './helpers/cpuFallback/rendering/transform';
3
4
  import Viewport from './Viewport';
4
5
  declare class VideoViewport extends Viewport implements IVideoViewport {
6
+ static frameRangeExtractor: RegExp;
5
7
  modality: any;
6
8
  protected imageId: string;
7
9
  readonly uid: any;
@@ -15,8 +17,10 @@ declare class VideoViewport extends Viewport implements IVideoViewport {
15
17
  private isPlaying;
16
18
  private scrollSpeed;
17
19
  private playbackRate;
20
+ private frameRange;
18
21
  protected metadata: any;
19
22
  private fps;
23
+ private numberOfFrames;
20
24
  private videoCamera;
21
25
  private feFilter;
22
26
  private averageWhite;
@@ -27,7 +31,7 @@ declare class VideoViewport extends Viewport implements IVideoViewport {
27
31
  private removeEventListeners;
28
32
  private elementDisabledHandler;
29
33
  private _getImageDataMetadata;
30
- setVideo(imageIds: string | string[], frameNumber?: number): Promise<unknown>;
34
+ setVideo(imageId: string, frameNumber?: number): Promise<unknown>;
31
35
  setVideoURL(videoURL: string): Promise<unknown>;
32
36
  togglePlayPause(): boolean;
33
37
  play(): void;
@@ -36,7 +40,9 @@ declare class VideoViewport extends Viewport implements IVideoViewport {
36
40
  start(): Promise<void>;
37
41
  end(): Promise<void>;
38
42
  setTime(timeInSeconds: number): Promise<void>;
39
- setFrame(frame: number): Promise<void>;
43
+ setFrameNumber(frame: number): Promise<void>;
44
+ setFrameRange(frameRange: number[]): void;
45
+ getFrameRange(): [number, number];
40
46
  setProperties(props: VideoViewportProperties): void;
41
47
  setPlaybackRate(rate?: number): void;
42
48
  setScrollSpeed(scrollSpeed?: number, unit?: VideoViewportEnum.SpeedUnit): void;
@@ -51,6 +57,7 @@ declare class VideoViewport extends Viewport implements IVideoViewport {
51
57
  metadata: {
52
58
  Modality: any;
53
59
  };
60
+ getScalarData: () => Uint8ClampedArray;
54
61
  imageData: {
55
62
  getDirection: () => any;
56
63
  getDimensions: () => any;
@@ -66,11 +73,14 @@ declare class VideoViewport extends Viewport implements IVideoViewport {
66
73
  scaled: boolean;
67
74
  };
68
75
  };
76
+ hasImageURI(imageURI: string): boolean;
69
77
  setVOI(voiRange: VOIRange): void;
70
78
  setWindowLevel(windowWidth?: number, windowCenter?: number): void;
71
79
  setAverageWhite(averageWhite: [number, number, number]): void;
72
80
  protected setColorTransform(): void;
73
81
  setCamera(camera: ICamera): void;
82
+ getCurrentImageId(): string;
83
+ getFrameNumber(): number;
74
84
  getCamera(): ICamera;
75
85
  resetCamera: () => boolean;
76
86
  getNumberOfSlices: () => number;
@@ -78,12 +88,15 @@ declare class VideoViewport extends Viewport implements IVideoViewport {
78
88
  resize: () => void;
79
89
  canvasToWorld: (canvasPos: Point2) => Point3;
80
90
  worldToCanvas: (worldPos: Point3) => Point2;
91
+ getPan(): Point2;
92
+ getRotation: () => number;
81
93
  protected canvasToIndex: (canvasPos: Point2) => Point2;
82
94
  protected indexToCanvas: (indexPos: Point2) => Point2;
83
95
  private refreshRenderValues;
84
96
  private getWorldToCanvasRatio;
85
97
  private getCanvasToWorldRatio;
86
98
  customRenderViewportToCanvas: () => void;
99
+ protected getTransform(): Transform;
87
100
  private renderFrame;
88
101
  private renderWhilstPlaying;
89
102
  }
@@ -47,12 +47,14 @@ class VideoViewport extends Viewport_1.default {
47
47
  super(Object.assign(Object.assign({}, props), { canvas: props.canvas || (0, helpers_1.getOrCreateCanvas)(props.element) }));
48
48
  this.videoWidth = 0;
49
49
  this.videoHeight = 0;
50
- this.loop = false;
50
+ this.loop = true;
51
51
  this.mute = true;
52
52
  this.isPlaying = false;
53
53
  this.scrollSpeed = 1;
54
54
  this.playbackRate = 1;
55
+ this.frameRange = [0, 0];
55
56
  this.fps = 30;
57
+ this.numberOfFrames = 0;
56
58
  this.videoCamera = {
57
59
  panWorld: [0, 0],
58
60
  parallelScale: 1,
@@ -79,7 +81,7 @@ class VideoViewport extends Viewport_1.default {
79
81
  return true;
80
82
  };
81
83
  this.getNumberOfSlices = () => {
82
- return (this.videoElement.duration * this.fps) / this.scrollSpeed;
84
+ return Math.round((this.videoElement.duration * this.fps) / this.scrollSpeed);
83
85
  };
84
86
  this.getFrameOfReferenceUID = () => {
85
87
  return this.videoElement.src;
@@ -124,35 +126,21 @@ class VideoViewport extends Viewport_1.default {
124
126
  const canvasPos = [subCanvasPos[0], subCanvasPos[1]];
125
127
  return canvasPos;
126
128
  };
129
+ this.getRotation = () => 0;
127
130
  this.canvasToIndex = (canvasPos) => {
128
- const [x, y] = canvasPos;
129
- const ratio = this.videoWidth / this.canvas.width;
130
- const pan = this.getPan();
131
- return [(x + pan[0]) * ratio, (y + pan[1]) * ratio];
131
+ const transform = this.getTransform();
132
+ transform.invert();
133
+ return transform.transformPoint(canvasPos);
132
134
  };
133
135
  this.indexToCanvas = (indexPos) => {
134
- const [x, y] = indexPos;
135
- const ratio = this.canvas.width / this.videoWidth;
136
- const pan = this.getPan();
137
- return [x * ratio - pan[0], y * ratio - pan[1]];
136
+ const transform = this.getTransform();
137
+ return transform.transformPoint(indexPos);
138
138
  };
139
139
  this.customRenderViewportToCanvas = () => {
140
140
  this.renderFrame();
141
141
  };
142
142
  this.renderFrame = () => {
143
- const panWorld = this.videoCamera.panWorld;
144
- const worldToCanvasRatio = this.getWorldToCanvasRatio();
145
- const canvasToWorldRatio = this.getCanvasToWorldRatio();
146
- const halfCanvas = [this.canvas.width / 2, this.canvas.height / 2];
147
- const halfCanvasWorldCoordinates = [
148
- halfCanvas[0] * canvasToWorldRatio,
149
- halfCanvas[1] * canvasToWorldRatio,
150
- ];
151
- const transform = new transform_1.Transform();
152
- transform.translate(halfCanvas[0], halfCanvas[1]);
153
- transform.scale(worldToCanvasRatio, worldToCanvasRatio);
154
- transform.translate(panWorld[0], panWorld[1]);
155
- transform.translate(-halfCanvasWorldCoordinates[0], -halfCanvasWorldCoordinates[1]);
143
+ const transform = this.getTransform();
156
144
  const transformationMatrix = transform.getMatrix();
157
145
  this.canvasContext.transform(transformationMatrix[0], transformationMatrix[1], transformationMatrix[2], transformationMatrix[3], transformationMatrix[4], transformationMatrix[5]);
158
146
  this.canvasContext.drawImage(this.videoElement, 0, 0, this.videoWidth, this.videoHeight);
@@ -165,6 +153,20 @@ class VideoViewport extends Viewport_1.default {
165
153
  time: this.videoElement.currentTime,
166
154
  duration: this.videoElement.duration,
167
155
  });
156
+ const frame = this.getFrameNumber();
157
+ if (this.isPlaying) {
158
+ if (frame < this.frameRange[0]) {
159
+ this.setFrameNumber(this.frameRange[0]);
160
+ }
161
+ else if (frame > this.frameRange[1]) {
162
+ if (this.loop) {
163
+ this.setFrameNumber(this.frameRange[0]);
164
+ }
165
+ else {
166
+ this.pause();
167
+ }
168
+ }
169
+ }
168
170
  };
169
171
  this.renderWhilstPlaying = () => {
170
172
  this.renderFrame();
@@ -212,12 +214,13 @@ class VideoViewport extends Viewport_1.default {
212
214
  if (origin == null) {
213
215
  origin = [0, 0, 0];
214
216
  }
215
- const xSpacing = imagePlaneModule.columnPixelSpacing;
216
- const ySpacing = imagePlaneModule.rowPixelSpacing;
217
+ const xSpacing = imagePlaneModule.columnPixelSpacing || 1;
218
+ const ySpacing = imagePlaneModule.rowPixelSpacing || 1;
217
219
  const xVoxels = imagePlaneModule.columns;
218
220
  const yVoxels = imagePlaneModule.rows;
219
221
  const zSpacing = 1;
220
222
  const zVoxels = 1;
223
+ this.hasPixelSpacing = !!imagePlaneModule.columnPixelSpacing;
221
224
  return {
222
225
  bitsAllocated: 8,
223
226
  numComps: 3,
@@ -225,23 +228,31 @@ class VideoViewport extends Viewport_1.default {
225
228
  direction: [...rowCosineVec, ...colCosineVec, ...scanAxisNormal],
226
229
  dimensions: [xVoxels, yVoxels, zVoxels],
227
230
  spacing: [xSpacing, ySpacing, zSpacing],
231
+ hasPixelSpacing: this.hasPixelSpacing,
228
232
  numVoxels: xVoxels * yVoxels * zVoxels,
229
233
  imagePlaneModule,
230
234
  };
231
235
  }
232
- setVideo(imageIds, frameNumber) {
233
- this.imageId = Array.isArray(imageIds) ? imageIds[0] : imageIds;
234
- const { imageId } = this;
236
+ setVideo(imageId, frameNumber) {
237
+ this.imageId = Array.isArray(imageId) ? imageId[0] : imageId;
235
238
  const { rendered } = metaData.get(enums_1.MetadataModules.IMAGE_URL, imageId);
236
239
  const generalSeries = metaData.get(enums_1.MetadataModules.GENERAL_SERIES, imageId);
237
240
  this.modality = generalSeries === null || generalSeries === void 0 ? void 0 : generalSeries.Modality;
238
241
  this.metadata = this._getImageDataMetadata();
239
242
  return this.setVideoURL(rendered).then(() => {
240
- const { cineRate = 30 } = metaData.get(enums_1.MetadataModules.CINE, imageId);
243
+ let { cineRate, numberOfFrames } = metaData.get(enums_1.MetadataModules.CINE, imageId);
244
+ if (!numberOfFrames) {
245
+ numberOfFrames = Math.round(this.videoElement.duration * (cineRate || 30));
246
+ }
247
+ if (!cineRate) {
248
+ cineRate = Math.round(numberOfFrames / this.videoElement.duration);
249
+ }
241
250
  this.fps = cineRate;
251
+ this.numberOfFrames = numberOfFrames;
252
+ this.setFrameRange([1, numberOfFrames]);
242
253
  if (frameNumber !== undefined) {
243
254
  this.pause();
244
- this.setFrame(frameNumber);
255
+ this.setFrameNumber(frameNumber);
245
256
  }
246
257
  });
247
258
  }
@@ -341,11 +352,24 @@ class VideoViewport extends Viewport_1.default {
341
352
  }
342
353
  });
343
354
  }
344
- setFrame(frame) {
355
+ setFrameNumber(frame) {
345
356
  return __awaiter(this, void 0, void 0, function* () {
346
357
  this.setTime((frame - 1) / this.fps);
347
358
  });
348
359
  }
360
+ setFrameRange(frameRange) {
361
+ if (!frameRange) {
362
+ this.frameRange = [1, this.numberOfFrames];
363
+ return;
364
+ }
365
+ if (frameRange.length !== 2 || frameRange[0] === frameRange[1]) {
366
+ return;
367
+ }
368
+ this.frameRange = [frameRange[0], frameRange[1]];
369
+ }
370
+ getFrameRange() {
371
+ return this.frameRange;
372
+ }
349
373
  setProperties(props) {
350
374
  if (props.loop !== undefined) {
351
375
  this.videoElement.loop = props.loop;
@@ -407,6 +431,7 @@ class VideoViewport extends Viewport_1.default {
407
431
  origin: metadata.origin,
408
432
  direction: metadata.direction,
409
433
  metadata: { Modality: this.modality },
434
+ getScalarData: () => this.getScalarData(),
410
435
  imageData: {
411
436
  getDirection: () => metadata.direction,
412
437
  getDimensions: () => metadata.dimensions,
@@ -430,6 +455,13 @@ class VideoViewport extends Viewport_1.default {
430
455
  },
431
456
  };
432
457
  }
458
+ hasImageURI(imageURI) {
459
+ const framesMatch = imageURI.match(VideoViewport.frameRangeExtractor);
460
+ const testURI = framesMatch
461
+ ? imageURI.substring(0, framesMatch.index)
462
+ : imageURI;
463
+ return this.imageId.indexOf(testURI) !== -1;
464
+ }
433
465
  setVOI(voiRange) {
434
466
  this.voiRange = voiRange;
435
467
  this.setColorTransform();
@@ -471,7 +503,8 @@ class VideoViewport extends Viewport_1.default {
471
503
  setCamera(camera) {
472
504
  const { parallelScale, focalPoint } = camera;
473
505
  if (camera.parallelScale !== undefined) {
474
- this.videoCamera.parallelScale = 1 / parallelScale;
506
+ this.videoCamera.parallelScale =
507
+ this.element.clientHeight / 2 / parallelScale;
475
508
  }
476
509
  if (focalPoint !== undefined) {
477
510
  const focalPointCanvas = this.worldToCanvas(focalPoint);
@@ -495,6 +528,15 @@ class VideoViewport extends Viewport_1.default {
495
528
  this.renderFrame();
496
529
  }
497
530
  }
531
+ getCurrentImageId() {
532
+ const current = this.imageId.replace('/frames/1', this.isPlaying
533
+ ? `/frames/1-${this.numberOfFrames}`
534
+ : `/frames/${this.getFrameNumber()}`);
535
+ return current;
536
+ }
537
+ getFrameNumber() {
538
+ return 1 + Math.round(this.videoElement.currentTime * this.fps);
539
+ }
498
540
  getCamera() {
499
541
  const { parallelScale } = this.videoCamera;
500
542
  const canvasCenter = [
@@ -506,10 +548,15 @@ class VideoViewport extends Viewport_1.default {
506
548
  parallelProjection: true,
507
549
  focalPoint: canvasCenterWorld,
508
550
  position: [0, 0, 0],
509
- parallelScale: 1 / parallelScale,
551
+ viewUp: [0, -1, 0],
552
+ parallelScale: this.element.clientHeight / 2 / parallelScale,
510
553
  viewPlaneNormal: [0, 0, 1],
511
554
  };
512
555
  }
556
+ getPan() {
557
+ const worldPan = this.videoCamera.panWorld;
558
+ return [worldPan[0], worldPan[1]];
559
+ }
513
560
  refreshRenderValues() {
514
561
  let worldToCanvasRatio = this.canvas.width / this.videoWidth;
515
562
  if (this.videoHeight * worldToCanvasRatio > this.canvas.height) {
@@ -531,6 +578,23 @@ class VideoViewport extends Viewport_1.default {
531
578
  getCanvasToWorldRatio() {
532
579
  return 1.0 / this.videoCamera.parallelScale;
533
580
  }
581
+ getTransform() {
582
+ const panWorld = this.videoCamera.panWorld;
583
+ const worldToCanvasRatio = this.getWorldToCanvasRatio();
584
+ const canvasToWorldRatio = this.getCanvasToWorldRatio();
585
+ const halfCanvas = [this.canvas.width / 2, this.canvas.height / 2];
586
+ const halfCanvasWorldCoordinates = [
587
+ halfCanvas[0] * canvasToWorldRatio,
588
+ halfCanvas[1] * canvasToWorldRatio,
589
+ ];
590
+ const transform = new transform_1.Transform();
591
+ transform.translate(halfCanvas[0], halfCanvas[1]);
592
+ transform.scale(worldToCanvasRatio, worldToCanvasRatio);
593
+ transform.translate(panWorld[0], panWorld[1]);
594
+ transform.translate(-halfCanvasWorldCoordinates[0], -halfCanvasWorldCoordinates[1]);
595
+ return transform;
596
+ }
534
597
  }
598
+ VideoViewport.frameRangeExtractor = /(\/frames\/|[&?]frameNumber=)([^/&?]*)/i;
535
599
  exports.default = VideoViewport;
536
600
  //# sourceMappingURL=VideoViewport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VideoViewport.js","sourceRoot":"","sources":["../../../src/RenderingEngine/VideoViewport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VideoViewport.js","sourceRoot":"","sources":["../../../src/RenderingEngine/VideoViewport.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,15 @@ export default interface IVideoViewport extends IViewport {
4
4
  resize: () => void;
5
5
  setProperties(props: VideoViewportProperties, suppressEvents?: boolean): void;
6
6
  getProperties: () => VideoViewportProperties;
7
- setVideo: (imageIds: string | string[], imageIdIndex?: number) => Promise<unknown>;
7
+ setVideo: (imageIds: string, imageIdIndex?: number) => Promise<unknown>;
8
8
  setVideoURL: (url: string) => void;
9
9
  play: () => void;
10
10
  pause: () => void;
11
11
  resetProperties(): void;
12
+ getCurrentImageId(): string;
13
+ getFrameNumber(): number;
14
+ setFrameNumber(frameNo: number): any;
15
+ setFrameRange(range?: [number, number]): any;
16
+ getFrameRange(): [number, number];
12
17
  resetCamera(resetPan?: boolean, resetZoom?: boolean): boolean;
13
18
  }
@@ -12,11 +12,12 @@ function getViewportsWithImageURI(imageURI, renderingEngineId) {
12
12
  }
13
13
  const viewports = [];
14
14
  renderingEngines.forEach((renderingEngine) => {
15
- const stackViewports = renderingEngine.getStackViewports();
16
- const filteredStackViewports = stackViewports.filter((viewport) => viewport.hasImageURI(imageURI));
17
- const volumeViewports = renderingEngine.getVolumeViewports();
18
- const filteredVolumeViewports = volumeViewports.filter((viewport) => viewport.hasImageURI(imageURI));
19
- viewports.push(...filteredStackViewports, ...filteredVolumeViewports);
15
+ const viewportsForRenderingEngine = renderingEngine.getViewports();
16
+ viewportsForRenderingEngine.forEach((viewport) => {
17
+ if (viewport.hasImageURI(imageURI)) {
18
+ viewports.push(viewport);
19
+ }
20
+ });
20
21
  });
21
22
  return viewports;
22
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getViewportsWithImageURI.js","sourceRoot":"","sources":["../../../src/utilities/getViewportsWithImageURI.ts"],"names":[],"mappings":";;AAAA,wDAAwD;AACxD,8EAA4E;AAa5E,SAAwB,wBAAwB,CAC9C,QAAgB,EAChB,iBAA0B;IAG1B,IAAI,gBAAgB,CAAC;IACrB,IAAI,iBAAiB,EAAE;QACrB,gBAAgB,GAAG,CAAC,IAAA,oCAAkB,EAAC,iBAAiB,CAAC,CAAC,CAAC;KAC5D;SAAM;QACL,gBAAgB,GAAG,IAAA,wCAAmB,GAAE,CAAC;KAC1C;IAED,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;QAC3C,MAAM,cAAc,GAAG,eAAe,CAAC,iBAAiB,EAAE,CAAC;QAE3D,MAAM,sBAAsB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAChE,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAC/B,CAAC;QAGF,MAAM,eAAe,GAAG,eAAe,CAAC,kBAAkB,EAAE,CAAC;QAE7D,MAAM,uBAAuB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAClE,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAC/B,CAAC;QAEF,SAAS,CAAC,IAAI,CAAC,GAAG,sBAAsB,EAAE,GAAG,uBAAuB,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC;AA/BD,2CA+BC"}
1
+ {"version":3,"file":"getViewportsWithImageURI.js","sourceRoot":"","sources":["../../../src/utilities/getViewportsWithImageURI.ts"],"names":[],"mappings":";;AAAA,wDAAwD;AACxD,8EAA4E;AAa5E,SAAwB,wBAAwB,CAC9C,QAAgB,EAChB,iBAA0B;IAG1B,IAAI,gBAAgB,CAAC;IACrB,IAAI,iBAAiB,EAAE;QACrB,gBAAgB,GAAG,CAAC,IAAA,oCAAkB,EAAC,iBAAiB,CAAC,CAAC,CAAC;KAC5D;SAAM;QACL,gBAAgB,GAAG,IAAA,wCAAmB,GAAE,CAAC;KAC1C;IAED,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;QAC3C,MAAM,2BAA2B,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC;QAEnE,2BAA2B,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC/C,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;gBAClC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC;AAxBD,2CAwBC"}