UNPKG

@cornerstonejs/core

Version:
88 lines (87 loc) 3.18 kB
import genericViewportDisplaySetMetadataProvider from '../../utilities/genericViewportDisplaySetMetadataProvider.js'; export function getGenericViewportRegisteredDisplaySet(displaySetId) { return genericViewportDisplaySetMetadataProvider.get(genericViewportDisplaySetMetadataProvider.VIEWPORT_V2_DISPLAY_SET, displaySetId); } export function getGenericViewportImageDisplaySet(displaySetId) { const registered = getGenericViewportRegisteredDisplaySet(displaySetId); if (isStringArray(registered)) { return { imageIds: registered, }; } if (!isGenericViewportImageDisplaySet(registered)) { return; } return registered; } export function getGenericViewportPlanarDisplaySet(displaySetId) { const registered = getGenericViewportRegisteredDisplaySet(displaySetId); if (isStringArray(registered)) { return { imageIds: registered, }; } if (!isGenericViewportImageDisplaySet(registered)) { return; } if ('kind' in registered && registered.kind && registered.kind !== 'planar') { return; } return registered; } export function getGenericViewportWSIDisplaySet(displaySetId) { const registered = getGenericViewportRegisteredDisplaySet(displaySetId); if (isGenericViewportWSIDisplaySet(registered)) { return registered; } if (isRecord(registered) && isStringArray(registered.imageIds) && isRecord(registered.options) && isWSIClientLike(registered.options.webClient)) { return { imageIds: registered.imageIds, kind: 'wsi', options: { miniNavigationOverlay: registered.options.miniNavigationOverlay, webClient: registered.options.webClient, }, }; } } export function getGenericViewportSourceDataId(displaySetId) { const registered = getGenericViewportRegisteredDisplaySet(displaySetId); if (typeof registered === 'string') { return registered; } if (isStringArray(registered) && registered[0]) { return registered[0]; } if (isGenericViewportSourceAliasDisplaySet(registered)) { return registered.sourceDataId; } return displaySetId; } export function isGenericViewportImageDisplaySet(value) { return isRecord(value) && isStringArray(value.imageIds); } export function isGenericViewportWSIDisplaySet(value) { return (isRecord(value) && value.kind === 'wsi' && isStringArray(value.imageIds) && isRecord(value.options) && isWSIClientLike(value.options.webClient)); } export function isGenericViewportSourceAliasDisplaySet(value) { return (isRecord(value) && (value.kind === 'video' || value.kind === 'ecg') && typeof value.sourceDataId === 'string'); } function isRecord(value) { return Boolean(value) && typeof value === 'object' && !Array.isArray(value); } function isStringArray(value) { return (Array.isArray(value) && value.every((item) => typeof item === 'string')); } function isWSIClientLike(value) { return isRecord(value) && typeof value.getDICOMwebMetadata === 'function'; }