@cornerstonejs/dicom-image-loader 2.0.0-beta.2 → 2.0.0-beta.21

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 (248) hide show
  1. package/dist/920.bundle.min.js +3 -0
  2. package/dist/920.bundle.min.js.LICENSE.txt +5 -0
  3. package/dist/920.bundle.min.js.map +1 -0
  4. package/dist/cornerstoneDICOMImageLoader.bundle.min.js +1 -1
  5. package/dist/cornerstoneDICOMImageLoader.bundle.min.js.map +1 -1
  6. package/dist/dynamic-import/{65916ef3def695744bda.wasm → 031089e563a18ada8441.wasm} +0 -0
  7. package/dist/dynamic-import/20fc4c659b85ccd2a9c0.wasm +0 -0
  8. package/dist/dynamic-import/584.min.js +2 -0
  9. package/dist/dynamic-import/584.min.js.map +1 -0
  10. package/dist/dynamic-import/610.min.js +2 -0
  11. package/dist/dynamic-import/610.min.js.map +1 -0
  12. package/dist/dynamic-import/918.min.js +2 -0
  13. package/dist/dynamic-import/918.min.js.map +1 -0
  14. package/dist/dynamic-import/958.min.js +3 -0
  15. package/dist/dynamic-import/958.min.js.LICENSE.txt +5 -0
  16. package/dist/dynamic-import/958.min.js.map +1 -0
  17. package/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js +1 -1
  18. package/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js.map +1 -1
  19. package/dist/esm/codecs/jpeg.d.ts +1 -0
  20. package/dist/esm/codecs/jpeg.js +890 -0
  21. package/dist/esm/codecs/jpegLossless.d.ts +7 -0
  22. package/dist/esm/codecs/jpegLossless.js +1219 -0
  23. package/dist/esm/src/constants/transferSyntaxes.d.ts +46 -0
  24. package/dist/esm/src/constants/transferSyntaxes.js +46 -0
  25. package/dist/esm/src/decodeImageFrameWorker.d.ts +1 -0
  26. package/dist/esm/src/decodeImageFrameWorker.js +262 -0
  27. package/dist/esm/src/externalModules.d.ts +5 -0
  28. package/dist/esm/src/externalModules.js +44 -0
  29. package/dist/esm/src/imageLoader/colorSpaceConverters/convertPALETTECOLOR.d.ts +3 -0
  30. package/dist/esm/src/imageLoader/colorSpaceConverters/convertPALETTECOLOR.js +77 -0
  31. package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPixel.d.ts +2 -0
  32. package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPixel.js +21 -0
  33. package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPlane.d.ts +2 -0
  34. package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPlane.js +28 -0
  35. package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.d.ts +2 -0
  36. package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.js +44 -0
  37. package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPixel.d.ts +2 -0
  38. package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPixel.js +33 -0
  39. package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPlane.d.ts +2 -0
  40. package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPlane.js +35 -0
  41. package/dist/esm/src/imageLoader/colorSpaceConverters/index.d.ts +7 -0
  42. package/dist/esm/src/imageLoader/colorSpaceConverters/index.js +7 -0
  43. package/dist/esm/src/imageLoader/configure.d.ts +3 -0
  44. package/dist/esm/src/imageLoader/configure.js +11 -0
  45. package/dist/esm/src/imageLoader/convertColorSpace.d.ts +1 -0
  46. package/dist/esm/src/imageLoader/convertColorSpace.js +40 -0
  47. package/dist/esm/src/imageLoader/createImage.d.ts +5 -0
  48. package/dist/esm/src/imageLoader/createImage.js +241 -0
  49. package/dist/esm/src/imageLoader/decodeImageFrame.d.ts +3 -0
  50. package/dist/esm/src/imageLoader/decodeImageFrame.js +63 -0
  51. package/dist/esm/src/imageLoader/decodeJPEGBaseline8BitColor.d.ts +4 -0
  52. package/dist/esm/src/imageLoader/decodeJPEGBaseline8BitColor.js +64 -0
  53. package/dist/esm/src/imageLoader/getImageFrame.d.ts +3 -0
  54. package/dist/esm/src/imageLoader/getImageFrame.js +26 -0
  55. package/dist/esm/src/imageLoader/getInstanceModule.d.ts +3 -0
  56. package/dist/esm/src/imageLoader/getInstanceModule.js +40 -0
  57. package/dist/esm/src/imageLoader/getMinMax.d.ts +4 -0
  58. package/dist/esm/src/imageLoader/getMinMax.js +15 -0
  59. package/dist/esm/src/imageLoader/getScalingParameters.d.ts +6 -0
  60. package/dist/esm/src/imageLoader/getScalingParameters.js +16 -0
  61. package/dist/esm/src/imageLoader/imageIdToURI.d.ts +1 -0
  62. package/dist/esm/src/imageLoader/imageIdToURI.js +4 -0
  63. package/dist/esm/src/imageLoader/index.d.ts +94 -0
  64. package/dist/esm/src/imageLoader/index.js +36 -0
  65. package/dist/esm/src/imageLoader/internal/index.d.ts +10 -0
  66. package/dist/esm/src/imageLoader/internal/index.js +10 -0
  67. package/dist/esm/src/imageLoader/internal/options.d.ts +3 -0
  68. package/dist/esm/src/imageLoader/internal/options.js +19 -0
  69. package/dist/esm/src/imageLoader/internal/rangeRequest.d.ts +9 -0
  70. package/dist/esm/src/imageLoader/internal/rangeRequest.js +121 -0
  71. package/dist/esm/src/imageLoader/internal/streamRequest.d.ts +2 -0
  72. package/dist/esm/src/imageLoader/internal/streamRequest.js +92 -0
  73. package/dist/esm/src/imageLoader/internal/xhrRequest.d.ts +3 -0
  74. package/dist/esm/src/imageLoader/internal/xhrRequest.js +102 -0
  75. package/dist/esm/src/imageLoader/isColorConversionRequired.d.ts +1 -0
  76. package/dist/esm/src/imageLoader/isColorConversionRequired.js +22 -0
  77. package/dist/esm/src/imageLoader/isJPEGBaseline8BitColor.d.ts +3 -0
  78. package/dist/esm/src/imageLoader/isJPEGBaseline8BitColor.js +9 -0
  79. package/dist/esm/src/imageLoader/isNMReconstructable.d.ts +1 -0
  80. package/dist/esm/src/imageLoader/isNMReconstructable.js +3 -0
  81. package/dist/esm/src/imageLoader/registerLoaders.d.ts +2 -0
  82. package/dist/esm/src/imageLoader/registerLoaders.js +7 -0
  83. package/dist/esm/src/imageLoader/wadors/combineFrameInstance.d.ts +12 -0
  84. package/dist/esm/src/imageLoader/wadors/combineFrameInstance.js +44 -0
  85. package/dist/esm/src/imageLoader/wadors/extractMultipart.d.ts +23 -0
  86. package/dist/esm/src/imageLoader/wadors/extractMultipart.js +73 -0
  87. package/dist/esm/src/imageLoader/wadors/findIndexOfString.d.ts +2 -0
  88. package/dist/esm/src/imageLoader/wadors/findIndexOfString.js +32 -0
  89. package/dist/esm/src/imageLoader/wadors/getImageQualityStatus.d.ts +3 -0
  90. package/dist/esm/src/imageLoader/wadors/getImageQualityStatus.js +8 -0
  91. package/dist/esm/src/imageLoader/wadors/getPixelData.d.ts +26 -0
  92. package/dist/esm/src/imageLoader/wadors/getPixelData.js +35 -0
  93. package/dist/esm/src/imageLoader/wadors/getTagValue.d.ts +1 -0
  94. package/dist/esm/src/imageLoader/wadors/getTagValue.js +9 -0
  95. package/dist/esm/src/imageLoader/wadors/index.d.ts +25 -0
  96. package/dist/esm/src/imageLoader/wadors/index.js +21 -0
  97. package/dist/esm/src/imageLoader/wadors/loadImage.d.ts +25 -0
  98. package/dist/esm/src/imageLoader/wadors/loadImage.js +125 -0
  99. package/dist/esm/src/imageLoader/wadors/loadImage_test.d.ts +1 -0
  100. package/dist/esm/src/imageLoader/wadors/loadImage_test.js +41 -0
  101. package/dist/esm/src/imageLoader/wadors/metaData/NMHelpers.d.ts +5 -0
  102. package/dist/esm/src/imageLoader/wadors/metaData/NMHelpers.js +38 -0
  103. package/dist/esm/src/imageLoader/wadors/metaData/USHelpers.d.ts +19 -0
  104. package/dist/esm/src/imageLoader/wadors/metaData/USHelpers.js +46 -0
  105. package/dist/esm/src/imageLoader/wadors/metaData/extractPositioningFromMetadata.d.ts +3 -0
  106. package/dist/esm/src/imageLoader/wadors/metaData/extractPositioningFromMetadata.js +18 -0
  107. package/dist/esm/src/imageLoader/wadors/metaData/getFirstNumberValue.d.ts +2 -0
  108. package/dist/esm/src/imageLoader/wadors/metaData/getFirstNumberValue.js +6 -0
  109. package/dist/esm/src/imageLoader/wadors/metaData/getNumberString.d.ts +3 -0
  110. package/dist/esm/src/imageLoader/wadors/metaData/getNumberString.js +9 -0
  111. package/dist/esm/src/imageLoader/wadors/metaData/getNumberValue.d.ts +3 -0
  112. package/dist/esm/src/imageLoader/wadors/metaData/getNumberValue.js +9 -0
  113. package/dist/esm/src/imageLoader/wadors/metaData/getNumberValues.d.ts +3 -0
  114. package/dist/esm/src/imageLoader/wadors/metaData/getNumberValues.js +20 -0
  115. package/dist/esm/src/imageLoader/wadors/metaData/getOverlayPlaneModule.d.ts +4 -0
  116. package/dist/esm/src/imageLoader/wadors/metaData/getOverlayPlaneModule.js +38 -0
  117. package/dist/esm/src/imageLoader/wadors/metaData/getSequenceItems.d.ts +3 -0
  118. package/dist/esm/src/imageLoader/wadors/metaData/getSequenceItems.js +14 -0
  119. package/dist/esm/src/imageLoader/wadors/metaData/getValue.d.ts +3 -0
  120. package/dist/esm/src/imageLoader/wadors/metaData/getValue.js +14 -0
  121. package/dist/esm/src/imageLoader/wadors/metaData/index.d.ts +7 -0
  122. package/dist/esm/src/imageLoader/wadors/metaData/index.js +7 -0
  123. package/dist/esm/src/imageLoader/wadors/metaData/metaDataProvider.d.ts +14 -0
  124. package/dist/esm/src/imageLoader/wadors/metaData/metaDataProvider.js +261 -0
  125. package/dist/esm/src/imageLoader/wadors/metaDataManager.d.ts +14 -0
  126. package/dist/esm/src/imageLoader/wadors/metaDataManager.js +50 -0
  127. package/dist/esm/src/imageLoader/wadors/register.d.ts +1 -0
  128. package/dist/esm/src/imageLoader/wadors/register.js +6 -0
  129. package/dist/esm/src/imageLoader/wadors/retrieveMultiframeMetadata.d.ts +15 -0
  130. package/dist/esm/src/imageLoader/wadors/retrieveMultiframeMetadata.js +26 -0
  131. package/dist/esm/src/imageLoader/wadouri/combineFrameInstanceDataset.d.ts +22 -0
  132. package/dist/esm/src/imageLoader/wadouri/combineFrameInstanceDataset.js +69 -0
  133. package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager.d.ts +31 -0
  134. package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager.js +142 -0
  135. package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager_test.d.ts +1 -0
  136. package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager_test.js +10 -0
  137. package/dist/esm/src/imageLoader/wadouri/dataset-from-partial-content.d.ts +6 -0
  138. package/dist/esm/src/imageLoader/wadouri/dataset-from-partial-content.js +56 -0
  139. package/dist/esm/src/imageLoader/wadouri/fileManager.d.ts +11 -0
  140. package/dist/esm/src/imageLoader/wadouri/fileManager.js +20 -0
  141. package/dist/esm/src/imageLoader/wadouri/getEncapsulatedImageFrame.d.ts +2 -0
  142. package/dist/esm/src/imageLoader/wadouri/getEncapsulatedImageFrame.js +33 -0
  143. package/dist/esm/src/imageLoader/wadouri/getPixelData.d.ts +3 -0
  144. package/dist/esm/src/imageLoader/wadouri/getPixelData.js +13 -0
  145. package/dist/esm/src/imageLoader/wadouri/getUncompressedImageFrame.d.ts +3 -0
  146. package/dist/esm/src/imageLoader/wadouri/getUncompressedImageFrame.js +47 -0
  147. package/dist/esm/src/imageLoader/wadouri/index.d.ts +42 -0
  148. package/dist/esm/src/imageLoader/wadouri/index.js +31 -0
  149. package/dist/esm/src/imageLoader/wadouri/loadFileRequest.d.ts +2 -0
  150. package/dist/esm/src/imageLoader/wadouri/loadFileRequest.js +17 -0
  151. package/dist/esm/src/imageLoader/wadouri/loadImage.d.ts +9 -0
  152. package/dist/esm/src/imageLoader/wadouri/loadImage.js +104 -0
  153. package/dist/esm/src/imageLoader/wadouri/metaData/USHelpers.d.ts +2 -0
  154. package/dist/esm/src/imageLoader/wadouri/metaData/USHelpers.js +44 -0
  155. package/dist/esm/src/imageLoader/wadouri/metaData/extractPositioningFromDataset.d.ts +6 -0
  156. package/dist/esm/src/imageLoader/wadouri/metaData/extractPositioningFromDataset.js +80 -0
  157. package/dist/esm/src/imageLoader/wadouri/metaData/getImagePixelModule.d.ts +4 -0
  158. package/dist/esm/src/imageLoader/wadouri/metaData/getImagePixelModule.js +79 -0
  159. package/dist/esm/src/imageLoader/wadouri/metaData/getLUTs.d.ts +4 -0
  160. package/dist/esm/src/imageLoader/wadouri/metaData/getLUTs.js +44 -0
  161. package/dist/esm/src/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.d.ts +3 -0
  162. package/dist/esm/src/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.js +30 -0
  163. package/dist/esm/src/imageLoader/wadouri/metaData/getNumberValues.d.ts +3 -0
  164. package/dist/esm/src/imageLoader/wadouri/metaData/getNumberValues.js +16 -0
  165. package/dist/esm/src/imageLoader/wadouri/metaData/getOverlayPlaneModule.d.ts +4 -0
  166. package/dist/esm/src/imageLoader/wadouri/metaData/getOverlayPlaneModule.js +36 -0
  167. package/dist/esm/src/imageLoader/wadouri/metaData/index.d.ts +5 -0
  168. package/dist/esm/src/imageLoader/wadouri/metaData/index.js +5 -0
  169. package/dist/esm/src/imageLoader/wadouri/metaData/metaDataProvider.d.ts +2 -0
  170. package/dist/esm/src/imageLoader/wadouri/metaData/metaDataProvider.js +223 -0
  171. package/dist/esm/src/imageLoader/wadouri/parseImageId.d.ts +8 -0
  172. package/dist/esm/src/imageLoader/wadouri/parseImageId.js +20 -0
  173. package/dist/esm/src/imageLoader/wadouri/register.d.ts +2 -0
  174. package/dist/esm/src/imageLoader/wadouri/register.js +8 -0
  175. package/dist/esm/src/imageLoader/wadouri/retrieveMultiframeDataset.d.ts +17 -0
  176. package/dist/esm/src/imageLoader/wadouri/retrieveMultiframeDataset.js +57 -0
  177. package/dist/esm/src/imageLoader/wadouri/unpackBinaryFrame.d.ts +3 -0
  178. package/dist/esm/src/imageLoader/wadouri/unpackBinaryFrame.js +14 -0
  179. package/dist/esm/src/shared/decoders/decodeBigEndian.d.ts +4 -0
  180. package/dist/esm/src/shared/decoders/decodeBigEndian.js +28 -0
  181. package/dist/esm/src/shared/decoders/decodeHTJ2K.d.ts +5 -0
  182. package/dist/esm/src/shared/decoders/decodeHTJ2K.js +109 -0
  183. package/dist/esm/src/shared/decoders/decodeJPEG2000.d.ts +5 -0
  184. package/dist/esm/src/shared/decoders/decodeJPEG2000.js +93 -0
  185. package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-js.d.ts +6 -0
  186. package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-js.js +34 -0
  187. package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.d.ts +1 -0
  188. package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.js +1 -0
  189. package/dist/esm/src/shared/decoders/decodeJPEGBaseline8Bit.d.ts +3 -0
  190. package/dist/esm/src/shared/decoders/decodeJPEGBaseline8Bit.js +62 -0
  191. package/dist/esm/src/shared/decoders/decodeJPEGLS.d.ts +5 -0
  192. package/dist/esm/src/shared/decoders/decodeJPEGLS.js +84 -0
  193. package/dist/esm/src/shared/decoders/decodeJPEGLossless.d.ts +6 -0
  194. package/dist/esm/src/shared/decoders/decodeJPEGLossless.js +39 -0
  195. package/dist/esm/src/shared/decoders/decodeLittleEndian.d.ts +4 -0
  196. package/dist/esm/src/shared/decoders/decodeLittleEndian.js +29 -0
  197. package/dist/esm/src/shared/decoders/decodeRLE.d.ts +4 -0
  198. package/dist/esm/src/shared/decoders/decodeRLE.js +128 -0
  199. package/dist/esm/src/shared/getMinMax.d.ts +6 -0
  200. package/dist/esm/src/shared/getMinMax.js +16 -0
  201. package/dist/esm/src/shared/getMinMax_test.d.ts +1 -0
  202. package/dist/esm/src/shared/getMinMax_test.js +9 -0
  203. package/dist/esm/src/shared/getPixelDataTypeFromMinMax.d.ts +2 -0
  204. package/dist/esm/src/shared/getPixelDataTypeFromMinMax.js +22 -0
  205. package/dist/esm/src/shared/isColorImage.d.ts +1 -0
  206. package/dist/esm/src/shared/isColorImage.js +10 -0
  207. package/dist/esm/src/shared/scaling/bilinear.d.ts +1 -0
  208. package/dist/esm/src/shared/scaling/bilinear.js +32 -0
  209. package/dist/esm/src/shared/scaling/replicate.d.ts +1 -0
  210. package/dist/esm/src/shared/scaling/replicate.js +20 -0
  211. package/dist/esm/src/shared/scaling/scaleArray.d.ts +2 -0
  212. package/dist/esm/src/shared/scaling/scaleArray.js +15 -0
  213. package/dist/esm/src/types/DICOMLoaderDataSetWithFetchMore.d.ts +9 -0
  214. package/dist/esm/src/types/DICOMLoaderDataSetWithFetchMore.js +1 -0
  215. package/dist/esm/src/types/DICOMLoaderIImage.d.ts +12 -0
  216. package/dist/esm/src/types/DICOMLoaderIImage.js +1 -0
  217. package/dist/esm/src/types/DICOMLoaderImageOptions.d.ts +23 -0
  218. package/dist/esm/src/types/DICOMLoaderImageOptions.js +1 -0
  219. package/dist/esm/src/types/LoadRequestFunction.d.ts +1 -0
  220. package/dist/esm/src/types/LoadRequestFunction.js +1 -0
  221. package/dist/esm/src/types/LoaderDecodeOptions.d.ts +2 -0
  222. package/dist/esm/src/types/LoaderDecodeOptions.js +1 -0
  223. package/dist/esm/src/types/LoaderOptions.d.ts +18 -0
  224. package/dist/esm/src/types/LoaderOptions.js +1 -0
  225. package/dist/esm/src/types/LutType.d.ts +6 -0
  226. package/dist/esm/src/types/LutType.js +1 -0
  227. package/dist/esm/src/types/WADORSMetaData.d.ts +4 -0
  228. package/dist/esm/src/types/WADORSMetaData.js +1 -0
  229. package/dist/esm/src/types/WebWorkerTypes.d.ts +64 -0
  230. package/dist/esm/src/types/WebWorkerTypes.js +1 -0
  231. package/dist/esm/src/types/XHRRequest.d.ts +16 -0
  232. package/dist/esm/src/types/XHRRequest.js +1 -0
  233. package/dist/esm/src/types/index.d.ts +11 -0
  234. package/dist/esm/src/types/index.js +1 -0
  235. package/dist/esm/src/version.d.ts +2 -0
  236. package/dist/esm/src/version.js +1 -0
  237. package/package.json +24 -17
  238. package/dist/cornerstoneDICOMImageLoaderNoWebWorkers.bundle.min.js +0 -2
  239. package/dist/cornerstoneDICOMImageLoaderNoWebWorkers.bundle.min.js.map +0 -1
  240. package/dist/dynamic-import/610.min.worker.js +0 -2
  241. package/dist/dynamic-import/610.min.worker.js.map +0 -1
  242. package/dist/dynamic-import/75788f12450d4c5ed494.wasm +0 -0
  243. package/dist/dynamic-import/945.min.worker.js +0 -2
  244. package/dist/dynamic-import/945.min.worker.js.map +0 -1
  245. package/dist/dynamic-import/index.worker.e62ecca63f1a2e124230.worker.js +0 -2
  246. package/dist/dynamic-import/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
  247. package/dist/index.worker.bundle.min.worker.js +0 -2
  248. package/dist/index.worker.bundle.min.worker.js.map +0 -1
@@ -0,0 +1,4 @@
1
+ import type { WADORSMetaData } from '../../../types';
2
+ export default function getOverlayPlaneModule(metaData: WADORSMetaData): {
3
+ overlays: any[];
4
+ };
@@ -0,0 +1,38 @@
1
+ import getValue from './getValue';
2
+ import getNumberValue from './getNumberValue';
3
+ export default function getOverlayPlaneModule(metaData) {
4
+ const overlays = [];
5
+ for (let overlayGroup = 0x00; overlayGroup <= 0x1e; overlayGroup += 0x02) {
6
+ let groupStr = `x60${overlayGroup.toString(16)}`;
7
+ if (groupStr.length === 4) {
8
+ groupStr = `x600${overlayGroup.toString(16)}`;
9
+ }
10
+ const data = getValue(metaData[`${groupStr}3000`]);
11
+ if (!data) {
12
+ continue;
13
+ }
14
+ const pixelData = [];
15
+ for (let i = 0; i < data.length; i++) {
16
+ for (let k = 0; k < 8; k++) {
17
+ const byte_as_int = metaData.Value[data.dataOffset + i];
18
+ pixelData[i * 8 + k] = (byte_as_int >> k) & 0b1;
19
+ }
20
+ }
21
+ overlays.push({
22
+ rows: getNumberValue(metaData[`${groupStr}0010`]),
23
+ columns: getNumberValue(metaData[`${groupStr}0011`]),
24
+ type: getValue(metaData[`${groupStr}0040`]),
25
+ x: getNumberValue(metaData[`${groupStr}0050`], 1) - 1,
26
+ y: getNumberValue(metaData[`${groupStr}0050`], 0) - 1,
27
+ pixelData,
28
+ description: getValue(metaData[`${groupStr}0022`]),
29
+ label: getValue(metaData[`${groupStr}1500`]),
30
+ roiArea: getValue(metaData[`${groupStr}1301`]),
31
+ roiMean: getValue(metaData[`${groupStr}1302`]),
32
+ roiStandardDeviation: getValue(metaData[`${groupStr}1303`]),
33
+ });
34
+ }
35
+ return {
36
+ overlays,
37
+ };
38
+ }
@@ -0,0 +1,3 @@
1
+ import type { WADORSMetaDataElement } from '../../../types';
2
+ declare function getSequenceItems(element: any): WADORSMetaDataElement[];
3
+ export default getSequenceItems;
@@ -0,0 +1,14 @@
1
+ function getSequenceItems(element) {
2
+ if (!element?.Value?.length) {
3
+ return [];
4
+ }
5
+ if (!Array.isArray(element.Value)) {
6
+ if (typeof element.Value === 'object') {
7
+ console.warn('Warning: Value should be an array, but an object was found. Encapsulating the object in an array.');
8
+ return [element.Value];
9
+ }
10
+ return [];
11
+ }
12
+ return element.Value;
13
+ }
14
+ export default getSequenceItems;
@@ -0,0 +1,3 @@
1
+ import type { WADORSMetaDataElement } from '../../../types';
2
+ declare function getValue<ReturnType = unknown>(element: WADORSMetaDataElement, index?: number, defaultValue?: ReturnType): ReturnType;
3
+ export default getValue;
@@ -0,0 +1,14 @@
1
+ function getValue(element, index, defaultValue) {
2
+ index = index || 0;
3
+ if (!element) {
4
+ return defaultValue;
5
+ }
6
+ if (!element.Value) {
7
+ return defaultValue;
8
+ }
9
+ if (Array.isArray(element.Value) && element.Value.length <= index) {
10
+ return defaultValue;
11
+ }
12
+ return element.Value[index];
13
+ }
14
+ export default getValue;
@@ -0,0 +1,7 @@
1
+ export { default as getNumberString } from './getNumberString';
2
+ export { default as getNumberValue } from './getNumberValue';
3
+ export { default as getNumberValues } from './getNumberValues';
4
+ export { default as metaDataProvider } from './metaDataProvider';
5
+ export { default as getValue } from './getValue';
6
+ export { getFirstNumberValue } from './getFirstNumberValue';
7
+ export { getUSEnhancedRegions } from './USHelpers';
@@ -0,0 +1,7 @@
1
+ export { default as getNumberString } from './getNumberString';
2
+ export { default as getNumberValue } from './getNumberValue';
3
+ export { default as getNumberValues } from './getNumberValues';
4
+ export { default as metaDataProvider } from './metaDataProvider';
5
+ export { default as getValue } from './getValue';
6
+ export { getFirstNumberValue } from './getFirstNumberValue';
7
+ export { getUSEnhancedRegions } from './USHelpers';
@@ -0,0 +1,14 @@
1
+ declare function metaDataProvider(type: any, imageId: any): {};
2
+ export declare function getImageUrlModule(imageId: any, metaData: any): {
3
+ isVideo: any;
4
+ rendered: any;
5
+ thumbnail: any;
6
+ };
7
+ export declare function getCineModule(imageId: any, metaData: any): {
8
+ cineRate: string;
9
+ numberOfFrames: number;
10
+ };
11
+ export declare function getTransferSyntax(imageId: any, metaData: any): {
12
+ transferSyntaxUID: string;
13
+ };
14
+ export default metaDataProvider;
@@ -0,0 +1,261 @@
1
+ import external from '../../../externalModules';
2
+ import getNumberValues from './getNumberValues';
3
+ import getNumberValue from './getNumberValue';
4
+ import getOverlayPlaneModule from './getOverlayPlaneModule';
5
+ import metaDataManager from '../metaDataManager';
6
+ import getValue from './getValue';
7
+ import { getMultiframeInformation, getFrameInformation, } from '../combineFrameInstance';
8
+ import multiframeMetadata from '../retrieveMultiframeMetadata';
9
+ import { extractOrientationFromMetadata, extractPositionFromMetadata, } from './extractPositioningFromMetadata';
10
+ import { getImageTypeSubItemFromMetadata } from './NMHelpers';
11
+ import isNMReconstructable from '../../isNMReconstructable';
12
+ import { getInstanceModule, instanceModuleNames, } from '../../getInstanceModule';
13
+ import { getUSEnhancedRegions } from './USHelpers';
14
+ function metaDataProvider(type, imageId) {
15
+ const { MetadataModules } = external.cornerstone.Enums;
16
+ const { dicomParser } = external;
17
+ if (type === MetadataModules.MULTIFRAME) {
18
+ const { metadata, frame } = multiframeMetadata.retrieveMultiframeMetadata(imageId);
19
+ if (!metadata) {
20
+ return;
21
+ }
22
+ const { PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, NumberOfFrames, } = getMultiframeInformation(metadata);
23
+ if (PerFrameFunctionalGroupsSequence || NumberOfFrames > 1) {
24
+ const { shared, perFrame } = getFrameInformation(PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, frame);
25
+ return {
26
+ NumberOfFrames,
27
+ PerFrameFunctionalInformation: perFrame,
28
+ SharedFunctionalInformation: shared,
29
+ };
30
+ }
31
+ return {
32
+ NumberOfFrames,
33
+ };
34
+ }
35
+ const metaData = metaDataManager.get(imageId);
36
+ if (!metaData) {
37
+ return;
38
+ }
39
+ if (type === MetadataModules.GENERAL_STUDY) {
40
+ return {
41
+ studyDescription: getValue(metaData['00081030']),
42
+ studyDate: dicomParser.parseDA(getValue(metaData['00080020'])),
43
+ studyTime: dicomParser.parseTM(getValue(metaData['00080030'], 0, '')),
44
+ accessionNumber: getValue(metaData['00080050']),
45
+ };
46
+ }
47
+ if (type === MetadataModules.GENERAL_SERIES) {
48
+ return {
49
+ modality: getValue(metaData['00080060']),
50
+ seriesInstanceUID: getValue(metaData['0020000E']),
51
+ seriesNumber: getNumberValue(metaData['00200011']),
52
+ studyInstanceUID: getValue(metaData['0020000D']),
53
+ seriesDate: dicomParser.parseDA(getValue(metaData['00080021'])),
54
+ seriesTime: dicomParser.parseTM(getValue(metaData['00080031'], 0, '')),
55
+ acquisitionDate: dicomParser.parseDA(getValue(metaData['00080022'])),
56
+ acquisitionTime: dicomParser.parseTM(getValue(metaData['00080032'], 0, '')),
57
+ };
58
+ }
59
+ if (type === MetadataModules.GENERAL_IMAGE) {
60
+ return {
61
+ sopInstanceUID: getValue(metaData['00080018']),
62
+ instanceNumber: getNumberValue(metaData['00200013']),
63
+ lossyImageCompression: getValue(metaData['00282110']),
64
+ lossyImageCompressionRatio: getNumberValue(metaData['00282112']),
65
+ lossyImageCompressionMethod: getValue(metaData['00282114']),
66
+ };
67
+ }
68
+ if (type === MetadataModules.PATIENT) {
69
+ return {
70
+ patientID: getValue(metaData['00100020']),
71
+ patientName: getValue(metaData['00100010']),
72
+ };
73
+ }
74
+ if (type === MetadataModules.PATIENT_STUDY) {
75
+ return {
76
+ patientAge: getNumberValue(metaData['00101010']),
77
+ patientSize: getNumberValue(metaData['00101020']),
78
+ patientSex: getValue(metaData['00100040']),
79
+ patientWeight: getNumberValue(metaData['00101030']),
80
+ };
81
+ }
82
+ if (type === MetadataModules.NM_MULTIFRAME_GEOMETRY) {
83
+ const modality = getValue(metaData['00080060']);
84
+ const imageSubType = getImageTypeSubItemFromMetadata(metaData, 2);
85
+ return {
86
+ modality,
87
+ imageType: getValue(metaData['00080008']),
88
+ imageSubType,
89
+ imageOrientationPatient: extractOrientationFromMetadata(metaData),
90
+ imagePositionPatient: extractPositionFromMetadata(metaData),
91
+ sliceThickness: getNumberValue(metaData['00180050']),
92
+ spacingBetweenSlices: getNumberValue(metaData['00180088']),
93
+ pixelSpacing: getNumberValues(metaData['00280030'], 2),
94
+ numberOfFrames: getNumberValue(metaData['00280008']),
95
+ isNMReconstructable: isNMReconstructable(imageSubType) && modality.includes('NM'),
96
+ };
97
+ }
98
+ if (type === MetadataModules.IMAGE_PLANE) {
99
+ const imageOrientationPatient = extractOrientationFromMetadata(metaData);
100
+ const imagePositionPatient = extractPositionFromMetadata(metaData);
101
+ const pixelSpacing = getNumberValues(metaData['00280030'], 2);
102
+ let columnPixelSpacing = null;
103
+ let rowPixelSpacing = null;
104
+ if (pixelSpacing) {
105
+ rowPixelSpacing = pixelSpacing[0];
106
+ columnPixelSpacing = pixelSpacing[1];
107
+ }
108
+ let rowCosines = null;
109
+ let columnCosines = null;
110
+ if (imageOrientationPatient) {
111
+ rowCosines = [
112
+ parseFloat(imageOrientationPatient[0]),
113
+ parseFloat(imageOrientationPatient[1]),
114
+ parseFloat(imageOrientationPatient[2]),
115
+ ];
116
+ columnCosines = [
117
+ parseFloat(imageOrientationPatient[3]),
118
+ parseFloat(imageOrientationPatient[4]),
119
+ parseFloat(imageOrientationPatient[5]),
120
+ ];
121
+ }
122
+ return {
123
+ frameOfReferenceUID: getValue(metaData['00200052']),
124
+ rows: getNumberValue(metaData['00280010']),
125
+ columns: getNumberValue(metaData['00280011']),
126
+ imageOrientationPatient,
127
+ rowCosines,
128
+ columnCosines,
129
+ imagePositionPatient,
130
+ sliceThickness: getNumberValue(metaData['00180050']),
131
+ sliceLocation: getNumberValue(metaData['00201041']),
132
+ pixelSpacing,
133
+ rowPixelSpacing,
134
+ columnPixelSpacing,
135
+ };
136
+ }
137
+ if (type === MetadataModules.ULTRASOUND_ENHANCED_REGION) {
138
+ return getUSEnhancedRegions(metaData);
139
+ }
140
+ if (type === MetadataModules.CALIBRATION) {
141
+ const modality = getValue(metaData['00080060']);
142
+ if (modality === 'US') {
143
+ const enhancedRegion = getUSEnhancedRegions(metaData);
144
+ return {
145
+ sequenceOfUltrasoundRegions: enhancedRegion,
146
+ };
147
+ }
148
+ }
149
+ if (type === MetadataModules.IMAGE_URL) {
150
+ return getImageUrlModule(imageId, metaData);
151
+ }
152
+ if (type === MetadataModules.CINE) {
153
+ return getCineModule(imageId, metaData);
154
+ }
155
+ if (type === MetadataModules.IMAGE_PIXEL) {
156
+ return {
157
+ samplesPerPixel: getNumberValue(metaData['00280002']),
158
+ photometricInterpretation: getValue(metaData['00280004']),
159
+ rows: getNumberValue(metaData['00280010']),
160
+ columns: getNumberValue(metaData['00280011']),
161
+ bitsAllocated: getNumberValue(metaData['00280100']),
162
+ bitsStored: getNumberValue(metaData['00280101']),
163
+ highBit: getValue(metaData['00280102']),
164
+ pixelRepresentation: getNumberValue(metaData['00280103']),
165
+ planarConfiguration: getNumberValue(metaData['00280006']),
166
+ pixelAspectRatio: getValue(metaData['00280034']),
167
+ smallestPixelValue: getNumberValue(metaData['00280106']),
168
+ largestPixelValue: getNumberValue(metaData['00280107']),
169
+ redPaletteColorLookupTableDescriptor: getNumberValues(metaData['00281101']),
170
+ greenPaletteColorLookupTableDescriptor: getNumberValues(metaData['00281102']),
171
+ bluePaletteColorLookupTableDescriptor: getNumberValues(metaData['00281103']),
172
+ redPaletteColorLookupTableData: getNumberValues(metaData['00281201']),
173
+ greenPaletteColorLookupTableData: getNumberValues(metaData['00281202']),
174
+ bluePaletteColorLookupTableData: getNumberValues(metaData['00281203']),
175
+ };
176
+ }
177
+ if (type === MetadataModules.VOI_LUT) {
178
+ return {
179
+ windowCenter: getNumberValues(metaData['00281050'], 1),
180
+ windowWidth: getNumberValues(metaData['00281051'], 1),
181
+ };
182
+ }
183
+ if (type === MetadataModules.MODALITY_LUT) {
184
+ return {
185
+ rescaleIntercept: getNumberValue(metaData['00281052']),
186
+ rescaleSlope: getNumberValue(metaData['00281053']),
187
+ rescaleType: getValue(metaData['00281054']),
188
+ };
189
+ }
190
+ if (type === MetadataModules.SOP_COMMON) {
191
+ return {
192
+ sopClassUID: getValue(metaData['00080016']),
193
+ sopInstanceUID: getValue(metaData['00080018']),
194
+ };
195
+ }
196
+ if (type === MetadataModules.PET_ISOTOPE) {
197
+ const radiopharmaceuticalInfo = getValue(metaData['00540016']);
198
+ if (radiopharmaceuticalInfo === undefined) {
199
+ return;
200
+ }
201
+ return {
202
+ radiopharmaceuticalInfo: {
203
+ radiopharmaceuticalStartTime: dicomParser.parseTM(getValue(radiopharmaceuticalInfo['00181072'], 0, '')),
204
+ radiopharmaceuticalStartDateTime: getValue(radiopharmaceuticalInfo['00181078'], 0, ''),
205
+ radionuclideTotalDose: getNumberValue(radiopharmaceuticalInfo['00181074']),
206
+ radionuclideHalfLife: getNumberValue(radiopharmaceuticalInfo['00181075']),
207
+ },
208
+ };
209
+ }
210
+ if (type === MetadataModules.OVERLAY_PLANE) {
211
+ return getOverlayPlaneModule(metaData);
212
+ }
213
+ if (type === 'transferSyntax') {
214
+ return getTransferSyntax(imageId, metaData);
215
+ }
216
+ if (type === MetadataModules.PET_SERIES) {
217
+ return {
218
+ correctedImage: getValue(metaData['00280051']),
219
+ units: getValue(metaData['00541001']),
220
+ decayCorrection: getValue(metaData['00541102']),
221
+ };
222
+ }
223
+ if (type === MetadataModules.PET_IMAGE) {
224
+ return {
225
+ frameReferenceTime: getNumberValue(metaData['00541300']),
226
+ actualFrameDuration: getNumberValue(metaData['00181242']),
227
+ };
228
+ }
229
+ if (type === 'instance') {
230
+ return getInstanceModule(imageId, metaDataProvider, instanceModuleNames);
231
+ }
232
+ }
233
+ export function getImageUrlModule(imageId, metaData) {
234
+ const { transferSyntaxUID } = getTransferSyntax(imageId, metaData);
235
+ const isVideo = external.cornerstone.utilities.isVideoTransferSyntax(transferSyntaxUID);
236
+ const imageUrl = imageId.substring(7);
237
+ const thumbnail = imageUrl.replace('/frames/', '/thumbnail/');
238
+ let rendered = imageUrl.replace('/frames/', '/rendered/');
239
+ if (isVideo) {
240
+ rendered = rendered.replace('/rendered/1', '/rendered');
241
+ }
242
+ return {
243
+ isVideo,
244
+ rendered,
245
+ thumbnail,
246
+ };
247
+ }
248
+ export function getCineModule(imageId, metaData) {
249
+ const cineRate = getValue(metaData['00180040']);
250
+ return {
251
+ cineRate,
252
+ numberOfFrames: getNumberValue(metaData['00280008']),
253
+ };
254
+ }
255
+ export function getTransferSyntax(imageId, metaData) {
256
+ return {
257
+ transferSyntaxUID: getValue(metaData['00020010']) ||
258
+ getValue(metaData['00083002']),
259
+ };
260
+ }
261
+ export default metaDataProvider;
@@ -0,0 +1,14 @@
1
+ import type { WADORSMetaData } from '../../types';
2
+ declare let metadataByImageURI: any[];
3
+ declare function add(imageId: string, metadata: WADORSMetaData): void;
4
+ declare function get(imageId: string): WADORSMetaData;
5
+ declare function remove(imageId: any): void;
6
+ declare function purge(): void;
7
+ export { metadataByImageURI };
8
+ declare const _default: {
9
+ add: typeof add;
10
+ get: typeof get;
11
+ remove: typeof remove;
12
+ purge: typeof purge;
13
+ };
14
+ export default _default;
@@ -0,0 +1,50 @@
1
+ import imageIdToURI from '../imageIdToURI';
2
+ import { combineFrameInstance } from './combineFrameInstance';
3
+ import multiframeMetadata from './retrieveMultiframeMetadata';
4
+ let metadataByImageURI = [];
5
+ let multiframeMetadataByImageURI = {};
6
+ function add(imageId, metadata) {
7
+ const imageURI = imageIdToURI(imageId);
8
+ Object.defineProperty(metadata, 'isMultiframe', {
9
+ value: multiframeMetadata.isMultiframe(metadata),
10
+ enumerable: false,
11
+ });
12
+ metadataByImageURI[imageURI] = metadata;
13
+ }
14
+ function get(imageId) {
15
+ const imageURI = imageIdToURI(imageId);
16
+ const metadata = metadataByImageURI[imageURI];
17
+ if (metadata && !metadata?.isMultiframe) {
18
+ return metadata;
19
+ }
20
+ const cachedMetadata = multiframeMetadataByImageURI[imageURI];
21
+ if (cachedMetadata) {
22
+ return cachedMetadata;
23
+ }
24
+ const retrievedMetadata = multiframeMetadata._retrieveMultiframeMetadata(imageURI);
25
+ if (!retrievedMetadata || !retrievedMetadata.metadata) {
26
+ return;
27
+ }
28
+ const { metadata: firstFrameMetadata, frame } = retrievedMetadata;
29
+ if (firstFrameMetadata) {
30
+ const combined = combineFrameInstance(frame, firstFrameMetadata);
31
+ multiframeMetadataByImageURI[imageURI] = combined;
32
+ return combined;
33
+ }
34
+ }
35
+ function remove(imageId) {
36
+ const imageURI = imageIdToURI(imageId);
37
+ metadataByImageURI[imageURI] = undefined;
38
+ multiframeMetadataByImageURI[imageURI] = undefined;
39
+ }
40
+ function purge() {
41
+ metadataByImageURI = [];
42
+ multiframeMetadataByImageURI = {};
43
+ }
44
+ export { metadataByImageURI };
45
+ export default {
46
+ add,
47
+ get,
48
+ remove,
49
+ purge,
50
+ };
@@ -0,0 +1 @@
1
+ export default function (cornerstone: any): void;
@@ -0,0 +1,6 @@
1
+ import loadImage from './loadImage';
2
+ import { metaDataProvider } from './metaData/index';
3
+ export default function (cornerstone) {
4
+ cornerstone.registerImageLoader('wadors', loadImage);
5
+ cornerstone.metaData.addProvider(metaDataProvider);
6
+ }
@@ -0,0 +1,15 @@
1
+ declare function _retrieveMultiframeMetadata(imageURI: any): {
2
+ metadata: any;
3
+ frame: number;
4
+ };
5
+ declare function retrieveMultiframeMetadata(imageId: any): {
6
+ metadata: any;
7
+ frame: number;
8
+ };
9
+ declare function isMultiframe(metadata: any): boolean;
10
+ declare const _default: {
11
+ _retrieveMultiframeMetadata: typeof _retrieveMultiframeMetadata;
12
+ retrieveMultiframeMetadata: typeof retrieveMultiframeMetadata;
13
+ isMultiframe: typeof isMultiframe;
14
+ };
15
+ export default _default;
@@ -0,0 +1,26 @@
1
+ import getValue from './metaData/getValue';
2
+ import imageIdToURI from '../imageIdToURI';
3
+ import { metadataByImageURI } from './metaDataManager';
4
+ function _retrieveMultiframeMetadata(imageURI) {
5
+ const lastSlashIdx = imageURI.indexOf('/frames/') + 8;
6
+ const imageIdFrameless = imageURI.slice(0, lastSlashIdx);
7
+ const frame = parseInt(imageURI.slice(lastSlashIdx), 10);
8
+ const metadata = metadataByImageURI[`${imageIdFrameless}1`];
9
+ return {
10
+ metadata,
11
+ frame,
12
+ };
13
+ }
14
+ function retrieveMultiframeMetadata(imageId) {
15
+ const imageURI = imageIdToURI(imageId);
16
+ return _retrieveMultiframeMetadata(imageURI);
17
+ }
18
+ function isMultiframe(metadata) {
19
+ const numberOfFrames = getValue(metadata['00280008']);
20
+ return numberOfFrames && numberOfFrames > 1;
21
+ }
22
+ export default {
23
+ _retrieveMultiframeMetadata,
24
+ retrieveMultiframeMetadata,
25
+ isMultiframe,
26
+ };
@@ -0,0 +1,22 @@
1
+ declare function getDirectFrameInformation(dataSet: any, frame: any): {
2
+ NumberOfFrames: any;
3
+ PerFrameFunctionalInformation: {};
4
+ SharedFunctionalInformation: {};
5
+ } | {
6
+ NumberOfFrames: any;
7
+ PerFrameFunctionalInformation?: undefined;
8
+ SharedFunctionalInformation?: undefined;
9
+ };
10
+ declare function getFrameInformation(PerFrameFunctionalGroupsSequence: any, SharedFunctionalGroupsSequence: any, frameNumber: any): {
11
+ shared: {};
12
+ perFrame: {};
13
+ };
14
+ declare function getMultiframeInformation(dataSet: any): {
15
+ NumberOfFrames: any;
16
+ PerFrameFunctionalGroupsSequence: any;
17
+ SharedFunctionalGroupsSequence: any;
18
+ otherElements: any;
19
+ otherAttributtes: any;
20
+ };
21
+ declare function combineFrameInstanceDataset(frameNumber: any, dataSet: any): any;
22
+ export { combineFrameInstanceDataset, getMultiframeInformation, getFrameInformation, getDirectFrameInformation, };
@@ -0,0 +1,69 @@
1
+ function getDirectFrameInformation(dataSet, frame) {
2
+ if (!dataSet) {
3
+ return;
4
+ }
5
+ const { NumberOfFrames, PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, } = getMultiframeInformation(dataSet);
6
+ if (PerFrameFunctionalGroupsSequence || NumberOfFrames > 1) {
7
+ const { shared, perFrame } = getFrameInformation(PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, frame);
8
+ return {
9
+ NumberOfFrames,
10
+ PerFrameFunctionalInformation: perFrame,
11
+ SharedFunctionalInformation: shared,
12
+ };
13
+ }
14
+ return {
15
+ NumberOfFrames,
16
+ };
17
+ }
18
+ function getFrameInformation(PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, frameNumber) {
19
+ const shared = {};
20
+ (SharedFunctionalGroupsSequence
21
+ ? Object.values(SharedFunctionalGroupsSequence.items[0].dataSet.elements)
22
+ : [])
23
+ .map((it) => (shared[it.tag] = it));
24
+ const perFrame = {};
25
+ (PerFrameFunctionalGroupsSequence
26
+ ? Object.values(PerFrameFunctionalGroupsSequence.items[frameNumber - 1].dataSet.elements)
27
+ : [])
28
+ .map((it) => (perFrame[it.tag] = it));
29
+ return {
30
+ shared,
31
+ perFrame,
32
+ };
33
+ }
34
+ function getMultiframeInformation(dataSet) {
35
+ if (!dataSet) {
36
+ return;
37
+ }
38
+ const { elements, ...otherAttributtes } = dataSet;
39
+ const { x52009230: PerFrameFunctionalGroupsSequence, x52009229: SharedFunctionalGroupsSequence, ...otherElements } = elements;
40
+ const NumberOfFrames = dataSet.intString('x00280008');
41
+ return {
42
+ NumberOfFrames,
43
+ PerFrameFunctionalGroupsSequence,
44
+ SharedFunctionalGroupsSequence,
45
+ otherElements,
46
+ otherAttributtes,
47
+ };
48
+ }
49
+ function combineFrameInstanceDataset(frameNumber, dataSet) {
50
+ if (!dataSet) {
51
+ return;
52
+ }
53
+ const { NumberOfFrames, PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, otherElements, } = getMultiframeInformation(dataSet);
54
+ if (PerFrameFunctionalGroupsSequence || NumberOfFrames > 1) {
55
+ const { shared, perFrame } = getFrameInformation(PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, frameNumber);
56
+ const newElements = {
57
+ elements: {
58
+ ...otherElements,
59
+ ...shared,
60
+ ...perFrame,
61
+ },
62
+ };
63
+ const clonedDataset = Object.create(dataSet);
64
+ const newDataset = Object.assign(clonedDataset, newElements);
65
+ return newDataset;
66
+ }
67
+ return dataSet;
68
+ }
69
+ export { combineFrameInstanceDataset, getMultiframeInformation, getFrameInformation, getDirectFrameInformation, };
@@ -0,0 +1,31 @@
1
+ import type { DataSet } from 'dicom-parser';
2
+ import type { LoadRequestFunction, DICOMLoaderDataSetWithFetchMore } from '../../types';
3
+ export interface CornerstoneWadoLoaderCacheManagerInfoResponse {
4
+ cacheSizeInBytes: number;
5
+ numberOfDataSetsCached: number;
6
+ }
7
+ export interface CornerstoneWadoLoaderCachedPromise extends Promise<DataSet | DICOMLoaderDataSetWithFetchMore> {
8
+ cacheCount?: number;
9
+ }
10
+ declare let loadedDataSets: Record<string, {
11
+ dataSet: DataSet;
12
+ cacheCount: number;
13
+ }>;
14
+ declare function isLoaded(uri: string): boolean;
15
+ declare function get(uri: string): DataSet;
16
+ declare function update(uri: string, dataSet: DataSet): void;
17
+ declare function load(uri: string, loadRequest: LoadRequestFunction, imageId: string): CornerstoneWadoLoaderCachedPromise;
18
+ declare function unload(uri: string): void;
19
+ export declare function getInfo(): CornerstoneWadoLoaderCacheManagerInfoResponse;
20
+ declare function purge(): void;
21
+ declare const _default: {
22
+ isLoaded: typeof isLoaded;
23
+ load: typeof load;
24
+ unload: typeof unload;
25
+ getInfo: typeof getInfo;
26
+ purge: typeof purge;
27
+ get: typeof get;
28
+ update: typeof update;
29
+ };
30
+ export default _default;
31
+ export { loadedDataSets };