@ohif/app 3.9.0-beta.34 → 3.9.0-beta.36

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 (35) hide show
  1. package/dist/{117.bundle.3c4b1267961545fed330.js → 117.bundle.17ae130d2bb21ef9d31f.js} +5 -56
  2. package/dist/{121.bundle.10a6e63661e3feffdcf7.js → 121.bundle.9d1bc02753725a6bb253.js} +1 -1
  3. package/dist/{129.bundle.aeffa00fc359c6c3302f.js → 129.bundle.3343ba9238f9e2e5cbd2.js} +4 -4
  4. package/dist/{164.bundle.02db16dcc1132b25d4ad.js → 164.bundle.e30009bee13acb6967da.js} +217 -260
  5. package/dist/{172.bundle.0456e70413768fec2ba8.js → 172.bundle.e0ee762bee7496d6491e.js} +2 -2
  6. package/dist/{211.bundle.00af31ef3a558ab871d7.js → 211.bundle.5bd4f255507c829f5ff4.js} +1 -1
  7. package/dist/{236.bundle.ed0702d760569f060757.js → 236.bundle.a7e2f9e0cb3668fb6937.js} +29 -78
  8. package/dist/{370.bundle.6b8d3e94eef8e83ced67.js → 370.bundle.26738a863fd92e6b0d96.js} +4 -4
  9. package/dist/{501.bundle.f6641d4f50c6f8c54b6a.js → 501.bundle.ae2420b042bb0e7f72a7.js} +131 -134
  10. package/dist/{717.bundle.613012c8a7150a0decd0.js → 717.bundle.51d5dae0d1cc8658aaa7.js} +2 -2
  11. package/dist/{367.bundle.498dd1c427fcbfb437e1.js → 914.bundle.2b3a856b7d41ac8298e6.js} +231 -243
  12. package/dist/{822.bundle.1f629123cfe2f9df861d.js → 944.bundle.8d9b702fa2251909ac5e.js} +102 -47
  13. package/dist/app.bundle.css +1 -1
  14. package/dist/{app.bundle.02add375b2062b5fdbc6.js → app.bundle.ee9bb1ee04281b69dd11.js} +121 -125
  15. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  16. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  17. package/dist/index.html +1 -1
  18. package/dist/{polySeg.bundle.0b510b43f66f641bb68a.js → polySeg.bundle.bbb334a78132a383ef54.js} +1 -1
  19. package/dist/{suv-peak-worker.bundle.42afdd68a04bee2d0f4e.js → suv-peak-worker.bundle.6347271d0c99d33d64cf.js} +3 -3
  20. package/dist/sw.js +1 -1
  21. package/package.json +19 -19
  22. /package/dist/{14.bundle.9b4d14b25846a32a3f92.js → 14.bundle.66f407f4f809ab6e4d2b.js} +0 -0
  23. /package/dist/{140.bundle.8bf87e14b2f8a73c0808.js → 140.bundle.3cdcfa8c0910716f39ad.js} +0 -0
  24. /package/dist/{194.bundle.a48813c253355c084c4f.js → 194.bundle.0097cbd10d2057a6d2fa.js} +0 -0
  25. /package/dist/{218.bundle.a759b880ba04ab0a245c.js → 218.bundle.efce3a1382a78705f8e5.js} +0 -0
  26. /package/dist/{363.bundle.fde0de340488759cbb08.js → 363.bundle.aaea135d087c8de5f246.js} +0 -0
  27. /package/dist/{382.bundle.43ffd547a510e627ecb9.js → 382.bundle.6bb12e638e417b57edc6.js} +0 -0
  28. /package/dist/{444.bundle.a73ab0a4184585ec4f39.js → 444.bundle.c8694a72ad83c14393c7.js} +0 -0
  29. /package/dist/{552.bundle.82767ceab03497a4c45b.js → 552.bundle.af6ca952ba2d5b48d438.js} +0 -0
  30. /package/dist/{555.bundle.0ffcf54e8f5a2871709f.js → 555.bundle.d0975692846ab3f51a49.js} +0 -0
  31. /package/dist/{799.bundle.4c98fd946d302e8271d6.js → 799.bundle.654b5001021a13206a0b.js} +0 -0
  32. /package/dist/{806.bundle.f0371b477bf9f5a59650.js → 806.bundle.8bed59eb74ae6d3a33e9.js} +0 -0
  33. /package/dist/{853.bundle.49c38ba82f8927866f55.js → 853.bundle.d4d75dbce98d1caed76a.js} +0 -0
  34. /package/dist/{920.bundle.71d43ce3953964226c3b.js → 920.bundle.55c841734b5d60121b31.js} +0 -0
  35. /package/dist/{989.bundle.5f3a4719f128f4a6e599.js → 989.bundle.71b69e3b9f41971c6e41.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[164,367],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[164,914],{
3
3
 
4
4
  /***/ 25271:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -549,7 +549,7 @@ __webpack_require__.r(__webpack_exports__);
549
549
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13320);
550
550
  /* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11731);
551
551
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51884);
552
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20228);
552
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35678);
553
553
  /* harmony import */ var _requestPool_imageLoadPoolManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(775);
554
554
  /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(92136);
555
555
 
@@ -830,7 +830,7 @@ __webpack_require__.r(__webpack_exports__);
830
830
  /* harmony import */ var _utilities_triggerEvent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13292);
831
831
  /* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(48463);
832
832
  /* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__);
833
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(20228);
833
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(35678);
834
834
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(71702);
835
835
  /* harmony import */ var _utilities_cacheUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(51631);
836
836
 
@@ -1229,7 +1229,7 @@ imageLoadPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPO
1229
1229
  /* harmony export */ R: () => (/* binding */ RequestPoolManager)
1230
1230
  /* harmony export */ });
1231
1231
  /* harmony import */ var _enums_RequestType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15453);
1232
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20228);
1232
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35678);
1233
1233
 
1234
1234
 
1235
1235
  class RequestPoolManager {
@@ -4041,57 +4041,90 @@ function removeContourSegmentationAnnotation(annotation) {
4041
4041
 
4042
4042
  /***/ }),
4043
4043
 
4044
- /***/ 93712:
4045
- /***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
4046
-
4047
- /* harmony import */ var _RectangleROIStartEndThreshold__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69405);
4044
+ /***/ 53891:
4045
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4048
4046
 
4049
- function validateAnnotation(annotation) {
4050
- if (!annotation?.data) {
4051
- throw new Error('Tool data is empty');
4047
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4048
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
4049
+ /* harmony export */ });
4050
+ function calculatePerimeter(polyline, closed) {
4051
+ let perimeter = 0;
4052
+ for (let i = 0; i < polyline.length - 1; i++) {
4053
+ const point1 = polyline[i];
4054
+ const point2 = polyline[i + 1];
4055
+ perimeter += Math.sqrt(Math.pow(point2[0] - point1[0], 2) + Math.pow(point2[1] - point1[1], 2));
4052
4056
  }
4053
- if (!annotation.metadata || annotation.metadata.referenceImageId) {
4054
- throw new Error('Tool data is not associated with any imageId');
4057
+ if (closed) {
4058
+ const firstPoint = polyline[0];
4059
+ const lastPoint = polyline[polyline.length - 1];
4060
+ perimeter += Math.sqrt(Math.pow(lastPoint[0] - firstPoint[0], 2) +
4061
+ Math.pow(lastPoint[1] - firstPoint[1], 2));
4055
4062
  }
4063
+ return perimeter;
4056
4064
  }
4057
- class AnnotationToPointData {
4058
- constructor() {
4065
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (calculatePerimeter);
4066
+
4067
+
4068
+ /***/ }),
4069
+
4070
+ /***/ 84045:
4071
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4072
+
4073
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4074
+ /* harmony export */ A: () => (/* binding */ findHandlePolylineIndex)
4075
+ /* harmony export */ });
4076
+ /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
4077
+ /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44753);
4078
+
4079
+
4080
+ const { isEqual } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities;
4081
+ function findHandlePolylineIndex(annotation, handleIndex) {
4082
+ const { polyline } = annotation.data.contour;
4083
+ const { points } = annotation.data.handles;
4084
+ const { length } = points;
4085
+ if (handleIndex === length) {
4086
+ return polyline.length;
4059
4087
  }
4060
- static { this.TOOL_NAMES = {}; }
4061
- static convert(annotation, index, metadataProvider) {
4062
- validateAnnotation(annotation);
4063
- const { toolName } = annotation.metadata;
4064
- const toolClass = AnnotationToPointData.TOOL_NAMES[toolName];
4065
- if (!toolClass) {
4066
- throw new Error(`Unknown tool type: ${toolName}, cannot convert to RTSSReport`);
4067
- }
4068
- const ContourSequence = toolClass.getContourSequence(annotation, metadataProvider);
4069
- const color = [
4070
- Math.floor(Math.random() * 255),
4071
- Math.floor(Math.random() * 255),
4072
- Math.floor(Math.random() * 255),
4073
- ];
4074
- return {
4075
- ReferencedROINumber: index + 1,
4076
- ROIDisplayColor: color,
4077
- ContourSequence,
4078
- };
4088
+ if (handleIndex < 0) {
4089
+ handleIndex = (handleIndex + length) % length;
4079
4090
  }
4080
- static register(toolClass) {
4081
- AnnotationToPointData.TOOL_NAMES[toolClass.toolName] = toolClass;
4091
+ if (handleIndex === 0) {
4092
+ return 0;
4082
4093
  }
4094
+ const handle = points[handleIndex];
4095
+ const index = polyline.findIndex((point) => isEqual(handle, point));
4096
+ if (index !== -1) {
4097
+ return index;
4098
+ }
4099
+ let closestDistance = Infinity;
4100
+ return polyline.reduce((closestIndex, point, testIndex) => {
4101
+ const distance = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.squaredDistance */ .eR.squaredDistance(point, handle);
4102
+ if (distance < closestDistance) {
4103
+ closestDistance = distance;
4104
+ return testIndex;
4105
+ }
4106
+ return closestIndex;
4107
+ }, -1);
4083
4108
  }
4084
- AnnotationToPointData.register(_RectangleROIStartEndThreshold__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A);
4085
- /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (AnnotationToPointData)));
4086
4109
 
4087
4110
 
4088
4111
  /***/ }),
4089
4112
 
4090
- /***/ 14633:
4113
+ /***/ 75908:
4091
4114
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4092
4115
 
4093
- /* unused harmony export default */
4094
- /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44753);
4116
+
4117
+ // EXPORTS
4118
+ __webpack_require__.d(__webpack_exports__, {
4119
+ getContourHolesDataCanvas: () => (/* reexport */ getContourHolesDataCanvas),
4120
+ updateContourPolyline: () => (/* reexport */ updateContourPolyline/* default */.A)
4121
+ });
4122
+
4123
+ // UNUSED EXPORTS: AnnotationToPointData, acceptAutogeneratedInterpolations, areCoplanarContours, calculatePerimeter, contourFinder, detectContourHoles, findHandlePolylineIndex, generateContourSetsFromLabelmap, getContourHolesDataWorld, getDeduplicatedVTKPolyDataPoints, interpolation
4124
+
4125
+ // EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
4126
+ var esm = __webpack_require__(44753);
4127
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/areCoplanarContours.js
4095
4128
 
4096
4129
  function areCoplanarContours(firstAnnotation, secondAnnotation) {
4097
4130
  const { viewPlaneNormal: firstViewPlaneNormal } = firstAnnotation.metadata;
@@ -4108,39 +4141,7 @@ function areCoplanarContours(firstAnnotation, secondAnnotation) {
4108
4141
  return glMatrix.equals(firstDistance, secondDistance);
4109
4142
  }
4110
4143
 
4111
-
4112
- /***/ }),
4113
-
4114
- /***/ 53891:
4115
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4116
-
4117
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4118
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
4119
- /* harmony export */ });
4120
- function calculatePerimeter(polyline, closed) {
4121
- let perimeter = 0;
4122
- for (let i = 0; i < polyline.length - 1; i++) {
4123
- const point1 = polyline[i];
4124
- const point2 = polyline[i + 1];
4125
- perimeter += Math.sqrt(Math.pow(point2[0] - point1[0], 2) + Math.pow(point2[1] - point1[1], 2));
4126
- }
4127
- if (closed) {
4128
- const firstPoint = polyline[0];
4129
- const lastPoint = polyline[polyline.length - 1];
4130
- perimeter += Math.sqrt(Math.pow(lastPoint[0] - firstPoint[0], 2) +
4131
- Math.pow(lastPoint[1] - firstPoint[1], 2));
4132
- }
4133
- return perimeter;
4134
- }
4135
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (calculatePerimeter);
4136
-
4137
-
4138
- /***/ }),
4139
-
4140
- /***/ 11716:
4141
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4142
-
4143
- /* unused harmony exports findContours, findContoursFromReducedSet */
4144
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/contourFinder.js
4144
4145
  function findNextLink(line, lines, contourPoints) {
4145
4146
  let index = -1;
4146
4147
  lines.forEach((cell, i) => {
@@ -4196,21 +4197,62 @@ function findContours(lines) {
4196
4197
  return extraContours;
4197
4198
  }
4198
4199
  }
4199
- function findContoursFromReducedSet(lines) {
4200
+ function contourFinder_findContoursFromReducedSet(lines) {
4200
4201
  return findContours(lines);
4201
4202
  }
4202
- /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ({
4203
+ /* harmony default export */ const contourFinder = ({
4203
4204
  findContours,
4204
- findContoursFromReducedSet,
4205
+ findContoursFromReducedSet: contourFinder_findContoursFromReducedSet,
4205
4206
  });
4206
4207
 
4208
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/getDeduplicatedVTKPolyDataPoints.js
4209
+ function getDeduplicatedVTKPolyDataPoints_getDeduplicatedVTKPolyDataPoints(polyData, bypass = false) {
4210
+ const points = polyData.getPoints();
4211
+ const lines = polyData.getLines();
4212
+ const pointsArray = new Array(points.getNumberOfPoints())
4213
+ .fill(0)
4214
+ .map((_, i) => points.getPoint(i).slice());
4215
+ const linesArray = new Array(lines.getNumberOfCells()).fill(0).map((_, i) => {
4216
+ const cell = lines.getCell(i * 3).slice();
4217
+ return { a: cell[0], b: cell[1] };
4218
+ });
4219
+ if (bypass) {
4220
+ return { points: pointsArray, lines: linesArray };
4221
+ }
4222
+ const newPoints = [];
4223
+ for (const [i, pt] of pointsArray.entries()) {
4224
+ const index = newPoints.findIndex((point) => point[0] === pt[0] && point[1] === pt[1] && point[2] === pt[2]);
4225
+ if (index >= 0) {
4226
+ linesArray.map((line) => {
4227
+ if (line.a === i) {
4228
+ line.a = index;
4229
+ }
4230
+ if (line.b === i) {
4231
+ line.b = index;
4232
+ }
4233
+ return line;
4234
+ });
4235
+ }
4236
+ else {
4237
+ const newIndex = newPoints.length;
4238
+ newPoints.push(pt);
4239
+ linesArray.map((line) => {
4240
+ if (line.a === i) {
4241
+ line.a = newIndex;
4242
+ }
4243
+ if (line.b === i) {
4244
+ line.b = newIndex;
4245
+ }
4246
+ return line;
4247
+ });
4248
+ }
4249
+ }
4250
+ const newLines = linesArray.filter((line) => line.a !== line.b);
4251
+ return { points: newPoints, lines: newLines };
4252
+ }
4253
+ /* harmony default export */ const contours_getDeduplicatedVTKPolyDataPoints = ({ getDeduplicatedVTKPolyDataPoints: getDeduplicatedVTKPolyDataPoints_getDeduplicatedVTKPolyDataPoints });
4207
4254
 
4208
- /***/ }),
4209
-
4210
- /***/ 92806:
4211
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4212
-
4213
- /* unused harmony export processContourHoles */
4255
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/detectContourHoles.js
4214
4256
  const getIsPointInsidePolygon = (point, vertices) => {
4215
4257
  const x = point[0];
4216
4258
  const y = point[1];
@@ -4283,65 +4325,19 @@ function processContourHoles(contours, points, useXOR = true) {
4283
4325
  }
4284
4326
  return retContours;
4285
4327
  }
4286
- /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ({ processContourHoles });
4287
-
4288
-
4289
- /***/ }),
4290
-
4291
- /***/ 84045:
4292
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4293
-
4294
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4295
- /* harmony export */ A: () => (/* binding */ findHandlePolylineIndex)
4296
- /* harmony export */ });
4297
- /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
4298
- /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44753);
4299
-
4300
-
4301
- const { isEqual } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities;
4302
- function findHandlePolylineIndex(annotation, handleIndex) {
4303
- const { polyline } = annotation.data.contour;
4304
- const { points } = annotation.data.handles;
4305
- const { length } = points;
4306
- if (handleIndex === length) {
4307
- return polyline.length;
4308
- }
4309
- if (handleIndex < 0) {
4310
- handleIndex = (handleIndex + length) % length;
4311
- }
4312
- if (handleIndex === 0) {
4313
- return 0;
4314
- }
4315
- const handle = points[handleIndex];
4316
- const index = polyline.findIndex((point) => isEqual(handle, point));
4317
- if (index !== -1) {
4318
- return index;
4319
- }
4320
- let closestDistance = Infinity;
4321
- return polyline.reduce((closestIndex, point, testIndex) => {
4322
- const distance = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.squaredDistance */ .eR.squaredDistance(point, handle);
4323
- if (distance < closestDistance) {
4324
- closestDistance = distance;
4325
- return testIndex;
4326
- }
4327
- return closestIndex;
4328
- }, -1);
4329
- }
4330
-
4331
-
4332
- /***/ }),
4328
+ /* harmony default export */ const detectContourHoles = ({ processContourHoles });
4333
4329
 
4334
- /***/ 36392:
4335
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4336
-
4337
- /* unused harmony export generateContourSetsFromLabelmap */
4338
- /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
4339
- /* harmony import */ var _kitware_vtk_js_Filters_General_ImageMarchingSquares__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52754);
4340
- /* harmony import */ var _kitware_vtk_js_Common_Core_DataArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45128);
4341
- /* harmony import */ var _kitware_vtk_js_Common_DataModel_ImageData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51250);
4342
- /* harmony import */ var _contours__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75534);
4343
- /* harmony import */ var _contourFinder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(11716);
4344
- /* harmony import */ var _enums_SegmentationRepresentations__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83946);
4330
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
4331
+ var dist_esm = __webpack_require__(92136);
4332
+ // EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Filters/General/ImageMarchingSquares.js
4333
+ var ImageMarchingSquares = __webpack_require__(52754);
4334
+ // EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/Core/DataArray.js
4335
+ var DataArray = __webpack_require__(45128);
4336
+ // EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/DataModel/ImageData.js
4337
+ var ImageData = __webpack_require__(51250);
4338
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/enums/SegmentationRepresentations.js
4339
+ var SegmentationRepresentations = __webpack_require__(83946);
4340
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/generateContourSetsFromLabelmap.js
4345
4341
 
4346
4342
 
4347
4343
 
@@ -4349,7 +4345,7 @@ function findHandlePolylineIndex(annotation, handleIndex) {
4349
4345
 
4350
4346
 
4351
4347
 
4352
- const { Labelmap } = _enums_SegmentationRepresentations__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A;
4348
+ const { Labelmap } = SegmentationRepresentations/* default */.A;
4353
4349
  function generateContourSetsFromLabelmap({ segmentations }) {
4354
4350
  const { representationData, segments = [0, 1] } = segmentations;
4355
4351
  const { volumeId: segVolumeId } = representationData[Labelmap];
@@ -4452,19 +4448,61 @@ function isSliceEmptyForSegment(sliceIndex, segData, pixelsPerSlice, segIndex) {
4452
4448
  }
4453
4449
 
4454
4450
 
4451
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/RectangleROIStartEndThreshold.js
4452
+ var RectangleROIStartEndThreshold = __webpack_require__(69405);
4453
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/AnnotationToPointData.js
4455
4454
 
4456
- /***/ }),
4455
+ function validateAnnotation(annotation) {
4456
+ if (!annotation?.data) {
4457
+ throw new Error('Tool data is empty');
4458
+ }
4459
+ if (!annotation.metadata || annotation.metadata.referenceImageId) {
4460
+ throw new Error('Tool data is not associated with any imageId');
4461
+ }
4462
+ }
4463
+ class AnnotationToPointData {
4464
+ constructor() {
4465
+ }
4466
+ static { this.TOOL_NAMES = {}; }
4467
+ static convert(annotation, index, metadataProvider) {
4468
+ validateAnnotation(annotation);
4469
+ const { toolName } = annotation.metadata;
4470
+ const toolClass = AnnotationToPointData.TOOL_NAMES[toolName];
4471
+ if (!toolClass) {
4472
+ throw new Error(`Unknown tool type: ${toolName}, cannot convert to RTSSReport`);
4473
+ }
4474
+ const ContourSequence = toolClass.getContourSequence(annotation, metadataProvider);
4475
+ const color = [
4476
+ Math.floor(Math.random() * 255),
4477
+ Math.floor(Math.random() * 255),
4478
+ Math.floor(Math.random() * 255),
4479
+ ];
4480
+ return {
4481
+ ReferencedROINumber: index + 1,
4482
+ ROIDisplayColor: color,
4483
+ ContourSequence,
4484
+ };
4485
+ }
4486
+ static register(toolClass) {
4487
+ AnnotationToPointData.TOOL_NAMES[toolClass.toolName] = toolClass;
4488
+ }
4489
+ }
4490
+ AnnotationToPointData.register(RectangleROIStartEndThreshold/* default */.A);
4491
+ /* harmony default export */ const contours_AnnotationToPointData = ((/* unused pure expression or super */ null && (AnnotationToPointData)));
4457
4492
 
4458
- /***/ 88267:
4459
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4493
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/index.js
4494
+ var stateManagement = __webpack_require__(95778);
4495
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/getContourHolesDataWorld.js
4460
4496
 
4461
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4462
- /* harmony export */ A: () => (/* binding */ getContourHolesDataCanvas)
4463
- /* harmony export */ });
4464
- /* harmony import */ var _getContourHolesDataWorld__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(98043);
4497
+ function getContourHolesDataWorld(annotation) {
4498
+ const childAnnotationUIDs = annotation.childAnnotationUIDs ?? [];
4499
+ return childAnnotationUIDs.map((uid) => (0,stateManagement/* getAnnotation */.gw)(uid).data.contour.polyline);
4500
+ }
4501
+
4502
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/getContourHolesDataCanvas.js
4465
4503
 
4466
4504
  function getContourHolesDataCanvas(annotation, viewport) {
4467
- const worldHoleContours = (0,_getContourHolesDataWorld__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(annotation);
4505
+ const worldHoleContours = getContourHolesDataWorld(annotation);
4468
4506
  const canvasHoleContours = [];
4469
4507
  worldHoleContours.forEach((worldHoleContour) => {
4470
4508
  const numPoints = worldHoleContour.length;
@@ -4477,101 +4515,23 @@ function getContourHolesDataCanvas(annotation, viewport) {
4477
4515
  return canvasHoleContours;
4478
4516
  }
4479
4517
 
4518
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/updateContourPolyline.js
4519
+ var updateContourPolyline = __webpack_require__(89111);
4520
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/segmentation/InterpolationManager/InterpolationManager.js
4521
+ var InterpolationManager_InterpolationManager = __webpack_require__(33836);
4522
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/interpolation/acceptAutogeneratedInterpolations.js
4480
4523
 
4481
- /***/ }),
4482
-
4483
- /***/ 98043:
4484
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4485
-
4486
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4487
- /* harmony export */ A: () => (/* binding */ getContourHolesDataWorld)
4488
- /* harmony export */ });
4489
- /* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(95778);
4490
-
4491
- function getContourHolesDataWorld(annotation) {
4492
- const childAnnotationUIDs = annotation.childAnnotationUIDs ?? [];
4493
- return childAnnotationUIDs.map((uid) => (0,_stateManagement__WEBPACK_IMPORTED_MODULE_0__/* .getAnnotation */ .gw)(uid).data.contour.polyline);
4494
- }
4495
-
4496
-
4497
- /***/ }),
4498
-
4499
- /***/ 19866:
4500
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4501
-
4502
- /* unused harmony export getDeduplicatedVTKPolyDataPoints */
4503
- function getDeduplicatedVTKPolyDataPoints(polyData, bypass = false) {
4504
- const points = polyData.getPoints();
4505
- const lines = polyData.getLines();
4506
- const pointsArray = new Array(points.getNumberOfPoints())
4507
- .fill(0)
4508
- .map((_, i) => points.getPoint(i).slice());
4509
- const linesArray = new Array(lines.getNumberOfCells()).fill(0).map((_, i) => {
4510
- const cell = lines.getCell(i * 3).slice();
4511
- return { a: cell[0], b: cell[1] };
4512
- });
4513
- if (bypass) {
4514
- return { points: pointsArray, lines: linesArray };
4515
- }
4516
- const newPoints = [];
4517
- for (const [i, pt] of pointsArray.entries()) {
4518
- const index = newPoints.findIndex((point) => point[0] === pt[0] && point[1] === pt[1] && point[2] === pt[2]);
4519
- if (index >= 0) {
4520
- linesArray.map((line) => {
4521
- if (line.a === i) {
4522
- line.a = index;
4523
- }
4524
- if (line.b === i) {
4525
- line.b = index;
4526
- }
4527
- return line;
4528
- });
4529
- }
4530
- else {
4531
- const newIndex = newPoints.length;
4532
- newPoints.push(pt);
4533
- linesArray.map((line) => {
4534
- if (line.a === i) {
4535
- line.a = newIndex;
4536
- }
4537
- if (line.b === i) {
4538
- line.b = newIndex;
4539
- }
4540
- return line;
4541
- });
4542
- }
4543
- }
4544
- const newLines = linesArray.filter((line) => line.a !== line.b);
4545
- return { points: newPoints, lines: newLines };
4524
+ function acceptAutogeneratedInterpolations(annotationGroupSelector, selector) {
4525
+ InterpolationManager.acceptAutoGenerated(annotationGroupSelector, selector);
4546
4526
  }
4547
- /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ({ getDeduplicatedVTKPolyDataPoints });
4548
-
4549
-
4550
- /***/ }),
4551
-
4552
- /***/ 75534:
4553
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4554
-
4555
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4556
- /* harmony export */ getContourHolesDataCanvas: () => (/* reexport safe */ _getContourHolesDataCanvas__WEBPACK_IMPORTED_MODULE_7__.A),
4557
- /* harmony export */ updateContourPolyline: () => (/* reexport safe */ _updateContourPolyline__WEBPACK_IMPORTED_MODULE_8__.A)
4558
- /* harmony export */ });
4559
- /* harmony import */ var _areCoplanarContours__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14633);
4560
- /* harmony import */ var _contourFinder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11716);
4561
- /* harmony import */ var _getDeduplicatedVTKPolyDataPoints__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19866);
4562
- /* harmony import */ var _detectContourHoles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(92806);
4563
- /* harmony import */ var _generateContourSetsFromLabelmap__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36392);
4564
- /* harmony import */ var _AnnotationToPointData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(93712);
4565
- /* harmony import */ var _getContourHolesDataWorld__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(98043);
4566
- /* harmony import */ var _getContourHolesDataCanvas__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(88267);
4567
- /* harmony import */ var _updateContourPolyline__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(89111);
4568
- /* harmony import */ var _interpolation_acceptAutogeneratedInterpolations__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(65864);
4569
- /* harmony import */ var _interpolation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(69115);
4570
- /* harmony import */ var _findHandlePolylineIndex__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84045);
4571
- /* harmony import */ var _calculatePerimeter__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(53891);
4572
-
4573
-
4574
4527
 
4528
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/interpolation/index.js
4529
+ var interpolation = __webpack_require__(69115);
4530
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/findHandlePolylineIndex.js
4531
+ var findHandlePolylineIndex = __webpack_require__(84045);
4532
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/calculatePerimeter.js
4533
+ var calculatePerimeter = __webpack_require__(53891);
4534
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/index.js
4575
4535
 
4576
4536
 
4577
4537
 
@@ -4585,17 +4545,7 @@ function getDeduplicatedVTKPolyDataPoints(polyData, bypass = false) {
4585
4545
 
4586
4546
 
4587
4547
 
4588
- /***/ }),
4589
4548
 
4590
- /***/ 65864:
4591
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4592
-
4593
- /* unused harmony export default */
4594
- /* harmony import */ var _segmentation_InterpolationManager_InterpolationManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33836);
4595
-
4596
- function acceptAutogeneratedInterpolations(annotationGroupSelector, selector) {
4597
- InterpolationManager.acceptAutoGenerated(annotationGroupSelector, selector);
4598
- }
4599
4549
 
4600
4550
 
4601
4551
  /***/ }),
@@ -4626,7 +4576,7 @@ function acceptAutogeneratedInterpolations(annotationGroupSelector, selector) {
4626
4576
 
4627
4577
 
4628
4578
  function updateContourPolyline(annotation, polylineData, transforms, options) {
4629
- const { canvasToWorld } = transforms;
4579
+ const { canvasToWorld, worldToCanvas } = transforms;
4630
4580
  const { data } = annotation;
4631
4581
  const { targetWindingDirection } = polylineData;
4632
4582
  let { points: polyline } = polylineData;
@@ -4636,7 +4586,7 @@ function updateContourPolyline(annotation, polylineData, transforms, options) {
4636
4586
  let { closed } = polylineData;
4637
4587
  const numPoints = polyline.length;
4638
4588
  const polylineWorldPoints = new Array(numPoints);
4639
- const currentWindingDirection = _math__WEBPACK_IMPORTED_MODULE_1__.polyline.getWindingDirection(polyline);
4589
+ const currentPolylineWindingDirection = _math__WEBPACK_IMPORTED_MODULE_1__.polyline.getWindingDirection(polyline);
4640
4590
  const parentAnnotation = (0,_stateManagement__WEBPACK_IMPORTED_MODULE_2__/* .getParentAnnotation */ .Ay)(annotation);
4641
4591
  if (closed === undefined) {
4642
4592
  let currentClosedState = false;
@@ -4650,11 +4600,18 @@ function updateContourPolyline(annotation, polylineData, transforms, options) {
4650
4600
  ? parentAnnotation.data.contour.windingDirection * -1
4651
4601
  : targetWindingDirection;
4652
4602
  if (windingDirection === undefined) {
4653
- windingDirection = currentWindingDirection;
4603
+ windingDirection = currentPolylineWindingDirection;
4654
4604
  }
4655
- else if (windingDirection !== currentWindingDirection) {
4605
+ if (windingDirection !== currentPolylineWindingDirection) {
4656
4606
  polyline.reverse();
4657
4607
  }
4608
+ const handlePoints = data.handles.points.map((p) => worldToCanvas(p));
4609
+ if (handlePoints.length > 2) {
4610
+ const currentHandlesWindingDirection = _math__WEBPACK_IMPORTED_MODULE_1__.polyline.getWindingDirection(handlePoints);
4611
+ if (currentHandlesWindingDirection !== windingDirection) {
4612
+ data.handles.points.reverse();
4613
+ }
4614
+ }
4658
4615
  for (let i = 0; i < numPoints; i++) {
4659
4616
  polylineWorldPoints[i] = canvasToWorld(polyline[i]);
4660
4617
  }
@@ -5344,8 +5301,8 @@ var pointInSurroundingSphereCallback = __webpack_require__(5093);
5344
5301
  var getViewportForAnnotation = __webpack_require__(39490);
5345
5302
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/annotationHydration.js
5346
5303
  var annotationHydration = __webpack_require__(25781);
5347
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/index.js
5348
- var contours = __webpack_require__(75534);
5304
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/index.js + 9 modules
5305
+ var contours = __webpack_require__(75908);
5349
5306
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/segmentation/index.js
5350
5307
  var segmentation = __webpack_require__(10351);
5351
5308
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/drawing/index.js + 1 modules
@@ -7805,8 +7762,8 @@ function getBrushThresholdForToolGroup(toolGroupId) {
7805
7762
 
7806
7763
  // UNUSED EXPORTS: default
7807
7764
 
7808
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/index.js
7809
- var contours = __webpack_require__(75534);
7765
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/index.js + 9 modules
7766
+ var contours = __webpack_require__(75908);
7810
7767
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/enums/SegmentationRepresentations.js
7811
7768
  var SegmentationRepresentations = __webpack_require__(83946);
7812
7769
  // EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
@@ -253,8 +253,8 @@ const itemGenerator = props => {
253
253
  /* harmony default export */ const ViewportOverlay = (generateFromConfig({}));
254
254
  // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
255
255
  var core_src = __webpack_require__(75186);
256
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 91 modules
257
- var default_src = __webpack_require__(36822);
256
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 93 modules
257
+ var default_src = __webpack_require__(16944);
258
258
  ;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/dicomWebClient.ts
259
259
 
260
260
 
@@ -791,7 +791,7 @@ function modeFactory({
791
791
  /** List of extensions that are used by the mode */
792
792
  extensions: extensionDependencies,
793
793
  /** HangingProtocol used by the mode */
794
- // hangingProtocol: [''],
794
+ hangingProtocol: ['@ohif/mnGrid'],
795
795
  /** SopClassHandlers used by the mode */
796
796
  sopClassHandlers: [ohif.sopClassHandler, segmentation.sopClassHandler],
797
797
  /** hotkeys for mode */