@cornerstonejs/core 0.9.0 → 0.10.0
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/dist/cjs/RenderingEngine/RenderingEngine.js +4 -1
- package/dist/cjs/RenderingEngine/RenderingEngine.js.map +1 -1
- package/dist/cjs/RenderingEngine/StackViewport.js +12 -20
- package/dist/cjs/RenderingEngine/StackViewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/VolumeViewport.d.ts +1 -0
- package/dist/cjs/RenderingEngine/VolumeViewport.js +47 -3
- package/dist/cjs/RenderingEngine/VolumeViewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/generateLut.js +19 -5
- package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/generateLut.js.map +1 -1
- package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/getDefaultViewport.js +2 -1
- package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/getDefaultViewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/helpers/createVolumeActor.d.ts +1 -1
- package/dist/cjs/RenderingEngine/helpers/createVolumeActor.js +31 -3
- package/dist/cjs/RenderingEngine/helpers/createVolumeActor.js.map +1 -1
- package/dist/cjs/RenderingEngine/helpers/index.d.ts +2 -1
- package/dist/cjs/RenderingEngine/helpers/index.js +3 -1
- package/dist/cjs/RenderingEngine/helpers/index.js.map +1 -1
- package/dist/cjs/RenderingEngine/helpers/setDefaultVolumeVOI.d.ts +3 -0
- package/dist/cjs/RenderingEngine/helpers/setDefaultVolumeVOI.js +163 -0
- package/dist/cjs/RenderingEngine/helpers/setDefaultVolumeVOI.js.map +1 -0
- package/dist/cjs/RenderingEngine/helpers/volumeNewImageEventDispatcher.d.ts +4 -0
- package/dist/cjs/RenderingEngine/helpers/volumeNewImageEventDispatcher.js +42 -0
- package/dist/cjs/RenderingEngine/helpers/volumeNewImageEventDispatcher.js.map +1 -0
- package/dist/cjs/Settings.js +1 -0
- package/dist/cjs/Settings.js.map +1 -1
- package/dist/cjs/cache/classes/ImageVolume.d.ts +1 -0
- package/dist/cjs/cache/classes/ImageVolume.js +1 -0
- package/dist/cjs/cache/classes/ImageVolume.js.map +1 -1
- package/dist/cjs/enums/BlendModes.js +1 -1
- package/dist/cjs/enums/BlendModes.js.map +1 -1
- package/dist/cjs/enums/Events.d.ts +1 -0
- package/dist/cjs/enums/Events.js +1 -0
- package/dist/cjs/enums/Events.js.map +1 -1
- package/dist/cjs/types/ActorSliceRange.d.ts +11 -0
- package/dist/cjs/types/ActorSliceRange.js +3 -0
- package/dist/cjs/types/ActorSliceRange.js.map +1 -0
- package/dist/cjs/types/EventTypes.d.ts +10 -1
- package/dist/cjs/types/IImageVolume.d.ts +1 -0
- package/dist/cjs/types/ImageSliceData.d.ts +5 -0
- package/dist/cjs/types/ImageSliceData.js +3 -0
- package/dist/cjs/types/ImageSliceData.js.map +1 -0
- package/dist/cjs/types/Metadata.d.ts +1 -0
- package/dist/cjs/types/index.d.ts +3 -1
- package/dist/cjs/utilities/getImageSliceDataForVolumeViewport.d.ts +3 -0
- package/dist/cjs/utilities/getImageSliceDataForVolumeViewport.js +37 -0
- package/dist/cjs/utilities/getImageSliceDataForVolumeViewport.js.map +1 -0
- package/dist/cjs/utilities/getScalingParameters.d.ts +2 -0
- package/dist/cjs/utilities/getScalingParameters.js +41 -0
- package/dist/cjs/utilities/getScalingParameters.js.map +1 -0
- package/dist/cjs/utilities/getSliceRange.d.ts +2 -0
- package/dist/cjs/utilities/getSliceRange.js +39 -0
- package/dist/cjs/utilities/getSliceRange.js.map +1 -0
- package/dist/cjs/utilities/getTargetVolumeAndSpacingInNormalDir.js +1 -1
- package/dist/cjs/utilities/index.d.ts +6 -2
- package/dist/cjs/utilities/index.js +9 -1
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/loadImageToCanvas.js +2 -9
- package/dist/cjs/utilities/loadImageToCanvas.js.map +1 -1
- package/dist/cjs/utilities/snapFocalPointToSlice.d.ts +5 -0
- package/dist/cjs/utilities/snapFocalPointToSlice.js +41 -0
- package/dist/cjs/utilities/snapFocalPointToSlice.js.map +1 -0
- package/dist/esm/RenderingEngine/RenderingEngine.js +4 -1
- package/dist/esm/RenderingEngine/RenderingEngine.js.map +1 -1
- package/dist/esm/RenderingEngine/StackViewport.js +12 -20
- package/dist/esm/RenderingEngine/StackViewport.js.map +1 -1
- package/dist/esm/RenderingEngine/VolumeViewport.d.ts +1 -0
- package/dist/esm/RenderingEngine/VolumeViewport.js +28 -3
- package/dist/esm/RenderingEngine/VolumeViewport.js.map +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateLut.js +19 -5
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateLut.js.map +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getDefaultViewport.js +2 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getDefaultViewport.js.map +1 -1
- package/dist/esm/RenderingEngine/helpers/createVolumeActor.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/createVolumeActor.js +31 -3
- package/dist/esm/RenderingEngine/helpers/createVolumeActor.js.map +1 -1
- package/dist/esm/RenderingEngine/helpers/index.d.ts +2 -1
- package/dist/esm/RenderingEngine/helpers/index.js +2 -1
- package/dist/esm/RenderingEngine/helpers/index.js.map +1 -1
- package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.d.ts +3 -0
- package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js +132 -0
- package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js.map +1 -0
- package/dist/esm/RenderingEngine/helpers/volumeNewImageEventDispatcher.d.ts +4 -0
- package/dist/esm/RenderingEngine/helpers/volumeNewImageEventDispatcher.js +35 -0
- package/dist/esm/RenderingEngine/helpers/volumeNewImageEventDispatcher.js.map +1 -0
- package/dist/esm/Settings.js +1 -0
- package/dist/esm/Settings.js.map +1 -1
- package/dist/esm/cache/classes/ImageVolume.d.ts +1 -0
- package/dist/esm/cache/classes/ImageVolume.js +1 -0
- package/dist/esm/cache/classes/ImageVolume.js.map +1 -1
- package/dist/esm/enums/BlendModes.js +1 -1
- package/dist/esm/enums/BlendModes.js.map +1 -1
- package/dist/esm/enums/Events.d.ts +1 -0
- package/dist/esm/enums/Events.js +1 -0
- package/dist/esm/enums/Events.js.map +1 -1
- package/dist/esm/types/ActorSliceRange.d.ts +11 -0
- package/dist/esm/types/ActorSliceRange.js +2 -0
- package/dist/esm/types/ActorSliceRange.js.map +1 -0
- package/dist/esm/types/EventTypes.d.ts +10 -1
- package/dist/esm/types/IImageVolume.d.ts +1 -0
- package/dist/esm/types/ImageSliceData.d.ts +5 -0
- package/dist/esm/types/ImageSliceData.js +2 -0
- package/dist/esm/types/ImageSliceData.js.map +1 -0
- package/dist/esm/types/Metadata.d.ts +1 -0
- package/dist/esm/types/index.d.ts +3 -1
- package/dist/esm/utilities/getImageSliceDataForVolumeViewport.d.ts +3 -0
- package/dist/esm/utilities/getImageSliceDataForVolumeViewport.js +32 -0
- package/dist/esm/utilities/getImageSliceDataForVolumeViewport.js.map +1 -0
- package/dist/esm/utilities/getScalingParameters.d.ts +2 -0
- package/dist/esm/utilities/getScalingParameters.js +22 -0
- package/dist/esm/utilities/getScalingParameters.js.map +1 -0
- package/dist/esm/utilities/getSliceRange.d.ts +2 -0
- package/dist/esm/utilities/getSliceRange.js +33 -0
- package/dist/esm/utilities/getSliceRange.js.map +1 -0
- package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.js +1 -1
- package/dist/esm/utilities/index.d.ts +6 -2
- package/dist/esm/utilities/index.js +6 -2
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/loadImageToCanvas.js +2 -9
- package/dist/esm/utilities/loadImageToCanvas.js.map +1 -1
- package/dist/esm/utilities/snapFocalPointToSlice.d.ts +5 -0
- package/dist/esm/utilities/snapFocalPointToSlice.js +38 -0
- package/dist/esm/utilities/snapFocalPointToSlice.js.map +1 -0
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -15,7 +15,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
const Volume_1 = __importDefault(require("@kitware/vtk.js/Rendering/Core/Volume"));
|
|
16
16
|
const volumeLoader_1 = require("../../volumeLoader");
|
|
17
17
|
const createVolumeMapper_1 = __importDefault(require("./createVolumeMapper"));
|
|
18
|
-
|
|
18
|
+
const utilities_1 = require("../../utilities");
|
|
19
|
+
const enums_1 = require("../../enums");
|
|
20
|
+
const setDefaultVolumeVOI_1 = __importDefault(require("./setDefaultVolumeVOI"));
|
|
21
|
+
function createVolumeActor(props, element, viewportId) {
|
|
19
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20
23
|
const { volumeId, callback, blendMode } = props;
|
|
21
24
|
const imageVolume = yield (0, volumeLoader_1.loadVolume)(volumeId);
|
|
@@ -29,11 +32,36 @@ function createVolumeActor(props) {
|
|
|
29
32
|
}
|
|
30
33
|
const volumeActor = Volume_1.default.newInstance();
|
|
31
34
|
volumeActor.setMapper(volumeMapper);
|
|
32
|
-
if (
|
|
33
|
-
|
|
35
|
+
if (imageVolume.imageIds) {
|
|
36
|
+
(0, setDefaultVolumeVOI_1.default)(volumeActor, imageVolume).then(() => {
|
|
37
|
+
if (callback) {
|
|
38
|
+
callback({ volumeActor, volumeId });
|
|
39
|
+
}
|
|
40
|
+
triggerVOIModified(element, viewportId, volumeActor);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
if (callback) {
|
|
45
|
+
callback({ volumeActor, volumeId });
|
|
46
|
+
}
|
|
47
|
+
triggerVOIModified(element, viewportId, volumeActor);
|
|
34
48
|
}
|
|
35
49
|
return volumeActor;
|
|
36
50
|
});
|
|
37
51
|
}
|
|
52
|
+
function triggerVOIModified(element, viewportId, volumeActor) {
|
|
53
|
+
const voiRange = volumeActor
|
|
54
|
+
.getProperty()
|
|
55
|
+
.getRGBTransferFunction(0)
|
|
56
|
+
.getRange();
|
|
57
|
+
const voiModifiedEventDetail = {
|
|
58
|
+
viewportId,
|
|
59
|
+
range: {
|
|
60
|
+
lower: voiRange[0],
|
|
61
|
+
upper: voiRange[1],
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
(0, utilities_1.triggerEvent)(element, enums_1.Events.VOI_MODIFIED, voiModifiedEventDetail);
|
|
65
|
+
}
|
|
38
66
|
exports.default = createVolumeActor;
|
|
39
67
|
//# sourceMappingURL=createVolumeActor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createVolumeActor.js","sourceRoot":"","sources":["../../../../src/RenderingEngine/helpers/createVolumeActor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"createVolumeActor.js","sourceRoot":"","sources":["../../../../src/RenderingEngine/helpers/createVolumeActor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,mFAA8D;AAI9D,qDAAgD;AAChD,8EAAsD;AAEtD,+CAA+C;AAC/C,uCAAqC;AACrC,gFAAwD;AAgBxD,SAAe,iBAAiB,CAC9B,KAAiC,EACjC,OAAuB,EACvB,UAAkB;;QAElB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAEhD,MAAM,WAAW,GAAG,MAAM,IAAA,yBAAU,EAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CACb,wBAAwB,WAAW,CAAC,QAAQ,iBAAiB,CAC9D,CAAC;SACH;QAED,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,WAAW,CAAC;QAEpD,MAAM,YAAY,GAAG,IAAA,4BAAkB,EAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAErE,IAAI,SAAS,EAAE;YACb,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SACtC;QAED,MAAM,WAAW,GAAG,gBAAS,CAAC,WAAW,EAAE,CAAC;QAC5C,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAMpC,IAAI,WAAW,CAAC,QAAQ,EAAE;YACxB,IAAA,6BAAmB,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtD,IAAI,QAAQ,EAAE;oBACZ,QAAQ,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;iBACrC;gBACD,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;aACrC;YAED,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;SACtD;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CAAA;AAED,SAAS,kBAAkB,CACzB,OAAuB,EACvB,UAAkB,EAClB,WAAwB;IAExB,MAAM,QAAQ,GAAG,WAAW;SACzB,WAAW,EAAE;SACb,sBAAsB,CAAC,CAAC,CAAC;SACzB,QAAQ,EAAE,CAAC;IAEd,MAAM,sBAAsB,GAA2B;QACrD,UAAU;QACV,KAAK,EAAE;YACL,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YAClB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;SACnB;KACF,CAAC;IAEF,IAAA,wBAAY,EAAC,OAAO,EAAE,cAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AACrE,CAAC;AAED,kBAAe,iBAAiB,CAAC"}
|
|
@@ -3,4 +3,5 @@ import createVolumeMapper from './createVolumeMapper';
|
|
|
3
3
|
import getOrCreateCanvas from './getOrCreateCanvas';
|
|
4
4
|
import setVolumesForViewports from './setVolumesForViewports';
|
|
5
5
|
import addVolumesToViewports from './addVolumesToViewports';
|
|
6
|
-
|
|
6
|
+
import volumeNewImageEventDispatcher from './volumeNewImageEventDispatcher';
|
|
7
|
+
export { createVolumeActor, createVolumeMapper, getOrCreateCanvas, setVolumesForViewports, addVolumesToViewports, volumeNewImageEventDispatcher, };
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.addVolumesToViewports = exports.setVolumesForViewports = exports.getOrCreateCanvas = exports.createVolumeMapper = exports.createVolumeActor = void 0;
|
|
6
|
+
exports.volumeNewImageEventDispatcher = exports.addVolumesToViewports = exports.setVolumesForViewports = exports.getOrCreateCanvas = exports.createVolumeMapper = exports.createVolumeActor = void 0;
|
|
7
7
|
const createVolumeActor_1 = __importDefault(require("./createVolumeActor"));
|
|
8
8
|
exports.createVolumeActor = createVolumeActor_1.default;
|
|
9
9
|
const createVolumeMapper_1 = __importDefault(require("./createVolumeMapper"));
|
|
@@ -14,4 +14,6 @@ const setVolumesForViewports_1 = __importDefault(require("./setVolumesForViewpor
|
|
|
14
14
|
exports.setVolumesForViewports = setVolumesForViewports_1.default;
|
|
15
15
|
const addVolumesToViewports_1 = __importDefault(require("./addVolumesToViewports"));
|
|
16
16
|
exports.addVolumesToViewports = addVolumesToViewports_1.default;
|
|
17
|
+
const volumeNewImageEventDispatcher_1 = __importDefault(require("./volumeNewImageEventDispatcher"));
|
|
18
|
+
exports.volumeNewImageEventDispatcher = volumeNewImageEventDispatcher_1.default;
|
|
17
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/RenderingEngine/helpers/index.ts"],"names":[],"mappings":";;;;;;AAAA,4EAAoD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/RenderingEngine/helpers/index.ts"],"names":[],"mappings":";;;;;;AAAA,4EAAoD;AAQlD,4BARK,2BAAiB,CAQL;AAPnB,8EAAsD;AAQpD,6BARK,4BAAkB,CAQL;AAPpB,4EAAoD;AAQlD,4BARK,2BAAiB,CAQL;AAPnB,sFAA8D;AAQ5D,iCARK,gCAAsB,CAQL;AAPxB,oFAA4D;AAQ1D,gCARK,+BAAqB,CAQL;AAPvB,oGAA4E;AAQ1E,wCARK,uCAA6B,CAQL"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
25
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
26
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
27
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
const imageLoader_1 = require("../../imageLoader");
|
|
32
|
+
const metaData = __importStar(require("../../metaData"));
|
|
33
|
+
const utilities_1 = require("../../utilities");
|
|
34
|
+
const enums_1 = require("../../enums");
|
|
35
|
+
const PRIORITY = 0;
|
|
36
|
+
const REQUEST_TYPE = enums_1.RequestType.Prefetch;
|
|
37
|
+
function setDefaultVolumeVOI(volumeActor, imageVolume) {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
let voi = getVOIFromMetadata(imageVolume);
|
|
40
|
+
if (!voi) {
|
|
41
|
+
voi = yield getVOIFromMinMax(imageVolume);
|
|
42
|
+
}
|
|
43
|
+
if (!voi || voi.lower === undefined || voi.upper === undefined) {
|
|
44
|
+
throw new Error('Could not get VOI from metadata, nor from the min max of the image middle slice');
|
|
45
|
+
}
|
|
46
|
+
voi = handlePreScaledVolume(imageVolume, voi);
|
|
47
|
+
const { lower, upper } = voi;
|
|
48
|
+
volumeActor
|
|
49
|
+
.getProperty()
|
|
50
|
+
.getRGBTransferFunction(0)
|
|
51
|
+
.setMappingRange(lower, upper);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function handlePreScaledVolume(imageVolume, voi) {
|
|
55
|
+
const imageIds = imageVolume.imageIds;
|
|
56
|
+
const imageIdIndex = Math.floor(imageIds.length / 2);
|
|
57
|
+
const imageId = imageIds[imageIdIndex];
|
|
58
|
+
const generalSeriesModule = metaData.get('generalSeriesModule', imageId) || {};
|
|
59
|
+
if (generalSeriesModule.modality === 'PT' && imageVolume.isPrescaled) {
|
|
60
|
+
return {
|
|
61
|
+
lower: 0,
|
|
62
|
+
upper: 5,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return voi;
|
|
66
|
+
}
|
|
67
|
+
function getVOIFromMetadata(imageVolume) {
|
|
68
|
+
const { imageIds } = imageVolume;
|
|
69
|
+
const imageIdIndex = Math.floor(imageIds.length / 2);
|
|
70
|
+
const imageId = imageIds[imageIdIndex];
|
|
71
|
+
const voiLutModule = metaData.get('voiLutModule', imageId);
|
|
72
|
+
if (voiLutModule && voiLutModule.windowWidth && voiLutModule.windowCenter) {
|
|
73
|
+
const { windowWidth, windowCenter } = voiLutModule;
|
|
74
|
+
const voi = {
|
|
75
|
+
windowWidth: Array.isArray(windowWidth) ? windowWidth[0] : windowWidth,
|
|
76
|
+
windowCenter: Array.isArray(windowCenter)
|
|
77
|
+
? windowCenter[0]
|
|
78
|
+
: windowCenter,
|
|
79
|
+
};
|
|
80
|
+
const { lower, upper } = utilities_1.windowLevel.toLowHighRange(Number(voi.windowWidth), Number(voi.windowCenter));
|
|
81
|
+
return {
|
|
82
|
+
lower,
|
|
83
|
+
upper,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function getVOIFromMinMax(imageVolume) {
|
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
+
const { scalarData, imageIds } = imageVolume;
|
|
90
|
+
const imageIdIndex = Math.floor(imageIds.length / 2);
|
|
91
|
+
const imageId = imageVolume.imageIds[imageIdIndex];
|
|
92
|
+
const generalSeriesModule = metaData.get('generalSeriesModule', imageId) || {};
|
|
93
|
+
const { modality } = generalSeriesModule;
|
|
94
|
+
const modalityLutModule = metaData.get('modalityLutModule', imageId) || {};
|
|
95
|
+
const numImages = imageIds.length;
|
|
96
|
+
const bytesPerImage = scalarData.byteLength / numImages;
|
|
97
|
+
const voxelsPerImage = scalarData.length / numImages;
|
|
98
|
+
const bytePerPixel = scalarData.BYTES_PER_ELEMENT;
|
|
99
|
+
let type;
|
|
100
|
+
if (scalarData instanceof Uint8Array) {
|
|
101
|
+
type = 'Uint8Array';
|
|
102
|
+
}
|
|
103
|
+
else if (scalarData instanceof Float32Array) {
|
|
104
|
+
type = 'Float32Array';
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
throw new Error('Unsupported array type');
|
|
108
|
+
}
|
|
109
|
+
const scalingParameters = {
|
|
110
|
+
rescaleSlope: modalityLutModule.rescaleSlope,
|
|
111
|
+
rescaleIntercept: modalityLutModule.rescaleIntercept,
|
|
112
|
+
modality,
|
|
113
|
+
};
|
|
114
|
+
let scalingParametersToUse;
|
|
115
|
+
if (modality === 'PT') {
|
|
116
|
+
const suvFactor = metaData.get('scalingModule', imageId);
|
|
117
|
+
if (suvFactor) {
|
|
118
|
+
scalingParametersToUse = Object.assign(Object.assign({}, scalingParameters), { suvbw: suvFactor.suvbw });
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const byteOffset = imageIdIndex * bytesPerImage;
|
|
122
|
+
const options = {
|
|
123
|
+
targetBuffer: {
|
|
124
|
+
arrayBuffer: scalarData.buffer,
|
|
125
|
+
offset: byteOffset,
|
|
126
|
+
length: voxelsPerImage,
|
|
127
|
+
type,
|
|
128
|
+
},
|
|
129
|
+
priority: PRIORITY,
|
|
130
|
+
requestType: REQUEST_TYPE,
|
|
131
|
+
preScale: {
|
|
132
|
+
scalingParameters: scalingParametersToUse,
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
const image = yield (0, imageLoader_1.loadAndCacheImage)(imageId, options);
|
|
136
|
+
let imageScalarData;
|
|
137
|
+
if (!image) {
|
|
138
|
+
imageScalarData = _getImageScalarDataFromImageVolume(imageVolume, byteOffset, bytePerPixel, voxelsPerImage);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
imageScalarData = image.getPixelData();
|
|
142
|
+
}
|
|
143
|
+
const { min, max } = (0, utilities_1.getMinMax)(imageScalarData);
|
|
144
|
+
return {
|
|
145
|
+
lower: min,
|
|
146
|
+
upper: max,
|
|
147
|
+
};
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
function _getImageScalarDataFromImageVolume(imageVolume, byteOffset, bytePerPixel, voxelsPerImage) {
|
|
151
|
+
const { scalarData } = imageVolume;
|
|
152
|
+
const { volumeBuffer } = scalarData;
|
|
153
|
+
if (scalarData.BYTES_PER_ELEMENT !== bytePerPixel) {
|
|
154
|
+
byteOffset *= scalarData.BYTES_PER_ELEMENT / bytePerPixel;
|
|
155
|
+
}
|
|
156
|
+
const TypedArray = scalarData.constructor;
|
|
157
|
+
const imageScalarData = new TypedArray(voxelsPerImage);
|
|
158
|
+
const volumeBufferView = new TypedArray(volumeBuffer, byteOffset, voxelsPerImage);
|
|
159
|
+
imageScalarData.set(volumeBufferView);
|
|
160
|
+
return imageScalarData;
|
|
161
|
+
}
|
|
162
|
+
exports.default = setDefaultVolumeVOI;
|
|
163
|
+
//# sourceMappingURL=setDefaultVolumeVOI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setDefaultVolumeVOI.js","sourceRoot":"","sources":["../../../../src/RenderingEngine/helpers/setDefaultVolumeVOI.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.resetVolumeNewImageState = void 0;
|
|
7
|
+
const utilities_1 = require("../../utilities");
|
|
8
|
+
const enums_1 = require("../../enums");
|
|
9
|
+
const getRenderingEngine_1 = require("../getRenderingEngine");
|
|
10
|
+
const VolumeViewport_1 = __importDefault(require("../VolumeViewport"));
|
|
11
|
+
const state = {};
|
|
12
|
+
function resetVolumeNewImageState(viewportId) {
|
|
13
|
+
if (state[viewportId]) {
|
|
14
|
+
delete state[viewportId];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.resetVolumeNewImageState = resetVolumeNewImageState;
|
|
18
|
+
function volumeNewImageEventDispatcher(cameraEvent) {
|
|
19
|
+
const { renderingEngineId, viewportId } = cameraEvent.detail;
|
|
20
|
+
const renderingEngine = (0, getRenderingEngine_1.getRenderingEngine)(renderingEngineId);
|
|
21
|
+
const viewport = renderingEngine.getViewport(viewportId);
|
|
22
|
+
if (!(viewport instanceof VolumeViewport_1.default)) {
|
|
23
|
+
throw new Error(`volumeNewImageEventDispatcher: viewport is not a VolumeViewport`);
|
|
24
|
+
}
|
|
25
|
+
if (!state[viewport.id]) {
|
|
26
|
+
state[viewport.id] = 0;
|
|
27
|
+
}
|
|
28
|
+
const { numberOfSlices, imageIndex } = (0, utilities_1.getImageSliceDataForVolumeViewport)(viewport);
|
|
29
|
+
if (state[viewport.id] === imageIndex) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
state[viewport.id] = imageIndex;
|
|
33
|
+
const eventDetail = {
|
|
34
|
+
imageIndex,
|
|
35
|
+
viewportId,
|
|
36
|
+
renderingEngineId,
|
|
37
|
+
numberOfSlices,
|
|
38
|
+
};
|
|
39
|
+
(0, utilities_1.triggerEvent)(viewport.element, enums_1.Events.VOLUME_NEW_IMAGE, eventDetail);
|
|
40
|
+
}
|
|
41
|
+
exports.default = volumeNewImageEventDispatcher;
|
|
42
|
+
//# sourceMappingURL=volumeNewImageEventDispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volumeNewImageEventDispatcher.js","sourceRoot":"","sources":["../../../../src/RenderingEngine/helpers/volumeNewImageEventDispatcher.ts"],"names":[],"mappings":";;;;;;AAAA,+CAGyB;AAEzB,uCAAqC;AACrC,8DAA2D;AAC3D,uEAA+C;AAK/C,MAAM,KAAK,GAAqB,EAAE,CAAC;AAEnC,SAAgB,wBAAwB,CAAC,UAAkB;IACzD,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;QACrB,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC;KAC1B;AACH,CAAC;AAJD,4DAIC;AAYD,SAAS,6BAA6B,CACpC,WAA2C;IAE3C,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;IAC7D,MAAM,eAAe,GAAG,IAAA,uCAAkB,EAAC,iBAAiB,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAEzD,IAAI,CAAC,CAAC,QAAQ,YAAY,wBAAc,CAAC,EAAE;QACzC,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;KACH;IAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACvB,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;KACxB;IAED,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAClC,IAAA,8CAAkC,EAAC,QAAQ,CAAC,CAAC;IAE/C,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,UAAU,EAAE;QACrC,OAAO;KACR;IAED,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;IAEhC,MAAM,WAAW,GAAyC;QACxD,UAAU;QACV,UAAU;QACV,iBAAiB;QACjB,cAAc;KACf,CAAC;IAEF,IAAA,wBAAY,EAAC,QAAQ,CAAC,OAAO,EAAE,cAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;AACvE,CAAC;AAED,kBAAe,6BAA6B,CAAC"}
|
package/dist/cjs/Settings.js
CHANGED
package/dist/cjs/Settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/Settings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/Settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ exports.ImageVolume = void 0;
|
|
|
4
4
|
const vtkClasses_1 = require("../../RenderingEngine/vtkClasses");
|
|
5
5
|
class ImageVolume {
|
|
6
6
|
constructor(props) {
|
|
7
|
+
this.isPrescaled = false;
|
|
7
8
|
this.volumeId = props.volumeId;
|
|
8
9
|
this.metadata = props.metadata;
|
|
9
10
|
this.dimensions = props.dimensions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageVolume.js","sourceRoot":"","sources":["../../../../src/cache/classes/ImageVolume.ts"],"names":[],"mappings":";;;AAAA,iEAA6E;AAM7E,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"ImageVolume.js","sourceRoot":"","sources":["../../../../src/cache/classes/ImageVolume.ts"],"names":[],"mappings":";;;AAAA,iEAA6E;AAM7E,MAAa,WAAW;IA2CtB,YAAY,KAAc;QA7B1B,gBAAW,GAAG,KAAK,CAAC;QA8BlB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,gBAAgB,GAAG,sCAAyB,CAAC,WAAW,EAAE,CAAC;QAChE,IAAI,CAAC,SAAS;YACZ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAE/D,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;SAC9B;QAED,IAAI,KAAK,CAAC,kBAAkB,EAAE;YAC5B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC;SACpD;IACH,CAAC;CACF;AAjED,kCAiEC;AAED,kBAAe,WAAW,CAAC"}
|
|
@@ -7,7 +7,7 @@ const Constants_1 = __importDefault(require("@kitware/vtk.js/Rendering/Core/Volu
|
|
|
7
7
|
const { BlendMode } = Constants_1.default;
|
|
8
8
|
var BlendModes;
|
|
9
9
|
(function (BlendModes) {
|
|
10
|
-
BlendModes[BlendModes["COMPOSITE"] = BlendMode.
|
|
10
|
+
BlendModes[BlendModes["COMPOSITE"] = BlendMode.COMPOSITE_BLEND] = "COMPOSITE";
|
|
11
11
|
BlendModes[BlendModes["MAXIMUM_INTENSITY_BLEND"] = BlendMode.MAXIMUM_INTENSITY_BLEND] = "MAXIMUM_INTENSITY_BLEND";
|
|
12
12
|
BlendModes[BlendModes["MINIMUM_INTENSITY_BLEND"] = BlendMode.MINIMUM_INTENSITY_BLEND] = "MINIMUM_INTENSITY_BLEND";
|
|
13
13
|
BlendModes[BlendModes["AVERAGE_INTENSITY_BLEND"] = BlendMode.AVERAGE_INTENSITY_BLEND] = "AVERAGE_INTENSITY_BLEND";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlendModes.js","sourceRoot":"","sources":["../../../src/enums/BlendModes.ts"],"names":[],"mappings":";;;;;AAAA,sGAAiF;AAEjF,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAY,CAAC;AASnC,IAAK,UASJ;AATD,WAAK,UAAU;IAEb,qCAAY,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"BlendModes.js","sourceRoot":"","sources":["../../../src/enums/BlendModes.ts"],"names":[],"mappings":";;;;;AAAA,sGAAiF;AAEjF,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAY,CAAC;AASnC,IAAK,UASJ;AATD,WAAK,UAAU;IAEb,qCAAY,SAAS,CAAC,eAAe,eAAA,CAAA;IAErC,mDAA0B,SAAS,CAAC,uBAAuB,6BAAA,CAAA;IAE3D,mDAA0B,SAAS,CAAC,uBAAuB,6BAAA,CAAA;IAE3D,mDAA0B,SAAS,CAAC,uBAAuB,6BAAA,CAAA;AAC7D,CAAC,EATI,UAAU,KAAV,UAAU,QASd;AAED,kBAAe,UAAU,CAAC"}
|
|
@@ -16,6 +16,7 @@ declare enum Events {
|
|
|
16
16
|
VOLUME_CACHE_VOLUME_ADDED = "CORNERSTONE_VOLUME_CACHE_VOLUME_ADDED",
|
|
17
17
|
VOLUME_CACHE_VOLUME_REMOVED = "CORNERSTONE_VOLUME_CACHE_VOLUME_REMOVED",
|
|
18
18
|
STACK_NEW_IMAGE = "CORNERSTONE_STACK_NEW_IMAGE",
|
|
19
|
+
VOLUME_NEW_IMAGE = "CORNERSTONE_VOLUME_NEW_IMAGE",
|
|
19
20
|
PRE_STACK_NEW_IMAGE = "CORNERSTONE_PRE_STACK_NEW_IMAGE",
|
|
20
21
|
IMAGE_SPACING_CALIBRATED = "CORNERSTONE_IMAGE_SPACING_CALIBRATED",
|
|
21
22
|
IMAGE_LOAD_PROGRESS = "CORNERSTONE_IMAGE_LOAD_PROGRESS"
|
package/dist/cjs/enums/Events.js
CHANGED
|
@@ -19,6 +19,7 @@ var Events;
|
|
|
19
19
|
Events["VOLUME_CACHE_VOLUME_ADDED"] = "CORNERSTONE_VOLUME_CACHE_VOLUME_ADDED";
|
|
20
20
|
Events["VOLUME_CACHE_VOLUME_REMOVED"] = "CORNERSTONE_VOLUME_CACHE_VOLUME_REMOVED";
|
|
21
21
|
Events["STACK_NEW_IMAGE"] = "CORNERSTONE_STACK_NEW_IMAGE";
|
|
22
|
+
Events["VOLUME_NEW_IMAGE"] = "CORNERSTONE_VOLUME_NEW_IMAGE";
|
|
22
23
|
Events["PRE_STACK_NEW_IMAGE"] = "CORNERSTONE_PRE_STACK_NEW_IMAGE";
|
|
23
24
|
Events["IMAGE_SPACING_CALIBRATED"] = "CORNERSTONE_IMAGE_SPACING_CALIBRATED";
|
|
24
25
|
Events["IMAGE_LOAD_PROGRESS"] = "CORNERSTONE_IMAGE_LOAD_PROGRESS";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/enums/Events.ts"],"names":[],"mappings":";;AAGA,IAAK,
|
|
1
|
+
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/enums/Events.ts"],"names":[],"mappings":";;AAGA,IAAK,MA8JJ;AA9JD,WAAK,MAAM;IAST,qDAA2C,CAAA;IAK3C,+CAAqC,CAAA;IAQrC,yDAA+C,CAAA;IAO/C,mDAAyC,CAAA;IAOzC,2DAAiD,CAAA;IAOjD,yDAA+C,CAAA;IAO/C,uDAA6C,CAAA;IAS7C,qEAA2D,CAAA;IAO3D,mDAAyC,CAAA;IAOzC,6DAAmD,CAAA;IAOnD,qDAA2C,CAAA;IAO3C,mEAAyD,CAAA;IAOzD,yEAA+D,CAAA;IAO/D,6EAAmE,CAAA;IAOnE,6EAAmE,CAAA;IAOnE,iFAAuE,CAAA;IAOvE,yDAA+C,CAAA;IAS/C,2DAAiD,CAAA;IAQjD,iEAAuD,CAAA;IAOvD,2EAAiE,CAAA;IAQjE,iEAAuD,CAAA;AAIzD,CAAC,EA9JI,MAAM,KAAN,MAAM,QA8JV;AAED,kBAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { VolumeActor } from './IActor';
|
|
2
|
+
import Point3 from './Point3';
|
|
3
|
+
declare type ActorSliceRange = {
|
|
4
|
+
actor: VolumeActor;
|
|
5
|
+
viewPlaneNormal: Point3;
|
|
6
|
+
focalPoint: Point3;
|
|
7
|
+
min: number;
|
|
8
|
+
max: number;
|
|
9
|
+
current: number;
|
|
10
|
+
};
|
|
11
|
+
export default ActorSliceRange;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActorSliceRange.js","sourceRoot":"","sources":["../../../src/types/ActorSliceRange.ts"],"names":[],"mappings":""}
|
|
@@ -68,12 +68,20 @@ declare type VolumeCacheVolumeAddedEventDetail = {
|
|
|
68
68
|
};
|
|
69
69
|
declare type PreStackNewImageEventDetail = {
|
|
70
70
|
imageId: string;
|
|
71
|
+
imageIdIndex: number;
|
|
71
72
|
viewportId: string;
|
|
72
73
|
renderingEngineId: string;
|
|
73
74
|
};
|
|
74
75
|
declare type StackNewImageEventDetail = {
|
|
75
76
|
image: IImage;
|
|
76
77
|
imageId: string;
|
|
78
|
+
imageIdIndex: number;
|
|
79
|
+
viewportId: string;
|
|
80
|
+
renderingEngineId: string;
|
|
81
|
+
};
|
|
82
|
+
declare type VolumeNewImageEventDetail = {
|
|
83
|
+
imageIndex: number;
|
|
84
|
+
numberOfSlices: number;
|
|
77
85
|
viewportId: string;
|
|
78
86
|
renderingEngineId: string;
|
|
79
87
|
};
|
|
@@ -109,7 +117,8 @@ declare type ImageCacheImageRemovedEvent = CustomEventType<ImageCacheImageRemove
|
|
|
109
117
|
declare type VolumeCacheVolumeAddedEvent = CustomEventType<VolumeCacheVolumeAddedEventDetail>;
|
|
110
118
|
declare type VolumeCacheVolumeRemovedEvent = CustomEventType<VolumeCacheVolumeRemovedEventDetail>;
|
|
111
119
|
declare type StackNewImageEvent = CustomEventType<StackNewImageEventDetail>;
|
|
120
|
+
declare type VolumeNewImageEvent = CustomEventType<VolumeNewImageEventDetail>;
|
|
112
121
|
declare type PreStackNewImageEvent = CustomEventType<PreStackNewImageEventDetail>;
|
|
113
122
|
declare type ImageSpacingCalibratedEvent = CustomEventType<ImageSpacingCalibratedEventDetail>;
|
|
114
123
|
declare type ImageLoadProgressEvent = CustomEventType<ImageLoadProgressEventDetail>;
|
|
115
|
-
export type { CameraModifiedEventDetail, CameraModifiedEvent, VoiModifiedEvent, VoiModifiedEventDetail, ElementDisabledEvent, ElementDisabledEventDetail, ElementEnabledEvent, ElementEnabledEventDetail, ImageRenderedEventDetail, ImageRenderedEvent, ImageVolumeModifiedEvent, ImageVolumeModifiedEventDetail, ImageLoadedEvent, ImageLoadedEventDetail, ImageLoadedFailedEventDetail, ImageLoadedFailedEvent, VolumeLoadedEvent, VolumeLoadedEventDetail, VolumeLoadedFailedEvent, VolumeLoadedFailedEventDetail, ImageCacheImageAddedEvent, ImageCacheImageAddedEventDetail, ImageCacheImageRemovedEvent, ImageCacheImageRemovedEventDetail, VolumeCacheVolumeAddedEvent, VolumeCacheVolumeAddedEventDetail, VolumeCacheVolumeRemovedEvent, VolumeCacheVolumeRemovedEventDetail, StackNewImageEvent, StackNewImageEventDetail, PreStackNewImageEvent, PreStackNewImageEventDetail, ImageSpacingCalibratedEvent, ImageSpacingCalibratedEventDetail, ImageLoadProgressEvent, ImageLoadProgressEventDetail, };
|
|
124
|
+
export type { CameraModifiedEventDetail, CameraModifiedEvent, VoiModifiedEvent, VoiModifiedEventDetail, ElementDisabledEvent, ElementDisabledEventDetail, ElementEnabledEvent, ElementEnabledEventDetail, ImageRenderedEventDetail, ImageRenderedEvent, ImageVolumeModifiedEvent, ImageVolumeModifiedEventDetail, ImageLoadedEvent, ImageLoadedEventDetail, ImageLoadedFailedEventDetail, ImageLoadedFailedEvent, VolumeLoadedEvent, VolumeLoadedEventDetail, VolumeLoadedFailedEvent, VolumeLoadedFailedEventDetail, ImageCacheImageAddedEvent, ImageCacheImageAddedEventDetail, ImageCacheImageRemovedEvent, ImageCacheImageRemovedEventDetail, VolumeCacheVolumeAddedEvent, VolumeCacheVolumeAddedEventDetail, VolumeCacheVolumeRemovedEvent, VolumeCacheVolumeRemovedEventDetail, StackNewImageEvent, StackNewImageEventDetail, PreStackNewImageEvent, PreStackNewImageEventDetail, ImageSpacingCalibratedEvent, ImageSpacingCalibratedEventDetail, ImageLoadProgressEvent, ImageLoadProgressEventDetail, VolumeNewImageEvent, VolumeNewImageEventDetail, };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageSliceData.js","sourceRoot":"","sources":["../../../src/types/ImageSliceData.ts"],"names":[],"mappings":""}
|
|
@@ -46,4 +46,6 @@ import type CPUFallbackRenderingTools from './CPUFallbackRenderingTools';
|
|
|
46
46
|
import type { IVolumeInput, VolumeInputCallback } from './IVolumeInput';
|
|
47
47
|
import type * as EventTypes from './EventTypes';
|
|
48
48
|
import type IRenderingEngine from './IRenderingEngine';
|
|
49
|
-
|
|
49
|
+
import type ActorSliceRange from './ActorSliceRange';
|
|
50
|
+
import type ImageSliceData from './ImageSliceData';
|
|
51
|
+
export type { ICamera, IStackViewport, IVolumeViewport, IEnabledElement, ICache, IVolume, IViewportId, IImageVolume, IRenderingEngine, ScalingParameters, PTScaling, Scaling, IStreamingImageVolume, IImage, IImageData, CPUIImageData, CPUImageData, EventTypes, ImageLoaderFn, VolumeLoaderFn, IRegisterImageLoader, IStreamingVolumeProperties, IViewport, StackViewportProperties, PublicViewportInput, VolumeActor, ActorEntry, IImageLoadObject, IVolumeLoadObject, IVolumeInput, VolumeInputCallback, Metadata, Orientation, Point2, Point3, Point4, Plane, ViewportInputOptions, VOIRange, VOI, FlipDirection, ICachedImage, ICachedVolume, CPUFallbackEnabledElement, CPUFallbackViewport, CPUFallbackTransform, CPUFallbackColormapData, CPUFallbackViewportDisplayedArea, CPUFallbackColormapsData, CPUFallbackColormap, TransformMatrix2D, CPUFallbackLookupTable, CPUFallbackLUT, CPUFallbackRenderingTools, CustomEventType, ActorSliceRange, ImageSliceData, };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const getSliceRange_1 = __importDefault(require("./getSliceRange"));
|
|
7
|
+
const getTargetVolumeAndSpacingInNormalDir_1 = __importDefault(require("./getTargetVolumeAndSpacingInNormalDir"));
|
|
8
|
+
function getImageSliceDataForVolumeViewport(viewport) {
|
|
9
|
+
const camera = viewport.getCamera();
|
|
10
|
+
const { spacingInNormalDirection, imageVolume } = (0, getTargetVolumeAndSpacingInNormalDir_1.default)(viewport, camera);
|
|
11
|
+
if (!imageVolume) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const { viewPlaneNormal, focalPoint } = camera;
|
|
15
|
+
const actor = viewport.getActor(imageVolume.volumeId);
|
|
16
|
+
if (!actor) {
|
|
17
|
+
console.warn('No actor found for with actorUID of', imageVolume.volumeId);
|
|
18
|
+
}
|
|
19
|
+
const { volumeActor } = actor;
|
|
20
|
+
const sliceRange = (0, getSliceRange_1.default)(volumeActor, viewPlaneNormal, focalPoint);
|
|
21
|
+
const { min, max, current } = sliceRange;
|
|
22
|
+
const numberOfSlices = Math.round((max - min) / spacingInNormalDirection) + 1;
|
|
23
|
+
let imageIndex = ((current - min) / (max - min)) * numberOfSlices;
|
|
24
|
+
imageIndex = Math.floor(imageIndex);
|
|
25
|
+
if (imageIndex > numberOfSlices - 1) {
|
|
26
|
+
imageIndex = numberOfSlices - 1;
|
|
27
|
+
}
|
|
28
|
+
else if (imageIndex < 0) {
|
|
29
|
+
imageIndex = 0;
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
numberOfSlices,
|
|
33
|
+
imageIndex,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
exports.default = getImageSliceDataForVolumeViewport;
|
|
37
|
+
//# sourceMappingURL=getImageSliceDataForVolumeViewport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getImageSliceDataForVolumeViewport.js","sourceRoot":"","sources":["../../../src/utilities/getImageSliceDataForVolumeViewport.ts"],"names":[],"mappings":";;;;;AACA,oEAA4C;AAC5C,kHAA0F;AAQ1F,SAAS,kCAAkC,CACzC,QAAyB;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IAEpC,MAAM,EAAE,wBAAwB,EAAE,WAAW,EAAE,GAC7C,IAAA,8CAAoC,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEzD,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO;KACR;IAED,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEtD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC3E;IAED,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IAE3E,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAGzC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAG9E,IAAI,UAAU,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;IAClE,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAGpC,IAAI,UAAU,GAAG,cAAc,GAAG,CAAC,EAAE;QACnC,UAAU,GAAG,cAAc,GAAG,CAAC,CAAC;KACjC;SAAM,IAAI,UAAU,GAAG,CAAC,EAAE;QACzB,UAAU,GAAG,CAAC,CAAC;KAChB;IAED,OAAO;QACL,cAAc;QACd,UAAU;KACX,CAAC;AACJ,CAAC;AAED,kBAAe,kCAAkC,CAAC"}
|