larvitar 1.5.4 → 1.5.7

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,9 +6,9 @@
6
6
 
7
7
  ## Dicom Image Toolkit for CornerstoneJS
8
8
 
9
- ### Current version: 1.5.4
9
+ ### Current version: 1.5.7
10
10
 
11
- ### Latest Published Release: 1.5.4
11
+ ### Latest Published Release: 1.5.7
12
12
 
13
13
  This library provides common DICOM functionalities to be used in web-applications: it's wrapper that simplifies the use of cornerstone-js environment.
14
14
  Orthogonal multiplanar reformat is included as well as custom loader/exporter for nrrd files and [Vuex](https://vuex.vuejs.org/) custom integration.
@@ -34,10 +34,6 @@ const globalConfig = {
34
34
  1
35
35
  ),
36
36
  startWebWorkersOnDemand: true,
37
- webWorkerTaskPaths: [
38
- "https://unpkg.com/cornerstone-wado-image-loader@4.8.0/dist/610.bundle.min.worker.js",
39
- "https://unpkg.com/cornerstone-wado-image-loader@4.8.0/dist/888.bundle.min.worker.js"
40
- ],
41
37
  taskConfiguration: {
42
38
  decodeTask: {
43
39
  loadCodecsOnStartup: true,
@@ -9,6 +9,8 @@ import {
9
9
  sortBy,
10
10
  clone,
11
11
  find,
12
+ filter,
13
+ keys,
12
14
  has,
13
15
  max,
14
16
  map,
@@ -24,6 +26,7 @@ import { convertBytes } from "dicom-character-set";
24
26
  // internal libraries
25
27
  import { getDicomImageId } from "./loaders/dicomLoader";
26
28
  import TAG_DICT from "./dataDictionary.json";
29
+ import { getSeriesDataFromLarvitarManager } from "./loaders/commonLoader";
27
30
 
28
31
  // global module variables
29
32
  // variables used to manage the reslice functionality
@@ -51,6 +54,7 @@ const resliceTable = {
51
54
  * getDistanceBetweenSlices(seriesData, sliceIndex1, sliceIndex2)
52
55
  * parseTag(dataSet, propertyName, element)
53
56
  * isElement(o)
57
+ * getImageMetadata(dataSet, imageId)
54
58
  */
55
59
 
56
60
  /**
@@ -848,6 +852,53 @@ export const parseTag = function (dataSet, propertyName, element) {
848
852
  return value;
849
853
  };
850
854
 
855
+ /**
856
+ * @instance
857
+ * @function getImageMetadata
858
+ * @param {String} seriesId - The seriesUID
859
+ * @param {String} instanceUID - The SOPInstanceUID
860
+ * @return {Array} - List of metadata objects: tag, name and value
861
+ */
862
+ export const getImageMetadata = function (seriesId, instanceUID) {
863
+ const seriesData = getSeriesDataFromLarvitarManager(seriesId);
864
+ if (seriesData === undefined || seriesData === null) {
865
+ console.log(`Invalid Series ID: ${seriesId}`);
866
+ return [];
867
+ }
868
+ const imageId = seriesData.instanceUIDs[instanceUID];
869
+ if (imageId === undefined) {
870
+ console.log(`Invalid InstanceUID ID: ${instanceUID}`);
871
+ return [];
872
+ }
873
+
874
+ let metadata = seriesData.instances[imageId].metadata;
875
+ // get elements from metadata where the key starts with x and is length 7
876
+ let metadata_keys = filter(keys(metadata), function (key) {
877
+ return key.length === 9 && key[0] === "x";
878
+ });
879
+ // loop metadata using metadata_keys and return list of key value pairs
880
+ let metadata_list = map(metadata_keys, function (key) {
881
+ // if value is a dictionary return empty string
882
+ const value =
883
+ metadata[key] && metadata[key].constructor == Object ? "" : metadata[key];
884
+ // convert key removing x and adding comma at position 4
885
+ const tagKey = (
886
+ "(" +
887
+ key.slice(1, 5) +
888
+ "," +
889
+ key.slice(5) +
890
+ ")"
891
+ ).toUpperCase();
892
+ const name = TAG_DICT[tagKey] ? TAG_DICT[tagKey].name : "";
893
+ return {
894
+ tag: tagKey,
895
+ name: name,
896
+ value: value
897
+ };
898
+ });
899
+ return metadata_list;
900
+ };
901
+
851
902
  /* Internal module functions */
852
903
 
853
904
  /**
package/index.js CHANGED
@@ -37,7 +37,8 @@ import {
37
37
  getMeanValue,
38
38
  getReslicedMetadata,
39
39
  getReslicedPixeldata,
40
- getDistanceBetweenSlices
40
+ getDistanceBetweenSlices,
41
+ getImageMetadata
41
42
  } from "./imaging/imageUtils";
42
43
 
43
44
  import {
@@ -243,6 +244,7 @@ export {
243
244
  getReslicedMetadata,
244
245
  getReslicedPixeldata,
245
246
  getDistanceBetweenSlices,
247
+ getImageMetadata,
246
248
  // imageIo
247
249
  buildHeader,
248
250
  getCachedPixelData,
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "medical",
7
7
  "cornerstone"
8
8
  ],
9
- "version": "1.5.4",
9
+ "version": "1.5.7",
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",
@@ -29,7 +29,7 @@
29
29
  "cornerstone-core": "^2.6.1",
30
30
  "cornerstone-file-image-loader": "^0.3.0",
31
31
  "cornerstone-tools": "^6.0.7",
32
- "cornerstone-wado-image-loader": "^4.8.0",
32
+ "cornerstone-wado-image-loader": "^4.10.2",
33
33
  "cornerstone-web-image-loader": "^2.1.1",
34
34
  "crypto-js": "^4.1.1",
35
35
  "dicom-character-set": "^1.0.3",