larvitar 2.0.5 → 2.0.6

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 (71) hide show
  1. package/README.md +2 -2
  2. package/dist/larvitar.js +1 -1
  3. package/package.json +6 -2
  4. package/.github/workflows/build-docs.yml +0 -59
  5. package/.github/workflows/codeql-analysis.yml +0 -71
  6. package/.github/workflows/deploy.yml +0 -37
  7. package/.vscode/settings.json +0 -4
  8. package/CODE_OF_CONDUCT.md +0 -76
  9. package/MIGRATION.md +0 -25
  10. package/bundler/webpack.common.js +0 -27
  11. package/bundler/webpack.dev.js +0 -23
  12. package/bundler/webpack.prod.js +0 -19
  13. package/decs.d.ts +0 -12
  14. package/imaging/MetaDataReadable.ts +0 -42
  15. package/imaging/MetaDataTypes.ts +0 -3491
  16. package/imaging/dataDictionary.json +0 -21866
  17. package/imaging/imageAnonymization.ts +0 -135
  18. package/imaging/imageColormaps.ts +0 -217
  19. package/imaging/imageContours.ts +0 -196
  20. package/imaging/imageIo.ts +0 -251
  21. package/imaging/imageLayers.ts +0 -121
  22. package/imaging/imageLoading.ts +0 -299
  23. package/imaging/imageParsing.ts +0 -444
  24. package/imaging/imagePresets.ts +0 -156
  25. package/imaging/imageRendering.ts +0 -1091
  26. package/imaging/imageReslice.ts +0 -87
  27. package/imaging/imageStore.ts +0 -487
  28. package/imaging/imageTags.ts +0 -609
  29. package/imaging/imageTools.js +0 -708
  30. package/imaging/imageUtils.ts +0 -1079
  31. package/imaging/loaders/commonLoader.ts +0 -275
  32. package/imaging/loaders/dicomLoader.ts +0 -66
  33. package/imaging/loaders/fileLoader.ts +0 -71
  34. package/imaging/loaders/multiframeLoader.ts +0 -435
  35. package/imaging/loaders/nrrdLoader.ts +0 -630
  36. package/imaging/loaders/resliceLoader.ts +0 -205
  37. package/imaging/monitors/memory.ts +0 -151
  38. package/imaging/monitors/performance.ts +0 -34
  39. package/imaging/parsers/ecg.ts +0 -54
  40. package/imaging/parsers/nrrd.js +0 -485
  41. package/imaging/tools/README.md +0 -27
  42. package/imaging/tools/custom/4dSliceScrollTool.js +0 -146
  43. package/imaging/tools/custom/BorderMagnifyTool.js +0 -99
  44. package/imaging/tools/custom/contourTool.js +0 -1884
  45. package/imaging/tools/custom/diameterTool.js +0 -141
  46. package/imaging/tools/custom/editMaskTool.js +0 -141
  47. package/imaging/tools/custom/ellipticalRoiOverlayTool.js +0 -534
  48. package/imaging/tools/custom/polygonSegmentationMixin.js +0 -245
  49. package/imaging/tools/custom/polylineScissorsTool.js +0 -59
  50. package/imaging/tools/custom/rectangleRoiOverlayTool.js +0 -564
  51. package/imaging/tools/custom/seedTool.js +0 -342
  52. package/imaging/tools/custom/setLabelMap3D.ts +0 -242
  53. package/imaging/tools/custom/thresholdsBrushTool.js +0 -161
  54. package/imaging/tools/default.ts +0 -594
  55. package/imaging/tools/interaction.ts +0 -266
  56. package/imaging/tools/io.ts +0 -229
  57. package/imaging/tools/main.ts +0 -427
  58. package/imaging/tools/segmentation.ts +0 -532
  59. package/imaging/tools/segmentations.md +0 -38
  60. package/imaging/tools/state.ts +0 -74
  61. package/imaging/tools/strategies/eraseFreehand.js +0 -76
  62. package/imaging/tools/strategies/fillFreehand.js +0 -79
  63. package/imaging/tools/strategies/index.js +0 -2
  64. package/imaging/tools/types.d.ts +0 -243
  65. package/imaging/types.d.ts +0 -200
  66. package/imaging/waveforms/ecg.ts +0 -191
  67. package/index.ts +0 -431
  68. package/jsdoc.json +0 -52
  69. package/rollup.config.js +0 -51
  70. package/template/.gitkeep +0 -0
  71. package/tsconfig.json +0 -102
@@ -1,161 +0,0 @@
1
- /** @module imaging/tools/custom/thresholdBrushTool
2
- * @desc This file provides functionalities for
3
- * a brush tool with thresholds using a
4
- * custom cornestone tool
5
- */
6
-
7
- // external libraries
8
- import cornerstoneTools from "cornerstone-tools";
9
- const external = cornerstoneTools.external;
10
- const BaseBrushTool = cornerstoneTools.importInternal("base/BaseBrushTool");
11
- const segmentationUtils = cornerstoneTools.importInternal(
12
- "util/segmentationUtils"
13
- );
14
- const drawBrushPixels = segmentationUtils.drawBrushPixels;
15
- const getCircle = segmentationUtils.getCircle;
16
- const segmentationModule = cornerstoneTools.getModule("segmentation");
17
-
18
- /**
19
- * @public
20
- * @class ThresholdsBrushTool
21
- * @memberof Tools.Brush
22
- * @classdesc Tool for drawing segmentations on an image (only pixels inside thresholds)
23
- * @extends Tools.Base.BaseBrushTool
24
- */
25
- export default class ThresholdsBrushTool extends BaseBrushTool {
26
- constructor(props = {}) {
27
- const defaultProps = {
28
- name: "ThresholdsBrush",
29
- supportedInteractionTypes: ["Mouse", "Touch"],
30
- configuration: {},
31
- mixins: ["renderBrushMixin"]
32
- };
33
-
34
- super(props, defaultProps);
35
-
36
- this.touchDragCallback = this._paint.bind(this);
37
- }
38
-
39
- /**
40
- * Paints the data to the labelmap.
41
- *
42
- * @protected
43
- * @param {Object} evt The data object associated with the event.
44
- * @returns {void}
45
- */
46
- _paint(evt) {
47
- const { configuration } = segmentationModule;
48
- const eventData = evt.detail;
49
- const { rows, columns } = eventData.image;
50
- const { x, y } = eventData.currentPoints.image;
51
-
52
- if (x < 0 || x > columns || y < 0 || y > rows) {
53
- return;
54
- }
55
-
56
- const radius = configuration.radius;
57
- const thresholds = configuration.thresholds;
58
- const { labelmap2D, labelmap3D, shouldErase } = this.paintEventData;
59
-
60
- let pointerArray = [];
61
-
62
- // threshold should be applied only if painting, not erasing
63
- if (shouldErase) {
64
- pointerArray = getCircle(radius, rows, columns, x, y);
65
- } else {
66
- pointerArray = getCircleWithThreshold(
67
- eventData.image,
68
- radius,
69
- thresholds,
70
- x,
71
- y
72
- );
73
- }
74
-
75
- // Draw / Erase the active color.
76
- drawBrushPixels(
77
- pointerArray,
78
- labelmap2D.pixelData,
79
- labelmap3D.activeSegmentIndex,
80
- columns,
81
- shouldErase
82
- );
83
-
84
- external.cornerstone.updateImage(evt.detail.element);
85
- }
86
- }
87
-
88
- /**
89
- * Gets the pixels within the circle if inside thresholds (included)
90
- * NOTE: thresholds values must consider slope and intercept (MO value)
91
- * @method
92
- * @name getCircleWithThreshold
93
- *
94
- * @param {Object} image The target image.
95
- * @param {number} radius The radius of the circle.
96
- * @param {Array} thresholds The thresholds array [min, max].
97
- * @param {number} [xCoord = 0] The x-location of the center of the circle.
98
- * @param {number} [yCoord = 0] The y-location of the center of the circle.
99
- * @returns {Array.number[]} Array of pixels contained within the circle.
100
- */
101
- function getCircleWithThreshold(
102
- image,
103
- radius,
104
- thresholds,
105
- xCoord = 0,
106
- yCoord = 0
107
- ) {
108
- const pixelData = image.getPixelData();
109
- const { rows, columns } = image;
110
- const x0 = Math.floor(xCoord);
111
- const y0 = Math.floor(yCoord);
112
- let circleArray = [];
113
-
114
- // if no thresholds, set all pixels range
115
- if (!thresholds) {
116
- thresholds = [image.minPixelValue, image.maxPixelValue];
117
- }
118
-
119
- function isInsideThresholds(v, t) {
120
- return v >= t[0] && v <= t[1];
121
- }
122
-
123
- if (radius === 1) {
124
- let value = pixelData[y0 * rows + x0];
125
- let moValue = value * image.slope + image.intercept;
126
- if (isInsideThresholds(moValue, thresholds)) {
127
- circleArray = [[x0, y0]];
128
- }
129
- return circleArray;
130
- }
131
-
132
- let index = 0;
133
-
134
- for (let y = -radius; y <= radius; y++) {
135
- const yCoord = y0 + y;
136
-
137
- if (yCoord > rows || yCoord < 0) {
138
- continue;
139
- }
140
-
141
- for (let x = -radius; x <= radius; x++) {
142
- const xCoord = x0 + x;
143
-
144
- if (xCoord >= columns || xCoord < 0) {
145
- continue;
146
- }
147
-
148
- let value = pixelData[yCoord * rows + xCoord];
149
- let moValue = value * image.slope + image.intercept;
150
-
151
- if (
152
- x * x + y * y < radius * radius &&
153
- isInsideThresholds(moValue, thresholds)
154
- ) {
155
- circleArray[index++] = [x0 + x, y0 + y];
156
- }
157
- }
158
- }
159
-
160
- return circleArray;
161
- }