UNPKG

@cornerstonejs/core

Version:
42 lines (41 loc) 1.66 kB
import { isGenericViewport } from './viewportCapabilities.js'; import { getVolumeId } from './getVolumeId.js'; import { resolveGenericViewportVolumeId } from './resolveGenericViewportVolumeId.js'; function _getScalingDescriptor(viewport, targetId, getVolume) { if (!getVolume) { throw new Error('getVolume is required, use the utilities export instead'); } if (isGenericViewport(viewport)) { const resolvedVolumeId = resolveGenericViewportVolumeId(viewport, targetId); const volume = resolvedVolumeId ? getVolume(resolvedVolumeId) : undefined; const imageData = viewport.getImageData?.(); return { modality: volume?.metadata?.Modality ?? imageData?.metadata?.Modality, isPreScaled: isScalingPresent(volume?.scaling), }; } if (typeof viewport.setVolumes === 'function') { const volumeViewport = viewport; const volumeId = targetId ? getVolumeId(targetId) : volumeViewport.getVolumeId(); const volume = volumeId ? getVolume(volumeId) : undefined; return { modality: volume?.metadata?.Modality, isPreScaled: isScalingPresent(volume?.scaling), }; } if (typeof viewport.setStack === 'function') { const stackViewport = viewport; const { preScale } = stackViewport.getImageData() || {}; return { modality: stackViewport.modality, isPreScaled: !!preScale?.scaled, }; } return undefined; } function isScalingPresent(scaling) { return !!scaling && Object.keys(scaling).length > 0; } export { _getScalingDescriptor };