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

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 (116) 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 +15 -6
  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 +17 -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/classes/ImageVolume.js +2 -3
  22. package/dist/cjs/cache/classes/ImageVolume.js.map +1 -1
  23. package/dist/cjs/init.d.ts +1 -1
  24. package/dist/cjs/init.js +1 -1
  25. package/dist/cjs/init.js.map +1 -1
  26. package/dist/cjs/loaders/volumeLoader.d.ts +1 -1
  27. package/dist/cjs/loaders/volumeLoader.js.map +1 -1
  28. package/dist/cjs/requestPool/requestPoolManager.js +1 -1
  29. package/dist/cjs/requestPool/requestPoolManager.js.map +1 -1
  30. package/dist/cjs/types/AffineMatrix.d.ts +27 -0
  31. package/dist/cjs/types/AffineMatrix.js +3 -0
  32. package/dist/cjs/types/AffineMatrix.js.map +1 -0
  33. package/dist/cjs/types/IImage.d.ts +1 -0
  34. package/dist/cjs/types/IVolumeViewport.d.ts +2 -0
  35. package/dist/cjs/types/Mat3.d.ts +1 -11
  36. package/dist/cjs/types/ViewportProperties.d.ts +2 -1
  37. package/dist/cjs/types/index.d.ts +2 -1
  38. package/dist/cjs/utilities/calculateViewportsSpatialRegistration.js +9 -14
  39. package/dist/cjs/utilities/calculateViewportsSpatialRegistration.js.map +1 -1
  40. package/dist/cjs/utilities/getClosestStackImageIndexForPoint.js +12 -6
  41. package/dist/cjs/utilities/getClosestStackImageIndexForPoint.js.map +1 -1
  42. package/dist/cjs/utilities/getRuntimeId.js +2 -1
  43. package/dist/cjs/utilities/getRuntimeId.js.map +1 -1
  44. package/dist/cjs/utilities/windowLevel.js +4 -4
  45. package/dist/cjs/utilities/windowLevel.js.map +1 -1
  46. package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +4 -1
  47. package/dist/esm/RenderingEngine/BaseVolumeViewport.js +28 -2
  48. package/dist/esm/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  49. package/dist/esm/RenderingEngine/RenderingEngine.js.map +1 -1
  50. package/dist/esm/RenderingEngine/StackViewport.d.ts +1 -0
  51. package/dist/esm/RenderingEngine/StackViewport.js +15 -6
  52. package/dist/esm/RenderingEngine/StackViewport.js.map +1 -1
  53. package/dist/esm/RenderingEngine/VolumeViewport.d.ts +2 -0
  54. package/dist/esm/RenderingEngine/VolumeViewport.js +17 -0
  55. package/dist/esm/RenderingEngine/VolumeViewport.js.map +1 -1
  56. package/dist/esm/RenderingEngine/VolumeViewport3D.d.ts +1 -0
  57. package/dist/esm/RenderingEngine/VolumeViewport3D.js +3 -0
  58. package/dist/esm/RenderingEngine/VolumeViewport3D.js.map +1 -1
  59. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.js +3 -1
  60. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.js.map +1 -1
  61. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js +3 -2
  62. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js.map +1 -1
  63. package/dist/esm/RenderingEngine/helpers/setVolumesForViewports.js.map +1 -1
  64. package/dist/esm/Settings.js +4 -2
  65. package/dist/esm/Settings.js.map +1 -1
  66. package/dist/esm/cache/classes/ImageVolume.js +2 -3
  67. package/dist/esm/cache/classes/ImageVolume.js.map +1 -1
  68. package/dist/esm/init.d.ts +1 -1
  69. package/dist/esm/init.js +1 -1
  70. package/dist/esm/init.js.map +1 -1
  71. package/dist/esm/loaders/volumeLoader.d.ts +1 -1
  72. package/dist/esm/loaders/volumeLoader.js.map +1 -1
  73. package/dist/esm/requestPool/requestPoolManager.js +1 -1
  74. package/dist/esm/requestPool/requestPoolManager.js.map +1 -1
  75. package/dist/esm/types/AffineMatrix.d.ts +27 -0
  76. package/dist/esm/types/AffineMatrix.js +2 -0
  77. package/dist/esm/types/AffineMatrix.js.map +1 -0
  78. package/dist/esm/types/IImage.d.ts +1 -0
  79. package/dist/esm/types/IVolumeViewport.d.ts +2 -0
  80. package/dist/esm/types/Mat3.d.ts +1 -11
  81. package/dist/esm/types/ViewportProperties.d.ts +2 -1
  82. package/dist/esm/types/index.d.ts +2 -1
  83. package/dist/esm/utilities/calculateViewportsSpatialRegistration.js +9 -14
  84. package/dist/esm/utilities/calculateViewportsSpatialRegistration.js.map +1 -1
  85. package/dist/esm/utilities/getClosestStackImageIndexForPoint.js +12 -6
  86. package/dist/esm/utilities/getClosestStackImageIndexForPoint.js.map +1 -1
  87. package/dist/esm/utilities/getRuntimeId.js +2 -1
  88. package/dist/esm/utilities/getRuntimeId.js.map +1 -1
  89. package/dist/esm/utilities/windowLevel.js +4 -4
  90. package/dist/esm/utilities/windowLevel.js.map +1 -1
  91. package/dist/umd/index.js +1 -1
  92. package/dist/umd/index.js.map +1 -1
  93. package/package.json +2 -2
  94. package/src/RenderingEngine/BaseVolumeViewport.ts +55 -1
  95. package/src/RenderingEngine/RenderingEngine.ts +1 -0
  96. package/src/RenderingEngine/StackViewport.ts +23 -7
  97. package/src/RenderingEngine/VolumeViewport.ts +34 -0
  98. package/src/RenderingEngine/VolumeViewport3D.ts +4 -0
  99. package/src/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.ts +9 -1
  100. package/src/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.ts +5 -3
  101. package/src/RenderingEngine/helpers/setVolumesForViewports.ts +3 -1
  102. package/src/Settings.ts +6 -2
  103. package/src/cache/classes/ImageVolume.ts +3 -3
  104. package/src/init.ts +1 -1
  105. package/src/loaders/volumeLoader.ts +2 -2
  106. package/src/requestPool/requestPoolManager.ts +1 -1
  107. package/src/types/AffineMatrix.ts +8 -0
  108. package/src/types/IImage.ts +2 -0
  109. package/src/types/IVolumeViewport.ts +8 -0
  110. package/src/types/Mat3.ts +3 -11
  111. package/src/types/ViewportProperties.ts +3 -1
  112. package/src/types/index.ts +2 -0
  113. package/src/utilities/calculateViewportsSpatialRegistration.ts +21 -28
  114. package/src/utilities/getClosestStackImageIndexForPoint.ts +18 -6
  115. package/src/utilities/getRuntimeId.ts +3 -1
  116. package/src/utilities/windowLevel.ts +13 -4
@@ -1,5 +1,8 @@
1
1
  /**
2
2
  * Given a low and high window level, return the window width and window center
3
+ * Formulas from note 4 in
4
+ * https://dicom.nema.org/medical/dicom/current/output/html/part03.html#sect_C.11.2.1.2.1
5
+ * extended to allow for low/high swapping
3
6
  * @param low - The low window level.
4
7
  * @param high - The high window level.
5
8
  * @returns a JavaScript object with two properties: windowWidth and windowCenter.
@@ -11,14 +14,20 @@ function toWindowLevel(
11
14
  windowWidth: number;
12
15
  windowCenter: number;
13
16
  } {
14
- const windowWidth = Math.abs(low - high);
15
- const windowCenter = low + windowWidth / 2;
17
+ // Allow for swapping high/low
18
+ const windowWidth = Math.abs(high - low) + 1;
19
+ const windowCenter = (low + high + 1) / 2;
16
20
 
17
21
  return { windowWidth, windowCenter };
18
22
  }
19
23
 
20
24
  /**
21
25
  * Given a window width and center, return the lower and upper bounds of the window
26
+ * The formulas for the calculation are specified in
27
+ * https://dicom.nema.org/medical/dicom/current/output/html/part03.html#sect_C.11.2.1.2.1
28
+ * if (x <= c - 0.5 - (w-1) /2), then y = ymin
29
+ * else if (x > c - 0.5 + (w-1) /2), then y = ymax
30
+ * else y = ((x - (c - 0.5)) / (w-1) + 0.5) * (ymax- ymin) + ymin
22
31
  * @param windowWidth - the width of the window in HU
23
32
  * @param windowCenter - The center of the window.
24
33
  * @returns a JavaScript object with two properties: lower and upper.
@@ -30,8 +39,8 @@ function toLowHighRange(
30
39
  lower: number;
31
40
  upper: number;
32
41
  } {
33
- const lower = windowCenter - windowWidth / 2.0;
34
- const upper = windowCenter + windowWidth / 2.0;
42
+ const lower = windowCenter - 0.5 - (windowWidth - 1) / 2;
43
+ const upper = windowCenter - 0.5 + (windowWidth - 1) / 2;
35
44
 
36
45
  return { lower, upper };
37
46
  }