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

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,5 +1,4 @@
1
- import { getOptions } from './imageLoader/internal';
2
- import registerLoaders from './imageLoader/registerLoaders';
1
+ import { getOptions } from './imageLoader/internal/options';
3
2
  let cornerstone;
4
3
  let dicomParser;
5
4
  const workerFn = () => {
@@ -9,7 +8,6 @@ const workerFn = () => {
9
8
  const external = {
10
9
  set cornerstone(cs) {
11
10
  cornerstone = cs;
12
- registerLoaders(cornerstone);
13
11
  const options = getOptions();
14
12
  const workerManager = external.cornerstone.getWebWorkerManager();
15
13
  workerManager.registerWorker('dicomImageLoader', workerFn, {
@@ -22,7 +20,6 @@ const external = {
22
20
  if (!cornerstone) {
23
21
  throw new Error('cornerstoneDICOMImageLoader requires a copy of Cornerstone to work properly. Please add cornerstoneDICOMImageLoader.external.cornerstone = cornerstone; to your application.');
24
22
  }
25
- registerLoaders(cornerstone);
26
23
  }
27
24
  return cornerstone;
28
25
  },
@@ -1,5 +1,6 @@
1
1
  import { setOptions } from './internal/index';
2
2
  import external from '../externalModules';
3
+ import registerLoaders from './registerLoaders';
3
4
  function configure(options) {
4
5
  if (!options.cornerstone || !options.dicomParser) {
5
6
  throw new Error('cornerstoneWADOImageLoader.configure: Options object must contain the keys "cornerstone" and "dicomParser".');
@@ -7,5 +8,6 @@ function configure(options) {
7
8
  setOptions(options);
8
9
  external.cornerstone = options.cornerstone;
9
10
  external.dicomParser = options.dicomParser;
11
+ registerLoaders(options.cornerstone);
10
12
  }
11
13
  export default configure;
@@ -1,7 +1,7 @@
1
- import wadors from './wadors/index';
2
- import wadouri from './wadouri/index';
1
+ import wadouriRegister from './wadouri/register';
2
+ import wadorsRegister from './wadors/register';
3
3
  function registerLoaders(cornerstone) {
4
- wadors.register(cornerstone);
5
- wadouri.register(cornerstone);
4
+ wadorsRegister(cornerstone);
5
+ wadouriRegister(cornerstone);
6
6
  }
7
7
  export default registerLoaders;
@@ -1,4 +1,8 @@
1
- import { getNumberString, getNumberValue, getNumberValues, getValue, metaDataProvider } from './metaData/index';
1
+ import getNumberString from './metaData/getNumberString';
2
+ import getNumberValue from './metaData/getNumberValue';
3
+ import getNumberValues from './metaData/getNumberValues';
4
+ import getValue from './metaData/getValue';
5
+ import metaDataProvider from './metaData/metaDataProvider';
2
6
  import findIndexOfString from './findIndexOfString';
3
7
  import getPixelData from './getPixelData';
4
8
  import loadImage from './loadImage';
@@ -1,4 +1,8 @@
1
- import { getNumberString, getNumberValue, getNumberValues, getValue, metaDataProvider, } from './metaData/index';
1
+ import getNumberString from './metaData/getNumberString';
2
+ import getNumberValue from './metaData/getNumberValue';
3
+ import getNumberValues from './metaData/getNumberValues';
4
+ import getValue from './metaData/getValue';
5
+ import metaDataProvider from './metaData/metaDataProvider';
2
6
  import findIndexOfString from './findIndexOfString';
3
7
  import getPixelData from './getPixelData';
4
8
  import metaDataManager from './metaDataManager';
@@ -2,10 +2,9 @@ import external from '../../../externalModules';
2
2
  import getNumberValues from './getNumberValues';
3
3
  import getNumberValue from './getNumberValue';
4
4
  import getOverlayPlaneModule from './getOverlayPlaneModule';
5
- import metaDataManager from '../metaDataManager';
5
+ import metaDataManager, { retrieveMultiframeMetadata, } from '../metaDataManager';
6
6
  import getValue from './getValue';
7
7
  import { getMultiframeInformation, getFrameInformation, } from '../combineFrameInstance';
8
- import multiframeMetadata from '../retrieveMultiframeMetadata';
9
8
  import { extractOrientationFromMetadata, extractPositionFromMetadata, } from './extractPositioningFromMetadata';
10
9
  import { getImageTypeSubItemFromMetadata } from './NMHelpers';
11
10
  import isNMReconstructable from '../../isNMReconstructable';
@@ -15,7 +14,7 @@ function metaDataProvider(type, imageId) {
15
14
  const { MetadataModules } = external.cornerstone.Enums;
16
15
  const { dicomParser } = external;
17
16
  if (type === MetadataModules.MULTIFRAME) {
18
- const { metadata, frame } = multiframeMetadata.retrieveMultiframeMetadata(imageId);
17
+ const { metadata, frame } = retrieveMultiframeMetadata(imageId);
19
18
  if (!metadata) {
20
19
  return;
21
20
  }
@@ -1,10 +1,15 @@
1
1
  import type { WADORSMetaData } from '../../types';
2
2
  declare let metadataByImageURI: any[];
3
+ declare function retrieveMultiframeMetadata(imageId: any): {
4
+ metadata: any;
5
+ frame: number;
6
+ };
7
+ declare function isMultiframe(metadata: any): boolean;
3
8
  declare function add(imageId: string, metadata: WADORSMetaData): void;
4
9
  declare function get(imageId: string): WADORSMetaData;
5
10
  declare function remove(imageId: any): void;
6
11
  declare function purge(): void;
7
- export { metadataByImageURI };
12
+ export { metadataByImageURI, isMultiframe, retrieveMultiframeMetadata };
8
13
  declare const _default: {
9
14
  add: typeof add;
10
15
  get: typeof get;
@@ -1,12 +1,30 @@
1
1
  import imageIdToURI from '../imageIdToURI';
2
2
  import { combineFrameInstance } from './combineFrameInstance';
3
- import multiframeMetadata from './retrieveMultiframeMetadata';
4
3
  let metadataByImageURI = [];
5
4
  let multiframeMetadataByImageURI = {};
5
+ import getValue from './metaData/getValue';
6
+ function _retrieveMultiframeMetadata(imageURI) {
7
+ const lastSlashIdx = imageURI.indexOf('/frames/') + 8;
8
+ const imageIdFrameless = imageURI.slice(0, lastSlashIdx);
9
+ const frame = parseInt(imageURI.slice(lastSlashIdx), 10);
10
+ const metadata = metadataByImageURI[`${imageIdFrameless}1`];
11
+ return {
12
+ metadata,
13
+ frame,
14
+ };
15
+ }
16
+ function retrieveMultiframeMetadata(imageId) {
17
+ const imageURI = imageIdToURI(imageId);
18
+ return _retrieveMultiframeMetadata(imageURI);
19
+ }
20
+ function isMultiframe(metadata) {
21
+ const numberOfFrames = getValue(metadata['00280008']);
22
+ return numberOfFrames && numberOfFrames > 1;
23
+ }
6
24
  function add(imageId, metadata) {
7
25
  const imageURI = imageIdToURI(imageId);
8
26
  Object.defineProperty(metadata, 'isMultiframe', {
9
- value: multiframeMetadata.isMultiframe(metadata),
27
+ value: isMultiframe(metadata),
10
28
  enumerable: false,
11
29
  });
12
30
  metadataByImageURI[imageURI] = metadata;
@@ -21,7 +39,7 @@ function get(imageId) {
21
39
  if (cachedMetadata) {
22
40
  return cachedMetadata;
23
41
  }
24
- const retrievedMetadata = multiframeMetadata._retrieveMultiframeMetadata(imageURI);
42
+ const retrievedMetadata = retrieveMultiframeMetadata(imageURI);
25
43
  if (!retrievedMetadata || !retrievedMetadata.metadata) {
26
44
  return;
27
45
  }
@@ -41,7 +59,7 @@ function purge() {
41
59
  metadataByImageURI = [];
42
60
  multiframeMetadataByImageURI = {};
43
61
  }
44
- export { metadataByImageURI };
62
+ export { metadataByImageURI, isMultiframe, retrieveMultiframeMetadata };
45
63
  export default {
46
64
  add,
47
65
  get,
@@ -1,5 +1,5 @@
1
1
  import loadImage from './loadImage';
2
- import { metaDataProvider } from './metaData/index';
2
+ import { metaDataProvider } from './metaData';
3
3
  export default function (cornerstone) {
4
4
  cornerstone.registerImageLoader('wadors', loadImage);
5
5
  cornerstone.metaData.addProvider(metaDataProvider);
@@ -1,5 +1,6 @@
1
1
  import type { DataSet } from 'dicom-parser';
2
2
  import type { LoadRequestFunction, DICOMLoaderDataSetWithFetchMore } from '../../types';
3
+ import { loadedDataSets } from './loadedDataSets';
3
4
  export interface CornerstoneWadoLoaderCacheManagerInfoResponse {
4
5
  cacheSizeInBytes: number;
5
6
  numberOfDataSetsCached: number;
@@ -7,10 +8,6 @@ export interface CornerstoneWadoLoaderCacheManagerInfoResponse {
7
8
  export interface CornerstoneWadoLoaderCachedPromise extends Promise<DataSet | DICOMLoaderDataSetWithFetchMore> {
8
9
  cacheCount?: number;
9
10
  }
10
- declare let loadedDataSets: Record<string, {
11
- dataSet: DataSet;
12
- cacheCount: number;
13
- }>;
14
11
  declare function isLoaded(uri: string): boolean;
15
12
  declare function get(uri: string): DataSet;
16
13
  declare function update(uri: string, dataSet: DataSet): void;
@@ -3,8 +3,8 @@ import { xhrRequest } from '../internal/index';
3
3
  import dataSetFromPartialContent from './dataset-from-partial-content';
4
4
  import { combineFrameInstanceDataset } from './combineFrameInstanceDataset';
5
5
  import multiframeDataset from './retrieveMultiframeDataset';
6
+ import { loadedDataSets, purgeLoadedDataSets } from './loadedDataSets';
6
7
  let cacheSizeInBytes = 0;
7
- let loadedDataSets = {};
8
8
  let promises = {};
9
9
  function isLoaded(uri) {
10
10
  return loadedDataSets[uri] !== undefined;
@@ -126,7 +126,7 @@ export function getInfo() {
126
126
  };
127
127
  }
128
128
  function purge() {
129
- loadedDataSets = {};
129
+ purgeLoadedDataSets();
130
130
  promises = {};
131
131
  cacheSizeInBytes = 0;
132
132
  }
@@ -0,0 +1,7 @@
1
+ import type { DataSet } from 'dicom-parser';
2
+ declare let loadedDataSets: Record<string, {
3
+ dataSet: DataSet;
4
+ cacheCount: number;
5
+ }>;
6
+ declare const purgeLoadedDataSets: () => void;
7
+ export { loadedDataSets, purgeLoadedDataSets };
@@ -0,0 +1,5 @@
1
+ let loadedDataSets = {};
2
+ const purgeLoadedDataSets = () => {
3
+ loadedDataSets = {};
4
+ };
5
+ export { loadedDataSets, purgeLoadedDataSets };
@@ -1,4 +1,4 @@
1
- import { loadedDataSets } from './dataSetCacheManager';
1
+ import { loadedDataSets } from './loadedDataSets';
2
2
  function _get(uri) {
3
3
  if (!loadedDataSets[uri]) {
4
4
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/dicom-image-loader",
3
- "version": "2.0.0-beta.21",
3
+ "version": "2.0.0-beta.23",
4
4
  "description": "Cornerstone Image Loader for DICOM WADO-URI and WADO-RS and Local file",
5
5
  "keywords": [
6
6
  "DICOM",
@@ -44,7 +44,8 @@
44
44
  "copy-dts": "echo 'not implemented yet'",
45
45
  "clean": "shx rm -rf dist",
46
46
  "clean:deep": "yarn run clean && shx rm -rf node_modules",
47
- "api-check": "echo 'not implemented yet'",
47
+ "format-check": "npx eslint ./src --quiet",
48
+ "api-check": "yarn run format-check",
48
49
  "cm": "npx git-cz",
49
50
  "clean:dist": "shx rm -rf dist",
50
51
  "clean:docs": "shx rm -rf documentation",
@@ -95,5 +96,5 @@
95
96
  "path": "./node_modules/cz-conventional-changelog"
96
97
  }
97
98
  },
98
- "gitHead": "de2d08d4edbae4ca48831cc44a57737717b10b22"
99
+ "gitHead": "59acc619e43b3c8f748b6ba8dd5d964355b2c68b"
99
100
  }
@@ -1,15 +0,0 @@
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;
@@ -1,26 +0,0 @@
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
- };