larvitar 1.2.4 → 1.2.5

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
@@ -6,11 +6,11 @@
6
6
 
7
7
  ## Dicom Image Toolkit for CornestoneJS
8
8
 
9
- ### Current version: 1.2.4
9
+ ### Current version: 1.2.5
10
10
 
11
- ### Latest Stable version: 1.2.4
11
+ ### Latest Stable version: 1.2.5
12
12
 
13
- ### Latest Published Release: 1.2.4
13
+ ### Latest Published Release: 1.2.5
14
14
 
15
15
  This library provides common DICOM functionalities to be used in web-applications: it's wrapper that simplifies the use of cornestone-js environment.
16
16
  Orthogonal multiplanar reformat is included as well as custom loader/exporter for nrrd files and [Vuex](https://vuex.vuejs.org/) custom integration.
@@ -253,7 +253,6 @@ export const resizeViewport = function (elementId) {
253
253
  */
254
254
  export const renderImage = function (seriesStack, elementId, defaultProps) {
255
255
  let t0 = performance.now();
256
-
257
256
  // get element and enable it
258
257
  let element = isElement(elementId)
259
258
  ? elementId
@@ -266,9 +265,6 @@ export const renderImage = function (seriesStack, elementId, defaultProps) {
266
265
 
267
266
  let series = { ...seriesStack };
268
267
 
269
- // default to 0 if multiframe and frameId is null
270
- // let frameId = series.isMultiframe ? 1 : null;
271
-
272
268
  larvitar_store.set("renderingStatus", [elementId, false]);
273
269
  let data = getSeriesData(series, defaultProps);
274
270
  if (!data.imageId) {
@@ -372,17 +368,23 @@ export const updateImage = function (
372
368
  console.log("not element");
373
369
  return;
374
370
  }
375
- let index = imageIndex == 0 ? imageIndex : imageIndex - 1;
376
- if (cacheImage) {
377
- cornerstone
378
- .loadAndCacheImage(series.imageIds[index])
379
- .then(function (image) {
371
+ let imageId = series.imageIds[imageIndex];
372
+ if (imageId) {
373
+ if (cacheImage) {
374
+ cornerstone.loadAndCacheImage(imageId).then(function (image) {
375
+ cornerstone.displayImage(element, image);
376
+ larvitar_store.set("sliceId", [elementId, imageIndex]);
377
+ });
378
+ } else {
379
+ cornerstone.loadImage(imageId).then(function (image) {
380
380
  cornerstone.displayImage(element, image);
381
+ larvitar_store.set("sliceId", [elementId, imageIndex]);
381
382
  });
383
+ }
382
384
  } else {
383
- cornerstone.loadImage(series.imageIds[index]).then(function (image) {
384
- cornerstone.displayImage(element, image);
385
- });
385
+ console.warn(
386
+ `Error: wrong image index ${imageIndex}, no imageId available`
387
+ );
386
388
  }
387
389
  };
388
390
 
@@ -530,9 +532,10 @@ export const storeViewportData = function (image, elementId, viewport, data) {
530
532
  larvitar_store.set("thickness", [elementId, data.thickness]);
531
533
  larvitar_store.set("minPixelValue", [elementId, image.minPixelValue]);
532
534
  larvitar_store.set("maxPixelValue", [elementId, image.maxPixelValue]);
533
- larvitar_store.set("minSliceId", [elementId, 1]);
535
+ // slice id from 0 to n - 1
536
+ larvitar_store.set("minSliceId", [elementId, 0]);
534
537
  larvitar_store.set("sliceId", [elementId, data.imageIndex]);
535
- larvitar_store.set("maxSliceId", [elementId, data.numberOfSlices]);
538
+ larvitar_store.set("maxSliceId", [elementId, data.numberOfSlices - 1]);
536
539
  larvitar_store.set("defaultViewport", [
537
540
  elementId,
538
541
  viewport.scale,
@@ -666,12 +669,11 @@ export const rotateImageRight = function (elementId) {
666
669
  */
667
670
  let getSeriesData = function (series, defaultProps) {
668
671
  let data = {};
669
- // image index
670
672
  if (series.isMultiframe) {
671
673
  data.isMultiframe = true;
672
674
  data.numberOfSlices = series.imageIds.length;
673
- data.imageIndex = 1;
674
- data.imageId = series.imageIds[0];
675
+ data.imageIndex = 0;
676
+ data.imageId = series.imageIds[data.imageIndex];
675
677
  } else {
676
678
  data.isMultiframe = false;
677
679
  data.numberOfSlices =
@@ -682,14 +684,12 @@ let getSeriesData = function (series, defaultProps) {
682
684
  data.imageIndex =
683
685
  defaultProps &&
684
686
  has(defaultProps, "sliceNumber") &&
685
- defaultProps["sliceNumber"] <= data.numberOfSlices
687
+ defaultProps["sliceNumber"] >= 0 && // slice number between 0 and n-1
688
+ defaultProps["sliceNumber"] < data.numberOfSlices
686
689
  ? defaultProps["sliceNumber"]
687
690
  : Math.floor(data.numberOfSlices / 2);
688
691
 
689
- data.imageId =
690
- data.imageIndex > 0
691
- ? series.imageIds[data.imageIndex - 1]
692
- : series.imageIds[0];
692
+ data.imageId = series.imageIds[data.imageIndex];
693
693
  }
694
694
  data.isColor = series.color;
695
695
  data.isTimeserie = false; // TODO 4D
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "medical",
7
7
  "cornerstone"
8
8
  ],
9
- "version": "1.2.4",
9
+ "version": "1.2.5",
10
10
  "description": "javascript library for parsing, loading, rendering and interacting with DICOM images",
11
11
  "repository": {
12
12
  "url": "https://github.com/dvisionlab/Larvitar.git",