larvitar 2.0.11 → 2.0.13

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.
package/README.md CHANGED
@@ -8,8 +8,8 @@
8
8
 
9
9
  ## Dicom Image Toolkit for CornerstoneJS
10
10
 
11
- ### Current version: 2.0.11
12
- ### Latest Published Release: 2.0.11
11
+ ### Current version: 2.0.13
12
+ ### Latest Published Release: 2.0.13
13
13
 
14
14
  This library provides common DICOM functionalities to be used in web-applications: it's wrapper that simplifies the use of cornerstone-js environment.
15
15
 
@@ -19,11 +19,11 @@ export declare const updateLarvitarManager: (imageObject: ImageObject, customId?
19
19
  * This function can be called in order to populate the Larvitar manager
20
20
  * @instance
21
21
  * @function populateLarvitarManager
22
- * @param {String} seriesId The Id of the series
22
+ * @param {String} larvitarSeriesInstanceUID The Id of the manager stack
23
23
  * @param {Object} seriesData The series data
24
24
  * @returns {manager} the Larvitar manager
25
25
  */
26
- export declare const populateLarvitarManager: (seriesId: string, seriesData: Series) => {
26
+ export declare const populateLarvitarManager: (larvitarSeriesInstanceUID: string, seriesData: Series) => {
27
27
  [key: string]: Series | import("../types").NrrdSeries;
28
28
  };
29
29
  /**
@@ -19,7 +19,7 @@ export declare const loadMultiFrameImage: (imageId: string) => {
19
19
  * @param {String} seriesId - SeriesId tag
20
20
  * @param {Object} serie - parsed serie object
21
21
  */
22
- export declare const buildMultiFrameImage: (seriesId: string, serie: Series) => void;
22
+ export declare const buildMultiFrameImage: (larvitarSeriesInstanceUID: string, serie: Series) => void;
23
23
  /**
24
24
  * Get the custom imageId from custom loader
25
25
  * @instance
package/dist/larvitar.js CHANGED
@@ -80792,8 +80792,7 @@ const parseDataSet = function (dataSet, metadata, customFilter) {
80792
80792
  // be named 'x0008103e'. Here we iterate over each property (element) so we can build a string describing its
80793
80793
  // contents to add to the output array
80794
80794
  try {
80795
- let elements = dataSet.elements;
80796
- customFilter && (0, lodash_1.has)(customFilter, "tags")
80795
+ let elements = customFilter && (0, lodash_1.has)(customFilter, "tags")
80797
80796
  ? (0, lodash_1.pick)(dataSet.elements, customFilter.tags)
80798
80797
  : dataSet.elements;
80799
80798
  for (let propertyName in elements) {
@@ -80804,18 +80803,28 @@ const parseDataSet = function (dataSet, metadata, customFilter) {
80804
80803
  // sequences will are currently not parsed.
80805
80804
  if (element.items) {
80806
80805
  let nestedArray = [];
80807
- // iterates over nested elements (nested metadata)
80808
- element.items.forEach(function (item) {
80806
+ function getNestedObject(item) {
80809
80807
  let nestedObject = {};
80810
80808
  for (let nestedPropertyName in item.dataSet.elements) {
80811
80809
  let TAG_tagValue = nestedPropertyName;
80812
80810
  let tagValue = (0, imageTags_1.parseTag)(item.dataSet, nestedPropertyName, item.dataSet.elements[nestedPropertyName]);
80813
80811
  let TAG_nested = nestedPropertyName;
80814
80812
  nestedObject[TAG_nested] = tagValue;
80815
- //see MetaDataTypes.ts last property to understand how this dynamic value setting is possible
80816
80813
  }
80817
80814
  nestedArray.push(nestedObject);
80818
- });
80815
+ }
80816
+ if (customFilter && (0, lodash_1.has)(customFilter, "frameId")) {
80817
+ let item = element.items[customFilter.frameId];
80818
+ if (item && Object.keys(item).length !== 0) {
80819
+ getNestedObject(item);
80820
+ }
80821
+ }
80822
+ else {
80823
+ // iterates over nested elements (nested metadata)
80824
+ element.items.forEach(function (item) {
80825
+ getNestedObject(item);
80826
+ });
80827
+ }
80819
80828
  metadata[TAG] = nestedArray;
80820
80829
  }
80821
80830
  else {
@@ -84218,20 +84227,20 @@ exports.updateLarvitarManager = updateLarvitarManager;
84218
84227
  * This function can be called in order to populate the Larvitar manager
84219
84228
  * @instance
84220
84229
  * @function populateLarvitarManager
84221
- * @param {String} seriesId The Id of the series
84230
+ * @param {String} larvitarSeriesInstanceUID The Id of the manager stack
84222
84231
  * @param {Object} seriesData The series data
84223
84232
  * @returns {manager} the Larvitar manager
84224
84233
  */
84225
- const populateLarvitarManager = function (seriesId, seriesData) {
84234
+ const populateLarvitarManager = function (larvitarSeriesInstanceUID, seriesData) {
84226
84235
  if (larvitarManager === null) {
84227
84236
  larvitarManager = {};
84228
84237
  }
84229
84238
  let data = Object.assign({}, seriesData);
84230
84239
  if (data.isMultiframe) {
84231
- (0, multiframeLoader_1.buildMultiFrameImage)(seriesId, data);
84240
+ (0, multiframeLoader_1.buildMultiFrameImage)(larvitarSeriesInstanceUID, data);
84232
84241
  }
84233
84242
  else {
84234
- larvitarManager[seriesId] = data;
84243
+ larvitarManager[larvitarSeriesInstanceUID] = data;
84235
84244
  }
84236
84245
  return larvitarManager;
84237
84246
  };
@@ -84635,7 +84644,7 @@ exports.loadMultiFrameImage = loadMultiFrameImage;
84635
84644
  * @param {String} seriesId - SeriesId tag
84636
84645
  * @param {Object} serie - parsed serie object
84637
84646
  */
84638
- const buildMultiFrameImage = function (seriesId, serie) {
84647
+ const buildMultiFrameImage = function (larvitarSeriesInstanceUID, serie) {
84639
84648
  let t0 = performance.now();
84640
84649
  let manager = (0, commonLoader_1.getLarvitarManager)();
84641
84650
  let imageTracker = (0, commonLoader_1.getLarvitarImageTracker)();
@@ -84646,12 +84655,12 @@ const buildMultiFrameImage = function (seriesId, serie) {
84646
84655
  let sopInstanceUID = serie.metadata["x00080018"];
84647
84656
  let dataSet = serie.dataSet;
84648
84657
  let imageId = (0, exports.getMultiFrameImageId)("multiFrameLoader");
84649
- imageTracker[imageId] = seriesId;
84658
+ imageTracker[imageId] = larvitarSeriesInstanceUID;
84650
84659
  // check if manager exists for this seriesId
84651
- if (!manager[seriesId]) {
84652
- manager[seriesId] = serie;
84653
- manager[seriesId].imageIds = [];
84654
- manager[seriesId].instances = {};
84660
+ if (!manager[larvitarSeriesInstanceUID]) {
84661
+ manager[larvitarSeriesInstanceUID] = serie;
84662
+ manager[larvitarSeriesInstanceUID].imageIds = [];
84663
+ manager[larvitarSeriesInstanceUID].instances = {};
84655
84664
  }
84656
84665
  (0, lodash_1.each)((0, lodash_1.range)(numberOfFrames), function (frameNumber) {
84657
84666
  let frameImageId = imageId + "?frame=" + frameNumber;
@@ -84661,10 +84670,9 @@ const buildMultiFrameImage = function (seriesId, serie) {
84661
84670
  tags: ["x52009230"],
84662
84671
  frameId: frameNumber
84663
84672
  });
84664
- // TODO-ts REMOVE "AS" WHEN METADATA VALUES ARE TYPED
84665
84673
  // store file references
84666
- const managerSeriesId = manager[seriesId];
84667
- managerSeriesId.seriesUID = seriesId;
84674
+ const managerSeriesId = manager[larvitarSeriesInstanceUID];
84675
+ managerSeriesId.seriesUID = serie.metadata["x0020000e"];
84668
84676
  managerSeriesId.studyUID = serie.metadata["x0020000d"];
84669
84677
  managerSeriesId.modality = serie.metadata["x00080060"];
84670
84678
  managerSeriesId.color = cornerstone_wado_image_loader_1.default.isColorImage(serie.metadata["x00280004"]);
@@ -88969,7 +88977,7 @@ module.exports = JSON.parse('{"x00000000":{"tag":"x00000000","vr":"UL","vm":"1",
88969
88977
  /***/ ((module) => {
88970
88978
 
88971
88979
  "use strict";
88972
- module.exports = JSON.parse('{"name":"larvitar","keywords":["DICOM","imaging","medical","cornerstone"],"version":"2.0.11","description":"typescript library for parsing, loading, rendering and interacting with DICOM images","repository":{"url":"https://github.com/dvisionlab/Larvitar.git","type":"git"},"main":"dist/larvitar.js","types":"dist/index.d.ts","files":["dist","imaging/**/*.d.ts"],"scripts":{"coverage":"typescript-coverage-report","generate-docs":"node_modules/.bin/jsdoc -c jsdoc.json","build":"webpack --config ./bundler/webpack.prod.js && cp ./dist/larvitar.js ./docs/examples/larvitar.js","dev":"webpack --progress --config ./bundler/webpack.dev.js && cp ./dist/larvitar.js ./docs/examples/larvitar.js","dev-wip":"webpack serve --config ./bundler/webpack.dev-wip.js"},"author":"Simone Manini <simone.manini@dvisionlab.com> (https://www.dvisionlab.com)","contributors":["Mattia Ronzoni <mattia.ronzoni@dvisionlab.com> (https://www.dvisionlab.com)","Sara Zanchi <sara.zanchi@dvisionlab.com> (https://www.dvisionlab.com)","Ale Re <ale.re@dvisionlab.com> (https://www.dvisionlab.com)","Laura Borghesi Re <laura.borghesi@dvisionlab.com> (https://www.dvisionlab.com)"],"license":"MIT","dependencies":{"@rollup/plugin-commonjs":"^17.1.0","cornerstone-core":"^2.6.1","cornerstone-file-image-loader":"^0.3.0","cornerstone-tools":"^6.0.7","cornerstone-wado-image-loader":"^4.13.2","cornerstone-web-image-loader":"^2.1.1","crypto-js":"^4.1.1","dicom-character-set":"^1.0.3","dicom-parser":"^1.8.13","docdash":"^1.2.0","hammerjs":"^2.0.8","jpeg-lossless-decoder-js":"^2.0.7","keycode-js":"^3.1.0","lodash":"^4.17.15","pako":"^1.0.10","papaparse":"^5.3.0","plotly.js-dist-min":"^2.27.1","uuid":"^8.3.2"},"devDependencies":{"@babel/core":"^7.21.8","@types/cornerstone-core":"^2.3.0","@types/crypto-js":"^4.1.1","@types/hammerjs":"^2.0.41","@types/lodash":"^4.14.192","@types/papaparse":"^5.3.7","@types/plotly.js":"^2.12.30","@types/plotly.js-dist-min":"^2.3.4","@types/uuid":"^9.0.1","babel-loader":"^9.1.2","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","fs":"^0.0.1-security","html-loader":"^4.2.0","html-webpack-plugin":"^5.5.0","ip":"^1.1.8","jsdoc":"^3.6.4","portfinder-sync":"^0.0.2","ts-loader":"^9.4.2","typescript":"^5.0.2","typescript-coverage-report":"^0.7.0","webpack":"^5.76.3","webpack-bundle-analyzer":"^4.8.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.13.1"}}');
88980
+ module.exports = JSON.parse('{"name":"larvitar","keywords":["DICOM","imaging","medical","cornerstone"],"version":"2.0.13","description":"typescript library for parsing, loading, rendering and interacting with DICOM images","repository":{"url":"https://github.com/dvisionlab/Larvitar.git","type":"git"},"main":"dist/larvitar.js","types":"dist/index.d.ts","files":["dist","imaging/**/*.d.ts"],"scripts":{"coverage":"typescript-coverage-report","generate-docs":"node_modules/.bin/jsdoc -c jsdoc.json","build":"webpack --config ./bundler/webpack.prod.js && cp ./dist/larvitar.js ./docs/examples/larvitar.js","dev":"webpack --progress --config ./bundler/webpack.dev.js && cp ./dist/larvitar.js ./docs/examples/larvitar.js","dev-wip":"webpack serve --config ./bundler/webpack.dev-wip.js"},"author":"Simone Manini <simone.manini@dvisionlab.com> (https://www.dvisionlab.com)","contributors":["Mattia Ronzoni <mattia.ronzoni@dvisionlab.com> (https://www.dvisionlab.com)","Sara Zanchi <sara.zanchi@dvisionlab.com> (https://www.dvisionlab.com)","Ale Re <ale.re@dvisionlab.com> (https://www.dvisionlab.com)","Laura Borghesi Re <laura.borghesi@dvisionlab.com> (https://www.dvisionlab.com)"],"license":"MIT","dependencies":{"@rollup/plugin-commonjs":"^17.1.0","cornerstone-core":"^2.6.1","cornerstone-file-image-loader":"^0.3.0","cornerstone-tools":"^6.0.7","cornerstone-wado-image-loader":"^4.13.2","cornerstone-web-image-loader":"^2.1.1","crypto-js":"^4.1.1","dicom-character-set":"^1.0.3","dicom-parser":"^1.8.13","docdash":"^1.2.0","hammerjs":"^2.0.8","jpeg-lossless-decoder-js":"^2.0.7","keycode-js":"^3.1.0","lodash":"^4.17.15","pako":"^1.0.10","papaparse":"^5.3.0","plotly.js-dist-min":"^2.27.1","uuid":"^8.3.2"},"devDependencies":{"@babel/core":"^7.21.8","@types/cornerstone-core":"^2.3.0","@types/crypto-js":"^4.1.1","@types/hammerjs":"^2.0.41","@types/lodash":"^4.14.192","@types/papaparse":"^5.3.7","@types/plotly.js":"^2.12.30","@types/plotly.js-dist-min":"^2.3.4","@types/uuid":"^9.0.1","babel-loader":"^9.1.2","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","fs":"^0.0.1-security","html-loader":"^4.2.0","html-webpack-plugin":"^5.5.0","ip":"^1.1.8","jsdoc":"^3.6.4","portfinder-sync":"^0.0.2","ts-loader":"^9.4.2","typescript":"^5.0.2","typescript-coverage-report":"^0.7.0","webpack":"^5.76.3","webpack-bundle-analyzer":"^4.8.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.13.1"}}');
88973
88981
 
88974
88982
  /***/ })
88975
88983