From 0177b625ba86760168bc4db58c8a109aa9ee83cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20H=2E=20K=C3=B6hler?= Date: Wed, 13 Dec 2023 18:18:49 -0300 Subject: [PATCH] feat(overlay): add inline binary overlays (#3852) --- .../cornerstone/src/tools/ImageOverlayViewerTool.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/extensions/cornerstone/src/tools/ImageOverlayViewerTool.tsx b/extensions/cornerstone/src/tools/ImageOverlayViewerTool.tsx index 0a3fa641faa..c2ba56cbd52 100644 --- a/extensions/cornerstone/src/tools/ImageOverlayViewerTool.tsx +++ b/extensions/cornerstone/src/tools/ImageOverlayViewerTool.tsx @@ -1,7 +1,7 @@ import { VolumeViewport, metaData, utilities } from '@cornerstonejs/core'; import { IStackViewport, IVolumeViewport, Point3 } from '@cornerstonejs/core/dist/esm/types'; import { AnnotationDisplayTool, drawing } from '@cornerstonejs/tools'; -import { guid } from '@ohif/core/src/utils'; +import { guid, b64toBlob } from '@ohif/core/src/utils'; import OverlayPlaneModuleProvider from './OverlayPlaneModuleProvider'; interface CachedStat { @@ -46,7 +46,7 @@ class ImageOverlayViewerTool extends AnnotationDisplayTool { super(toolProps, defaultToolProps); } - onSetToolDisabled = (): void => { }; + onSetToolDisabled = (): void => {}; protected getReferencedImageId(viewport: IStackViewport | IVolumeViewport): string { if (viewport instanceof VolumeViewport) { @@ -174,6 +174,10 @@ class ImageOverlayViewerTool extends AnnotationDisplayTool { pixelData = overlay.pixelData[0]; } else if (overlay.pixelData.retrieveBulkData) { pixelData = await overlay.pixelData.retrieveBulkData(); + } else if (overlay.pixelData.InlineBinary) { + const blob = b64toBlob(overlay.pixelData.InlineBinary); + const arrayBuffer = await blob.arrayBuffer(); + pixelData = arrayBuffer; } if (!pixelData) {