@cornerstonejs/adapters 4.22.7 → 4.22.9

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.
Files changed (53) hide show
  1. package/dist/esm/adapters/Cornerstone/Angle.js +22 -15
  2. package/dist/esm/adapters/Cornerstone/ArrowAnnotate.js +13 -18
  3. package/dist/esm/adapters/Cornerstone/Bidirectional.js +22 -27
  4. package/dist/esm/adapters/Cornerstone/CircleRoi.js +20 -26
  5. package/dist/esm/adapters/Cornerstone/CobbAngle.js +22 -15
  6. package/dist/esm/adapters/Cornerstone/EllipticalRoi.js +19 -25
  7. package/dist/esm/adapters/Cornerstone/FreehandRoi.js +21 -25
  8. package/dist/esm/adapters/Cornerstone/Length.js +18 -15
  9. package/dist/esm/adapters/Cornerstone/MeasurementReport.js +20 -40
  10. package/dist/esm/adapters/Cornerstone/ParametricMap.js +15 -26
  11. package/dist/esm/adapters/Cornerstone/RectangleRoi.js +26 -25
  12. package/dist/esm/adapters/Cornerstone/Segmentation_3X.js +19 -31
  13. package/dist/esm/adapters/Cornerstone/Segmentation_4X.js +69 -90
  14. package/dist/esm/adapters/Cornerstone3D/Angle.js +17 -24
  15. package/dist/esm/adapters/Cornerstone3D/ArrowAnnotate.js +21 -35
  16. package/dist/esm/adapters/Cornerstone3D/BaseAdapter3D.js +12 -23
  17. package/dist/esm/adapters/Cornerstone3D/Bidirectional.js +21 -33
  18. package/dist/esm/adapters/Cornerstone3D/CircleROI.js +27 -35
  19. package/dist/esm/adapters/Cornerstone3D/CobbAngle.js +25 -28
  20. package/dist/esm/adapters/Cornerstone3D/ControlPointPolyline.js +10 -17
  21. package/dist/esm/adapters/Cornerstone3D/EllipticalROI.js +25 -33
  22. package/dist/esm/adapters/Cornerstone3D/KeyImage.js +3 -9
  23. package/dist/esm/adapters/Cornerstone3D/LabelData.js +22 -33
  24. package/dist/esm/adapters/Cornerstone3D/Length.js +19 -27
  25. package/dist/esm/adapters/Cornerstone3D/MeasurementReport.js +73 -116
  26. package/dist/esm/adapters/Cornerstone3D/ParametricMap/generateToolState.js +2 -6
  27. package/dist/esm/adapters/Cornerstone3D/PlanarFreehandROI.js +26 -35
  28. package/dist/esm/adapters/Cornerstone3D/Probe.js +16 -27
  29. package/dist/esm/adapters/Cornerstone3D/RTStruct/RTSS.js +13 -29
  30. package/dist/esm/adapters/Cornerstone3D/RTStruct/index.js +1 -3
  31. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedFrameOfReferenceSequence.js +1 -3
  32. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedSeriesSequence.js +7 -13
  33. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getStructureSetModule.js +1 -3
  34. package/dist/esm/adapters/Cornerstone3D/RectangleROI.js +21 -28
  35. package/dist/esm/adapters/Cornerstone3D/Segmentation/compactMergeSegData.js +5 -9
  36. package/dist/esm/adapters/Cornerstone3D/Segmentation/generateLabelMaps2DFrom3D.js +2 -4
  37. package/dist/esm/adapters/Cornerstone3D/Segmentation/generateSegmentation.js +5 -15
  38. package/dist/esm/adapters/Cornerstone3D/Segmentation/generateToolState.js +3 -4
  39. package/dist/esm/adapters/Cornerstone3D/Segmentation/labelmapImagesFromBuffer.js +124 -156
  40. package/dist/esm/adapters/Cornerstone3D/UltrasoundDirectional.js +12 -23
  41. package/dist/esm/adapters/Cornerstone3D/metricHandler.js +8 -5
  42. package/dist/esm/adapters/VTKjs/Segmentation.js +2 -4
  43. package/dist/esm/adapters/helpers/checkOrientation.js +2 -4
  44. package/dist/esm/adapters/helpers/downloadDICOMData.js +1 -3
  45. package/dist/esm/adapters/helpers/getDatasetsFromImages.js +3 -7
  46. package/dist/esm/adapters/helpers/scoordToWorld.js +5 -13
  47. package/dist/esm/adapters/helpers/toPoint3.js +1 -3
  48. package/dist/esm/adapters/helpers/toScoordType.js +3 -7
  49. package/dist/esm/adapters/index.js +3 -2
  50. package/dist/esm/utilities/createInstance.js +9 -8
  51. package/dist/esm/utilities/referencedMetadataProvider.js +7 -13
  52. package/dist/esm/version.d.ts +1 -1
  53. package/package.json +6 -6
@@ -1,40 +1,30 @@
1
1
  import { triggerEvent, eventTarget, imageLoader } from '@cornerstonejs/core';
2
2
  import { utilities as utilities$1 } from '@cornerstonejs/tools';
3
- import { utilities, data, normalizers } from 'dcmjs';
3
+ import { data, normalizers, utilities } from 'dcmjs';
4
4
  import ndarray from 'ndarray';
5
5
  import checkOrientation from '../../helpers/checkOrientation.js';
6
6
  import { getValidOrientations, getSegmentMetadata, unpackPixelData, calculateCentroid, readFromUnpackedChunks, alignPixelDataWithSourceData, getSegmentIndex, findReferenceSourceImageId } from '../../Cornerstone/Segmentation_4X.js';
7
7
  import { compactMergeSegmentDataWithoutInformationLoss } from './compactMergeSegData.js';
8
8
  import { Events } from '../../enums/Events.js';
9
9
 
10
- const {
11
- DicomMessage,
12
- DicomMetaDictionary
13
- } = data;
14
- const {
15
- Normalizer
16
- } = normalizers;
17
- const {
18
- decode
19
- } = utilities.compression;
10
+ const DicomMessage = data.DicomMessage,
11
+ DicomMetaDictionary = data.DicomMetaDictionary;
12
+ const Normalizer = normalizers.Normalizer;
13
+ const decode = utilities.compression.decode;
20
14
  const updateSegmentsOnFrame = _ref => {
21
- let {
22
- segmentsOnFrame,
23
- imageIdIndex,
24
- segmentIndex
25
- } = _ref;
15
+ let segmentsOnFrame = _ref.segmentsOnFrame,
16
+ imageIdIndex = _ref.imageIdIndex,
17
+ segmentIndex = _ref.segmentIndex;
26
18
  if (!segmentsOnFrame[imageIdIndex]) {
27
19
  segmentsOnFrame[imageIdIndex] = [];
28
20
  }
29
21
  segmentsOnFrame[imageIdIndex].push(segmentIndex);
30
22
  };
31
23
  const updateSegmentsPixelIndices = _ref2 => {
32
- let {
33
- segmentsPixelIndices,
34
- segmentIndex,
35
- imageIdIndex,
36
- indexCache
37
- } = _ref2;
24
+ let segmentsPixelIndices = _ref2.segmentsPixelIndices,
25
+ segmentIndex = _ref2.segmentIndex,
26
+ imageIdIndex = _ref2.imageIdIndex,
27
+ indexCache = _ref2.indexCache;
38
28
  if (!segmentsPixelIndices.has(segmentIndex)) {
39
29
  segmentsPixelIndices.set(segmentIndex, {});
40
30
  }
@@ -43,12 +33,10 @@ const updateSegmentsPixelIndices = _ref2 => {
43
33
  segmentsPixelIndices.set(segmentIndex, segmentIndexObject);
44
34
  };
45
35
  const extractInfoFromPerFrameFunctionalGroups = _ref3 => {
46
- let {
47
- PerFrameFunctionalGroups,
48
- sequenceIndex,
49
- sopUIDImageIdIndexMap,
50
- multiframe
51
- } = _ref3;
36
+ let PerFrameFunctionalGroups = _ref3.PerFrameFunctionalGroups,
37
+ sequenceIndex = _ref3.sequenceIndex,
38
+ sopUIDImageIdIndexMap = _ref3.sopUIDImageIdIndexMap,
39
+ multiframe = _ref3.multiframe;
52
40
  const referencedSOPInstanceUid = PerFrameFunctionalGroups.DerivationImageSequence[0].SourceImageSequence[0].ReferencedSOPInstanceUID;
53
41
  const referencedImageId = sopUIDImageIdIndexMap[referencedSOPInstanceUid];
54
42
  const segmentIndex = getSegmentIndex(multiframe, sequenceIndex);
@@ -59,11 +47,12 @@ const extractInfoFromPerFrameFunctionalGroups = _ref3 => {
59
47
  };
60
48
  };
61
49
  async function createLabelmapsFromBufferInternal(referencedImageIds, arrayBuffer, metadataProvider, options) {
62
- const {
63
- tolerance = 1e-3,
64
- TypedArrayConstructor = Uint8Array,
65
- maxBytesPerChunk = 199000000
66
- } = options;
50
+ const _options$tolerance = options.tolerance,
51
+ tolerance = _options$tolerance === void 0 ? 1e-3 : _options$tolerance,
52
+ _options$TypedArrayCo = options.TypedArrayConstructor,
53
+ TypedArrayConstructor = _options$TypedArrayCo === void 0 ? Uint8Array : _options$TypedArrayCo,
54
+ _options$maxBytesPerC = options.maxBytesPerChunk,
55
+ maxBytesPerChunk = _options$maxBytesPerC === void 0 ? 199000000 : _options$maxBytesPerC;
67
56
  const dicomData = DicomMessage.readFile(arrayBuffer);
68
57
  const dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict);
69
58
  dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta);
@@ -98,9 +87,8 @@ async function createLabelmapsFromBufferInternal(referencedImageIds, arrayBuffer
98
87
  }
99
88
  const orientation = checkOrientation(multiframe, validOrientations, [imagePlaneModule.rows, imagePlaneModule.columns, referencedImageIds.length], tolerance);
100
89
  const sopUIDImageIdIndexMap = referencedImageIds.reduce((acc, imageId) => {
101
- const {
102
- sopInstanceUID
103
- } = metadataProvider.get('generalImageModule', imageId);
90
+ const _metadataProvider$get = metadataProvider.get('generalImageModule', imageId),
91
+ sopInstanceUID = _metadataProvider$get.sopInstanceUID;
104
92
  acc[sopInstanceUID] = imageId;
105
93
  return acc;
106
94
  }, {});
@@ -128,23 +116,22 @@ async function createLabelmapsFromBufferInternal(referencedImageIds, arrayBuffer
128
116
  labelMapImages.push(labelMapImage);
129
117
  }
130
118
  const segmentsPixelIndices = new Map();
131
- const {
132
- hasOverlappingSegments,
133
- arrayOfLabelMapImages
134
- } = await insertFunction({
135
- segmentsOnFrame,
136
- labelMapImages,
137
- pixelDataChunks,
138
- multiframe,
139
- referencedImageIds,
140
- validOrientations,
141
- metadataProvider,
142
- tolerance,
143
- segmentsPixelIndices,
144
- sopUIDImageIdIndexMap,
145
- imageIdMaps,
146
- TypedArrayConstructor
147
- });
119
+ const _await$insertFunction = await insertFunction({
120
+ segmentsOnFrame,
121
+ labelMapImages,
122
+ pixelDataChunks,
123
+ multiframe,
124
+ referencedImageIds,
125
+ validOrientations,
126
+ metadataProvider,
127
+ tolerance,
128
+ segmentsPixelIndices,
129
+ sopUIDImageIdIndexMap,
130
+ imageIdMaps,
131
+ TypedArrayConstructor
132
+ }),
133
+ hasOverlappingSegments = _await$insertFunction.hasOverlappingSegments,
134
+ arrayOfLabelMapImages = _await$insertFunction.arrayOfLabelMapImages;
148
135
  const centroidXYZ = new Map();
149
136
  segmentsPixelIndices.forEach((imageIdIndexBufferIndex, segmentIndex) => {
150
137
  const centroids = calculateCentroid(imageIdIndexBufferIndex, multiframe, metadataProvider, referencedImageIds);
@@ -164,25 +151,21 @@ const throttledTriggerLoadProgressEvent = utilities$1.throttle(percentComplete =
164
151
  });
165
152
  }, 200);
166
153
  function insertPixelDataPlanar(_ref4) {
167
- let {
168
- segmentsOnFrame,
169
- labelMapImages,
170
- pixelDataChunks,
171
- multiframe,
172
- referencedImageIds,
173
- validOrientations,
174
- metadataProvider,
175
- tolerance,
176
- segmentsPixelIndices,
177
- sopUIDImageIdIndexMap,
178
- imageIdMaps
179
- } = _ref4;
180
- const {
181
- SharedFunctionalGroupsSequence,
182
- PerFrameFunctionalGroupsSequence,
183
- Rows,
184
- Columns
185
- } = multiframe;
154
+ let segmentsOnFrame = _ref4.segmentsOnFrame,
155
+ labelMapImages = _ref4.labelMapImages,
156
+ pixelDataChunks = _ref4.pixelDataChunks,
157
+ multiframe = _ref4.multiframe,
158
+ referencedImageIds = _ref4.referencedImageIds,
159
+ validOrientations = _ref4.validOrientations,
160
+ metadataProvider = _ref4.metadataProvider,
161
+ tolerance = _ref4.tolerance,
162
+ segmentsPixelIndices = _ref4.segmentsPixelIndices,
163
+ sopUIDImageIdIndexMap = _ref4.sopUIDImageIdIndexMap,
164
+ imageIdMaps = _ref4.imageIdMaps;
165
+ const SharedFunctionalGroupsSequence = multiframe.SharedFunctionalGroupsSequence,
166
+ PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence,
167
+ Rows = multiframe.Rows,
168
+ Columns = multiframe.Columns;
186
169
  const sharedImageOrientationPatient = SharedFunctionalGroupsSequence.PlaneOrientationSequence ? SharedFunctionalGroupsSequence.PlaneOrientationSequence.ImageOrientationPatient : undefined;
187
170
  const sliceLength = Columns * Rows;
188
171
  const groupsLen = PerFrameFunctionalGroupsSequence.length;
@@ -342,17 +325,15 @@ function insertPixelDataPlanar(_ref4) {
342
325
  });
343
326
  }
344
327
  const getAlignedPixelData = _ref5 => {
345
- let {
346
- sharedImageOrientationPatient,
347
- PerFrameFunctionalGroups,
348
- pixelDataChunks,
349
- sequenceIndex,
350
- sliceLength,
351
- Rows,
352
- Columns,
353
- validOrientations,
354
- tolerance
355
- } = _ref5;
328
+ let sharedImageOrientationPatient = _ref5.sharedImageOrientationPatient,
329
+ PerFrameFunctionalGroups = _ref5.PerFrameFunctionalGroups,
330
+ pixelDataChunks = _ref5.pixelDataChunks,
331
+ sequenceIndex = _ref5.sequenceIndex,
332
+ sliceLength = _ref5.sliceLength,
333
+ Rows = _ref5.Rows,
334
+ Columns = _ref5.Columns,
335
+ validOrientations = _ref5.validOrientations,
336
+ tolerance = _ref5.tolerance;
356
337
  const ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient;
357
338
  const view = readFromUnpackedChunks(pixelDataChunks, sequenceIndex * sliceLength, sliceLength);
358
339
  const pixelDataI2D = ndarray(view, [Rows, Columns]);
@@ -363,22 +344,18 @@ const getAlignedPixelData = _ref5 => {
363
344
  return alignedPixelDataI;
364
345
  };
365
346
  const checkImageDimensions = _ref6 => {
366
- let {
367
- metadataProvider,
368
- imageId,
369
- Rows,
370
- Columns
371
- } = _ref6;
347
+ let metadataProvider = _ref6.metadataProvider,
348
+ imageId = _ref6.imageId,
349
+ Rows = _ref6.Rows,
350
+ Columns = _ref6.Columns;
372
351
  const sourceImageMetadata = metadataProvider.get('instance', imageId);
373
352
  if (Rows !== sourceImageMetadata.Rows || Columns !== sourceImageMetadata.Columns) {
374
353
  throw new Error('Individual SEG frames have different geometry dimensions (Rows and Columns) ' + 'respect to the source image reference frame. This is not yet supported. ' + 'Aborting segmentation loading. ');
375
354
  }
376
355
  };
377
356
  const getArrayOfLabelMapImagesWithSegmentData = _ref7 => {
378
- let {
379
- arrayOfSegmentData,
380
- referencedImageIds
381
- } = _ref7;
357
+ let arrayOfSegmentData = _ref7.arrayOfSegmentData,
358
+ referencedImageIds = _ref7.referencedImageIds;
382
359
  let largestArray = [];
383
360
  for (let i = 0; i < arrayOfSegmentData.length; i++) {
384
361
  const segmentData = arrayOfSegmentData[i];
@@ -402,25 +379,21 @@ const getArrayOfLabelMapImagesWithSegmentData = _ref7 => {
402
379
  });
403
380
  };
404
381
  function insertOverlappingPixelDataPlanar(_ref8) {
405
- let {
406
- segmentsOnFrame,
407
- labelMapImages,
408
- pixelDataChunks,
409
- multiframe,
410
- referencedImageIds,
411
- validOrientations,
412
- metadataProvider,
413
- tolerance,
414
- segmentsPixelIndices,
415
- sopUIDImageIdIndexMap,
416
- imageIdMaps
417
- } = _ref8;
418
- const {
419
- SharedFunctionalGroupsSequence,
420
- PerFrameFunctionalGroupsSequence,
421
- Rows,
422
- Columns
423
- } = multiframe;
382
+ let segmentsOnFrame = _ref8.segmentsOnFrame,
383
+ labelMapImages = _ref8.labelMapImages,
384
+ pixelDataChunks = _ref8.pixelDataChunks,
385
+ multiframe = _ref8.multiframe,
386
+ referencedImageIds = _ref8.referencedImageIds,
387
+ validOrientations = _ref8.validOrientations,
388
+ metadataProvider = _ref8.metadataProvider,
389
+ tolerance = _ref8.tolerance,
390
+ segmentsPixelIndices = _ref8.segmentsPixelIndices,
391
+ sopUIDImageIdIndexMap = _ref8.sopUIDImageIdIndexMap,
392
+ imageIdMaps = _ref8.imageIdMaps;
393
+ const SharedFunctionalGroupsSequence = multiframe.SharedFunctionalGroupsSequence,
394
+ PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence,
395
+ Rows = multiframe.Rows,
396
+ Columns = multiframe.Columns;
424
397
  const sharedImageOrientationPatient = SharedFunctionalGroupsSequence.PlaneOrientationSequence ? SharedFunctionalGroupsSequence.PlaneOrientationSequence.ImageOrientationPatient : undefined;
425
398
  const sliceLength = Columns * Rows;
426
399
  const arrayOfSegmentData = getArrayOfSegmentData({
@@ -450,23 +423,21 @@ function insertOverlappingPixelDataPlanar(_ref8) {
450
423
  };
451
424
  }
452
425
  const getArrayOfSegmentData = _ref9 => {
453
- let {
454
- sliceLength,
455
- Rows,
456
- Columns,
457
- validOrientations,
458
- metadataProvider,
459
- imageIdMaps,
460
- segmentsOnFrame,
461
- tolerance,
462
- pixelDataChunks,
463
- PerFrameFunctionalGroupsSequence,
464
- labelMapImages,
465
- sopUIDImageIdIndexMap,
466
- multiframe,
467
- sharedImageOrientationPatient,
468
- segmentsPixelIndices
469
- } = _ref9;
426
+ let sliceLength = _ref9.sliceLength,
427
+ Rows = _ref9.Rows,
428
+ Columns = _ref9.Columns,
429
+ validOrientations = _ref9.validOrientations,
430
+ metadataProvider = _ref9.metadataProvider,
431
+ imageIdMaps = _ref9.imageIdMaps,
432
+ segmentsOnFrame = _ref9.segmentsOnFrame,
433
+ tolerance = _ref9.tolerance,
434
+ pixelDataChunks = _ref9.pixelDataChunks,
435
+ PerFrameFunctionalGroupsSequence = _ref9.PerFrameFunctionalGroupsSequence,
436
+ labelMapImages = _ref9.labelMapImages,
437
+ sopUIDImageIdIndexMap = _ref9.sopUIDImageIdIndexMap,
438
+ multiframe = _ref9.multiframe,
439
+ sharedImageOrientationPatient = _ref9.sharedImageOrientationPatient,
440
+ segmentsPixelIndices = _ref9.segmentsPixelIndices;
470
441
  const arrayOfSegmentData = [];
471
442
  const numberOfSegments = multiframe.SegmentSequence.length;
472
443
  for (let currentSegmentIndex = 1; currentSegmentIndex <= numberOfSegments; ++currentSegmentIndex) {
@@ -496,38 +467,35 @@ const getArrayOfSegmentData = _ref9 => {
496
467
  return arrayOfSegmentData;
497
468
  };
498
469
  const getSegmentData = _ref10 => {
499
- let {
500
- PerFrameFunctionalGroupsSequence,
501
- labelMapImages,
502
- sopUIDImageIdIndexMap,
503
- multiframe,
504
- segmentIndex,
505
- sliceLength,
506
- Rows,
507
- Columns,
508
- validOrientations,
509
- tolerance,
510
- pixelDataChunks,
511
- sharedImageOrientationPatient,
512
- metadataProvider,
513
- imageIdMaps,
514
- segmentsOnFrame,
515
- segmentsPixelIndices
516
- } = _ref10;
470
+ let PerFrameFunctionalGroupsSequence = _ref10.PerFrameFunctionalGroupsSequence,
471
+ labelMapImages = _ref10.labelMapImages,
472
+ sopUIDImageIdIndexMap = _ref10.sopUIDImageIdIndexMap,
473
+ multiframe = _ref10.multiframe,
474
+ segmentIndex = _ref10.segmentIndex,
475
+ sliceLength = _ref10.sliceLength,
476
+ Rows = _ref10.Rows,
477
+ Columns = _ref10.Columns,
478
+ validOrientations = _ref10.validOrientations,
479
+ tolerance = _ref10.tolerance,
480
+ pixelDataChunks = _ref10.pixelDataChunks,
481
+ sharedImageOrientationPatient = _ref10.sharedImageOrientationPatient,
482
+ metadataProvider = _ref10.metadataProvider,
483
+ imageIdMaps = _ref10.imageIdMaps,
484
+ segmentsOnFrame = _ref10.segmentsOnFrame,
485
+ segmentsPixelIndices = _ref10.segmentsPixelIndices;
517
486
  const segmentData = [];
518
487
  for (let currentLabelMapImageIndex = 0; currentLabelMapImageIndex < labelMapImages.length; currentLabelMapImageIndex++) {
519
488
  const currentLabelMapImage = labelMapImages[currentLabelMapImageIndex];
520
489
  const referencedImageId = currentLabelMapImage.referencedImageId;
521
490
  const PerFrameFunctionalGroupsIndex = PerFrameFunctionalGroupsSequence.findIndex((PerFrameFunctionalGroups, currentSequenceIndex) => {
522
- const {
523
- segmentIndex: groupsSegmentIndex,
524
- referencedImageId: groupsReferenceImageId
525
- } = extractInfoFromPerFrameFunctionalGroups({
526
- PerFrameFunctionalGroups,
527
- sequenceIndex: currentSequenceIndex,
528
- sopUIDImageIdIndexMap,
529
- multiframe
530
- });
491
+ const _extractInfoFromPerFr = extractInfoFromPerFrameFunctionalGroups({
492
+ PerFrameFunctionalGroups,
493
+ sequenceIndex: currentSequenceIndex,
494
+ sopUIDImageIdIndexMap,
495
+ multiframe
496
+ }),
497
+ groupsSegmentIndex = _extractInfoFromPerFr.segmentIndex,
498
+ groupsReferenceImageId = _extractInfoFromPerFr.referencedImageId;
531
499
  const isCorrectPerFrameFunctionalGroup = groupsSegmentIndex === segmentIndex && groupsReferenceImageId === currentLabelMapImage.referencedImageId;
532
500
  return isCorrectPerFrameFunctionalGroup;
533
501
  });
@@ -7,19 +7,14 @@ import BaseAdapter3D from './BaseAdapter3D.js';
7
7
  var _UltrasoundDirectional;
8
8
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
9
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
- const {
11
- Length: TID300Length
12
- } = utilities.TID300;
13
- const {
14
- worldToImageCoords
15
- } = utilities$1;
10
+ const TID300Length = utilities.TID300.Length;
11
+ const worldToImageCoords = utilities$1.worldToImageCoords;
16
12
  class UltrasoundDirectional extends BaseAdapter3D {
17
13
  static getMeasurementData(measurementGroup, sopInstanceUIDToImageIdMap, metadata) {
18
- const {
19
- state,
20
- worldCoords,
21
- ReferencedFrameNumber
22
- } = MeasurementReport.getSetupMeasurementData(measurementGroup, sopInstanceUIDToImageIdMap, metadata, this.toolType);
14
+ const _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(measurementGroup, sopInstanceUIDToImageIdMap, metadata, this.toolType),
15
+ state = _MeasurementReport$ge.state,
16
+ worldCoords = _MeasurementReport$ge.worldCoords,
17
+ ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber;
23
18
  state.annotation.data = _objectSpread(_objectSpread({}, state.annotation.data), {}, {
24
19
  handles: _objectSpread(_objectSpread({}, state.annotation.data.handles), {}, {
25
20
  points: worldCoords
@@ -29,18 +24,12 @@ class UltrasoundDirectional extends BaseAdapter3D {
29
24
  return state;
30
25
  }
31
26
  static getTID300RepresentationArguments(tool, is3DMeasurement) {
32
- const {
33
- data,
34
- finding,
35
- findingSites,
36
- metadata
37
- } = tool;
38
- const {
39
- handles
40
- } = data;
41
- const {
42
- referencedImageId
43
- } = metadata;
27
+ const data = tool.data,
28
+ finding = tool.finding,
29
+ findingSites = tool.findingSites,
30
+ metadata = tool.metadata;
31
+ const handles = data.handles;
32
+ const referencedImageId = metadata.referencedImageId;
44
33
  if (!referencedImageId) {
45
34
  throw new Error('UltrasoundDirectionalTool.getTID300RepresentationArguments: referencedImageId is not defined');
46
35
  }
@@ -1,3 +1,5 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+
1
3
  function extractAllNUMGroups(MeasurementGroup, referencedSOPInstanceUID) {
2
4
  const numGroupsBySOPInstanceUID = {};
3
5
  if (MeasurementGroup.ContentSequence) {
@@ -40,15 +42,16 @@ function restoreAdditionalMetrics(numGroups) {
40
42
  radius: 'radiusUnit',
41
43
  width: 'widthUnit'
42
44
  };
43
- for (const [codeMeaning, metricKey] of Object.entries(metricMapping)) {
45
+ for (const _ref of Object.entries(metricMapping)) {
46
+ var _ref2 = _slicedToArray(_ref, 2);
47
+ const codeMeaning = _ref2[0];
48
+ const metricKey = _ref2[1];
44
49
  const group = numGroups[codeMeaning];
45
50
  if (!group) {
46
51
  continue;
47
52
  }
48
- const {
49
- value,
50
- unit
51
- } = group;
53
+ const value = group.value,
54
+ unit = group.unit;
52
55
  if (value == null) {
53
56
  continue;
54
57
  }
@@ -1,9 +1,7 @@
1
1
  import { data } from 'dcmjs';
2
2
 
3
- const {
4
- Colors,
5
- BitArray
6
- } = data;
3
+ const Colors = data.Colors,
4
+ BitArray = data.BitArray;
7
5
 
8
6
  // TODO: Is there a better name for this? RGBAInt?
9
7
  // Should we move it to Colors.js
@@ -2,10 +2,8 @@ import checkIfPerpendicular from './checkIfPerpendicular.js';
2
2
  import { utilities } from '@cornerstonejs/core';
3
3
 
4
4
  function checkOrientation(multiframe, validOrientations, sourceDataDimensions, tolerance) {
5
- const {
6
- SharedFunctionalGroupsSequence,
7
- PerFrameFunctionalGroupsSequence
8
- } = multiframe;
5
+ const SharedFunctionalGroupsSequence = multiframe.SharedFunctionalGroupsSequence,
6
+ PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence;
9
7
  const sharedImageOrientationPatient = SharedFunctionalGroupsSequence.PlaneOrientationSequence ? SharedFunctionalGroupsSequence.PlaneOrientationSequence.ImageOrientationPatient : undefined;
10
8
  const PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[0];
11
9
  const iop = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient;
@@ -1,8 +1,6 @@
1
1
  import { data } from 'dcmjs';
2
2
 
3
- const {
4
- datasetToBlob
5
- } = data;
3
+ const datasetToBlob = data.datasetToBlob;
6
4
  function downloadDICOMData(bufferOrDataset, filename) {
7
5
  let blob;
8
6
  if (bufferOrDataset instanceof ArrayBuffer) {
@@ -1,12 +1,8 @@
1
1
  import { data, normalizers } from 'dcmjs';
2
2
 
3
- const {
4
- DicomMessage,
5
- DicomMetaDictionary
6
- } = data;
7
- const {
8
- Normalizer
9
- } = normalizers;
3
+ const DicomMessage = data.DicomMessage,
4
+ DicomMetaDictionary = data.DicomMetaDictionary;
5
+ const Normalizer = normalizers.Normalizer;
10
6
  function getDatasetsFromImages(images, isMultiframe, options) {
11
7
  const datasets = [];
12
8
  if (isMultiframe) {
@@ -1,26 +1,18 @@
1
1
  import { utilities } from '@cornerstonejs/core';
2
2
 
3
- const {
4
- imageToWorldCoords
5
- } = utilities;
3
+ const imageToWorldCoords = utilities.imageToWorldCoords;
6
4
  function scoordToWorld(_ref, scoord) {
7
- let {
8
- is3DMeasurement,
9
- referencedImageId
10
- } = _ref;
5
+ let is3DMeasurement = _ref.is3DMeasurement,
6
+ referencedImageId = _ref.referencedImageId;
11
7
  const worldCoords = [];
12
8
  if (is3DMeasurement) {
13
- const {
14
- GraphicData
15
- } = scoord;
9
+ const GraphicData = scoord.GraphicData;
16
10
  for (let i = 0; i < GraphicData.length; i += 3) {
17
11
  const point = [GraphicData[i], GraphicData[i + 1], GraphicData[i + 2]];
18
12
  worldCoords.push(point);
19
13
  }
20
14
  } else {
21
- const {
22
- GraphicData
23
- } = scoord;
15
+ const GraphicData = scoord.GraphicData;
24
16
  for (let i = 0; i < GraphicData.length; i += 2) {
25
17
  const point = imageToWorldCoords(referencedImageId, [GraphicData[i], GraphicData[i + 1]]);
26
18
  worldCoords.push(point);
@@ -3,9 +3,7 @@ function toPoint3(flatPoints) {
3
3
  if (!(flatPoints !== null && flatPoints !== void 0 && flatPoints.length)) {
4
4
  return points;
5
5
  }
6
- const {
7
- length: n
8
- } = flatPoints;
6
+ const n = flatPoints.length;
9
7
  if (n % 3 !== 0) {
10
8
  throw new Error("Points array should be divisible by 3 for SCOORD3D, but contents are: ".concat(JSON.stringify(flatPoints), " of length ").concat(n));
11
9
  }
@@ -1,14 +1,10 @@
1
1
  import { utilities } from '@cornerstonejs/core';
2
2
 
3
- const {
4
- worldToImageCoords: globalWorldToImageCoords
5
- } = utilities;
3
+ const globalWorldToImageCoords = utilities.worldToImageCoords;
6
4
  let useWorldToImageCoords = globalWorldToImageCoords;
7
5
  function toScoord(_ref, point) {
8
- let {
9
- is3DMeasurement,
10
- referencedImageId
11
- } = _ref;
6
+ let is3DMeasurement = _ref.is3DMeasurement,
7
+ referencedImageId = _ref.referencedImageId;
12
8
  if (is3DMeasurement) {
13
9
  return {
14
10
  x: point[0],
@@ -3,8 +3,9 @@ import { Cornerstone3DSR, Cornerstone3DSEG, Cornerstone3DPMAP, Cornerstone3DRT }
3
3
  export { NO_IMAGE_ID } from './Cornerstone3D/constants/index.js';
4
4
  import { VTKjsSEG } from './VTKjs/index.js';
5
5
  import './enums/Events.js';
6
- import 'dcmjs';
7
- import '@cornerstonejs/core';
6
+ import './helpers/downloadDICOMData.js';
7
+ import './helpers/toScoordType.js';
8
+ import './helpers/scoordToWorld.js';
8
9
 
9
10
  const adaptersSR = {
10
11
  Cornerstone: CornerstoneSR,
@@ -1,13 +1,15 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
1
2
  import { Enums, metaData } from '@cornerstonejs/core';
2
3
 
3
- const {
4
- MetadataModules
5
- } = Enums;
4
+ const MetadataModules = Enums.MetadataModules;
6
5
  function assignDefined(dest, source, options) {
7
6
  if (!source) {
8
7
  return;
9
8
  }
10
- for (const [key, value] of Object.entries(source)) {
9
+ for (const _ref of Object.entries(source)) {
10
+ var _ref2 = _slicedToArray(_ref, 2);
11
+ const key = _ref2[0];
12
+ const value = _ref2[1];
11
13
  if (value === undefined) {
12
14
  continue;
13
15
  }
@@ -18,10 +20,9 @@ function assignDefined(dest, source, options) {
18
20
  }
19
21
  }
20
22
  function createInstance(instanceKey, studyExemplarImageId, base, options) {
21
- const {
22
- metadataProvider = metaData,
23
- predecessorImageId
24
- } = options;
23
+ const _options$metadataProv = options.metadataProvider,
24
+ metadataProvider = _options$metadataProv === void 0 ? metaData : _options$metadataProv,
25
+ predecessorImageId = options.predecessorImageId;
25
26
  const result = {};
26
27
  const instanceBase = metadataProvider.get(instanceKey, studyExemplarImageId);
27
28
  Object.assign(result, instanceBase);
@@ -1,16 +1,12 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import { metaData, Enums } from '@cornerstonejs/core';
2
+ import { Enums, metaData } from '@cornerstonejs/core';
3
3
  import dcmjs from 'dcmjs';
4
4
  import { metaRTSSContour, metaSRAnnotation } from '../adapters/Cornerstone3D/constants/index.js';
5
5
 
6
6
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
7
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
- const {
9
- DicomMetaDictionary
10
- } = dcmjs.data;
11
- const {
12
- MetadataModules
13
- } = Enums;
8
+ const DicomMetaDictionary = dcmjs.data.DicomMetaDictionary;
9
+ const MetadataModules = Enums.MetadataModules;
14
10
  const STUDY_MODULES = [MetadataModules.GENERAL_STUDY, MetadataModules.PATIENT_STUDY, MetadataModules.PATIENT];
15
11
  const SERIES_MODULES = [MetadataModules.GENERAL_SERIES];
16
12
  const IMAGE_MODULES = [MetadataModules.GENERAL_IMAGE, MetadataModules.IMAGE_PLANE, MetadataModules.CINE, MetadataModules.VOI_LUT, MetadataModules.MODALITY_LUT, MetadataModules.SOP_COMMON];
@@ -21,12 +17,10 @@ const metadataProvider = {
21
17
  },
22
18
  [MetadataModules.IMAGE_SOP_INSTANCE_REFERENCE]: function (imageId) {
23
19
  const frameModule = metaData.get(MetadataModules.FRAME_MODULE, imageId);
24
- const {
25
- sopClassUID,
26
- sopInstanceUID,
27
- frameNumber,
28
- numberOfFrames
29
- } = frameModule;
20
+ const sopClassUID = frameModule.sopClassUID,
21
+ sopInstanceUID = frameModule.sopInstanceUID,
22
+ frameNumber = frameModule.frameNumber,
23
+ numberOfFrames = frameModule.numberOfFrames;
30
24
  if (numberOfFrames > 1) {
31
25
  return {
32
26
  ReferencedSOPClassUID: sopClassUID,