larvitar 2.0.6 → 2.0.8
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 +2 -2
- package/dist/imaging/imageRendering.d.ts +2 -62
- package/dist/imaging/imageStore.d.ts +5 -59
- package/dist/imaging/loaders/commonLoader.d.ts +4 -4
- package/dist/imaging/loaders/nrrdLoader.d.ts +1 -51
- package/dist/larvitar.js +34 -9
- package/dist/larvitar.js.map +1 -1
- package/imaging/MetaDataReadable.d.ts +42 -0
- package/imaging/MetaDataTypes.d.ts +3491 -0
- package/imaging/tools/README.md +27 -0
- package/imaging/tools/types.d.ts +243 -0
- package/imaging/types.d.ts +309 -0
- package/package.json +3 -2
- package/dist/imaging/MetaDataReadable.d.ts +0 -41
- package/dist/imaging/MetaDataTypes.d.ts +0 -3489
package/README.md
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
|
|
9
9
|
## Dicom Image Toolkit for CornerstoneJS
|
|
10
10
|
|
|
11
|
-
### Current version: 2.0.
|
|
12
|
-
### Latest Published Release: 2.0.
|
|
11
|
+
### Current version: 2.0.8
|
|
12
|
+
### Latest Published Release: 2.0.8
|
|
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
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* rendering images in html canvas using cornerstone
|
|
4
4
|
*/
|
|
5
5
|
import cornerstone from "cornerstone-core";
|
|
6
|
-
import { Image, Series, StoreViewportOptions, Viewport } from "./types";
|
|
6
|
+
import { Image, Series, StoreViewport, StoreViewportOptions, Viewport } from "./types";
|
|
7
7
|
/**
|
|
8
8
|
* Purge the cornestone internal cache
|
|
9
9
|
* If seriesId is passed as argument only imageIds of the series are purged from internal cache
|
|
@@ -174,65 +174,5 @@ export declare const rotateImageRight: (elementId: string | HTMLElement) => void
|
|
|
174
174
|
* @param {Object} defaultProps - Optional default properties
|
|
175
175
|
* @return {Object} data - A data dictionary with parsed tags' values
|
|
176
176
|
*/
|
|
177
|
-
declare const getSeriesData: (series: Series, defaultProps: StoreViewportOptions) =>
|
|
178
|
-
loading: number;
|
|
179
|
-
ready: boolean;
|
|
180
|
-
minSliceId: number;
|
|
181
|
-
maxSliceId: number;
|
|
182
|
-
sliceId: number;
|
|
183
|
-
pendingSliceId?: number | undefined;
|
|
184
|
-
minTimeId: number;
|
|
185
|
-
maxTimeId: number;
|
|
186
|
-
timeId: number;
|
|
187
|
-
timestamp: number;
|
|
188
|
-
timestamps: number[];
|
|
189
|
-
timeIds: number[];
|
|
190
|
-
rows: number;
|
|
191
|
-
cols: number;
|
|
192
|
-
spacing_x: number;
|
|
193
|
-
spacing_y: number;
|
|
194
|
-
thickness: number;
|
|
195
|
-
minPixelValue: number;
|
|
196
|
-
maxPixelValue: number;
|
|
197
|
-
isColor: boolean;
|
|
198
|
-
isMultiframe: boolean;
|
|
199
|
-
isTimeserie: boolean;
|
|
200
|
-
isPDF: boolean;
|
|
201
|
-
viewport: {
|
|
202
|
-
scale: number;
|
|
203
|
-
rotation: number;
|
|
204
|
-
translation: {
|
|
205
|
-
x: number;
|
|
206
|
-
y: number;
|
|
207
|
-
};
|
|
208
|
-
voi: {
|
|
209
|
-
windowCenter: number;
|
|
210
|
-
windowWidth: number;
|
|
211
|
-
};
|
|
212
|
-
rows: number;
|
|
213
|
-
cols: number;
|
|
214
|
-
spacing_x: number;
|
|
215
|
-
spacing_y: number;
|
|
216
|
-
thickness: number;
|
|
217
|
-
};
|
|
218
|
-
default: {
|
|
219
|
-
scale: number;
|
|
220
|
-
rotation: number;
|
|
221
|
-
translation: {
|
|
222
|
-
x: number;
|
|
223
|
-
y: number;
|
|
224
|
-
};
|
|
225
|
-
voi: {
|
|
226
|
-
windowCenter: number;
|
|
227
|
-
windowWidth: number;
|
|
228
|
-
invert: boolean;
|
|
229
|
-
};
|
|
230
|
-
};
|
|
231
|
-
} & {
|
|
232
|
-
imageIndex: number;
|
|
233
|
-
imageId: string;
|
|
234
|
-
numberOfSlices: number;
|
|
235
|
-
numberOfTemporalPositions: number;
|
|
236
|
-
timeIndex?: number | undefined;
|
|
237
|
-
};
|
|
177
|
+
declare const getSeriesData: (series: Series, defaultProps: StoreViewportOptions) => StoreViewport;
|
|
238
178
|
export {};
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @desc This file provides functionalities
|
|
3
3
|
* for data config store.
|
|
4
4
|
*/
|
|
5
|
+
import type { StoreViewport } from "./types.d";
|
|
5
6
|
type StoreSeries = {
|
|
6
7
|
imageIds: string[];
|
|
7
8
|
progress: number;
|
|
@@ -15,12 +16,12 @@ type Store = {
|
|
|
15
16
|
[seriesUID: string]: StoreSeries;
|
|
16
17
|
};
|
|
17
18
|
viewports: {
|
|
18
|
-
[key: string]:
|
|
19
|
+
[key: string]: StoreViewport;
|
|
19
20
|
};
|
|
20
21
|
[key: string]: any;
|
|
21
22
|
};
|
|
22
23
|
type SetPayload = ["errorLog" | "leftActiveTool" | "rightActiveTool", string] | [
|
|
23
|
-
"isColor" | "isMultiframe" | "isPDF" | "isTimeserie" | "ready",
|
|
24
|
+
("isColor" | "isMultiframe" | "isPDF" | "waveform" | "isTimeserie" | "ready"),
|
|
24
25
|
string,
|
|
25
26
|
boolean
|
|
26
27
|
] | [
|
|
@@ -43,62 +44,6 @@ type SetPayload = ["errorLog" | "leftActiveTool" | "rightActiveTool", string] |
|
|
|
43
44
|
number,
|
|
44
45
|
boolean
|
|
45
46
|
];
|
|
46
|
-
export declare const DEFAULT_VIEWPORT: {
|
|
47
|
-
loading: number;
|
|
48
|
-
ready: boolean;
|
|
49
|
-
minSliceId: number;
|
|
50
|
-
maxSliceId: number;
|
|
51
|
-
sliceId: number;
|
|
52
|
-
pendingSliceId?: number;
|
|
53
|
-
minTimeId: number;
|
|
54
|
-
maxTimeId: number;
|
|
55
|
-
timeId: number;
|
|
56
|
-
timestamp: number;
|
|
57
|
-
timestamps: number[];
|
|
58
|
-
timeIds: number[];
|
|
59
|
-
rows: number;
|
|
60
|
-
cols: number;
|
|
61
|
-
spacing_x: number;
|
|
62
|
-
spacing_y: number;
|
|
63
|
-
thickness: number;
|
|
64
|
-
minPixelValue: number;
|
|
65
|
-
maxPixelValue: number;
|
|
66
|
-
isColor: boolean;
|
|
67
|
-
isMultiframe: boolean;
|
|
68
|
-
isTimeserie: boolean;
|
|
69
|
-
isPDF: boolean;
|
|
70
|
-
viewport: {
|
|
71
|
-
scale: number;
|
|
72
|
-
rotation: number;
|
|
73
|
-
translation: {
|
|
74
|
-
x: number;
|
|
75
|
-
y: number;
|
|
76
|
-
};
|
|
77
|
-
voi: {
|
|
78
|
-
windowCenter: number;
|
|
79
|
-
windowWidth: number;
|
|
80
|
-
};
|
|
81
|
-
rows: number;
|
|
82
|
-
cols: number;
|
|
83
|
-
spacing_x: number;
|
|
84
|
-
spacing_y: number;
|
|
85
|
-
thickness: number;
|
|
86
|
-
};
|
|
87
|
-
default: {
|
|
88
|
-
scale: number;
|
|
89
|
-
rotation: number;
|
|
90
|
-
translation: {
|
|
91
|
-
x: number;
|
|
92
|
-
y: number;
|
|
93
|
-
};
|
|
94
|
-
voi: {
|
|
95
|
-
windowCenter: number;
|
|
96
|
-
windowWidth: number;
|
|
97
|
-
invert: boolean;
|
|
98
|
-
};
|
|
99
|
-
};
|
|
100
|
-
};
|
|
101
|
-
export type Viewport = typeof DEFAULT_VIEWPORT;
|
|
102
47
|
export declare const set: (payload: SetPayload) => void;
|
|
103
48
|
declare const _default: {
|
|
104
49
|
initialize: () => void;
|
|
@@ -110,10 +55,11 @@ declare const _default: {
|
|
|
110
55
|
setSliceId: (elementId: string, imageIndex: number) => void;
|
|
111
56
|
setPendingSliceId: (elementId: string, imageIndex: number) => void;
|
|
112
57
|
setMaxSliceId: (elementId: string, imageIndex: number) => void;
|
|
58
|
+
setTimeId: (elementId: string, timeIndex: number) => void;
|
|
113
59
|
get: (props: string | string[]) => any;
|
|
114
60
|
addStoreListener: (listener: (data: Store) => {}) => (data: Store) => {};
|
|
115
61
|
removeStoreListener: () => undefined;
|
|
116
|
-
addViewportListener: (elementId: string, listener: (data:
|
|
62
|
+
addViewportListener: (elementId: string, listener: (data: StoreViewport) => {}) => void;
|
|
117
63
|
removeViewportListener: (elementId: string) => void;
|
|
118
64
|
addSeriesListener: (seriesId: string, listener: (data: StoreSeries) => {}) => void;
|
|
119
65
|
removeSeriesListener: (seriesId: string) => void;
|
|
@@ -13,7 +13,7 @@ import type { ImageObject, MetaData, Series } from "../types";
|
|
|
13
13
|
* @param {number} sliceIndex - Optional custom index to overwrite slice index as default one
|
|
14
14
|
*/
|
|
15
15
|
export declare const updateLarvitarManager: (imageObject: ImageObject, customId?: string, sliceIndex?: number) => {
|
|
16
|
-
[key: string]: Series | import("
|
|
16
|
+
[key: string]: Series | import("../types").NrrdSeries;
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
19
19
|
* This function can be called in order to populate the Larvitar manager
|
|
@@ -24,7 +24,7 @@ export declare const updateLarvitarManager: (imageObject: ImageObject, customId?
|
|
|
24
24
|
* @returns {manager} the Larvitar manager
|
|
25
25
|
*/
|
|
26
26
|
export declare const populateLarvitarManager: (seriesId: string, seriesData: Series) => {
|
|
27
|
-
[key: string]: Series | import("
|
|
27
|
+
[key: string]: Series | import("../types").NrrdSeries;
|
|
28
28
|
};
|
|
29
29
|
/**
|
|
30
30
|
* Return the common data loader manager
|
|
@@ -33,7 +33,7 @@ export declare const populateLarvitarManager: (seriesId: string, seriesData: Ser
|
|
|
33
33
|
* @returns {Object} the loader manager
|
|
34
34
|
*/
|
|
35
35
|
export declare const getLarvitarManager: () => {
|
|
36
|
-
[key: string]: Series | import("
|
|
36
|
+
[key: string]: Series | import("../types").NrrdSeries;
|
|
37
37
|
};
|
|
38
38
|
/**
|
|
39
39
|
* Return the common image tracker
|
|
@@ -64,7 +64,7 @@ export declare const removeSeriesFromLarvitarManager: (seriesId: string) => void
|
|
|
64
64
|
* @param {String} seriesId The Id of the series
|
|
65
65
|
* @return {Object} larvitar manager data
|
|
66
66
|
*/
|
|
67
|
-
export declare const getSeriesDataFromLarvitarManager: (seriesId: string) => Series | import("
|
|
67
|
+
export declare const getSeriesDataFromLarvitarManager: (seriesId: string) => Series | import("../types").NrrdSeries | null;
|
|
68
68
|
/**
|
|
69
69
|
* Compute and return image frame
|
|
70
70
|
* @instance
|
|
@@ -3,56 +3,7 @@
|
|
|
3
3
|
* custom NRRD Loader
|
|
4
4
|
*/
|
|
5
5
|
import { ImageLoader } from "cornerstone-core";
|
|
6
|
-
import type {
|
|
7
|
-
import { DataSet } from "dicom-parser";
|
|
8
|
-
type NrrdInputVolume = {
|
|
9
|
-
header: {
|
|
10
|
-
sizes: number[];
|
|
11
|
-
"space directions": number[][];
|
|
12
|
-
"space origin": [number, number];
|
|
13
|
-
kinds: string[];
|
|
14
|
-
type: string;
|
|
15
|
-
};
|
|
16
|
-
data: Uint16Array;
|
|
17
|
-
};
|
|
18
|
-
export type NrrdSeries = {
|
|
19
|
-
currentImageIdIndex: number;
|
|
20
|
-
imageIds: string[];
|
|
21
|
-
instances: {
|
|
22
|
-
[key: string]: Instance;
|
|
23
|
-
};
|
|
24
|
-
instanceUIDs: {
|
|
25
|
-
[key: string]: string;
|
|
26
|
-
};
|
|
27
|
-
numberOfImages: number;
|
|
28
|
-
seriesDescription: string;
|
|
29
|
-
seriesUID: string;
|
|
30
|
-
customLoader: string;
|
|
31
|
-
nrrdHeader: NrrdHeader;
|
|
32
|
-
bytes: number;
|
|
33
|
-
dataSet?: DataSet;
|
|
34
|
-
metadata?: MetaData;
|
|
35
|
-
ecgData?: number[];
|
|
36
|
-
};
|
|
37
|
-
type NrrdHeader = {
|
|
38
|
-
volume: Volume;
|
|
39
|
-
intercept: number;
|
|
40
|
-
slope: number;
|
|
41
|
-
repr: string;
|
|
42
|
-
phase: string;
|
|
43
|
-
study_description: string;
|
|
44
|
-
series_description: string;
|
|
45
|
-
acquisition_date: string;
|
|
46
|
-
[imageId: string]: string | number | Volume | NrrdInstance;
|
|
47
|
-
};
|
|
48
|
-
type NrrdInstance = {
|
|
49
|
-
instanceUID: string;
|
|
50
|
-
seriesDescription: string;
|
|
51
|
-
seriesModality: string;
|
|
52
|
-
patientName: string;
|
|
53
|
-
bitsAllocated: number;
|
|
54
|
-
pixelRepresentation: string;
|
|
55
|
-
};
|
|
6
|
+
import type { NrrdHeader, NrrdInputVolume, NrrdSeries } from "../types";
|
|
56
7
|
/**
|
|
57
8
|
* Build the data structure for the provided image orientation
|
|
58
9
|
* @instance
|
|
@@ -110,4 +61,3 @@ export declare const getNrrdSerieDimensions: () => {
|
|
|
110
61
|
coronal: number[];
|
|
111
62
|
sagittal: number[];
|
|
112
63
|
};
|
|
113
|
-
export {};
|
package/dist/larvitar.js
CHANGED
|
@@ -81931,18 +81931,24 @@ const storeViewportData = function (image, elementId, viewport, data) {
|
|
|
81931
81931
|
(0, imageStore_1.set)(["maxPixelValue", elementId, image.maxPixelValue]);
|
|
81932
81932
|
// slice id from 0 to n - 1
|
|
81933
81933
|
(0, imageStore_1.set)(["minSliceId", elementId, 0]);
|
|
81934
|
-
|
|
81934
|
+
if (data.imageIndex) {
|
|
81935
|
+
(0, imageStore_1.set)(["sliceId", elementId, data.imageIndex]);
|
|
81936
|
+
}
|
|
81935
81937
|
const pendingSliceId = imageStore_1.default.get(["viewports", elementId, "pendingSliceId"]);
|
|
81936
81938
|
if (data.imageIndex == pendingSliceId) {
|
|
81937
81939
|
(0, imageStore_1.set)(["pendingSliceId", elementId, undefined]);
|
|
81938
81940
|
}
|
|
81939
|
-
|
|
81941
|
+
if (data.numberOfSlices) {
|
|
81942
|
+
(0, imageStore_1.set)(["maxSliceId", elementId, data.numberOfSlices - 1]);
|
|
81943
|
+
}
|
|
81940
81944
|
if (data.isTimeserie) {
|
|
81941
81945
|
(0, imageStore_1.set)(["minTimeId", elementId, 0]);
|
|
81942
81946
|
(0, imageStore_1.set)(["timeId", elementId, data.timeIndex || 0]);
|
|
81943
|
-
(
|
|
81944
|
-
|
|
81945
|
-
|
|
81947
|
+
if (data.numberOfSlices && data.numberOfTemporalPositions) {
|
|
81948
|
+
(0, imageStore_1.set)(["maxTimeId", elementId, data.numberOfTemporalPositions - 1]);
|
|
81949
|
+
let maxSliceId = data.numberOfSlices * data.numberOfTemporalPositions - 1;
|
|
81950
|
+
(0, imageStore_1.set)(["maxSliceId", elementId, maxSliceId]);
|
|
81951
|
+
}
|
|
81946
81952
|
(0, imageStore_1.set)(["timestamp", elementId, data.timestamp]);
|
|
81947
81953
|
(0, imageStore_1.set)(["timestamps", elementId, data.timestamps]);
|
|
81948
81954
|
(0, imageStore_1.set)(["timeIds", elementId, data.timeIds]);
|
|
@@ -81984,6 +81990,7 @@ const storeViewportData = function (image, elementId, viewport, data) {
|
|
|
81984
81990
|
(0, imageStore_1.set)(["isMultiframe", elementId, data.isMultiframe]);
|
|
81985
81991
|
(0, imageStore_1.set)(["isTimeserie", elementId, data.isTimeserie]);
|
|
81986
81992
|
(0, imageStore_1.set)(["isPDF", elementId, false]);
|
|
81993
|
+
(0, imageStore_1.set)(["waveform", elementId, data.waveform]);
|
|
81987
81994
|
};
|
|
81988
81995
|
exports.storeViewportData = storeViewportData;
|
|
81989
81996
|
/**
|
|
@@ -82150,6 +82157,7 @@ const getSeriesData = function (series, defaultProps) {
|
|
|
82150
82157
|
: null;
|
|
82151
82158
|
data.isColor = series.color;
|
|
82152
82159
|
data.isPDF = series.isPDF;
|
|
82160
|
+
data.waveform = series.waveform;
|
|
82153
82161
|
if (instance) {
|
|
82154
82162
|
data.rows = instance.metadata.x00280010;
|
|
82155
82163
|
data.cols = instance.metadata.x00280011;
|
|
@@ -82277,7 +82285,7 @@ exports.resliceSeries = resliceSeries;
|
|
|
82277
82285
|
* for data config store.
|
|
82278
82286
|
*/
|
|
82279
82287
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
82280
|
-
exports.set =
|
|
82288
|
+
exports.set = void 0;
|
|
82281
82289
|
// external libraries
|
|
82282
82290
|
const lodash_1 = __webpack_require__(6486);
|
|
82283
82291
|
// Larvitar store object
|
|
@@ -82296,7 +82304,7 @@ const INITIAL_STORE_DATA = {
|
|
|
82296
82304
|
viewports: {}
|
|
82297
82305
|
};
|
|
82298
82306
|
// default viewport object
|
|
82299
|
-
|
|
82307
|
+
const DEFAULT_VIEWPORT = {
|
|
82300
82308
|
loading: 0,
|
|
82301
82309
|
ready: false,
|
|
82302
82310
|
minSliceId: 0,
|
|
@@ -82320,6 +82328,7 @@ exports.DEFAULT_VIEWPORT = {
|
|
|
82320
82328
|
isMultiframe: false,
|
|
82321
82329
|
isTimeserie: false,
|
|
82322
82330
|
isPDF: false,
|
|
82331
|
+
waveform: false,
|
|
82323
82332
|
viewport: {
|
|
82324
82333
|
scale: 0.0,
|
|
82325
82334
|
rotation: 0.0,
|
|
@@ -82386,6 +82395,7 @@ const setValue = (store, data) => {
|
|
|
82386
82395
|
case "isColor":
|
|
82387
82396
|
case "isMultiframe":
|
|
82388
82397
|
case "isPDF":
|
|
82398
|
+
case "waveform":
|
|
82389
82399
|
case "isTimeserie":
|
|
82390
82400
|
case "ready":
|
|
82391
82401
|
if (!viewport) {
|
|
@@ -82547,7 +82557,7 @@ exports["default"] = {
|
|
|
82547
82557
|
// add/remove viewports
|
|
82548
82558
|
addViewport: (name) => {
|
|
82549
82559
|
validateStore();
|
|
82550
|
-
STORE.viewports[name] = (0, lodash_1.cloneDeep)(
|
|
82560
|
+
STORE.viewports[name] = (0, lodash_1.cloneDeep)(DEFAULT_VIEWPORT);
|
|
82551
82561
|
},
|
|
82552
82562
|
deleteViewport: (name) => {
|
|
82553
82563
|
validateStore();
|
|
@@ -82580,6 +82590,9 @@ exports["default"] = {
|
|
|
82580
82590
|
setMaxSliceId: (elementId, imageIndex) => {
|
|
82581
82591
|
(0, exports.set)(["maxSliceId", elementId, imageIndex]);
|
|
82582
82592
|
},
|
|
82593
|
+
setTimeId: (elementId, timeIndex) => {
|
|
82594
|
+
(0, exports.set)(["timeId", elementId, timeIndex]);
|
|
82595
|
+
},
|
|
82583
82596
|
// get
|
|
82584
82597
|
get: (props) => {
|
|
82585
82598
|
validateStore();
|
|
@@ -84918,6 +84931,15 @@ const imageUtils_1 = __webpack_require__(8345);
|
|
|
84918
84931
|
const commonLoader_1 = __webpack_require__(326);
|
|
84919
84932
|
// global module variables
|
|
84920
84933
|
let customImageLoaderCounter = 0;
|
|
84934
|
+
/*
|
|
84935
|
+
* This module provides the following functions to be exported:
|
|
84936
|
+
* buildNrrdImage(volume, seriesId, custom_header)
|
|
84937
|
+
* getNrrdImageId(customLoaderName)
|
|
84938
|
+
* loadNrrdImage(imageId)
|
|
84939
|
+
* getImageIdFromSlice(sliceNumber, orientation)
|
|
84940
|
+
* getSliceNumberFromImageId(imageId, orientation)
|
|
84941
|
+
* getNrrdSerieDimensions()
|
|
84942
|
+
*/
|
|
84921
84943
|
// TODO-ts: why it's different from cornerstone type ?
|
|
84922
84944
|
// type Image = {
|
|
84923
84945
|
// imageId: string;
|
|
@@ -86799,6 +86821,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
86799
86821
|
};
|
|
86800
86822
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
86801
86823
|
exports.generateCSV = exports.exportAnnotations = exports.saveAnnotations = exports.loadAnnotations = void 0;
|
|
86824
|
+
// deprecated file, to be removed
|
|
86825
|
+
// TODO-ts remove this file @mronzoni
|
|
86826
|
+
// @ts-nocheck
|
|
86802
86827
|
// external libraries
|
|
86803
86828
|
const cornerstone_core_1 = __importDefault(__webpack_require__(7371));
|
|
86804
86829
|
const cornerstone_tools_1 = __importDefault(__webpack_require__(4030));
|
|
@@ -88911,7 +88936,7 @@ module.exports = JSON.parse('{"x00000000":{"tag":"x00000000","vr":"UL","vm":"1",
|
|
|
88911
88936
|
/***/ ((module) => {
|
|
88912
88937
|
|
|
88913
88938
|
"use strict";
|
|
88914
|
-
module.exports = JSON.parse('{"name":"larvitar","keywords":["DICOM","imaging","medical","cornerstone"],"version":"2.0.
|
|
88939
|
+
module.exports = JSON.parse('{"name":"larvitar","keywords":["DICOM","imaging","medical","cornerstone"],"version":"2.0.8","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"}}');
|
|
88915
88940
|
|
|
88916
88941
|
/***/ })
|
|
88917
88942
|
|