@cornerstonejs/tools 1.73.0 → 1.74.1

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.
@@ -1,3 +1,4 @@
1
+ import type { Types } from '@cornerstonejs/core';
1
2
  declare type Statistics = {
2
3
  name: string;
3
4
  label?: string;
@@ -11,12 +12,12 @@ declare type NamedStatistics = {
11
12
  max: Statistics & {
12
13
  name: 'max';
13
14
  };
15
+ min: Statistics & {
16
+ name: 'min';
17
+ };
14
18
  stdDev: Statistics & {
15
19
  name: 'stdDev';
16
20
  };
17
- stdDevWithSumSquare: Statistics & {
18
- name: 'stdDevWithSumSquare';
19
- };
20
21
  count: Statistics & {
21
22
  name: 'count';
22
23
  };
@@ -26,9 +27,10 @@ declare type NamedStatistics = {
26
27
  volume?: Statistics & {
27
28
  name: 'volume';
28
29
  };
29
- circumferance?: Statistics & {
30
- name: 'circumferance';
30
+ circumference?: Statistics & {
31
+ name: 'circumference';
31
32
  };
33
+ pointsInShape?: Types.PointsManager<Types.Point3>;
32
34
  array: Statistics[];
33
35
  };
34
36
  export type { Statistics, NamedStatistics };
@@ -2,12 +2,20 @@ import { NamedStatistics } from '../../../types';
2
2
  import Calculator from './Calculator';
3
3
  export default class BasicStatsCalculator extends Calculator {
4
4
  private static max;
5
+ private static min;
5
6
  private static sum;
6
- private static sumSquares;
7
- private static squaredDiffSum;
8
7
  private static count;
9
- static statsCallback: ({ value: newValue }: {
8
+ private static runMean;
9
+ private static m2;
10
+ private static pointsInShape;
11
+ static statsInit(options: {
12
+ noPointsCollection: boolean;
13
+ }): void;
14
+ static statsCallback: ({ value: newValue, pointLPS }: {
10
15
  value: any;
16
+ pointLPS?: any;
11
17
  }) => void;
12
- static getStatistics: () => NamedStatistics;
18
+ static getStatistics: (options?: {
19
+ unit: string;
20
+ }) => NamedStatistics;
13
21
  }
@@ -4,59 +4,78 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  var _a;
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
+ const core_1 = require("@cornerstonejs/core");
7
8
  const Calculator_1 = __importDefault(require("./Calculator"));
9
+ const { PointsManager } = core_1.utilities;
8
10
  class BasicStatsCalculator extends Calculator_1.default {
11
+ static statsInit(options) {
12
+ if (options.noPointsCollection) {
13
+ BasicStatsCalculator.pointsInShape = null;
14
+ }
15
+ }
9
16
  }
10
17
  exports.default = BasicStatsCalculator;
11
18
  _a = BasicStatsCalculator;
12
19
  BasicStatsCalculator.max = [-Infinity];
20
+ BasicStatsCalculator.min = [Infinity];
13
21
  BasicStatsCalculator.sum = [0];
14
- BasicStatsCalculator.sumSquares = [0];
15
- BasicStatsCalculator.squaredDiffSum = [0];
16
22
  BasicStatsCalculator.count = 0;
17
- BasicStatsCalculator.statsCallback = ({ value: newValue }) => {
23
+ BasicStatsCalculator.runMean = [0];
24
+ BasicStatsCalculator.m2 = [0];
25
+ BasicStatsCalculator.pointsInShape = PointsManager.create3(1024);
26
+ BasicStatsCalculator.statsCallback = ({ value: newValue, pointLPS = null }) => {
27
+ var _b;
18
28
  if (Array.isArray(newValue) &&
19
29
  newValue.length > 1 &&
20
30
  _a.max.length === 1) {
21
31
  _a.max.push(_a.max[0], _a.max[0]);
32
+ _a.min.push(_a.min[0], _a.min[0]);
22
33
  _a.sum.push(_a.sum[0], _a.sum[0]);
23
- _a.sumSquares.push(_a.sumSquares[0], _a.sumSquares[0]);
24
- _a.squaredDiffSum.push(_a.squaredDiffSum[0], _a.squaredDiffSum[0]);
34
+ _a.runMean.push(0, 0);
35
+ _a.m2.push(_a.m2[0], _a.m2[0]);
25
36
  }
37
+ (_b = _a.pointsInShape) === null || _b === void 0 ? void 0 : _b.push(pointLPS);
26
38
  const newArray = Array.isArray(newValue) ? newValue : [newValue];
27
39
  _a.count += 1;
28
- _a.max.forEach((it, idx) => (_a.max[idx] = Math.max(it, newArray[idx])));
29
- _a.sum.map((it, idx) => (_a.sum[idx] += newArray[idx]));
30
- _a.sumSquares.map((it, idx) => (_a.sumSquares[idx] += Math.pow(newArray[idx], 2)));
31
- _a.squaredDiffSum.map((it, idx) => (_a.squaredDiffSum[idx] += Math.pow(newArray[idx] - _a.sum[idx] / _a.count, 2)));
40
+ _a.max.map((it, idx) => {
41
+ const value = newArray[idx];
42
+ const delta = value - _a.runMean[idx];
43
+ _a.sum[idx] += value;
44
+ _a.runMean[idx] += delta / _a.count;
45
+ const delta2 = value - _a.runMean[idx];
46
+ _a.m2[idx] += delta * delta2;
47
+ _a.min[idx] = Math.min(_a.min[idx], value);
48
+ _a.max[idx] = Math.max(it, value);
49
+ });
32
50
  };
33
- BasicStatsCalculator.getStatistics = () => {
51
+ BasicStatsCalculator.getStatistics = (options) => {
34
52
  const mean = _a.sum.map((sum) => sum / _a.count);
35
- const stdDev = _a.squaredDiffSum.map((squaredDiffSum) => Math.sqrt(squaredDiffSum / _a.count));
36
- const stdDevWithSumSquare = _a.sumSquares.map((it, idx) => Math.sqrt(_a.sumSquares[idx] / _a.count - Math.pow(mean[idx], 2)));
53
+ const stdDev = _a.m2.map((squaredDiffSum) => Math.sqrt(squaredDiffSum / _a.count));
54
+ const unit = (options === null || options === void 0 ? void 0 : options.unit) || null;
37
55
  const named = {
38
56
  max: {
39
57
  name: 'max',
40
58
  label: 'Max Pixel',
41
59
  value: singleArrayAsNumber(_a.max),
42
- unit: null,
60
+ unit,
61
+ },
62
+ min: {
63
+ name: 'min',
64
+ label: 'Min Pixel',
65
+ value: singleArrayAsNumber(_a.min),
66
+ unit,
43
67
  },
44
68
  mean: {
45
69
  name: 'mean',
46
70
  label: 'Mean Pixel',
47
71
  value: singleArrayAsNumber(mean),
48
- unit: null,
72
+ unit,
49
73
  },
50
74
  stdDev: {
51
75
  name: 'stdDev',
52
76
  label: 'Standard Deviation',
53
77
  value: singleArrayAsNumber(stdDev),
54
- unit: null,
55
- },
56
- stdDevWithSumSquare: {
57
- name: 'stdDevWithSumSquare',
58
- value: singleArrayAsNumber(stdDevWithSumSquare),
59
- unit: null,
78
+ unit,
60
79
  },
61
80
  count: {
62
81
  name: 'count',
@@ -64,14 +83,17 @@ BasicStatsCalculator.getStatistics = () => {
64
83
  value: _a.count,
65
84
  unit: null,
66
85
  },
86
+ pointsInShape: _a.pointsInShape,
67
87
  array: [],
68
88
  };
69
- named.array.push(named.max, named.mean, named.stdDev, named.stdDevWithSumSquare, named.count);
89
+ named.array.push(named.max, named.mean, named.stdDev, named.stdDev, named.count);
70
90
  _a.max = [-Infinity];
91
+ _a.min = [Infinity];
71
92
  _a.sum = [0];
72
- _a.sumSquares = [0];
73
- _a.squaredDiffSum = [0];
93
+ _a.m2 = [0];
94
+ _a.runMean = [0];
74
95
  _a.count = 0;
96
+ _a.pointsInShape = PointsManager.create3(1024);
75
97
  return named;
76
98
  };
77
99
  function singleArrayAsNumber(val) {
@@ -1 +1 @@
1
- {"version":3,"file":"BasicStatsCalculator.js","sourceRoot":"","sources":["../../../../../src/utilities/math/basic/BasicStatsCalculator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BasicStatsCalculator.js","sourceRoot":"","sources":["../../../../../src/utilities/math/basic/BasicStatsCalculator.ts"],"names":[],"mappings":"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"}
@@ -1,53 +1,71 @@
1
+ import { utilities } from '@cornerstonejs/core';
1
2
  import Calculator from './Calculator';
3
+ const { PointsManager } = utilities;
2
4
  export default class BasicStatsCalculator extends Calculator {
3
5
  static { this.max = [-Infinity]; }
6
+ static { this.min = [Infinity]; }
4
7
  static { this.sum = [0]; }
5
- static { this.sumSquares = [0]; }
6
- static { this.squaredDiffSum = [0]; }
7
8
  static { this.count = 0; }
8
- static { this.statsCallback = ({ value: newValue }) => {
9
+ static { this.runMean = [0]; }
10
+ static { this.m2 = [0]; }
11
+ static { this.pointsInShape = PointsManager.create3(1024); }
12
+ static statsInit(options) {
13
+ if (options.noPointsCollection) {
14
+ BasicStatsCalculator.pointsInShape = null;
15
+ }
16
+ }
17
+ static { this.statsCallback = ({ value: newValue, pointLPS = null }) => {
9
18
  if (Array.isArray(newValue) &&
10
19
  newValue.length > 1 &&
11
20
  this.max.length === 1) {
12
21
  this.max.push(this.max[0], this.max[0]);
22
+ this.min.push(this.min[0], this.min[0]);
13
23
  this.sum.push(this.sum[0], this.sum[0]);
14
- this.sumSquares.push(this.sumSquares[0], this.sumSquares[0]);
15
- this.squaredDiffSum.push(this.squaredDiffSum[0], this.squaredDiffSum[0]);
24
+ this.runMean.push(0, 0);
25
+ this.m2.push(this.m2[0], this.m2[0]);
16
26
  }
27
+ this.pointsInShape?.push(pointLPS);
17
28
  const newArray = Array.isArray(newValue) ? newValue : [newValue];
18
29
  this.count += 1;
19
- this.max.forEach((it, idx) => (this.max[idx] = Math.max(it, newArray[idx])));
20
- this.sum.map((it, idx) => (this.sum[idx] += newArray[idx]));
21
- this.sumSquares.map((it, idx) => (this.sumSquares[idx] += newArray[idx] ** 2));
22
- this.squaredDiffSum.map((it, idx) => (this.squaredDiffSum[idx] += Math.pow(newArray[idx] - this.sum[idx] / this.count, 2)));
30
+ this.max.map((it, idx) => {
31
+ const value = newArray[idx];
32
+ const delta = value - this.runMean[idx];
33
+ this.sum[idx] += value;
34
+ this.runMean[idx] += delta / this.count;
35
+ const delta2 = value - this.runMean[idx];
36
+ this.m2[idx] += delta * delta2;
37
+ this.min[idx] = Math.min(this.min[idx], value);
38
+ this.max[idx] = Math.max(it, value);
39
+ });
23
40
  }; }
24
- static { this.getStatistics = () => {
41
+ static { this.getStatistics = (options) => {
25
42
  const mean = this.sum.map((sum) => sum / this.count);
26
- const stdDev = this.squaredDiffSum.map((squaredDiffSum) => Math.sqrt(squaredDiffSum / this.count));
27
- const stdDevWithSumSquare = this.sumSquares.map((it, idx) => Math.sqrt(this.sumSquares[idx] / this.count - mean[idx] ** 2));
43
+ const stdDev = this.m2.map((squaredDiffSum) => Math.sqrt(squaredDiffSum / this.count));
44
+ const unit = options?.unit || null;
28
45
  const named = {
29
46
  max: {
30
47
  name: 'max',
31
48
  label: 'Max Pixel',
32
49
  value: singleArrayAsNumber(this.max),
33
- unit: null,
50
+ unit,
51
+ },
52
+ min: {
53
+ name: 'min',
54
+ label: 'Min Pixel',
55
+ value: singleArrayAsNumber(this.min),
56
+ unit,
34
57
  },
35
58
  mean: {
36
59
  name: 'mean',
37
60
  label: 'Mean Pixel',
38
61
  value: singleArrayAsNumber(mean),
39
- unit: null,
62
+ unit,
40
63
  },
41
64
  stdDev: {
42
65
  name: 'stdDev',
43
66
  label: 'Standard Deviation',
44
67
  value: singleArrayAsNumber(stdDev),
45
- unit: null,
46
- },
47
- stdDevWithSumSquare: {
48
- name: 'stdDevWithSumSquare',
49
- value: singleArrayAsNumber(stdDevWithSumSquare),
50
- unit: null,
68
+ unit,
51
69
  },
52
70
  count: {
53
71
  name: 'count',
@@ -55,14 +73,17 @@ export default class BasicStatsCalculator extends Calculator {
55
73
  value: this.count,
56
74
  unit: null,
57
75
  },
76
+ pointsInShape: this.pointsInShape,
58
77
  array: [],
59
78
  };
60
- named.array.push(named.max, named.mean, named.stdDev, named.stdDevWithSumSquare, named.count);
79
+ named.array.push(named.max, named.mean, named.stdDev, named.stdDev, named.count);
61
80
  this.max = [-Infinity];
81
+ this.min = [Infinity];
62
82
  this.sum = [0];
63
- this.sumSquares = [0];
64
- this.squaredDiffSum = [0];
83
+ this.m2 = [0];
84
+ this.runMean = [0];
65
85
  this.count = 0;
86
+ this.pointsInShape = PointsManager.create3(1024);
66
87
  return named;
67
88
  }; }
68
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BasicStatsCalculator.js","sourceRoot":"","sources":["../../../../../src/utilities/math/basic/BasicStatsCalculator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BasicStatsCalculator.js","sourceRoot":"","sources":["../../../../../src/utilities/math/basic/BasicStatsCalculator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Types } from '@cornerstonejs/core';
1
2
  declare type Statistics = {
2
3
  name: string;
3
4
  label?: string;
@@ -11,12 +12,12 @@ declare type NamedStatistics = {
11
12
  max: Statistics & {
12
13
  name: 'max';
13
14
  };
15
+ min: Statistics & {
16
+ name: 'min';
17
+ };
14
18
  stdDev: Statistics & {
15
19
  name: 'stdDev';
16
20
  };
17
- stdDevWithSumSquare: Statistics & {
18
- name: 'stdDevWithSumSquare';
19
- };
20
21
  count: Statistics & {
21
22
  name: 'count';
22
23
  };
@@ -26,9 +27,10 @@ declare type NamedStatistics = {
26
27
  volume?: Statistics & {
27
28
  name: 'volume';
28
29
  };
29
- circumferance?: Statistics & {
30
- name: 'circumferance';
30
+ circumference?: Statistics & {
31
+ name: 'circumference';
31
32
  };
33
+ pointsInShape?: Types.PointsManager<Types.Point3>;
32
34
  array: Statistics[];
33
35
  };
34
36
  export type { Statistics, NamedStatistics };
@@ -1 +1 @@
1
- {"version":3,"file":"CalculatorTypes.d.ts","sourceRoot":"","sources":["../../../src/types/CalculatorTypes.ts"],"names":[],"mappings":"AAAA,aAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;CACrB,CAAC;AAEF,aAAK,eAAe,GAAG;IACrB,IAAI,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,GAAG,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,CAAC;IAClC,MAAM,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC;IACxC,mBAAmB,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,qBAAqB,CAAA;KAAE,CAAC;IAClE,KAAK,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IACtC,IAAI,CAAC,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,MAAM,CAAC,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC;IACzC,aAAa,CAAC,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC;IACvD,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB,CAAC;AAEF,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"CalculatorTypes.d.ts","sourceRoot":"","sources":["../../../src/types/CalculatorTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,aAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;CACrB,CAAC;AAEF,aAAK,eAAe,GAAG;IACrB,IAAI,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,GAAG,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,CAAC;IAClC,GAAG,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,CAAC;IAClC,MAAM,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC;IACxC,KAAK,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IACtC,IAAI,CAAC,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,MAAM,CAAC,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC;IACzC,aAAa,CAAC,EAAE,UAAU,GAAG;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC;IACvD,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClD,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB,CAAC;AAEF,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC"}
@@ -2,13 +2,21 @@ import { NamedStatistics } from '../../../types';
2
2
  import Calculator from './Calculator';
3
3
  export default class BasicStatsCalculator extends Calculator {
4
4
  private static max;
5
+ private static min;
5
6
  private static sum;
6
- private static sumSquares;
7
- private static squaredDiffSum;
8
7
  private static count;
9
- static statsCallback: ({ value: newValue }: {
8
+ private static runMean;
9
+ private static m2;
10
+ private static pointsInShape;
11
+ static statsInit(options: {
12
+ noPointsCollection: boolean;
13
+ }): void;
14
+ static statsCallback: ({ value: newValue, pointLPS }: {
10
15
  value: any;
16
+ pointLPS?: any;
11
17
  }) => void;
12
- static getStatistics: () => NamedStatistics;
18
+ static getStatistics: (options?: {
19
+ unit: string;
20
+ }) => NamedStatistics;
13
21
  }
14
22
  //# sourceMappingURL=BasicStatsCalculator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BasicStatsCalculator.d.ts","sourceRoot":"","sources":["../../../../../src/utilities/math/basic/BasicStatsCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAc,MAAM,gBAAgB,CAAC;AAC7D,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU;IAC1D,OAAO,CAAC,MAAM,CAAC,GAAG,CAAe;IACjC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAO;IACzB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAO;IAChC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAO;IACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAK;IAOzB,MAAM,CAAC,aAAa;;UAA0B,IAAI,CA6BhD;IAYF,MAAM,CAAC,aAAa,QAAO,eAAe,CAwDxC;CACH"}
1
+ {"version":3,"file":"BasicStatsCalculator.d.ts","sourceRoot":"","sources":["../../../../../src/utilities/math/basic/BasicStatsCalculator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,UAAU,MAAM,cAAc,CAAC;AAItC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU;IAC1D,OAAO,CAAC,MAAM,CAAC,GAAG,CAAe;IACjC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAc;IAChC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAO;IACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAK;IAIzB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAO;IAC7B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAO;IAGxB,OAAO,CAAC,MAAM,CAAC,aAAa,CAA+B;WAE7C,SAAS,CAAC,OAAO,EAAE;QAAE,kBAAkB,EAAE,OAAO,CAAA;KAAE;IAUhE,MAAM,CAAC,aAAa;;;UAA2C,IAAI,CA+BjE;IAWF,MAAM,CAAC,aAAa,aAAc;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAG,eAAe,CAsElE;CACH"}