@cornerstonejs/core 2.0.0-beta.1 → 2.0.0-beta.3

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 (124) hide show
  1. package/dist/cjs/RenderingEngine/BaseVolumeViewport.d.ts +4 -1
  2. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js +28 -2
  3. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  4. package/dist/cjs/RenderingEngine/RenderingEngine.js.map +1 -1
  5. package/dist/cjs/RenderingEngine/StackViewport.d.ts +1 -0
  6. package/dist/cjs/RenderingEngine/StackViewport.js +17 -8
  7. package/dist/cjs/RenderingEngine/StackViewport.js.map +1 -1
  8. package/dist/cjs/RenderingEngine/VolumeViewport.d.ts +2 -0
  9. package/dist/cjs/RenderingEngine/VolumeViewport.js +30 -0
  10. package/dist/cjs/RenderingEngine/VolumeViewport.js.map +1 -1
  11. package/dist/cjs/RenderingEngine/VolumeViewport3D.d.ts +1 -0
  12. package/dist/cjs/RenderingEngine/VolumeViewport3D.js +3 -0
  13. package/dist/cjs/RenderingEngine/VolumeViewport3D.js.map +1 -1
  14. package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.js +3 -1
  15. package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.js.map +1 -1
  16. package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js +3 -2
  17. package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js.map +1 -1
  18. package/dist/cjs/RenderingEngine/helpers/setVolumesForViewports.js.map +1 -1
  19. package/dist/cjs/Settings.js +4 -2
  20. package/dist/cjs/Settings.js.map +1 -1
  21. package/dist/cjs/cache/cache.d.ts +3 -1
  22. package/dist/cjs/cache/cache.js +12 -7
  23. package/dist/cjs/cache/cache.js.map +1 -1
  24. package/dist/cjs/cache/classes/ImageVolume.js +2 -3
  25. package/dist/cjs/cache/classes/ImageVolume.js.map +1 -1
  26. package/dist/cjs/init.d.ts +1 -1
  27. package/dist/cjs/init.js +1 -1
  28. package/dist/cjs/init.js.map +1 -1
  29. package/dist/cjs/loaders/volumeLoader.d.ts +1 -1
  30. package/dist/cjs/loaders/volumeLoader.js.map +1 -1
  31. package/dist/cjs/requestPool/requestPoolManager.js +1 -1
  32. package/dist/cjs/requestPool/requestPoolManager.js.map +1 -1
  33. package/dist/cjs/types/AffineMatrix.d.ts +27 -0
  34. package/dist/cjs/types/AffineMatrix.js +3 -0
  35. package/dist/cjs/types/AffineMatrix.js.map +1 -0
  36. package/dist/cjs/types/IImage.d.ts +3 -0
  37. package/dist/cjs/types/IVolumeViewport.d.ts +2 -0
  38. package/dist/cjs/types/Mat3.d.ts +1 -11
  39. package/dist/cjs/types/ViewportProperties.d.ts +2 -1
  40. package/dist/cjs/types/index.d.ts +2 -1
  41. package/dist/cjs/utilities/calculateViewportsSpatialRegistration.js +9 -14
  42. package/dist/cjs/utilities/calculateViewportsSpatialRegistration.js.map +1 -1
  43. package/dist/cjs/utilities/getClosestStackImageIndexForPoint.js +12 -6
  44. package/dist/cjs/utilities/getClosestStackImageIndexForPoint.js.map +1 -1
  45. package/dist/cjs/utilities/getRuntimeId.js +2 -1
  46. package/dist/cjs/utilities/getRuntimeId.js.map +1 -1
  47. package/dist/cjs/utilities/windowLevel.js +4 -4
  48. package/dist/cjs/utilities/windowLevel.js.map +1 -1
  49. package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +4 -1
  50. package/dist/esm/RenderingEngine/BaseVolumeViewport.js +28 -2
  51. package/dist/esm/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  52. package/dist/esm/RenderingEngine/RenderingEngine.js.map +1 -1
  53. package/dist/esm/RenderingEngine/StackViewport.d.ts +1 -0
  54. package/dist/esm/RenderingEngine/StackViewport.js +17 -8
  55. package/dist/esm/RenderingEngine/StackViewport.js.map +1 -1
  56. package/dist/esm/RenderingEngine/VolumeViewport.d.ts +2 -0
  57. package/dist/esm/RenderingEngine/VolumeViewport.js +32 -2
  58. package/dist/esm/RenderingEngine/VolumeViewport.js.map +1 -1
  59. package/dist/esm/RenderingEngine/VolumeViewport3D.d.ts +1 -0
  60. package/dist/esm/RenderingEngine/VolumeViewport3D.js +3 -0
  61. package/dist/esm/RenderingEngine/VolumeViewport3D.js.map +1 -1
  62. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.js +3 -1
  63. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.js.map +1 -1
  64. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js +3 -2
  65. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js.map +1 -1
  66. package/dist/esm/RenderingEngine/helpers/setVolumesForViewports.js.map +1 -1
  67. package/dist/esm/Settings.js +4 -2
  68. package/dist/esm/Settings.js.map +1 -1
  69. package/dist/esm/cache/cache.d.ts +3 -1
  70. package/dist/esm/cache/cache.js +12 -7
  71. package/dist/esm/cache/cache.js.map +1 -1
  72. package/dist/esm/cache/classes/ImageVolume.js +2 -3
  73. package/dist/esm/cache/classes/ImageVolume.js.map +1 -1
  74. package/dist/esm/init.d.ts +1 -1
  75. package/dist/esm/init.js +1 -1
  76. package/dist/esm/init.js.map +1 -1
  77. package/dist/esm/loaders/volumeLoader.d.ts +1 -1
  78. package/dist/esm/loaders/volumeLoader.js.map +1 -1
  79. package/dist/esm/requestPool/requestPoolManager.js +1 -1
  80. package/dist/esm/requestPool/requestPoolManager.js.map +1 -1
  81. package/dist/esm/types/AffineMatrix.d.ts +27 -0
  82. package/dist/esm/types/AffineMatrix.js +2 -0
  83. package/dist/esm/types/AffineMatrix.js.map +1 -0
  84. package/dist/esm/types/IImage.d.ts +3 -0
  85. package/dist/esm/types/IVolumeViewport.d.ts +2 -0
  86. package/dist/esm/types/Mat3.d.ts +1 -11
  87. package/dist/esm/types/ViewportProperties.d.ts +2 -1
  88. package/dist/esm/types/index.d.ts +2 -1
  89. package/dist/esm/utilities/calculateViewportsSpatialRegistration.js +9 -14
  90. package/dist/esm/utilities/calculateViewportsSpatialRegistration.js.map +1 -1
  91. package/dist/esm/utilities/getClosestStackImageIndexForPoint.js +12 -6
  92. package/dist/esm/utilities/getClosestStackImageIndexForPoint.js.map +1 -1
  93. package/dist/esm/utilities/getRuntimeId.js +2 -1
  94. package/dist/esm/utilities/getRuntimeId.js.map +1 -1
  95. package/dist/esm/utilities/windowLevel.js +4 -4
  96. package/dist/esm/utilities/windowLevel.js.map +1 -1
  97. package/dist/umd/index.js +1 -1
  98. package/dist/umd/index.js.map +1 -1
  99. package/package.json +2 -2
  100. package/src/RenderingEngine/BaseVolumeViewport.ts +55 -1
  101. package/src/RenderingEngine/RenderingEngine.ts +1 -0
  102. package/src/RenderingEngine/StackViewport.ts +25 -9
  103. package/src/RenderingEngine/Viewport.ts +1 -1
  104. package/src/RenderingEngine/VolumeViewport.ts +53 -2
  105. package/src/RenderingEngine/VolumeViewport3D.ts +4 -0
  106. package/src/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.ts +9 -1
  107. package/src/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.ts +5 -3
  108. package/src/RenderingEngine/helpers/setVolumesForViewports.ts +3 -1
  109. package/src/Settings.ts +6 -2
  110. package/src/cache/cache.ts +33 -18
  111. package/src/cache/classes/ImageVolume.ts +3 -3
  112. package/src/init.ts +1 -1
  113. package/src/loaders/volumeLoader.ts +2 -2
  114. package/src/requestPool/requestPoolManager.ts +1 -1
  115. package/src/types/AffineMatrix.ts +8 -0
  116. package/src/types/IImage.ts +4 -0
  117. package/src/types/IVolumeViewport.ts +8 -0
  118. package/src/types/Mat3.ts +3 -11
  119. package/src/types/ViewportProperties.ts +3 -1
  120. package/src/types/index.ts +2 -0
  121. package/src/utilities/calculateViewportsSpatialRegistration.ts +21 -28
  122. package/src/utilities/getClosestStackImageIndexForPoint.ts +18 -6
  123. package/src/utilities/getRuntimeId.ts +3 -1
  124. package/src/utilities/windowLevel.ts +13 -4
@@ -1,26 +1,21 @@
1
1
  import { vec3, mat4 } from 'gl-matrix';
2
- import { StackViewport } from '../RenderingEngine';
3
2
  import spatialRegistrationMetadataProvider from './spatialRegistrationMetadataProvider';
4
3
  import { metaData } from '..';
5
- import isEqual from './isEqual';
4
+ const ALLOWED_DELTA = 0.05;
6
5
  function calculateViewportsSpatialRegistration(viewport1, viewport2) {
7
- if (!(viewport1 instanceof StackViewport) ||
8
- !(viewport2 instanceof StackViewport)) {
9
- throw new Error('calculateViewportsSpatialRegistration: Both viewports must be StackViewports, volume viewports are not supported yet');
10
- }
11
- const isSameFrameOfReference = viewport1.getFrameOfReferenceUID() === viewport2.getFrameOfReferenceUID();
12
- if (isSameFrameOfReference) {
13
- return;
14
- }
15
6
  const imageId1 = viewport1.getCurrentImageId();
16
7
  const imageId2 = viewport2.getCurrentImageId();
17
8
  const imagePlaneModule1 = metaData.get('imagePlaneModule', imageId1);
18
9
  const imagePlaneModule2 = metaData.get('imagePlaneModule', imageId2);
19
- const isSameImagePlane = imagePlaneModule1 &&
20
- imagePlaneModule2 &&
21
- isEqual(imagePlaneModule1.imageOrientationPatient, imagePlaneModule2.imageOrientationPatient);
10
+ if (!imagePlaneModule1 || !imagePlaneModule2) {
11
+ console.log('Viewport spatial registration requires image plane module');
12
+ return;
13
+ }
14
+ const { imageOrientationPatient: iop2 } = imagePlaneModule2;
15
+ const isSameImagePlane = imagePlaneModule1.imageOrientationPatient.every((v, i) => Math.abs(v - iop2[i]) < ALLOWED_DELTA);
22
16
  if (!isSameImagePlane) {
23
- throw new Error('Viewport spatial registration only supported for same orientation (hence translation only) for now');
17
+ console.log('Viewport spatial registration only supported for same orientation (hence translation only) for now', imagePlaneModule1?.imageOrientationPatient, imagePlaneModule2?.imageOrientationPatient);
18
+ return;
24
19
  }
25
20
  const imagePositionPatient1 = imagePlaneModule1.imagePositionPatient;
26
21
  const imagePositionPatient2 = imagePlaneModule2.imagePositionPatient;
@@ -1 +1 @@
1
- {"version":3,"file":"calculateViewportsSpatialRegistration.js","sourceRoot":"","sources":["../../../src/utilities/calculateViewportsSpatialRegistration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAC;AAchC,SAAS,qCAAqC,CAC5C,SAAyB,EACzB,SAAyB;IAEzB,IACE,CAAC,CAAC,SAAS,YAAY,aAAa,CAAC;QACrC,CAAC,CAAC,SAAS,YAAY,aAAa,CAAC,EACrC;QACA,MAAM,IAAI,KAAK,CACb,sHAAsH,CACvH,CAAC;KACH;IAED,MAAM,sBAAsB,GAC1B,SAAS,CAAC,sBAAsB,EAAE,KAAK,SAAS,CAAC,sBAAsB,EAAE,CAAC;IAE5E,IAAI,sBAAsB,EAAE;QAC1B,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAE/C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAErE,MAAM,gBAAgB,GACpB,iBAAiB;QACjB,iBAAiB;QACjB,OAAO,CACL,iBAAiB,CAAC,uBAAuB,EACzC,iBAAiB,CAAC,uBAAuB,CAC1C,CAAC;IAEJ,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;KACH;IAED,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,oBAAoB,CAAC;IACrE,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,oBAAoB,CAAC;IAErE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAC/B,IAAI,CAAC,MAAM,EAAE,EACb,qBAAqB,EACrB,qBAAqB,CACtB,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAE7D,mCAAmC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7E,CAAC;AAED,eAAe,qCAAqC,CAAC"}
1
+ {"version":3,"file":"calculateViewportsSpatialRegistration.js","sourceRoot":"","sources":["../../../src/utilities/calculateViewportsSpatialRegistration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAQ9B,MAAM,aAAa,GAAG,IAAI,CAAC;AAc3B,SAAS,qCAAqC,CAC5C,SAAyB,EACzB,SAAyB;IAEzB,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAE/C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAErE,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,EAAE;QAC5C,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACzE,OAAO;KACR;IACD,MAAM,EAAE,uBAAuB,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC;IAC5D,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,KAAK,CACtE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAChD,CAAC;IAEF,IAAI,CAAC,gBAAgB,EAAE;QACrB,OAAO,CAAC,GAAG,CACT,oGAAoG,EACpG,iBAAiB,EAAE,uBAAuB,EAC1C,iBAAiB,EAAE,uBAAuB,CAC3C,CAAC;QACF,OAAO;KACR;IAED,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,oBAAoB,CAAC;IACrE,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,oBAAoB,CAAC;IAErE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAC/B,IAAI,CAAC,MAAM,EAAE,EACb,qBAAqB,EACrB,qBAAqB,CACtB,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAC7D,mCAAmC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7E,CAAC;AAED,eAAe,qCAAqC,CAAC"}
@@ -8,12 +8,14 @@ export default function getClosestStackImageIndexForPoint(point, viewport) {
8
8
  export function calculateMinimalDistanceForStackViewport(point, viewport) {
9
9
  const imageIds = viewport.getImageIds();
10
10
  const currentImageIdIndex = viewport.getCurrentImageIdIndex();
11
- if (imageIds.length === 0)
11
+ if (imageIds.length === 0) {
12
12
  return null;
13
+ }
13
14
  const getDistance = (imageId) => {
14
15
  const planeMetadata = getPlaneMetadata(imageId);
15
- if (!planeMetadata)
16
+ if (!planeMetadata) {
16
17
  return null;
18
+ }
17
19
  const plane = planar.planeEquation(planeMetadata.planeNormal, planeMetadata.imagePositionPatient);
18
20
  const distance = planar.planeDistanceToPoint(plane, point);
19
21
  return distance;
@@ -26,27 +28,31 @@ export function calculateMinimalDistanceForStackViewport(point, viewport) {
26
28
  for (let i = 0; i < higherImageIds.length; i++) {
27
29
  const id = higherImageIds[i];
28
30
  const distance = getDistance(id);
29
- if (distance === null)
31
+ if (distance === null) {
30
32
  continue;
33
+ }
31
34
  if (distance <= closestStack.distance) {
32
35
  closestStack.distance = distance;
33
36
  closestStack.index = i + currentImageIdIndex + 1;
34
37
  }
35
- else
38
+ else {
36
39
  break;
40
+ }
37
41
  }
38
42
  const lowerImageIds = imageIds.slice(0, currentImageIdIndex);
39
43
  for (let i = lowerImageIds.length - 1; i >= 0; i--) {
40
44
  const id = lowerImageIds[i];
41
45
  const distance = getDistance(id);
42
- if (distance === null || distance === closestStack.distance)
46
+ if (distance === null || distance === closestStack.distance) {
43
47
  continue;
48
+ }
44
49
  if (distance < closestStack.distance) {
45
50
  closestStack.distance = distance;
46
51
  closestStack.index = i;
47
52
  }
48
- else
53
+ else {
49
54
  break;
55
+ }
50
56
  }
51
57
  return closestStack.distance === Infinity ? null : closestStack;
52
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getClosestStackImageIndexForPoint.js","sourceRoot":"","sources":["../../../src/utilities/getClosestStackImageIndexForPoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getClosestStackImageIndexForPoint.js","sourceRoot":"","sources":["../../../src/utilities/getClosestStackImageIndexForPoint.ts"],"names":[],"mappings":"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"}
@@ -19,8 +19,9 @@ function getNextRuntimeId(context, symbol, max) {
19
19
  }
20
20
  else {
21
21
  n = 0;
22
- if (i + 1 === idComponents.length)
22
+ if (i + 1 === idComponents.length) {
23
23
  idComponents.push(0);
24
+ }
24
25
  }
25
26
  idComponents[i] = n;
26
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getRuntimeId.js","sourceRoot":"","sources":["../../../src/utilities/getRuntimeId.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAChD,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAW9B,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,OAAiB,EACjB,SAAkB,EAClB,GAAY;IAEZ,OAAO,gBAAgB,CAErB,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAC1E,eAAe,EACf,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAC/D,CAAC,IAAI,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACxE,CAAC;AAMD,SAAS,gBAAgB,CACvB,OAAsC,EACtC,MAAc,EACd,GAAW;IAEX,IAAI,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,CAAC,YAAY,YAAY,KAAK,CAAC,EAAE;QACpC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;KACjE;IACD,KAAK,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACnE,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,GAAG,EAAE;YACX,KAAK,GAAG,KAAK,CAAC;YACd,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACX;aAAM;YACL,CAAC,GAAG,CAAC,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,MAAM;gBAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACzD;QACD,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KACrB;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"getRuntimeId.js","sourceRoot":"","sources":["../../../src/utilities/getRuntimeId.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAChD,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAW9B,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,OAAiB,EACjB,SAAkB,EAClB,GAAY;IAEZ,OAAO,gBAAgB,CAErB,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAC1E,eAAe,EACf,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAC/D,CAAC,IAAI,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACxE,CAAC;AAMD,SAAS,gBAAgB,CACvB,OAAsC,EACtC,MAAc,EACd,GAAW;IAEX,IAAI,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,CAAC,YAAY,YAAY,KAAK,CAAC,EAAE;QACpC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;KACjE;IACD,KAAK,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACnE,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,GAAG,EAAE;YACX,KAAK,GAAG,KAAK,CAAC;YACd,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACX;aAAM;YACL,CAAC,GAAG,CAAC,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,MAAM,EAAE;gBACjC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACtB;SACF;QACD,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KACrB;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -1,11 +1,11 @@
1
1
  function toWindowLevel(low, high) {
2
- const windowWidth = Math.abs(low - high);
3
- const windowCenter = low + windowWidth / 2;
2
+ const windowWidth = Math.abs(high - low) + 1;
3
+ const windowCenter = (low + high + 1) / 2;
4
4
  return { windowWidth, windowCenter };
5
5
  }
6
6
  function toLowHighRange(windowWidth, windowCenter) {
7
- const lower = windowCenter - windowWidth / 2.0;
8
- const upper = windowCenter + windowWidth / 2.0;
7
+ const lower = windowCenter - 0.5 - (windowWidth - 1) / 2;
8
+ const upper = windowCenter - 0.5 + (windowWidth - 1) / 2;
9
9
  return { lower, upper };
10
10
  }
11
11
  export { toWindowLevel, toLowHighRange };
@@ -1 +1 @@
1
- {"version":3,"file":"windowLevel.js","sourceRoot":"","sources":["../../../src/utilities/windowLevel.ts"],"names":[],"mappings":"AAMA,SAAS,aAAa,CACpB,GAAW,EACX,IAAY;IAKZ,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,GAAG,GAAG,WAAW,GAAG,CAAC,CAAC;IAE3C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACvC,CAAC;AAQD,SAAS,cAAc,CACrB,WAAmB,EACnB,YAAoB;IAKpB,MAAM,KAAK,GAAG,YAAY,GAAG,WAAW,GAAG,GAAG,CAAC;IAC/C,MAAM,KAAK,GAAG,YAAY,GAAG,WAAW,GAAG,GAAG,CAAC;IAE/C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"windowLevel.js","sourceRoot":"","sources":["../../../src/utilities/windowLevel.ts"],"names":[],"mappings":"AASA,SAAS,aAAa,CACpB,GAAW,EACX,IAAY;IAMZ,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAE1C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACvC,CAAC;AAaD,SAAS,cAAc,CACrB,WAAmB,EACnB,YAAoB;IAKpB,MAAM,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAEzD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC"}