ng-cornerstone
Version:
[](https://github.com/prettier/prettier) [](http://commitizen.git
39 lines • 5.91 kB
JavaScript
/**
* Similar to {@link addVolumesToViewports} it adds volumes to viewports; however,
* this method will Set the volumes on the viewports which means that the previous
* volumes will be removed.
*
* @param renderingEngine - The rendering engine to use to get viewports from
* @param volumeInputs - Array of volume inputs including volumeId. Other properties
* such as visibility, callback, blendMode, slabThickness are optional
* @param viewportIds - Array of viewport IDs to add the volume to
* @param immediateRender - If true, the volumes will be rendered immediately
* @returns A promise that resolves when all volumes have been added
*/
import { StackViewport } from '@cornerstonejs/core';
import { ctVoiRange } from './setCtTransferFunctionForVolumeActor';
async function setStacksForViewports(renderingEngine, viewportIds, imageIds, currentImageIdIndex) {
// Check if all viewports are StackViewport
viewportIds.forEach((viewportId) => {
const viewport = renderingEngine.getViewport(viewportId);
if (!viewport) {
throw new Error(`Viewport with Id ${viewportId} does not exist`);
}
// if not instance of VolumeViewport, throw
if (!(viewport instanceof StackViewport)) {
throw new Error('setStacksForViewports only supports StackViewport');
}
});
const setStackPromises = viewportIds.map(async (viewportId) => {
const viewport = renderingEngine.getViewport(viewportId);
await viewport.setStack(imageIds, currentImageIdIndex);
// Set the VOI of the stack
viewport.setProperties({ voiRange: ctVoiRange });
// Render the image
viewport.render();
});
await Promise.all(setStackPromises);
return;
}
export { setStacksForViewports };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0U3RhY2tGb3JWaWV3cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb3JuZXJzdG9uZS9zcmMvbGliL2NvcmUvcHJvdmlkZXIvc2V0U3RhY2tGb3JWaWV3cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxPQUFPLEVBQUUsYUFBYSxFQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRW5FLEtBQUssVUFBVSxxQkFBcUIsQ0FDbEMsZUFBdUMsRUFDdkMsV0FBMEIsRUFDMUIsUUFBdUIsRUFDdkIsbUJBQTRCO0lBRTVCLDJDQUEyQztJQUMzQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDakMsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixVQUFVLGlCQUFpQixDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNELDJDQUEyQztRQUMzQyxJQUFJLENBQUMsQ0FBQyxRQUFRLFlBQVksYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN6QyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7UUFDdkUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRTtRQUM1RCxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBeUIsQ0FBQztRQUNqRixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDdkQsMkJBQTJCO1FBQzNCLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNqRCxtQkFBbUI7UUFDbkIsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFcEMsT0FBTztBQUNULENBQUM7QUFFRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2ltaWxhciB0byB7QGxpbmsgYWRkVm9sdW1lc1RvVmlld3BvcnRzfSBpdCBhZGRzIHZvbHVtZXMgdG8gdmlld3BvcnRzOyBob3dldmVyLFxuICogdGhpcyBtZXRob2Qgd2lsbCBTZXQgdGhlIHZvbHVtZXMgb24gdGhlIHZpZXdwb3J0cyB3aGljaCBtZWFucyB0aGF0IHRoZSBwcmV2aW91c1xuICogdm9sdW1lcyB3aWxsIGJlIHJlbW92ZWQuXG4gKlxuICogQHBhcmFtIHJlbmRlcmluZ0VuZ2luZSAtIFRoZSByZW5kZXJpbmcgZW5naW5lIHRvIHVzZSB0byBnZXQgdmlld3BvcnRzIGZyb21cbiAqIEBwYXJhbSB2b2x1bWVJbnB1dHMgLSBBcnJheSBvZiB2b2x1bWUgaW5wdXRzIGluY2x1ZGluZyB2b2x1bWVJZC4gT3RoZXIgcHJvcGVydGllc1xuICogc3VjaCBhcyB2aXNpYmlsaXR5LCBjYWxsYmFjaywgYmxlbmRNb2RlLCBzbGFiVGhpY2tuZXNzIGFyZSBvcHRpb25hbFxuICogQHBhcmFtIHZpZXdwb3J0SWRzIC0gQXJyYXkgb2Ygdmlld3BvcnQgSURzIHRvIGFkZCB0aGUgdm9sdW1lIHRvXG4gKiBAcGFyYW0gaW1tZWRpYXRlUmVuZGVyIC0gSWYgdHJ1ZSwgdGhlIHZvbHVtZXMgd2lsbCBiZSByZW5kZXJlZCBpbW1lZGlhdGVseVxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgdm9sdW1lcyBoYXZlIGJlZW4gYWRkZWRcbiAqL1xuaW1wb3J0IHsgU3RhY2tWaWV3cG9ydCwgVHlwZXMgfSBmcm9tICdAY29ybmVyc3RvbmVqcy9jb3JlJztcbmltcG9ydCB7IGN0Vm9pUmFuZ2UgfSBmcm9tICcuL3NldEN0VHJhbnNmZXJGdW5jdGlvbkZvclZvbHVtZUFjdG9yJztcblxuYXN5bmMgZnVuY3Rpb24gc2V0U3RhY2tzRm9yVmlld3BvcnRzKFxuICByZW5kZXJpbmdFbmdpbmU6IFR5cGVzLklSZW5kZXJpbmdFbmdpbmUsXG4gIHZpZXdwb3J0SWRzOiBBcnJheTxzdHJpbmc+LFxuICBpbWFnZUlkczogQXJyYXk8c3RyaW5nPixcbiAgY3VycmVudEltYWdlSWRJbmRleD86IG51bWJlcixcbik6IFByb21pc2U8dm9pZD4ge1xuICAvLyBDaGVjayBpZiBhbGwgdmlld3BvcnRzIGFyZSBTdGFja1ZpZXdwb3J0XG4gIHZpZXdwb3J0SWRzLmZvckVhY2goKHZpZXdwb3J0SWQpID0+IHtcbiAgICBjb25zdCB2aWV3cG9ydCA9IHJlbmRlcmluZ0VuZ2luZS5nZXRWaWV3cG9ydCh2aWV3cG9ydElkKTtcbiAgICBpZiAoIXZpZXdwb3J0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFZpZXdwb3J0IHdpdGggSWQgJHt2aWV3cG9ydElkfSBkb2VzIG5vdCBleGlzdGApO1xuICAgIH1cbiAgICAvLyBpZiBub3QgaW5zdGFuY2Ugb2YgVm9sdW1lVmlld3BvcnQsIHRocm93XG4gICAgaWYgKCEodmlld3BvcnQgaW5zdGFuY2VvZiBTdGFja1ZpZXdwb3J0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzZXRTdGFja3NGb3JWaWV3cG9ydHMgb25seSBzdXBwb3J0cyBTdGFja1ZpZXdwb3J0Jyk7XG4gICAgfVxuICB9KTtcblxuICBjb25zdCBzZXRTdGFja1Byb21pc2VzID0gdmlld3BvcnRJZHMubWFwKGFzeW5jICh2aWV3cG9ydElkKSA9PiB7XG4gICAgY29uc3Qgdmlld3BvcnQgPSByZW5kZXJpbmdFbmdpbmUuZ2V0Vmlld3BvcnQodmlld3BvcnRJZCkgYXMgVHlwZXMuSVN0YWNrVmlld3BvcnQ7XG4gICAgYXdhaXQgdmlld3BvcnQuc2V0U3RhY2soaW1hZ2VJZHMsIGN1cnJlbnRJbWFnZUlkSW5kZXgpO1xuICAgIC8vIFNldCB0aGUgVk9JIG9mIHRoZSBzdGFja1xuICAgIHZpZXdwb3J0LnNldFByb3BlcnRpZXMoeyB2b2lSYW5nZTogY3RWb2lSYW5nZSB9KTtcbiAgICAvLyBSZW5kZXIgdGhlIGltYWdlXG4gICAgdmlld3BvcnQucmVuZGVyKCk7XG4gIH0pO1xuXG4gIGF3YWl0IFByb21pc2UuYWxsKHNldFN0YWNrUHJvbWlzZXMpO1xuXG4gIHJldHVybjtcbn1cblxuZXhwb3J0IHsgc2V0U3RhY2tzRm9yVmlld3BvcnRzIH07XG4iXX0=