larvitar 2.0.4 → 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 (72) hide show
  1. package/README.md +2 -2
  2. package/dist/larvitar.js +5 -3
  3. package/dist/larvitar.js.map +1 -1
  4. package/package.json +6 -2
  5. package/.github/workflows/build-docs.yml +0 -59
  6. package/.github/workflows/codeql-analysis.yml +0 -71
  7. package/.github/workflows/deploy.yml +0 -37
  8. package/.vscode/settings.json +0 -4
  9. package/CODE_OF_CONDUCT.md +0 -76
  10. package/MIGRATION.md +0 -25
  11. package/bundler/webpack.common.js +0 -27
  12. package/bundler/webpack.dev.js +0 -23
  13. package/bundler/webpack.prod.js +0 -19
  14. package/decs.d.ts +0 -12
  15. package/imaging/MetaDataReadable.ts +0 -42
  16. package/imaging/MetaDataTypes.ts +0 -3491
  17. package/imaging/dataDictionary.json +0 -21866
  18. package/imaging/imageAnonymization.ts +0 -135
  19. package/imaging/imageColormaps.ts +0 -217
  20. package/imaging/imageContours.ts +0 -196
  21. package/imaging/imageIo.ts +0 -251
  22. package/imaging/imageLayers.ts +0 -121
  23. package/imaging/imageLoading.ts +0 -299
  24. package/imaging/imageParsing.ts +0 -444
  25. package/imaging/imagePresets.ts +0 -156
  26. package/imaging/imageRendering.ts +0 -1091
  27. package/imaging/imageReslice.ts +0 -87
  28. package/imaging/imageStore.ts +0 -487
  29. package/imaging/imageTags.ts +0 -609
  30. package/imaging/imageTools.js +0 -708
  31. package/imaging/imageUtils.ts +0 -1079
  32. package/imaging/loaders/commonLoader.ts +0 -275
  33. package/imaging/loaders/dicomLoader.ts +0 -66
  34. package/imaging/loaders/fileLoader.ts +0 -71
  35. package/imaging/loaders/multiframeLoader.ts +0 -435
  36. package/imaging/loaders/nrrdLoader.ts +0 -630
  37. package/imaging/loaders/resliceLoader.ts +0 -205
  38. package/imaging/monitors/memory.ts +0 -151
  39. package/imaging/monitors/performance.ts +0 -34
  40. package/imaging/parsers/ecg.ts +0 -54
  41. package/imaging/parsers/nrrd.js +0 -485
  42. package/imaging/tools/README.md +0 -27
  43. package/imaging/tools/custom/4dSliceScrollTool.js +0 -146
  44. package/imaging/tools/custom/BorderMagnifyTool.js +0 -99
  45. package/imaging/tools/custom/contourTool.js +0 -1884
  46. package/imaging/tools/custom/diameterTool.js +0 -141
  47. package/imaging/tools/custom/editMaskTool.js +0 -141
  48. package/imaging/tools/custom/ellipticalRoiOverlayTool.js +0 -534
  49. package/imaging/tools/custom/polygonSegmentationMixin.js +0 -245
  50. package/imaging/tools/custom/polylineScissorsTool.js +0 -59
  51. package/imaging/tools/custom/rectangleRoiOverlayTool.js +0 -564
  52. package/imaging/tools/custom/seedTool.js +0 -342
  53. package/imaging/tools/custom/setLabelMap3D.ts +0 -242
  54. package/imaging/tools/custom/thresholdsBrushTool.js +0 -161
  55. package/imaging/tools/default.ts +0 -594
  56. package/imaging/tools/interaction.ts +0 -266
  57. package/imaging/tools/io.ts +0 -229
  58. package/imaging/tools/main.ts +0 -424
  59. package/imaging/tools/segmentation.ts +0 -532
  60. package/imaging/tools/segmentations.md +0 -38
  61. package/imaging/tools/state.ts +0 -74
  62. package/imaging/tools/strategies/eraseFreehand.js +0 -76
  63. package/imaging/tools/strategies/fillFreehand.js +0 -79
  64. package/imaging/tools/strategies/index.js +0 -2
  65. package/imaging/tools/types.d.ts +0 -243
  66. package/imaging/types.d.ts +0 -200
  67. package/imaging/waveforms/ecg.ts +0 -191
  68. package/index.ts +0 -431
  69. package/jsdoc.json +0 -52
  70. package/rollup.config.js +0 -51
  71. package/template/.gitkeep +0 -0
  72. package/tsconfig.json +0 -102
@@ -1,141 +0,0 @@
1
- /** @module imaging/tools/custom/diameterTool
2
- * @desc This file provides functionalities for
3
- * a custom diameter cornestone tool
4
- */
5
-
6
- // external libraries
7
- import csTools from "cornerstone-tools";
8
- const BidirectionalTool = csTools.BidirectionalTool;
9
- import { each } from "lodash";
10
-
11
- // internal libraries
12
- import { addToolStateSingleSlice } from "../../imageTools";
13
-
14
- /**
15
- * @public
16
- * @class DiameterTool
17
- * @memberof Tools.Annotation
18
- * @classdesc Create and position an annotation that measures the
19
- * length and width of a region.
20
- * @extends Tools.Base.BaseAnnotationTool
21
- */
22
-
23
- export class DiameterTool extends BidirectionalTool {
24
- constructor(props) {
25
- const defaultProps = {
26
- name: "Diameter",
27
- isBeenModified: false,
28
- lastData: null
29
- };
30
-
31
- super(props, defaultProps);
32
-
33
- this.name = "Diameter";
34
-
35
- this.initializeTool(props.dataArray, "cmprAxial", props.seriesId);
36
- }
37
-
38
- initializeTool(dataArray, elementId, seriesId) {
39
- let element = document.getElementById(elementId);
40
-
41
- each(dataArray, singleData => {
42
- let data = {
43
- toolType: "Diameter",
44
- name: singleData.id.toString(),
45
- isCreating: true,
46
- visible: true,
47
- active: false,
48
- invalidated: false,
49
- handles: {
50
- start: {
51
- x: singleData.x1,
52
- y: singleData.y1,
53
- index: 0,
54
- drawnIndependently: false,
55
- allowedOutsideImage: false,
56
- highlight: true,
57
- active: false
58
- },
59
- end: {
60
- x: singleData.x2,
61
- y: singleData.y2,
62
- index: 1,
63
- drawnIndependently: false,
64
- allowedOutsideImage: false,
65
- highlight: true,
66
- active: false
67
- },
68
- perpendicularStart: {
69
- x: singleData.x3,
70
- y: singleData.y3,
71
- index: 2,
72
- drawnIndependently: false,
73
- allowedOutsideImage: false,
74
- highlight: true,
75
- active: false,
76
- locked: false
77
- },
78
- perpendicularEnd: {
79
- x: singleData.x4,
80
- y: singleData.y4,
81
- index: 3,
82
- drawnIndependently: false,
83
- allowedOutsideImage: false,
84
- highlight: true,
85
- active: false
86
- },
87
- textBox: {
88
- x: singleData.value_max,
89
- y: singleData.value_min,
90
- index: null,
91
- drawnIndependently: true,
92
- allowedOutsideImage: true,
93
- highlight: false,
94
- active: false,
95
- hasMoved: true,
96
- movesIndependently: false,
97
- hasBoundingBox: true,
98
- boundingBox: {
99
- width: 59.6484375,
100
- height: 47,
101
- left: 165.02487562189057,
102
- top: 240.53482587064684
103
- }
104
- }
105
- },
106
- longestDiameter: singleData.value_max.toString(),
107
- shortestDiameter: singleData.value_min.toString()
108
- };
109
-
110
- let sliceNumber = singleData.slice;
111
-
112
- // add to master viewport
113
- addToolStateSingleSlice(element, this.name, data, sliceNumber, seriesId);
114
- });
115
-
116
- csTools.external.cornerstone.updateImage(element);
117
- }
118
-
119
- passiveCallback(element) {
120
- element.addEventListener(
121
- "cornerstonetoolsmeasurementmodified",
122
- this.measureOnGoingCallback
123
- );
124
- }
125
-
126
- measureOnGoingCallback(event) {
127
- if (!this.isBeenModified) {
128
- event.target.addEventListener("mouseup", function (evt) {
129
- this.__proto__.measureEndCallback(evt);
130
- });
131
- }
132
- this.isBeenModified = true;
133
- this.lastData = event.detail.measurementData;
134
- }
135
-
136
- measureEndCallback(event) {
137
- event.element.removeEventListener("mouseup", this.measureEndCallback);
138
- this.isBeenModified = false;
139
- this.lastData = null;
140
- }
141
- }
@@ -1,141 +0,0 @@
1
- /** @module imaging/tools/custom/editMaskTool
2
- * @desc This file provides functionalities for
3
- * a custom mask cornestone tool
4
- */
5
-
6
- // external libraries
7
- import csTools from "cornerstone-tools";
8
- const external = csTools.external;
9
- const BaseBrushTool = csTools.importInternal("base/BaseBrushTool");
10
- const segmentationUtils = csTools.importInternal("util/segmentationUtils");
11
- const getCircle = segmentationUtils.getCircle;
12
- const drawBrushPixels = segmentationUtils.drawBrushPixels;
13
- const getModule = csTools.getModule;
14
- const { configuration, setters } = getModule("segmentation");
15
-
16
- /**
17
- * @public
18
- * @class BrushTool
19
- * @memberof Tools.Brush
20
- * @classdesc Tool for drawing segmentations on an image.
21
- * @extends Tools.Base.BaseBrushTool
22
- */
23
- export class EditMaskTool extends BaseBrushTool {
24
- constructor(props = {}) {
25
- const defaultProps = {
26
- name: "EditMask",
27
- supportedInteractionTypes: ["Mouse"],
28
- configuration: {},
29
- mixins: ["renderBrushMixin"]
30
- };
31
-
32
- super(props, defaultProps);
33
- this.touchDragCallback = this._paint.bind(this);
34
-
35
- this._initializeTool(props.mask, props.initCallback);
36
- }
37
-
38
- _initializeTool(mask, callback) {
39
- let enabledElement = csTools.external.cornerstone
40
- .getEnabledElements()
41
- .filter(e => e.element.id == "axial")
42
- .pop();
43
-
44
- // TODO improve performances!
45
-
46
- console.time("...typedToNormal");
47
- let pixelsNormalArray = Array.prototype.slice.call(mask.data);
48
- console.timeEnd("...typedToNormal");
49
-
50
- console.time("...normalToTyped");
51
- let pixelData = Uint16Array.from(pixelsNormalArray);
52
- console.timeEnd("...normalToTyped");
53
-
54
- let labelmapIndex = 1;
55
-
56
- let segmentsOnLabelmapArray = new Array(mask.sizes[2]).fill([
57
- labelmapIndex
58
- ]);
59
-
60
- setters.labelmap3DForElement(
61
- enabledElement.element,
62
- pixelData.buffer,
63
- labelmapIndex,
64
- [],
65
- segmentsOnLabelmapArray,
66
- 0
67
- );
68
-
69
- csTools.external.cornerstone.updateImage(enabledElement.element);
70
-
71
- if (callback) {
72
- callback();
73
- }
74
- // SIMPLE WAY --- AS FALLBACK :
75
-
76
- // labelmap3D.labelmaps2D = [];
77
-
78
- // for (let f = 0; f < 110; f++) {
79
- // let pixels = mask.data.slice(f * 512 * 512, (f + 1) * 512 * 512);
80
- // let pixelsNormalArray = Array.prototype.slice.call(pixels);
81
- // // let pixelData = new Uint16Array();
82
- // let pixelData = Uint16Array.from(pixelsNormalArray);
83
- // labelmap3D.labelmaps2D.push({
84
- // pixelData: pixelData,
85
- // segmentsOnLabelmap: [labelmapIndex]
86
- // });
87
- // }
88
- }
89
-
90
- activeCallback(element, options) {
91
- switch (options.force) {
92
- case "delete":
93
- this.configuration.alwaysEraseOnClick = true;
94
- break;
95
- case "add":
96
- this.preventCtrl();
97
- break;
98
- default:
99
- this.configuration.alwaysEraseOnClick = false;
100
- }
101
- }
102
-
103
- preventCtrl() {
104
- this.__proto__.__proto__._isCtrlDown = function () {
105
- return false;
106
- };
107
- }
108
-
109
- /**
110
- * Paints the data to the labelmap.
111
- *
112
- * @protected
113
- * @param {Object} evt The data object associated with the event.
114
- * @returns {void}
115
- */
116
- _paint(evt) {
117
- const eventData = evt.detail;
118
- const { rows, columns } = eventData.image;
119
- const { x, y } = eventData.currentPoints.image;
120
-
121
- if (x < 0 || x > columns || y < 0 || y > rows) {
122
- return;
123
- }
124
-
125
- const radius = configuration.radius;
126
- const pointerArray = getCircle(radius, rows, columns, x, y);
127
-
128
- const { labelmap2D, labelmap3D, shouldErase } = this.paintEventData;
129
-
130
- // Draw / Erase the active color.
131
- drawBrushPixels(
132
- pointerArray,
133
- labelmap2D.pixelData,
134
- labelmap3D.activeSegmentIndex,
135
- columns,
136
- shouldErase
137
- );
138
-
139
- external.cornerstone.updateImage(evt.detail.element);
140
- }
141
- }