UNPKG

ng-cornerstone

Version:

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.git

39 lines 5.91 kB
/** * 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=