@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,17 +1,13 @@
1
1
  import { COMMENT_CODE, TEXT_ANNOTATION_POSITION } from './constants/index.js';
2
- import dcmjs from 'dcmjs';
2
+ import '../helpers/downloadDICOMData.js';
3
3
  import { toScoord } from '../helpers/toScoordType.js';
4
- import '@cornerstonejs/core';
4
+ import '../helpers/scoordToWorld.js';
5
+ import dcmjs from 'dcmjs';
5
6
 
6
- const {
7
- sr: {
8
- valueTypes,
9
- coding
10
- },
11
- adapters: {
12
- Cornerstone3D
13
- }
14
- } = dcmjs;
7
+ const _dcmjs$sr = dcmjs.sr,
8
+ valueTypes = _dcmjs$sr.valueTypes,
9
+ coding = _dcmjs$sr.coding,
10
+ Cornerstone3D = dcmjs.adapters.Cornerstone3D;
15
11
  class LabelData {
16
12
  constructor(tid300Item, annotation) {
17
13
  this.tid300Item = tid300Item;
@@ -22,10 +18,9 @@ class LabelData {
22
18
  var _handles$textBox;
23
19
  const contentEntries = this.tid300Item.contentItem();
24
20
  this.fixScoordRelationships(contentEntries);
25
- const {
26
- label,
27
- handles
28
- } = this.annotation.data;
21
+ const _this$annotation$data = this.annotation.data,
22
+ label = _this$annotation$data.label,
23
+ handles = _this$annotation$data.handles;
29
24
  if (label) {
30
25
  contentEntries.push(this.createQualitativeLabel(label));
31
26
  this.filterCornerstoneFreeText(contentEntries);
@@ -54,9 +49,7 @@ class LabelData {
54
49
  return [contentSeq];
55
50
  }
56
51
  filterCornerstoneFreeText(contentEntries) {
57
- const {
58
- codeValues
59
- } = Cornerstone3D.CodeScheme;
52
+ const codeValues = Cornerstone3D.CodeScheme.codeValues;
60
53
  const freeTextCodes = [codeValues.FREE_TEXT_CODE_VALUE, codeValues.CORNERSTONEFREETEXT];
61
54
  for (let i = 0; i < contentEntries.length; i++) {
62
55
  const group = contentEntries[i];
@@ -82,22 +75,18 @@ class LabelData {
82
75
  });
83
76
  }
84
77
  createQualitativeLabelPosition(annotation) {
85
- const {
86
- textBox
87
- } = annotation.data.handles;
88
- const {
89
- referencedImageId,
90
- FrameOfReferenceUID: frameOfReferenceUID
91
- } = annotation.metadata;
78
+ const textBox = annotation.data.handles.textBox;
79
+ const _annotation$metadata = annotation.metadata,
80
+ referencedImageId = _annotation$metadata.referencedImageId,
81
+ frameOfReferenceUID = _annotation$metadata.FrameOfReferenceUID;
92
82
  const is3DMeasurement = !referencedImageId;
93
- const {
94
- x,
95
- y,
96
- z
97
- } = toScoord({
98
- is3DMeasurement,
99
- referencedImageId
100
- }, textBox.worldPosition);
83
+ const _toScoord = toScoord({
84
+ is3DMeasurement,
85
+ referencedImageId
86
+ }, textBox.worldPosition),
87
+ x = _toScoord.x,
88
+ y = _toScoord.y,
89
+ z = _toScoord.z;
101
90
  const graphicType = valueTypes.GraphicTypes.POINT;
102
91
  const relationshipType = valueTypes.RelationshipTypes.CONTAINS;
103
92
  const name = new coding.CodedConcept(TEXT_ANNOTATION_POSITION);
@@ -2,25 +2,23 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import { utilities } from 'dcmjs';
3
3
  import MeasurementReport from './MeasurementReport.js';
4
4
  import BaseAdapter3D from './BaseAdapter3D.js';
5
+ import '../helpers/downloadDICOMData.js';
5
6
  import { toScoord } from '../helpers/toScoordType.js';
6
- import '@cornerstonejs/core';
7
+ import '../helpers/scoordToWorld.js';
7
8
 
8
9
  var _Length;
9
10
  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; }
10
11
  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; }
11
- const {
12
- Length: TID300Length
13
- } = utilities.TID300;
12
+ const TID300Length = utilities.TID300.Length;
14
13
  const LENGTH = 'Length';
15
14
  class Length extends BaseAdapter3D {
16
15
  static getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata) {
17
- const {
18
- state,
19
- NUMGroup,
20
- worldCoords,
21
- referencedImageId,
22
- ReferencedFrameNumber
23
- } = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, this.toolType);
16
+ const _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, this.toolType),
17
+ state = _MeasurementReport$ge.state,
18
+ NUMGroup = _MeasurementReport$ge.NUMGroup,
19
+ worldCoords = _MeasurementReport$ge.worldCoords,
20
+ referencedImageId = _MeasurementReport$ge.referencedImageId,
21
+ ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber;
24
22
  const cachedStats = referencedImageId ? {
25
23
  ["imageId:".concat(referencedImageId)]: {
26
24
  length: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : 0,
@@ -39,28 +37,22 @@ class Length extends BaseAdapter3D {
39
37
  }
40
38
  static getTID300RepresentationArguments(tool) {
41
39
  let is3DMeasurement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
42
- const {
43
- data,
44
- finding,
45
- findingSites,
46
- metadata
47
- } = tool;
48
- const {
49
- cachedStats = {},
50
- handles
51
- } = data;
52
- const {
53
- referencedImageId
54
- } = metadata;
40
+ const data = tool.data,
41
+ finding = tool.finding,
42
+ findingSites = tool.findingSites,
43
+ metadata = tool.metadata;
44
+ const _data$cachedStats = data.cachedStats,
45
+ cachedStats = _data$cachedStats === void 0 ? {} : _data$cachedStats,
46
+ handles = data.handles;
47
+ const referencedImageId = metadata.referencedImageId;
55
48
  const scoordProps = {
56
49
  is3DMeasurement,
57
50
  referencedImageId
58
51
  };
59
52
  const point1 = toScoord(scoordProps, handles.points[0]);
60
53
  const point2 = toScoord(scoordProps, handles.points[1]);
61
- const {
62
- length: distance
63
- } = cachedStats["imageId:".concat(referencedImageId)] || {};
54
+ const _ref = cachedStats["imageId:".concat(referencedImageId)] || {},
55
+ distance = _ref.length;
64
56
  return {
65
57
  point1,
66
58
  point2,
@@ -1,11 +1,13 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import { utilities as utilities$1, derivations, normalizers, data } from 'dcmjs';
3
- import { utilities, cache, Enums } from '@cornerstonejs/core';
2
+ import { utilities, derivations, normalizers, data } from 'dcmjs';
3
+ import { Enums, utilities as utilities$1, cache } from '@cornerstonejs/core';
4
4
  import CORNERSTONE_3D_TAG from './cornerstone3DTag.js';
5
5
  import { toArray } from '../helpers/toArray.js';
6
6
  import { codeMeaningEquals } from '../helpers/codeMeaningEquals.js';
7
+ import '../helpers/downloadDICOMData.js';
7
8
  import { copyStudyTags } from '../helpers/copyStudyTags.js';
8
9
  import { copySeriesTags } from '../helpers/copySeriesTags.js';
10
+ import '../helpers/toScoordType.js';
9
11
  import { scoordToWorld } from '../helpers/scoordToWorld.js';
10
12
  import { toPoint3 } from '../helpers/toPoint3.js';
11
13
  import CodingScheme from './CodingScheme.js';
@@ -15,26 +17,14 @@ import LabelData from './LabelData.js';
15
17
  var _MeasurementReport;
16
18
  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; }
17
19
  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; }
18
- const {
19
- MetadataModules
20
- } = Enums;
21
- const {
22
- TID1500,
23
- addAccessors
24
- } = utilities$1;
25
- const {
26
- StructuredReport
27
- } = derivations;
28
- const {
29
- Normalizer
30
- } = normalizers;
31
- const {
32
- TID1500MeasurementReport,
33
- TID1501MeasurementGroup
34
- } = TID1500;
35
- const {
36
- DicomMetaDictionary
37
- } = data;
20
+ const MetadataModules = Enums.MetadataModules;
21
+ const TID1500 = utilities.TID1500,
22
+ addAccessors = utilities.addAccessors;
23
+ const StructuredReport = derivations.StructuredReport;
24
+ const Normalizer = normalizers.Normalizer;
25
+ const TID1500MeasurementReport = TID1500.TID1500MeasurementReport,
26
+ TID1501MeasurementGroup = TID1500.TID1501MeasurementGroup;
27
+ const DicomMetaDictionary = data.DicomMetaDictionary;
38
28
  const FINDING = {
39
29
  CodingSchemeDesignator: 'DCM',
40
30
  CodeValue: '121071'
@@ -90,11 +80,10 @@ class MeasurementReport {
90
80
  return new TID1501MeasurementGroup(Measurements);
91
81
  }
92
82
  static getCornerstoneLabelFromDefaultState(defaultState) {
93
- const {
94
- findingSites = [],
95
- finding,
96
- commentGroup
97
- } = defaultState;
83
+ const _defaultState$finding = defaultState.findingSites,
84
+ findingSites = _defaultState$finding === void 0 ? [] : _defaultState$finding,
85
+ finding = defaultState.finding,
86
+ commentGroup = defaultState.commentGroup;
98
87
  if (commentGroup !== null && commentGroup !== void 0 && commentGroup.TextValue) {
99
88
  return commentGroup.TextValue;
100
89
  }
@@ -111,19 +100,14 @@ class MeasurementReport {
111
100
  return metaSRAnnotation;
112
101
  }
113
102
  static processSCOORDGroup(_ref) {
114
- let {
115
- SCOORDGroup,
116
- toolType,
117
- sopInstanceUIDToImageIdMap,
118
- metadata
119
- } = _ref;
120
- const {
121
- ReferencedSOPSequence
122
- } = SCOORDGroup.ContentSequence;
123
- const {
124
- ReferencedSOPInstanceUID,
125
- ReferencedFrameNumber = 1
126
- } = ReferencedSOPSequence;
103
+ let SCOORDGroup = _ref.SCOORDGroup,
104
+ toolType = _ref.toolType,
105
+ sopInstanceUIDToImageIdMap = _ref.sopInstanceUIDToImageIdMap,
106
+ metadata = _ref.metadata;
107
+ const ReferencedSOPSequence = SCOORDGroup.ContentSequence.ReferencedSOPSequence;
108
+ const ReferencedSOPInstanceUID = ReferencedSOPSequence.ReferencedSOPInstanceUID,
109
+ _ReferencedSOPSequenc = ReferencedSOPSequence.ReferencedFrameNumber,
110
+ ReferencedFrameNumber = _ReferencedSOPSequenc === void 0 ? 1 : _ReferencedSOPSequenc;
127
111
  const referencedImageId = sopInstanceUIDToImageIdMap["".concat(ReferencedSOPInstanceUID, ":").concat(ReferencedFrameNumber)];
128
112
  const imagePlaneModule = metadata.get('imagePlaneModule', referencedImageId);
129
113
  const annotationUID = DicomMetaDictionary.uid();
@@ -158,10 +142,8 @@ class MeasurementReport {
158
142
  };
159
143
  }
160
144
  static processSCOORD3DGroup(_ref2) {
161
- let {
162
- SCOORD3DGroup,
163
- toolType
164
- } = _ref2;
145
+ let SCOORD3DGroup = _ref2.SCOORD3DGroup,
146
+ toolType = _ref2.toolType;
165
147
  const annotationUID = DicomMetaDictionary.uid();
166
148
  const toolData = {
167
149
  SCOORD3DGroup,
@@ -187,17 +169,15 @@ class MeasurementReport {
187
169
  }
188
170
  }
189
171
  };
190
- utilities.updatePlaneRestriction(toPoint3(SCOORD3DGroup.GraphicData), toolData.state.annotation.metadata);
172
+ utilities$1.updatePlaneRestriction(toPoint3(SCOORD3DGroup.GraphicData), toolData.state.annotation.metadata);
191
173
  return toolData;
192
174
  }
193
175
  static getSpatialCoordinatesState(_ref3) {
194
176
  var _contentSequenceArr$f, _contentSequenceArr$f2;
195
- let {
196
- NUMGroup,
197
- sopInstanceUIDToImageIdMap,
198
- metadata,
199
- toolType
200
- } = _ref3;
177
+ let NUMGroup = _ref3.NUMGroup,
178
+ sopInstanceUIDToImageIdMap = _ref3.sopInstanceUIDToImageIdMap,
179
+ metadata = _ref3.metadata,
180
+ toolType = _ref3.toolType;
201
181
  const contentSequenceArr = toArray(NUMGroup.ContentSequence);
202
182
  const SCOORDGroup = (_contentSequenceArr$f = contentSequenceArr.find(group => group.ValueType === 'SCOORD' && !isSecondaryScoordGroup(group))) !== null && _contentSequenceArr$f !== void 0 ? _contentSequenceArr$f : contentSequenceArr.find(group => group.ValueType === 'SCOORD');
203
183
  const SCOORD3DGroup = (_contentSequenceArr$f2 = contentSequenceArr.find(group => group.ValueType === 'SCOORD3D' && !isSecondaryScoordGroup(group))) !== null && _contentSequenceArr$f2 !== void 0 ? _contentSequenceArr$f2 : contentSequenceArr.find(group => group.ValueType === 'SCOORD3D');
@@ -216,33 +196,30 @@ class MeasurementReport {
216
196
  return result;
217
197
  }
218
198
  static processSpatialCoordinatesGroup(_ref4) {
219
- let {
220
- NUMGroup,
221
- sopInstanceUIDToImageIdMap,
222
- metadata,
223
- findingGroup,
224
- findingSiteGroups,
225
- commentGroup,
226
- commentPositionGroup,
227
- controlPointsGroup,
228
- toolType
229
- } = _ref4;
230
- const {
231
- state,
232
- SCOORDGroup,
233
- ReferencedSOPSequence,
234
- ReferencedSOPInstanceUID,
235
- ReferencedFrameNumber,
236
- SCOORD3DGroup,
237
- FrameOfReferenceUID,
238
- referencedImageId,
239
- textBoxPosition
240
- } = this.getSpatialCoordinatesState({
241
- NUMGroup,
242
- sopInstanceUIDToImageIdMap,
243
- metadata,
244
- toolType
245
- });
199
+ let NUMGroup = _ref4.NUMGroup,
200
+ sopInstanceUIDToImageIdMap = _ref4.sopInstanceUIDToImageIdMap,
201
+ metadata = _ref4.metadata,
202
+ findingGroup = _ref4.findingGroup,
203
+ findingSiteGroups = _ref4.findingSiteGroups,
204
+ commentGroup = _ref4.commentGroup,
205
+ commentPositionGroup = _ref4.commentPositionGroup,
206
+ controlPointsGroup = _ref4.controlPointsGroup,
207
+ toolType = _ref4.toolType;
208
+ const _this$getSpatialCoord = this.getSpatialCoordinatesState({
209
+ NUMGroup,
210
+ sopInstanceUIDToImageIdMap,
211
+ metadata,
212
+ toolType
213
+ }),
214
+ state = _this$getSpatialCoord.state,
215
+ SCOORDGroup = _this$getSpatialCoord.SCOORDGroup,
216
+ ReferencedSOPSequence = _this$getSpatialCoord.ReferencedSOPSequence,
217
+ ReferencedSOPInstanceUID = _this$getSpatialCoord.ReferencedSOPInstanceUID,
218
+ ReferencedFrameNumber = _this$getSpatialCoord.ReferencedFrameNumber,
219
+ SCOORD3DGroup = _this$getSpatialCoord.SCOORD3DGroup,
220
+ FrameOfReferenceUID = _this$getSpatialCoord.FrameOfReferenceUID,
221
+ referencedImageId = _this$getSpatialCoord.referencedImageId,
222
+ textBoxPosition = _this$getSpatialCoord.textBoxPosition;
246
223
  const finding = findingGroup ? addAccessors(findingGroup.ConceptCodeSequence) : undefined;
247
224
  const findingSites = findingSiteGroups.map(fsg => {
248
225
  return addAccessors(fsg.ConceptCodeSequence);
@@ -289,9 +266,7 @@ class MeasurementReport {
289
266
  };
290
267
  }
291
268
  static getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, toolType) {
292
- const {
293
- ContentSequence
294
- } = MeasurementGroup;
269
+ const ContentSequence = MeasurementGroup.ContentSequence;
295
270
  const contentSequenceArr = toArray(ContentSequence);
296
271
  const findingGroup = contentSequenceArr.find(group => this.codeValueMatch(group, FINDING));
297
272
  const commentGroup = contentSequenceArr.find(group => this.codeValueMatch(group, COMMENT));
@@ -316,9 +291,7 @@ class MeasurementReport {
316
291
  controlPointsGroup,
317
292
  toolType
318
293
  });
319
- const {
320
- referencedImageId
321
- } = spatialGroup.state.annotation.metadata;
294
+ const referencedImageId = spatialGroup.state.annotation.metadata.referencedImageId;
322
295
  const is3DMeasurement = !!spatialGroup.SCOORD3DGroup;
323
296
  const scoordArgs = {
324
297
  referencedImageId,
@@ -334,27 +307,21 @@ class MeasurementReport {
334
307
  });
335
308
  }
336
309
  static generateReferencedSOPSequence(_ref5) {
337
- let {
338
- toolData,
339
- toolTypes,
340
- metadataProvider,
341
- imageId,
342
- sopInstanceUIDsToSeriesInstanceUIDMap,
343
- derivationSourceDatasets
344
- } = _ref5;
310
+ let toolData = _ref5.toolData,
311
+ toolTypes = _ref5.toolTypes,
312
+ metadataProvider = _ref5.metadataProvider,
313
+ imageId = _ref5.imageId,
314
+ sopInstanceUIDsToSeriesInstanceUIDMap = _ref5.sopInstanceUIDsToSeriesInstanceUIDMap,
315
+ derivationSourceDatasets = _ref5.derivationSourceDatasets;
345
316
  const effectiveImageId = imageId === NO_IMAGE_ID ? this.getImageIdFromVolume({
346
317
  toolData,
347
318
  toolTypes
348
319
  }) : imageId;
349
320
  const sopCommonModule = metadataProvider.get('sopCommonModule', effectiveImageId);
350
321
  const instance = metadataProvider.get('instance', effectiveImageId);
351
- const {
352
- sopInstanceUID,
353
- sopClassUID
354
- } = sopCommonModule;
355
- const {
356
- SeriesInstanceUID: seriesInstanceUID
357
- } = instance;
322
+ const sopInstanceUID = sopCommonModule.sopInstanceUID,
323
+ sopClassUID = sopCommonModule.sopClassUID;
324
+ const seriesInstanceUID = instance.SeriesInstanceUID;
358
325
  sopInstanceUIDsToSeriesInstanceUIDMap[sopInstanceUID] = seriesInstanceUID;
359
326
  if (!derivationSourceDatasets.find(dsd => dsd.SeriesInstanceUID === seriesInstanceUID)) {
360
327
  const derivationSourceDataset = MeasurementReport.generateDerivationSourceDataset(instance);
@@ -373,10 +340,8 @@ class MeasurementReport {
373
340
  }
374
341
  static getImageIdFromVolume(_ref6) {
375
342
  var _toolData$toolTypes$, _referenceToolData$me;
376
- let {
377
- toolData,
378
- toolTypes
379
- } = _ref6;
343
+ let toolData = _ref6.toolData,
344
+ toolTypes = _ref6.toolTypes;
380
345
  const referenceToolData = toolData === null || toolData === void 0 || (_toolData$toolTypes$ = toolData[toolTypes === null || toolTypes === void 0 ? void 0 : toolTypes[0]]) === null || _toolData$toolTypes$ === void 0 || (_toolData$toolTypes$ = _toolData$toolTypes$.data) === null || _toolData$toolTypes$ === void 0 ? void 0 : _toolData$toolTypes$[0];
381
346
  const volumeId = referenceToolData === null || referenceToolData === void 0 || (_referenceToolData$me = referenceToolData.metadata) === null || _referenceToolData$me === void 0 ? void 0 : _referenceToolData$me.volumeId;
382
347
  const volume = cache.getVolume(volumeId);
@@ -447,9 +412,7 @@ class MeasurementReport {
447
412
  const GROUP = 'Measurement Group';
448
413
  const TRACKING_IDENTIFIER = 'Tracking Identifier';
449
414
  const TRACKING_UNIQUE_IDENTIFIER = 'Tracking Unique Identifier';
450
- const {
451
- imageId: predecessorImageId
452
- } = dataset;
415
+ const predecessorImageId = dataset.imageId;
453
416
  const imagingMeasurementContent = toArray(dataset.ContentSequence).find(codeMeaningEquals(REPORT));
454
417
  const measurementGroups = toArray(imagingMeasurementContent.ContentSequence).filter(codeMeaningEquals(GROUP));
455
418
  const measurementData = {};
@@ -458,9 +421,7 @@ class MeasurementReport {
458
421
  var _hooks$getToolClass;
459
422
  const measurementGroupContentSequence = toArray(measurementGroup.ContentSequence);
460
423
  const trackingIdentifierGroup = measurementGroupContentSequence.find(contentItem => contentItem.ConceptNameCodeSequence.CodeMeaning === TRACKING_IDENTIFIER);
461
- const {
462
- TextValue: trackingIdentifierValue
463
- } = trackingIdentifierGroup;
424
+ const trackingIdentifierValue = trackingIdentifierGroup.TextValue;
464
425
  const trackingUniqueIdentifierGroup = measurementGroupContentSequence.find(contentItem => contentItem.ConceptNameCodeSequence.CodeMeaning === TRACKING_UNIQUE_IDENTIFIER);
465
426
  const trackingUniqueIdentifierValue = trackingUniqueIdentifierGroup === null || trackingUniqueIdentifierGroup === void 0 ? void 0 : trackingUniqueIdentifierGroup.UID;
466
427
  const toolAdapter = (hooks === null || hooks === void 0 || (_hooks$getToolClass = hooks.getToolClass) === null || _hooks$getToolClass === void 0 ? void 0 : _hooks$getToolClass.call(hooks, measurementGroup, dataset, this.measurementAdapterByToolType)) || this.getAdapterForTrackingIdentifier(trackingIdentifierValue) || this.getAdapterForCodeType(measurementGroup);
@@ -550,9 +511,7 @@ _MeasurementReport.measurementAdapterByToolType = new Map();
550
511
  _MeasurementReport.measurementAdaptersByType = new Map();
551
512
  _MeasurementReport.measurementAdapterByTrackingIdentifier = new Map();
552
513
  _MeasurementReport.codeValueMatch = (group, code, oldCode) => {
553
- const {
554
- ConceptNameCodeSequence
555
- } = group;
514
+ const ConceptNameCodeSequence = group.ConceptNameCodeSequence;
556
515
  if (!ConceptNameCodeSequence) {
557
516
  return;
558
517
  }
@@ -560,10 +519,8 @@ _MeasurementReport.codeValueMatch = (group, code, oldCode) => {
560
519
  if (!seq) {
561
520
  return;
562
521
  }
563
- const {
564
- CodingSchemeDesignator,
565
- CodeValue
566
- } = seq;
522
+ const CodingSchemeDesignator = seq.CodingSchemeDesignator,
523
+ CodeValue = seq.CodeValue;
567
524
  return CodingSchemeDesignator == code.CodingSchemeDesignator && CodeValue == code.CodeValue || oldCode && CodingSchemeDesignator == oldCode.CodingSchemeDesignator && CodeValue == oldCode.CodeValue;
568
525
  };
569
526
  _MeasurementReport.generateDerivationSourceDataset = instance => {
@@ -1,11 +1,7 @@
1
1
  import { CornerstonePMAP } from '../../Cornerstone/index.js';
2
2
 
3
- const {
4
- ParametricMap
5
- } = CornerstonePMAP;
6
- const {
7
- generateToolState: generateToolStateCornerstone
8
- } = ParametricMap;
3
+ const ParametricMap = CornerstonePMAP.ParametricMap;
4
+ const generateToolStateCornerstone = ParametricMap.generateToolState;
9
5
  function generateToolState(imageIds, arrayBuffer, metadataProvider) {
10
6
  let skipOverlapping = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
11
7
  let tolerance = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1e-3;
@@ -4,9 +4,9 @@ import { vec3 } from 'gl-matrix';
4
4
  import BaseAdapter3D from './BaseAdapter3D.js';
5
5
  import { extractAllNUMGroups, restoreAdditionalMetrics } from './metricHandler.js';
6
6
  import { toArray } from '../helpers/toArray.js';
7
- import 'dcmjs';
7
+ import '../helpers/downloadDICOMData.js';
8
8
  import { toScoords } from '../helpers/toScoordType.js';
9
- import '@cornerstonejs/core';
9
+ import '../helpers/scoordToWorld.js';
10
10
  import ControlPointPolyline from './ControlPointPolyline.js';
11
11
  import { SPLINE_TYPE_CODE } from './constants/index.js';
12
12
 
@@ -16,13 +16,12 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
16
16
  class PlanarFreehandROI extends BaseAdapter3D {
17
17
  static getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata) {
18
18
  var _state$annotation$dat, _state$annotation$dat2, _numSeq$find;
19
- const {
20
- state,
21
- NUMGroup,
22
- worldCoords,
23
- referencedImageId,
24
- ReferencedFrameNumber
25
- } = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, this.toolType);
19
+ const _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, this.toolType),
20
+ state = _MeasurementReport$ge.state,
21
+ NUMGroup = _MeasurementReport$ge.NUMGroup,
22
+ worldCoords = _MeasurementReport$ge.worldCoords,
23
+ referencedImageId = _MeasurementReport$ge.referencedImageId,
24
+ ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber;
26
25
  const distanceBetweenFirstAndLastPoint = vec3.distance(worldCoords[worldCoords.length - 1], worldCoords[0]);
27
26
  let isOpenContour = true;
28
27
  if (distanceBetweenFirstAndLastPoint < this.closedContourThreshold) {
@@ -69,23 +68,16 @@ class PlanarFreehandROI extends BaseAdapter3D {
69
68
  static getTID300RepresentationArguments(tool) {
70
69
  var _handles$points, _data$spline;
71
70
  let is3DMeasurement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
72
- const {
73
- data,
74
- finding,
75
- findingSites,
76
- metadata
77
- } = tool;
78
- const {
79
- handles
80
- } = data;
81
- const {
82
- polyline,
83
- closed
84
- } = data.contour;
71
+ const data = tool.data,
72
+ finding = tool.finding,
73
+ findingSites = tool.findingSites,
74
+ metadata = tool.metadata;
75
+ const handles = data.handles;
76
+ const _data$contour = data.contour,
77
+ polyline = _data$contour.polyline,
78
+ closed = _data$contour.closed;
85
79
  const isOpenContour = closed !== true;
86
- const {
87
- referencedImageId
88
- } = metadata;
80
+ const referencedImageId = metadata.referencedImageId;
89
81
  const scoordProps = {
90
82
  is3DMeasurement,
91
83
  referencedImageId
@@ -96,16 +88,15 @@ class PlanarFreehandROI extends BaseAdapter3D {
96
88
  points.push(firstPoint);
97
89
  }
98
90
  const controlPoints = (handles === null || handles === void 0 || (_handles$points = handles.points) === null || _handles$points === void 0 ? void 0 : _handles$points.length) && toScoords(scoordProps, handles.points);
99
- const {
100
- area,
101
- areaUnit,
102
- modalityUnit,
103
- perimeter,
104
- mean,
105
- max,
106
- stdDev,
107
- length
108
- } = data.cachedStats["imageId:".concat(referencedImageId)] || {};
91
+ const _ref = data.cachedStats["imageId:".concat(referencedImageId)] || {},
92
+ area = _ref.area,
93
+ areaUnit = _ref.areaUnit,
94
+ modalityUnit = _ref.modalityUnit,
95
+ perimeter = _ref.perimeter,
96
+ mean = _ref.mean,
97
+ max = _ref.max,
98
+ stdDev = _ref.stdDev,
99
+ length = _ref.length;
109
100
  return {
110
101
  points,
111
102
  controlPoints,
@@ -2,15 +2,14 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import { utilities } from 'dcmjs';
3
3
  import MeasurementReport from './MeasurementReport.js';
4
4
  import BaseAdapter3D from './BaseAdapter3D.js';
5
+ import '../helpers/downloadDICOMData.js';
5
6
  import { toScoords } from '../helpers/toScoordType.js';
6
- import '@cornerstonejs/core';
7
+ import '../helpers/scoordToWorld.js';
7
8
 
8
9
  var _Probe;
9
10
  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; }
10
11
  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; }
11
- const {
12
- Point: TID300Point
13
- } = utilities.TID300;
12
+ const TID300Point = utilities.TID300.Point;
14
13
  class Probe extends BaseAdapter3D {
15
14
  static isValidMeasurement(measurement) {
16
15
  const graphicItem = this.getGraphicItem(measurement);
@@ -18,13 +17,12 @@ class Probe extends BaseAdapter3D {
18
17
  }
19
18
  static getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, _trackingIdentifier) {
20
19
  var _NUMGroup$MeasuredVal, _NUMGroup$MeasuredVal2;
21
- const {
22
- state,
23
- NUMGroup,
24
- worldCoords,
25
- referencedImageId,
26
- ReferencedFrameNumber
27
- } = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, this.toolType);
20
+ const _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, this.toolType),
21
+ state = _MeasurementReport$ge.state,
22
+ NUMGroup = _MeasurementReport$ge.NUMGroup,
23
+ worldCoords = _MeasurementReport$ge.worldCoords,
24
+ referencedImageId = _MeasurementReport$ge.referencedImageId,
25
+ ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber;
28
26
  const cachedStats = referencedImageId ? {
29
27
  ["imageId:".concat(referencedImageId)]: {
30
28
  value: (_NUMGroup$MeasuredVal = NUMGroup === null || NUMGroup === void 0 || (_NUMGroup$MeasuredVal2 = NUMGroup.MeasuredValueSequence) === null || _NUMGroup$MeasuredVal2 === void 0 ? void 0 : _NUMGroup$MeasuredVal2.NumericValue) !== null && _NUMGroup$MeasuredVal !== void 0 ? _NUMGroup$MeasuredVal : null
@@ -42,26 +40,17 @@ class Probe extends BaseAdapter3D {
42
40
  }
43
41
  static getTID300RepresentationArguments(tool) {
44
42
  let is3DMeasurement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
45
- const {
46
- data,
47
- metadata
48
- } = tool;
49
- const {
50
- finding,
51
- findingSites
52
- } = tool;
53
- const {
54
- referencedImageId
55
- } = metadata;
43
+ const data = tool.data,
44
+ metadata = tool.metadata;
45
+ const finding = tool.finding,
46
+ findingSites = tool.findingSites;
47
+ const referencedImageId = metadata.referencedImageId;
56
48
  const scoordProps = {
57
49
  is3DMeasurement,
58
50
  referencedImageId
59
51
  };
60
- const {
61
- handles: {
62
- points = []
63
- }
64
- } = data;
52
+ const _data$handles$points = data.handles.points,
53
+ points = _data$handles$points === void 0 ? [] : _data$handles$points;
65
54
  const pointsImage = toScoords(scoordProps, points);
66
55
  return {
67
56
  points: pointsImage,