@cornerstonejs/adapters 5.0.0-beta.1 → 5.0.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.
Files changed (89) hide show
  1. package/dist/esm/adapters/Cornerstone/Angle.js +23 -16
  2. package/dist/esm/adapters/Cornerstone/ArrowAnnotate.js +14 -19
  3. package/dist/esm/adapters/Cornerstone/Bidirectional.js +22 -27
  4. package/dist/esm/adapters/Cornerstone/CircleRoi.js +21 -27
  5. package/dist/esm/adapters/Cornerstone/CobbAngle.js +23 -16
  6. package/dist/esm/adapters/Cornerstone/EllipticalRoi.js +20 -26
  7. package/dist/esm/adapters/Cornerstone/FreehandRoi.js +22 -26
  8. package/dist/esm/adapters/Cornerstone/Length.js +19 -16
  9. package/dist/esm/adapters/Cornerstone/MeasurementReport.js +20 -40
  10. package/dist/esm/adapters/Cornerstone/ParametricMap.js +27 -38
  11. package/dist/esm/adapters/Cornerstone/RectangleRoi.js +27 -26
  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/Cornerstone/index.d.ts +11 -11
  15. package/dist/esm/adapters/Cornerstone3D/Angle.d.ts +1 -1
  16. package/dist/esm/adapters/Cornerstone3D/Angle.js +19 -26
  17. package/dist/esm/adapters/Cornerstone3D/ArrowAnnotate.d.ts +1 -1
  18. package/dist/esm/adapters/Cornerstone3D/ArrowAnnotate.js +24 -38
  19. package/dist/esm/adapters/Cornerstone3D/BaseAdapter3D.d.ts +1 -1
  20. package/dist/esm/adapters/Cornerstone3D/BaseAdapter3D.js +20 -31
  21. package/dist/esm/adapters/Cornerstone3D/Bidirectional.d.ts +1 -1
  22. package/dist/esm/adapters/Cornerstone3D/Bidirectional.js +27 -39
  23. package/dist/esm/adapters/Cornerstone3D/CircleROI.d.ts +1 -1
  24. package/dist/esm/adapters/Cornerstone3D/CircleROI.js +29 -37
  25. package/dist/esm/adapters/Cornerstone3D/CobbAngle.d.ts +1 -1
  26. package/dist/esm/adapters/Cornerstone3D/CobbAngle.js +27 -30
  27. package/dist/esm/adapters/Cornerstone3D/ControlPointPolyline.d.ts +5 -0
  28. package/dist/esm/adapters/Cornerstone3D/ControlPointPolyline.js +85 -0
  29. package/dist/esm/adapters/Cornerstone3D/EllipticalROI.d.ts +1 -1
  30. package/dist/esm/adapters/Cornerstone3D/EllipticalROI.js +27 -35
  31. package/dist/esm/adapters/Cornerstone3D/KeyImage.d.ts +1 -1
  32. package/dist/esm/adapters/Cornerstone3D/KeyImage.js +5 -11
  33. package/dist/esm/adapters/Cornerstone3D/LabelData.d.ts +3 -1
  34. package/dist/esm/adapters/Cornerstone3D/LabelData.js +41 -33
  35. package/dist/esm/adapters/Cornerstone3D/Length.d.ts +1 -1
  36. package/dist/esm/adapters/Cornerstone3D/Length.js +21 -29
  37. package/dist/esm/adapters/Cornerstone3D/MeasurementReport.d.ts +2 -1
  38. package/dist/esm/adapters/Cornerstone3D/MeasurementReport.js +108 -120
  39. package/dist/esm/adapters/Cornerstone3D/ParametricMap/generateToolState.js +2 -6
  40. package/dist/esm/adapters/Cornerstone3D/PlanarFreehandROI.d.ts +11 -1
  41. package/dist/esm/adapters/Cornerstone3D/PlanarFreehandROI.js +58 -44
  42. package/dist/esm/adapters/Cornerstone3D/Probe.d.ts +1 -1
  43. package/dist/esm/adapters/Cornerstone3D/Probe.js +21 -32
  44. package/dist/esm/adapters/Cornerstone3D/RTStruct/RTSS.js +14 -30
  45. package/dist/esm/adapters/Cornerstone3D/RTStruct/index.d.ts +2 -2
  46. package/dist/esm/adapters/Cornerstone3D/RTStruct/index.js +1 -3
  47. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedFrameOfReferenceSequence.js +1 -3
  48. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedSeriesSequence.js +7 -13
  49. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getStructureSetModule.js +1 -3
  50. package/dist/esm/adapters/Cornerstone3D/RectangleROI.js +30 -32
  51. package/dist/esm/adapters/Cornerstone3D/Segmentation/compactMergeSegData.d.ts +1 -1
  52. package/dist/esm/adapters/Cornerstone3D/Segmentation/compactMergeSegData.js +5 -9
  53. package/dist/esm/adapters/Cornerstone3D/Segmentation/generateLabelMaps2DFrom3D.js +2 -4
  54. package/dist/esm/adapters/Cornerstone3D/Segmentation/generateSegmentation.js +6 -16
  55. package/dist/esm/adapters/Cornerstone3D/Segmentation/generateToolState.js +3 -4
  56. package/dist/esm/adapters/Cornerstone3D/Segmentation/index.d.ts +4 -4
  57. package/dist/esm/adapters/Cornerstone3D/Segmentation/labelmapImagesFromBuffer.d.ts +2 -2
  58. package/dist/esm/adapters/Cornerstone3D/Segmentation/labelmapImagesFromBuffer.js +147 -179
  59. package/dist/esm/adapters/Cornerstone3D/UltrasoundDirectional.d.ts +1 -1
  60. package/dist/esm/adapters/Cornerstone3D/UltrasoundDirectional.js +15 -26
  61. package/dist/esm/adapters/Cornerstone3D/constants/index.d.ts +10 -0
  62. package/dist/esm/adapters/Cornerstone3D/constants/index.js +12 -2
  63. package/dist/esm/adapters/Cornerstone3D/metricHandler.js +57 -24
  64. package/dist/esm/adapters/Cornerstone3D/unitMapper.d.ts +5 -0
  65. package/dist/esm/adapters/Cornerstone3D/unitMapper.js +16 -0
  66. package/dist/esm/adapters/VTKjs/Segmentation.js +2 -4
  67. package/dist/esm/adapters/VTKjs/index.d.ts +1 -1
  68. package/dist/esm/adapters/enums/index.d.ts +1 -1
  69. package/dist/esm/adapters/helpers/checkOrientation.js +5 -7
  70. package/dist/esm/adapters/helpers/downloadDICOMData.js +1 -3
  71. package/dist/esm/adapters/helpers/getDatasetsFromImages.js +3 -7
  72. package/dist/esm/adapters/helpers/index.d.ts +9 -9
  73. package/dist/esm/adapters/helpers/scoordToWorld.d.ts +1 -1
  74. package/dist/esm/adapters/helpers/scoordToWorld.js +5 -13
  75. package/dist/esm/adapters/helpers/toPoint3.d.ts +1 -1
  76. package/dist/esm/adapters/helpers/toPoint3.js +1 -3
  77. package/dist/esm/adapters/helpers/toScoordType.d.ts +1 -1
  78. package/dist/esm/adapters/helpers/toScoordType.js +3 -7
  79. package/dist/esm/adapters/index.d.ts +4 -4
  80. package/dist/esm/adapters/index.js +3 -2
  81. package/dist/esm/utilities/createInstance.js +9 -8
  82. package/dist/esm/utilities/referencedMetadataProvider.d.ts +3 -4
  83. package/dist/esm/utilities/referencedMetadataProvider.js +8 -14
  84. package/dist/esm/version.d.ts +1 -1
  85. package/package.json +13 -9
  86. package/dist/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js +0 -12
  87. package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +0 -14
  88. package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +0 -9
  89. package/dist/esm/node_modules/@babel/runtime/helpers/esm/typeof.js +0 -11
@@ -1,25 +1,17 @@
1
1
  import { utilities, derivations, normalizers, data } from 'dcmjs';
2
2
  import { toArray } from '../helpers/toArray.js';
3
3
  import { codeMeaningEquals } from '../helpers/codeMeaningEquals.js';
4
- import '@cornerstonejs/core';
5
-
6
- const {
7
- TID1500,
8
- addAccessors
9
- } = utilities;
10
- const {
11
- StructuredReport
12
- } = derivations;
13
- const {
14
- Normalizer
15
- } = normalizers;
16
- const {
17
- TID1500MeasurementReport,
18
- TID1501MeasurementGroup
19
- } = TID1500;
20
- const {
21
- DicomMetaDictionary
22
- } = data;
4
+ import '../helpers/downloadDICOMData.js';
5
+ import '../helpers/toScoordType.js';
6
+ import '../helpers/scoordToWorld.js';
7
+
8
+ const TID1500 = utilities.TID1500,
9
+ addAccessors = utilities.addAccessors;
10
+ const StructuredReport = derivations.StructuredReport;
11
+ const Normalizer = normalizers.Normalizer;
12
+ const TID1500MeasurementReport = TID1500.TID1500MeasurementReport,
13
+ TID1501MeasurementGroup = TID1500.TID1501MeasurementGroup;
14
+ const DicomMetaDictionary = data.DicomMetaDictionary;
23
15
  const FINDING = {
24
16
  CodingSchemeDesignator: 'DCM',
25
17
  CodeValue: '121071'
@@ -33,16 +25,12 @@ const FINDING_SITE_OLD = {
33
25
  CodeValue: 'G-C0E3'
34
26
  };
35
27
  const codeValueMatch = (group, code, oldCode) => {
36
- const {
37
- ConceptNameCodeSequence
38
- } = group;
28
+ const ConceptNameCodeSequence = group.ConceptNameCodeSequence;
39
29
  if (!ConceptNameCodeSequence) {
40
30
  return;
41
31
  }
42
- const {
43
- CodingSchemeDesignator,
44
- CodeValue
45
- } = ConceptNameCodeSequence;
32
+ const CodingSchemeDesignator = ConceptNameCodeSequence.CodingSchemeDesignator,
33
+ CodeValue = ConceptNameCodeSequence.CodeValue;
46
34
  return CodingSchemeDesignator == code.CodingSchemeDesignator && CodeValue == code.CodeValue || oldCode && CodingSchemeDesignator == oldCode.CodingSchemeDesignator && CodeValue == oldCode.CodeValue;
47
35
  };
48
36
  function getTID300ContentItem(tool, ReferencedSOPSequence, adapterClass) {
@@ -68,21 +56,15 @@ function getMeasurementGroup(toolType, toolData, ReferencedSOPSequence) {
68
56
  }
69
57
  class MeasurementReport {
70
58
  static getSetupMeasurementData(MeasurementGroup) {
71
- const {
72
- ContentSequence
73
- } = MeasurementGroup;
59
+ const ContentSequence = MeasurementGroup.ContentSequence;
74
60
  const contentSequenceArr = toArray(ContentSequence);
75
61
  const findingGroup = contentSequenceArr.find(group => codeValueMatch(group, FINDING));
76
62
  const findingSiteGroups = contentSequenceArr.filter(group => codeValueMatch(group, FINDING_SITE, FINDING_SITE_OLD)) || [];
77
63
  const NUMGroup = contentSequenceArr.find(group => group.ValueType === 'NUM');
78
64
  const SCOORDGroup = toArray(NUMGroup.ContentSequence).find(group => group.ValueType === 'SCOORD');
79
- const {
80
- ReferencedSOPSequence
81
- } = SCOORDGroup.ContentSequence;
82
- const {
83
- ReferencedSOPInstanceUID,
84
- ReferencedFrameNumber
85
- } = ReferencedSOPSequence;
65
+ const ReferencedSOPSequence = SCOORDGroup.ContentSequence.ReferencedSOPSequence;
66
+ const ReferencedSOPInstanceUID = ReferencedSOPSequence.ReferencedSOPInstanceUID,
67
+ ReferencedFrameNumber = ReferencedSOPSequence.ReferencedFrameNumber;
86
68
  const defaultState = {
87
69
  sopInstanceUid: ReferencedSOPInstanceUID,
88
70
  frameIndex: ReferencedFrameNumber || 1,
@@ -133,10 +115,8 @@ class MeasurementReport {
133
115
  // NOTE: We are getting the Series and Study UIDs from the first imageId of the toolState
134
116
  // which means that if the toolState is for multiple series, the report will have the incorrect
135
117
  // SeriesInstanceUIDs
136
- const {
137
- studyInstanceUID,
138
- seriesInstanceUID
139
- } = generalSeriesModule;
118
+ const studyInstanceUID = generalSeriesModule.studyInstanceUID,
119
+ seriesInstanceUID = generalSeriesModule.seriesInstanceUID;
140
120
 
141
121
  // Loop through each image in the toolData
142
122
  Object.keys(toolState).forEach(imageId => {
@@ -1,45 +1,40 @@
1
- import { log, data, normalizers } from 'dcmjs';
1
+ import { data, normalizers, log } from 'dcmjs';
2
2
  import checkOrientation from '../helpers/checkOrientation.js';
3
3
  import { utilities } from '@cornerstonejs/core';
4
4
 
5
- const {
6
- DicomMessage,
7
- DicomMetaDictionary
8
- } = data;
9
- const {
10
- Normalizer
11
- } = normalizers;
5
+ const DicomMessage = data.DicomMessage,
6
+ DicomMetaDictionary = data.DicomMetaDictionary;
7
+ const Normalizer = normalizers.Normalizer;
12
8
  async function generateToolState(imageIds, arrayBuffer, metadataProvider) {
13
9
  let tolerance = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1e-3;
14
10
  const dicomData = DicomMessage.readFile(arrayBuffer);
15
11
  const dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict);
16
12
  dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta);
17
13
  const multiframe = Normalizer.normalizeToDataset([dataset]);
18
- const imagePlaneModule = metadataProvider.get("imagePlaneModule", imageIds[0]);
14
+ const imagePlaneModule = metadataProvider.get('imagePlaneModule', imageIds[0]);
19
15
  if (!imagePlaneModule) {
20
- console.warn("Insufficient metadata, imagePlaneModule missing.");
16
+ console.warn('Insufficient metadata, imagePlaneModule missing.');
21
17
  }
22
18
  const ImageOrientationPatient = Array.isArray(imagePlaneModule.rowCosines) ? [...imagePlaneModule.rowCosines, ...imagePlaneModule.columnCosines] : [imagePlaneModule.rowCosines.x, imagePlaneModule.rowCosines.y, imagePlaneModule.rowCosines.z, imagePlaneModule.columnCosines.x, imagePlaneModule.columnCosines.y, imagePlaneModule.columnCosines.z];
23
19
  const validOrientations = [ImageOrientationPatient];
24
20
  const pixelData = getPixelData(multiframe);
25
21
  const orientation = checkOrientation(multiframe, validOrientations, [imagePlaneModule.rows, imagePlaneModule.columns, imageIds.length], tolerance);
26
22
  const sopUIDImageIdIndexMap = imageIds.reduce((acc, imageId) => {
27
- const {
28
- sopInstanceUID
29
- } = metadataProvider.get("generalImageModule", imageId);
23
+ const _metadataProvider$get = metadataProvider.get('generalImageModule', imageId),
24
+ sopInstanceUID = _metadataProvider$get.sopInstanceUID;
30
25
  acc[sopInstanceUID] = imageId;
31
26
  return acc;
32
27
  }, {});
33
- if (orientation !== "Planar") {
28
+ if (orientation !== 'Planar') {
34
29
  const orientationText = {
35
- Perpendicular: "orthogonal",
36
- Oblique: "oblique"
30
+ Perpendicular: 'orthogonal',
31
+ Oblique: 'oblique'
37
32
  };
38
33
  throw new Error("Parametric maps ".concat(orientationText[orientation], " to the acquisition plane of the source data are not yet supported."));
39
34
  }
40
35
  const imageIdMaps = imageIds.reduce((acc, curr, index) => {
41
36
  acc.indices[curr] = index;
42
- acc.metadata[curr] = metadataProvider.get("instance", curr);
37
+ acc.metadata[curr] = metadataProvider.get('instance', curr);
43
38
  return acc;
44
39
  }, {
45
40
  indices: {},
@@ -52,23 +47,21 @@ async function generateToolState(imageIds, arrayBuffer, metadataProvider) {
52
47
  }
53
48
  function insertPixelDataPlanar(sourcePixelData, multiframe, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap, imageIdMaps) {
54
49
  const targetPixelData = new sourcePixelData.constructor(sourcePixelData.length);
55
- const {
56
- PerFrameFunctionalGroupsSequence,
57
- Rows,
58
- Columns
59
- } = multiframe;
50
+ const PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence,
51
+ Rows = multiframe.Rows,
52
+ Columns = multiframe.Columns;
60
53
  const sliceLength = Columns * Rows;
61
54
  const numSlices = PerFrameFunctionalGroupsSequence.length;
62
55
  for (let i = 0; i < numSlices; i++) {
63
56
  const sourceSliceDataView = new sourcePixelData.constructor(sourcePixelData.buffer, i * sliceLength, sliceLength);
64
57
  const imageId = findReferenceSourceImageId(multiframe, i, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap);
65
58
  if (!imageId) {
66
- console.warn("Image not present in stack, can't import frame : " + i + ".");
59
+ console.warn("Image not present in stack, can't import frame : " + i + '.');
67
60
  continue;
68
61
  }
69
62
  const sourceImageMetadata = imageIdMaps.metadata[imageId];
70
63
  if (Rows !== sourceImageMetadata.Rows || Columns !== sourceImageMetadata.Columns) {
71
- throw new Error("Parametric map have different geometry dimensions (Rows and Columns) " + "respect to the source image reference frame. This is not yet supported.");
64
+ throw new Error('Parametric map have different geometry dimensions (Rows and Columns) ' + 'respect to the source image reference frame. This is not yet supported.');
72
65
  }
73
66
  const imageIdIndex = imageIdMaps.indices[imageId];
74
67
  const byteOffset = sliceLength * imageIdIndex * targetPixelData.BYTES_PER_ELEMENT;
@@ -93,7 +86,7 @@ function getPixelData(multiframe) {
93
86
  data = multiframe.DoubleFloatPixelData;
94
87
  }
95
88
  if (data === undefined) {
96
- log.error("This parametric map pixel data is undefined.");
89
+ log.error('This parametric map pixel data is undefined.');
97
90
  }
98
91
  if (Array.isArray(data)) {
99
92
  data = data[0];
@@ -105,12 +98,10 @@ function findReferenceSourceImageId(multiframe, frameSegment, imageIds, metadata
105
98
  if (!multiframe) {
106
99
  return imageId;
107
100
  }
108
- const {
109
- FrameOfReferenceUID,
110
- PerFrameFunctionalGroupsSequence,
111
- SourceImageSequence,
112
- ReferencedSeriesSequence
113
- } = multiframe;
101
+ const FrameOfReferenceUID = multiframe.FrameOfReferenceUID,
102
+ PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence,
103
+ SourceImageSequence = multiframe.SourceImageSequence,
104
+ ReferencedSeriesSequence = multiframe.ReferencedSeriesSequence;
114
105
  if (!PerFrameFunctionalGroupsSequence || PerFrameFunctionalGroupsSequence.length === 0) {
115
106
  return imageId;
116
107
  }
@@ -139,7 +130,7 @@ function findReferenceSourceImageId(multiframe, frameSegment, imageIds, metadata
139
130
  }
140
131
  }
141
132
  } else if (SourceImageSequence && SourceImageSequence.length !== 0) {
142
- console.warn("DerivationImageSequence not present, using SourceImageSequence assuming SEG has the same geometry as the source image.");
133
+ console.warn('DerivationImageSequence not present, using SourceImageSequence assuming SEG has the same geometry as the source image.');
143
134
  frameSourceImageSequence = SourceImageSequence[frameSegment];
144
135
  }
145
136
  if (frameSourceImageSequence) {
@@ -153,10 +144,8 @@ function findReferenceSourceImageId(multiframe, frameSegment, imageIds, metadata
153
144
  return imageId;
154
145
  }
155
146
  function getImageIdOfSourceImageBySourceImageSequence(SourceImageSequence, sopUIDImageIdIndexMap) {
156
- const {
157
- ReferencedSOPInstanceUID,
158
- ReferencedFrameNumber
159
- } = SourceImageSequence;
147
+ const ReferencedSOPInstanceUID = SourceImageSequence.ReferencedSOPInstanceUID,
148
+ ReferencedFrameNumber = SourceImageSequence.ReferencedFrameNumber;
160
149
  return ReferencedFrameNumber ? getImageIdOfReferencedFrame(ReferencedSOPInstanceUID, ReferencedFrameNumber, sopUIDImageIdIndexMap) : sopUIDImageIdIndexMap[ReferencedSOPInstanceUID];
161
150
  }
162
151
  function getImageIdOfSourceImagebyGeometry(ReferencedSeriesInstanceUID, FrameOfReferenceUID, PerFrameFunctionalGroup, imageIds, metadataProvider, tolerance) {
@@ -164,7 +153,7 @@ function getImageIdOfSourceImagebyGeometry(ReferencedSeriesInstanceUID, FrameOfR
164
153
  return undefined;
165
154
  }
166
155
  for (let imageIdsIndex = 0; imageIdsIndex < imageIds.length; ++imageIdsIndex) {
167
- const sourceImageMetadata = metadataProvider.get("instance", imageIds[imageIdsIndex]);
156
+ const sourceImageMetadata = metadataProvider.get('instance', imageIds[imageIdsIndex]);
168
157
  if (sourceImageMetadata === undefined || sourceImageMetadata.ImagePositionPatient === undefined || sourceImageMetadata.FrameOfReferenceUID !== FrameOfReferenceUID || sourceImageMetadata.SeriesInstanceUID !== ReferencedSeriesInstanceUID) {
169
158
  continue;
170
159
  }
@@ -178,7 +167,7 @@ function getImageIdOfReferencedFrame(sopInstanceUid, frameNumber, sopUIDImageIdI
178
167
  if (!imageId) {
179
168
  return;
180
169
  }
181
- const imageIdFrameNumber = Number(imageId.split("frame=")[1]);
170
+ const imageIdFrameNumber = Number(imageId.split('frame=')[1]);
182
171
  return imageIdFrameNumber === frameNumber - 1 ? imageId : undefined;
183
172
  }
184
173
  const ParametricMapObj = {
@@ -1,20 +1,18 @@
1
- import _defineProperty from '../../node_modules/@babel/runtime/helpers/esm/defineProperty.js';
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
3
  import { utilities } from 'dcmjs';
3
4
  import MeasurementReport from './MeasurementReport.js';
4
5
  import CORNERSTONE_4_TAG from './cornerstone4Tag.js';
5
6
 
6
7
  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
8
  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
- Polyline: TID300Polyline
10
- } = utilities.TID300;
9
+ const TID300Polyline = utilities.TID300.Polyline;
11
10
  class RectangleRoi {
12
11
  static getMeasurementData(MeasurementGroup) {
13
- const {
14
- defaultState,
15
- SCOORDGroup,
16
- NUMGroup
17
- } = MeasurementReport.getSetupMeasurementData(MeasurementGroup);
12
+ const _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup),
13
+ defaultState = _MeasurementReport$ge.defaultState,
14
+ SCOORDGroup = _MeasurementReport$ge.SCOORDGroup,
15
+ NUMGroup = _MeasurementReport$ge.NUMGroup;
18
16
  const state = _objectSpread(_objectSpread({}, defaultState), {}, {
19
17
  toolType: RectangleRoi.toolType,
20
18
  handles: {
@@ -36,21 +34,23 @@ class RectangleRoi {
36
34
  color: undefined,
37
35
  invalidated: true
38
36
  });
39
- const intermediate = {};
40
- [state.handles.start.x, state.handles.start.y, intermediate.x, intermediate.y, state.handles.end.x, state.handles.end.y] = SCOORDGroup.GraphicData;
37
+ var _SCOORDGroup$GraphicD = _slicedToArray(SCOORDGroup.GraphicData, 6);
38
+ state.handles.start.x = _SCOORDGroup$GraphicD[0];
39
+ state.handles.start.y = _SCOORDGroup$GraphicD[1];
40
+ _SCOORDGroup$GraphicD[2];
41
+ _SCOORDGroup$GraphicD[3];
42
+ state.handles.end.x = _SCOORDGroup$GraphicD[4];
43
+ state.handles.end.y = _SCOORDGroup$GraphicD[5];
41
44
  return state;
42
45
  }
43
46
  static getTID300RepresentationArguments(tool) {
44
- const {
45
- finding,
46
- findingSites,
47
- cachedStats = {},
48
- handles
49
- } = tool;
50
- const {
51
- start,
52
- end
53
- } = handles;
47
+ const finding = tool.finding,
48
+ findingSites = tool.findingSites,
49
+ _tool$cachedStats = tool.cachedStats,
50
+ cachedStats = _tool$cachedStats === void 0 ? {} : _tool$cachedStats,
51
+ handles = tool.handles;
52
+ const start = handles.start,
53
+ end = handles.end;
54
54
  const points = [start, {
55
55
  x: start.x,
56
56
  y: end.y
@@ -58,10 +58,8 @@ class RectangleRoi {
58
58
  x: end.x,
59
59
  y: start.y
60
60
  }];
61
- const {
62
- area,
63
- perimeter
64
- } = cachedStats;
61
+ const area = cachedStats.area,
62
+ perimeter = cachedStats.perimeter;
65
63
  const trackingIdentifierTextValue = 'cornerstoneTools@^4.0.0:RectangleRoi';
66
64
  return {
67
65
  points,
@@ -80,7 +78,10 @@ RectangleRoi.isValidCornerstoneTrackingIdentifier = TrackingIdentifier => {
80
78
  if (!TrackingIdentifier.includes(':')) {
81
79
  return false;
82
80
  }
83
- const [cornerstone4Tag, toolType] = TrackingIdentifier.split(':');
81
+ const _TrackingIdentifier$s = TrackingIdentifier.split(':'),
82
+ _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2),
83
+ cornerstone4Tag = _TrackingIdentifier$s2[0],
84
+ toolType = _TrackingIdentifier$s2[1];
84
85
  if (cornerstone4Tag !== CORNERSTONE_4_TAG) {
85
86
  return false;
86
87
  }
@@ -1,25 +1,18 @@
1
- import { utilities, log, normalizers, derivations } from 'dcmjs';
1
+ import { utilities, normalizers, derivations, log } from 'dcmjs';
2
2
  import ndarray from 'ndarray';
3
3
  import getDatasetsFromImages from '../helpers/getDatasetsFromImages.js';
4
4
 
5
- const {
6
- rotateDirectionCosinesInPlane,
7
- flipImageOrientationPatient: flipIOP,
8
- flipMatrix2D,
9
- rotateMatrix902D
10
- } = utilities.orientation;
11
- const {
12
- datasetToBlob,
13
- BitArray,
14
- DicomMessage,
15
- DicomMetaDictionary
16
- } = utilities;
17
- const {
18
- Normalizer
19
- } = normalizers;
20
- const {
21
- Segmentation: SegmentationDerivation
22
- } = derivations;
5
+ const _utilities$orientatio = utilities.orientation,
6
+ rotateDirectionCosinesInPlane = _utilities$orientatio.rotateDirectionCosinesInPlane,
7
+ flipIOP = _utilities$orientatio.flipImageOrientationPatient,
8
+ flipMatrix2D = _utilities$orientatio.flipMatrix2D,
9
+ rotateMatrix902D = _utilities$orientatio.rotateMatrix902D;
10
+ const datasetToBlob = utilities.datasetToBlob,
11
+ BitArray = utilities.BitArray,
12
+ DicomMessage = utilities.DicomMessage,
13
+ DicomMetaDictionary = utilities.DicomMetaDictionary;
14
+ const Normalizer = normalizers.Normalizer;
15
+ const SegmentationDerivation = derivations.Segmentation;
23
16
  const Segmentation = {
24
17
  generateSegmentation,
25
18
  generateToolState
@@ -45,10 +38,8 @@ function generateSegmentation(images, brushData) {
45
38
  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
46
39
  includeSliceSpacing: true
47
40
  };
48
- const {
49
- toolState,
50
- segments
51
- } = brushData;
41
+ const toolState = brushData.toolState,
42
+ segments = brushData.segments;
52
43
 
53
44
  // Calculate the dimensions of the data cube.
54
45
  const image0 = images[0];
@@ -64,10 +55,9 @@ function generateSegmentation(images, brushData) {
64
55
  }
65
56
  const isMultiframe = image0.imageId.includes('?frame');
66
57
  const seg = _createSegFromImages(images, isMultiframe, options);
67
- const {
68
- referencedFramesPerSegment,
69
- segmentIndicies
70
- } = _getNumberOfFramesPerSegment(toolState, images, segments);
58
+ const _getNumberOfFramesPer = _getNumberOfFramesPerSegment(toolState, images, segments),
59
+ referencedFramesPerSegment = _getNumberOfFramesPer.referencedFramesPerSegment,
60
+ segmentIndicies = _getNumberOfFramesPer.segmentIndicies;
71
61
  let NumberOfFrames = 0;
72
62
  for (let i = 0; i < referencedFramesPerSegment.length; i++) {
73
63
  NumberOfFrames += referencedFramesPerSegment[i].length;
@@ -274,10 +264,8 @@ function addImageIdSpecificBrushToolState(toolState, imageId, segmentIndex, pixe
274
264
  * @return {String} The corresponding imageId.
275
265
  */
276
266
  function getImageIdOfSourceImage(SourceImageSequence, imageIds, metadataProvider) {
277
- const {
278
- ReferencedSOPInstanceUID,
279
- ReferencedFrameNumber
280
- } = SourceImageSequence;
267
+ const ReferencedSOPInstanceUID = SourceImageSequence.ReferencedSOPInstanceUID,
268
+ ReferencedFrameNumber = SourceImageSequence.ReferencedFrameNumber;
281
269
  return ReferencedFrameNumber ? getImageIdOfReferencedFrame(ReferencedSOPInstanceUID, ReferencedFrameNumber, imageIds, metadataProvider) : getImageIdOfReferencedSingleFramedSOPInstance(ReferencedSOPInstanceUID, imageIds, metadataProvider);
282
270
  }
283
271