From 00c1bcec793bb0fb28fa8d9b9a66fb18c994a1d7 Mon Sep 17 00:00:00 2001 From: bronsdonayden Date: Sat, 27 Jun 2026 13:53:13 -0400 Subject: [PATCH 1/4] add pixelExplorer test, roiStats boostlet attempt, trying to integrate numpy in stats.js --- dist/boostlet.min.js | 86 +++++- dist/boostlet.min.js.map | 2 +- examples/PixelExplorer.js | 48 ++-- examples/roiStats.js | 120 +++++++++ examples/subvolume_matrix.html | 245 ++++++++++++++++++ package-lock.json | 181 ------------- src/boostlet.js | 23 +- src/stats.js | 76 ++++++ src/util.js | 13 +- tests/niivue/pixelexplorer.html | 81 ++++++ tests/scripts/config.json | 3 +- .../GroundTruth_Niivue_pixelexplorer.png | Bin 0 -> 198212 bytes 12 files changed, 656 insertions(+), 222 deletions(-) create mode 100644 examples/roiStats.js create mode 100644 examples/subvolume_matrix.html create mode 100644 src/stats.js create mode 100644 tests/niivue/pixelexplorer.html create mode 100644 tests/scripts/images/GroundTruth_Niivue_pixelexplorer.png diff --git a/dist/boostlet.min.js b/dist/boostlet.min.js index 50050861..6c3301f7 100644 --- a/dist/boostlet.min.js +++ b/dist/boostlet.min.js @@ -55,8 +55,9 @@ var $1lpSl = parcelRequire("1lpSl"); class Util { static detect_framework() { let framework = null; - if (Util.is_defined(window.nv)) framework = new (0, $lBIzH.NiiVue)(window.nv); - else if (Util.is_defined(window.niivue)) framework = new (0, $lBIzH.NiiVue)(window.niivue); + // check window.nv is a NiiVue instance, not just the module + if (Util.is_defined(window.nv) && window.nv.volumes !== undefined) framework = new (0, $lBIzH.NiiVue)(window.nv); + else if (Util.is_defined(window.niivue) && window.niivue.volumes !== undefined) framework = new (0, $lBIzH.NiiVue)(window.niivue); else if (Util.is_defined(window.cornerstone)) framework = new (0, $lRZZ2.Cornerstone2D)(window.cornerstone); else if (Util.is_defined(window.r)) framework = new (0, $jYzCB.Xtk)(window.r); else if (Util.is_defined(window.OpenSeadragon)) framework = new (0, $7Srn3.OpenSeaDragon)(window.OpenSeadragon); @@ -116,11 +117,6 @@ class Util { offscreen_ctx.restore(); } let base64 = offscreen.toDataURL("image/png"); - // for debugging, download image - // const link = window.document.createElement("a"); - // link.href = base64; - // link.download = 'test.png'; - // link.click(); base64 = base64.replace("data:image/png;base64,", ""); let pngpixels = Uint8Array.from(atob(base64), (c)=>c.charCodeAt(0)); return pngpixels; @@ -783,6 +779,67 @@ class $2783e5ed66ad5478$export$26cab353fe186c2e extends (0, $bsgU1.Framework) { var $gk9zP = parcelRequire("gk9zP"); parcelRequire("bsgU1"); +// stats.js — numpy-ts powered statistics for Boostlet +// Lazy-loads numpy-ts once on first call, then reuses the instance. +// +// Usage from a boostlet: +// const stats = await Boostlet.stats(); +// const result = stats.all(data, nv.volumes[0]); +const $edf78858489332f9$var$NUMPY_TS_URL = "https://esm.run/numpy-ts"; +let $edf78858489332f9$var$_np = null; +async function $edf78858489332f9$var$_load() { + if (!$edf78858489332f9$var$_np) $edf78858489332f9$var$_np = await import($edf78858489332f9$var$NUMPY_TS_URL); + return $edf78858489332f9$var$_np; +} +async function $edf78858489332f9$export$6d8fb4b23c50da2f() { + const np = await $edf78858489332f9$var$_load(); + return { + _wrap (data) { + return np.array(Array.from(data), "float32"); + }, + // apply nifti slope/intercept: display = raw * slope + inter + _applyScaling (data, volume) { + if (!volume) return this._wrap(data); + const slope = volume.hdr.scl_slope || 1; + const inter = volume.hdr.scl_inter || 0; + const a = this._wrap(data); + return a.multiply(slope).add(inter); + }, + _scalar (val) { + return typeof val === "number" ? val : val.tolist ? val.tolist() : Number(val); + }, + mean (data, volume) { + return this._scalar(np.mean(this._applyScaling(data, volume))); + }, + std (data, volume) { + return this._scalar(np.std(this._applyScaling(data, volume))); + }, + min (data, volume) { + return this._scalar(np.min(this._applyScaling(data, volume))); + }, + max (data, volume) { + return this._scalar(np.max(this._applyScaling(data, volume))); + }, + percentile (data, p, volume) { + return this._scalar(np.percentile(this._applyScaling(data, volume), p)); + }, + // returns all stats in one pass + // pass volume as second arg to apply slope/intercept + all (data, volume) { + const a = this._applyScaling(data, volume); + return { + mean: this._scalar(np.mean(a)), + std: this._scalar(np.std(a)), + min: this._scalar(np.min(a)), + max: this._scalar(np.max(a)), + p25: this._scalar(np.percentile(a, 25)), + p75: this._scalar(np.percentile(a, 75)) + }; + } + }; +} + + class $c41144187e031f80$export$a1c8e230980baa0 { constructor(){ this.framework = null; @@ -860,11 +917,22 @@ class $c41144187e031f80$export$a1c8e230980baa0 { return (0, $gk9zP.Util).filter(pixels, width, height, kernel); } /** - * Displays a small div located at the top left corner of the screen with message and will disappear after the specified time (ms). - * + * Displays a small div located at the top left corner of the screen + * with message and will disappear after the specified time (ms). */ hint(message, duration) { return (0, $gk9zP.Util).hint(message, duration); } + /** + * + * loads numpy-ts on first call. + * + * Usage: + * const stats = await Boostlet.stats(); + * const result = stats.all(subvolumeData); + * // gives you { mean, std, min, max, p25, p75 } + */ async stats() { + return (0, $edf78858489332f9$export$6d8fb4b23c50da2f)(); + } } diff --git a/dist/boostlet.min.js.map b/dist/boostlet.min.js.map index 0db105ec..b7f886f6 100644 --- a/dist/boostlet.min.js.map +++ b/dist/boostlet.min.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["src/util.js","src/framework.js","src/frameworks/cornerstone2d.js","src/frameworks/canvasFallback.js","src/frameworks/niivue.js","src/frameworks/openseadragon.js","src/frameworks/xtk.js","src/frameworks/papaya.js","src/index.js","src/boostlet.js"],"sourcesContent":["import {Framework} from './framework.js';\r\nimport {Cornerstone2D} from './frameworks/cornerstone2d.js';\r\nimport {NiiVue} from './frameworks/niivue.js';\r\nimport { OpenSeaDragon } from './frameworks/openseadragon.js';\r\nimport { Xtk } from './frameworks/xtk.js';\r\nimport { Papaya } from './frameworks/papaya.js';\r\nimport { CanvasFallback } from './frameworks/canvasFallback.js';\r\n\r\nexport class Util {\r\n \r\n static detect_framework() {\r\n\r\n let framework = null;\r\n\r\n if (Util.is_defined(window.nv)) {\r\n \r\n framework = new NiiVue(window.nv);\r\n \r\n } else if (Util.is_defined(window.niivue)) {\r\n \r\n framework = new NiiVue(window.niivue);\r\n\r\n } else if (Util.is_defined(window.cornerstone)) {\r\n\r\n framework = new Cornerstone2D(window.cornerstone);\r\n\r\n } else if (Util.is_defined(window.r)) {\r\n \r\n framework = new Xtk(window.r);\r\n \r\n } else if (Util.is_defined(window.OpenSeadragon)) {\r\n\r\n framework = new OpenSeaDragon(window.OpenSeadragon);\r\n \r\n } else if (Util.is_defined(window.papayaContainers)) {\r\n \r\n framework = new Papaya(window.papayaContainers)\r\n\r\n } else {\r\n // Canvas fallback\r\n \r\n console.log(\"No framework detected, falling back to canvas rendering\");\r\n framework = new CanvasFallback();\r\n \r\n }\r\n\r\n return framework;\r\n\r\n }\r\n\r\n static async load_script(url, callback) {\r\n\r\n if (typeof window.Object.global === 'undefined') {\r\n // introducing hack to make it work for openneuro\r\n // but only do it once\r\n window.Object.defineProperty(window.Object.prototype, 'global', {\r\n get( ){\r\n return window;\r\n },\r\n set(newGlobal) {\r\n globalThis = newGlobal;\r\n }\r\n });\r\n }\r\n\r\n const script = window.document.createElement(\"script\")\r\n script.type = \"text/javascript\"\r\n script.src = url;\r\n\r\n if (Util.is_defined(callback)) {\r\n script.onload = callback;\r\n }\r\n\r\n window.document.head.appendChild(script);\r\n eval(script);\r\n\r\n }\r\n\r\n static async send_http_post(url, data, callback) {\r\n\r\n let xhr = new XMLHttpRequest();\r\n xhr.open(\"POST\", url);\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n // request done\r\n callback( xhr.response );\r\n\r\n return;\r\n\r\n }\r\n }\r\n\r\n xhr.send(data)\r\n\r\n }\r\n\r\n static convert_to_png(uint8array, width, height, flip) {\r\n\r\n // we are using an offscreen canvas for this\r\n let offscreen = window.document.createElement('canvas');\r\n offscreen.width = width;\r\n offscreen.height = height;\r\n\r\n let offscreen_ctx = offscreen.getContext('2d');\r\n\r\n let imgdata = offscreen_ctx.createImageData(offscreen.width, offscreen.height);\r\n let pxdata = imgdata.data;\r\n\r\n for (var i =0; i c.charCodeAt(0));\r\n\r\n return pngpixels;\r\n\r\n }\r\n\r\n static filter(pixels, width, height, kernel) {\r\n\r\n const kernelSize = Math.sqrt(kernel.length);\r\n const halfKernelSize = Math.floor(kernelSize / 2);\r\n\r\n const new_pixels = pixels.slice();\r\n\r\n for (let y = 0; y < height; y++) {\r\n for (let x = 0; x < width; x++) {\r\n const dstIndex = y * width + x;\r\n\r\n let newValue = 0;\r\n for (let ky = 0; ky < kernelSize; ky++) {\r\n for (let kx = 0; kx < kernelSize; kx++) {\r\n const srcX = x + kx - halfKernelSize;\r\n const srcY = y + ky - halfKernelSize;\r\n const srcIndex = srcY * width + srcX;\r\n\r\n const kernelValue = kernel[ky * kernelSize + kx];\r\n newValue += pixels[srcIndex] * kernelValue;\r\n }\r\n }\r\n\r\n new_pixels[dstIndex] = newValue;\r\n\r\n }\r\n }\r\n\r\n return new_pixels;\r\n\r\n }\r\n\r\n static grayscale_to_rgba(grayscale) {\r\n\r\n const rgba = new Uint8Array(grayscale.length * 4);\r\n\r\n for (let i = 0; i < grayscale.length; i++) {\r\n const g = grayscale[i];\r\n const index = i * 4;\r\n\r\n rgba[index] = g;\r\n rgba[index + 1] = g;\r\n rgba[index + 2] = g;\r\n rgba[index + 3] = 255; \r\n }\r\n\r\n return rgba;\r\n\r\n }\r\n\r\n static rgba_to_grayscale(rgba) {\r\n\r\n const grayscale = new Uint8Array(rgba.length / 4);\r\n\r\n for (let i = 0; i < rgba.length; i += 4) {\r\n\r\n grayscale[i / 4] = rgba[i];\r\n\r\n }\r\n\r\n return grayscale;\r\n\r\n }\r\n\r\n /**\r\n * Harden a mask into a grayscale pixel array.\r\n * \r\n * pixels needs to be RGBA\r\n * \r\n * and mask binary.\r\n * \r\n * maskcolor is optional and falls back to blue.\r\n * \r\n **/\r\n static harden_mask(pixels, mask, maskcolor) {\r\n\r\n // Modified from: https://github.com/facebookresearch/segment-anything/blob/40df6e4046d8b07ab8c4519e083408289eb43032/demo/src/components/helpers/maskUtils.tsx\r\n // Copyright (c) Meta Platforms, Inc. and affiliates.\r\n // All rights reserved.\r\n\r\n\r\n let maskcolor_ = [0, 114, 189, 255];\r\n\r\n if (Util.is_defined(maskcolor)) {\r\n \r\n maskcolor_ = maskcolor;\r\n \r\n } \r\n\r\n for (var i = 0; i < mask.length; i++) {\r\n\r\n if (mask[i] > 0.0) {\r\n pixels[4 * i + 0] = maskcolor_[0];\r\n pixels[4 * i + 1] = maskcolor_[1];\r\n pixels[4 * i + 2] = maskcolor_[2];\r\n pixels[4 * i + 3] = maskcolor_[3];\r\n }\r\n\r\n }\r\n\r\n return pixels;\r\n\r\n }\r\n\r\n static is_defined(variable) {\r\n\r\n return (typeof variable != 'undefined');\r\n\r\n }\r\n \r\n // \"Boostlet Tooltips\" - This is a hint mechanism that allows to display a message for a certain amount of time (ms).\r\n static hint(message, duration) {\r\n\r\n let hint = window.document.createElement('div');\r\n hint.id = 'BoostletHint';\r\n\r\n hint.style.position = 'fixed';\r\n hint.style.left = '10px';\r\n hint.style.top = '10px';\r\n hint.style.padding = '10px';\r\n hint.style.background = '#fff';\r\n hint.style.color = '#000';\r\n hint.style.zIndex = '100000';\r\n hint.style.border = '1px solid #007ec6';\r\n hint.style.borderRadius = '5px';\r\n hint.style.boxShadow = '0px 0px 20px 5px rgba(0,0,0, 0.3)';\r\n hint.style.fontSize = '14px';\r\n hint.style.fontWeight = 'bold';\r\n hint.style.textAlign = 'center';\r\n\r\n hint.innerHTML = message;\r\n \r\n window.document.body.appendChild(hint);\r\n\r\n if (typeof duration === 'number' && duration > 0) {\r\n setTimeout(function() {\r\n hint.remove();\r\n }, duration);\r\n }\r\n\r\n }\r\n\r\n}","import {Util} from './util.js';\r\n\r\nexport class Framework {\r\n\r\n constructor(instance) {\r\n\r\n this.name = 'generic';\r\n this.instance = instance;\r\n\r\n this.flip_on_png = false;\r\n\r\n }\r\n\r\n get_image(from_canvas) {\r\n\r\n throw \"Missing Implementation.\";\r\n\r\n }\r\n\r\n set_image(new_pixels) {\r\n\r\n throw \"Missing Implementation.\";\r\n\r\n }\r\n\r\n set_mask(new_mask) {\r\n\r\n throw \"Missing Implementation.\";\r\n \r\n }\r\n\r\n select_box(callback) {\r\n\r\n throw \"Missing Implementation.\";\r\n\r\n }\r\n\r\n convert_to_png(uint8array, width, height) {\r\n\r\n return Util.convert_to_png(uint8array, width, height, this.flip_on_png);\r\n\r\n }\r\n\r\n}\r\n","import {Framework} from '../framework.js';\r\n\r\nimport {Util} from '../util.js';\r\n\r\nimport {CanvasFallback} from './canvasFallback.js';\r\n\r\nexport class Cornerstone2D extends Framework {\r\n \r\n constructor(instance) {\r\n\r\n super(instance);\r\n this.name = 'cornerstone2D';\r\n this.canvasFallback = new CanvasFallback();\r\n\r\n this.cornerstonetools_instance = null;\r\n\r\n if (typeof window.cornerstoneTools != 'undefined') {\r\n\r\n // TODO probably not too robust\r\n this.cornerstonetools_instance = window.cornerstoneTools;\r\n\r\n }\r\n\r\n this.flip_on_png = false;\r\n\r\n }\r\n\r\n get_image(from_canvas) {\r\n\r\n let element = this.instance.getEnabledElements()[0];\r\n let pixels = null;\r\n let width = null;\r\n let height = null;\r\n\r\n if (typeof from_canvas != 'undefined') {\r\n\r\n // TODO this is hacky going through the canvas\r\n // later should grab the real volume data\r\n\r\n let canvas = element.canvas;\r\n width = canvas.width;\r\n height = canvas.height;\r\n\r\n let ctx = canvas.getContext('2d');\r\n\r\n let imagedata = ctx.getImageData(0, 0, width, height);\r\n pixels = imagedata.data;\r\n\r\n } else {\r\n\r\n // this is the real image slice data\r\n let imagedata = element.image;\r\n pixels = imagedata.getPixelData();\r\n width = imagedata.width;\r\n height = imagedata.height;\r\n\r\n }\r\n\r\n return {'data':pixels, 'width':width, 'height':height};\r\n\r\n }\r\n\r\n set_image(new_pixels) {\r\n\r\n let element = this.instance.getEnabledElements()[0];\r\n let pixels = element.image.getPixelData();\r\n\r\n // Set the new pixel values\r\n pixels.set(new_pixels);\r\n\r\n // Re-render the current slice\r\n cornerstone.renderGrayscaleImage(element, true);\r\n\r\n }\r\n\r\n set_mask(new_mask) {\r\n return this.canvasFallback.set_mask(new_mask);\r\n \r\n }\r\n\r\n select_box(callback) {\r\n\r\n if(this.cornerstonetools_instance.RectangleRoiTool === undefined) {\r\n console.log(\"Using Boxcraft library to handle box selection.\");\r\n let element = this.instance.getEnabledElements()[0];\r\n let canvas = element.canvas;\r\n\r\n // Disable the Wwwc tool\r\n cornerstoneTools.setToolDisabled(\"Wwwc\");\r\n\r\n BoxCraft.createDraggableBBox(canvas, function (topleft, bottomright) {\r\n callback(topleft, bottomright);\r\n });\r\n\r\n BoxCraft.createResizableBBox(canvas, function(topleft, bottomright) {\r\n console.log(\"Inside Draggable BBox\",topleft, bottomright);\r\n callback(topleft, bottomright);\r\n });\r\n\r\n // return this.canvasFallback.select_box(callback);\r\n\r\n\r\n }\r\n else{\r\n console.log(\"Using Cornerstonetools to handle box selection.\");\r\n this.cornerstonetools_instance.setToolActive(\"RectangleRoi\", {\r\n mouseButtonMask: 1,\r\n });\r\n\r\n let element = this.instance.getEnabledElements()[0];\r\n let canvas = element.canvas;\r\n\r\n canvas.onmouseup = function () {\r\n let state =\r\n this.cornerstonetools_instance.globalImageIdSpecificToolStateManager.saveToolState();\r\n\r\n let topleft =\r\n state[Object.keys(state).pop()].RectangleRoi.data[0].handles.start;\r\n let bottomright =\r\n state[Object.keys(state).pop()].RectangleRoi.data[0].handles.end;\r\n\r\n let topleft_c = this.instance.pixelToCanvas(element.element, topleft);\r\n let bottomright_c = this.instance.pixelToCanvas(\r\n element.element,\r\n bottomright\r\n );\r\n\r\n this.cornerstonetools_instance.clearToolState(\r\n element.element,\r\n \"RectangleRoi\"\r\n );\r\n this.instance.renderGrayscaleImage(element, true);\r\n callback(topleft_c, bottomright_c);\r\n }.bind(this);\r\n }\r\n\r\n }\r\n\r\n}","import { Framework } from \"../framework.js\";\r\n\r\nimport { Util } from \"../util.js\";\r\n\r\n\r\n\r\nexport class CanvasFallback extends Framework {\r\n constructor() {\r\n super();\r\n this.name = \"canvasFallback\";\r\n }\r\n\r\n get_canvas() {\r\n let canvases = document.querySelectorAll('canvas');\r\n let largestCanvas = canvases[0];\r\n let largestArea = largestCanvas.width * largestCanvas.height;\r\n\r\n for (let i = 1; i < canvases.length; i++) {\r\n let area = canvases[i].width * canvases[i].height;\r\n if (area > largestArea) {\r\n largestCanvas = canvases[i];\r\n largestArea = area;\r\n }\r\n }\r\n\r\n return largestCanvas;\r\n }\r\n\r\n get_image(from_canvas) {\r\n\r\n let canvas = this.get_canvas();\r\n\r\n let ctx = canvas.getContext(\"2d\");\r\n\r\n let image = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n let rgba_image = Util.rgba_to_grayscale(image.data);\r\n\r\n if (from_canvas) {\r\n return { data: image.data, width: image.width, height: image.height };\r\n } else {\r\n return { data: rgba_image, width: image.width, height: image.height };\r\n }\r\n }\r\n\r\n set_image(new_pixels) {\r\n let originalcanvas = this.get_canvas();\r\n\r\n let newcanvas = window.document.createElement(\"canvas\");\r\n\r\n newcanvas.width = originalcanvas.width;\r\n newcanvas.height = originalcanvas.height;\r\n\r\n let ctx = newcanvas.getContext(\"2d\");\r\n\r\n let newPixelsRgba = Util.grayscale_to_rgba(new_pixels);\r\n\r\n let newPixelsClamped = new Uint8ClampedArray(newPixelsRgba);\r\n\r\n let newImageData = new ImageData(\r\n newPixelsClamped,\r\n newcanvas.width,\r\n newcanvas.height\r\n );\r\n\r\n // Draw the new image data onto the canvas\r\n ctx.putImageData(newImageData, 0, 0);\r\n\r\n newcanvas.onclick = function () {\r\n // on click, we will restore the nv canvas\r\n newcanvas.parentNode.replaceChild(originalcanvas, newcanvas);\r\n };\r\n\r\n // replace nv canvas with new one\r\n originalcanvas.parentNode.replaceChild(newcanvas, originalcanvas);\r\n }\r\n\r\n set_mask(new_mask) {\r\n let image = this.get_image(true);\r\n\r\n let originalcanvas = this.get_canvas();\r\n\r\n let newcanvas = window.document.createElement('canvas');\r\n\r\n newcanvas.width = originalcanvas.width;\r\n newcanvas.height = originalcanvas.height;\r\n\r\n let ctx = newcanvas.getContext('2d');\r\n\r\n let imageclamped = new Uint8ClampedArray(image.data);\r\n\r\n let newImageData = new ImageData(\r\n imageclamped,\r\n newcanvas.width,\r\n newcanvas.height\r\n );\r\n\r\n // Draw the new image data onto the canvas\r\n ctx.putImageData(newImageData, 0, 0);\r\n\r\n image = ctx.getImageData(0, 0, newcanvas.width, newcanvas.height);\r\n\r\n let masked_image = Util.harden_mask(image.data, new_mask);\r\n\r\n let masked_image_as_imagedata = new ImageData(\r\n masked_image,\r\n newcanvas.width,\r\n newcanvas.height\r\n );\r\n\r\n ctx.putImageData(masked_image_as_imagedata, 0, 0);\r\n\r\n originalcanvas.parentNode.replaceChild(newcanvas, originalcanvas);\r\n }\r\n\r\n select_box(callback) {\r\n let scriptBoxCraft = document.createElement(\"script\");\r\n scriptBoxCraft.type = \"text/javascript\";\r\n scriptBoxCraft.src = \"https://boostlet.org/dist/boxcraft.min.js\";\r\n // scriptBoxCraft.src = \"https://shrutivarade.github.io/BoxCraft/dist/boxCraft.min.js\";\r\n // scriptBoxCraft.src = \"https://shrutivarade.github.io/boostlet/dist/boxcraft.min.js\";\r\n // scriptBoxCraft.src = \"http://localhost:8000/dist/boxcraft.min.js\";\r\n let canvas = this.get_canvas();\r\n document.head.appendChild(scriptBoxCraft);\r\n\r\n scriptBoxCraft.onload = function() {\r\n\r\n BoxCraft.createDraggableBBox(canvas, function (topleft, bottomright) {\r\n console.log(\"Inside Draggable BBox\", topleft, bottomright);\r\n callback(topleft, bottomright);\r\n });\r\n }\r\n\r\n }\r\n\r\n}\r\n","import {Framework} from '../framework.js';\n\nimport {Util} from '../util.js';\nimport {CanvasFallback} from './canvasFallback.js';\n\nexport class NiiVue extends Framework {\n \n constructor(instance) {\n\n super(instance);\n this.name = 'niivue';\n this.canvasFallback = new CanvasFallback();\n\n this.flip_on_png = true;\n\n this.onMouseDown = false;\n this.x1 = null;\n this.y1 = null;\n this.x2 = null;\n this.y2 = null;\n\n }\n\n get_image(from_canvas) {\n\n \n let pixels = null;\n let width = null;\n let height = null;\n\n if (!Util.is_defined(from_canvas)) {\n\n // use the canvas\n\n let element = this.instance.canvas;\n\n let old_crosshaircolor = this.instance.opts.crosshairColor;\n let old_crosshairwidth = this.instance.opts.crosshairWidth;\n\n this.instance.setCrosshairColor([0,0,0,0]);\n this.instance.opts.crosshairWidth=0;\n this.instance.updateGLVolume();\n\n\n let ctx = this.instance.gl;\n\n \n width = ctx.drawingBufferWidth;\n height = ctx.drawingBufferHeight;\n\n pixels = new Uint8Array(width * height * 4);\n ctx.readPixels(\n 0, \n 0, \n width, \n height, \n ctx.RGBA, \n ctx.UNSIGNED_BYTE, \n pixels);\n\n // restore crosshairs\n this.instance.setCrosshairColor(old_crosshaircolor);\n this.instance.opts.crosshairWidth = old_crosshairwidth;\n\n\n // convert rgba pixels to grayscale\n pixels = Util.rgba_to_grayscale(pixels);\n\n\n } else {\n\n // grab the real pixels of the current slice and return it\n // set width and height accordingly\n\n let v = this.instance.volumes[0];\n let currentSlice = this.instance.opts.sliceType;\n let currentCrossHairPos = this.instance.scene.crosshairPos;\n \n \n // Default to full volume\n let start = [0, 0, 0];\n let end = [v.dims[1], v.dims[2], v.dims[3]];\n\n if(currentSlice == 0){\n // axial — slice along Z\n let z_index = Math.floor(currentCrossHairPos[2] * v.dims[3]);\n width = v.dims[1];\n height = v.dims[2];\n start = [0, 0, z_index];\n end = [v.dims[1], v.dims[2], z_index + 1];\n }\n else if(currentSlice == 1){\n // coronal — slice along Y\n let y_index = Math.floor(currentCrossHairPos[1] * v.dims[2]);\n width = v.dims[1];\n height = v.dims[3];\n start = [0, y_index, 0];\n end = [v.dims[1], y_index + 1 , v.dims[3]];\n }\n else if(currentSlice == 2){\n // sagittal — slice along X\n let x_index = Math.floor(currentCrossHairPos[0] * v.dims[1]);\n width = v.dims[2];\n height = v.dims[3];\n start = [x_index, 0, 0];\n end = [x_index + 1, v.dims[2], v.dims[3]];\n }\n else {\n // multiplanar (sliceType 3) — no single slice to extract,\n // return the full volume\n width = v.dims[1];\n height = v.dims[2];\n }\n\n pixels = v.getVolumeData(start, end)[0];\n\n }\n\n return {'data':pixels, 'width':width, 'height':height};\n\n }\n\n\n\n get_subvolume(start, end) {\n const [data, dims] = this.instance.volumes[0].getVolumeData(start, end);\n return { data, dims };\n }\n\n get_dims(){\n const v = this.instance.volumes[0];\n const currentSlice = this.instance.opts.sliceType;\n\n if(currentSlice == 0) return [v.dims[1], v.dims[2], 1]; //axial\n if(currentSlice == 1 ) return [v.dims[1], v.dims[3], 1 ]; // coronal\n if(currentSlice == 2) return [v.dims[2], v.dims[3], 1 ]; // saggital\n return [v.dims[1], v.dims[2], 1]; // multiplanar fallback\n } \n\n /**\n * Sets the NiiVue.js image.\n * \n * If is_rgba==true, we do *not* convert to RGBA before setting on canvas.\n **/\n set_image(new_pixels, is_rgba, no_flip) {\n\n // TODO this is hacky since we dont work with the real volume yet\n // create new canvas\n // put pixels on canvas\n // show canvas\n // hide on click\n\n let originalcanvas = this.instance.canvas;\n\n let newcanvas = window.document.createElement('canvas');\n newcanvas.width = originalcanvas.width;\n newcanvas.height = originalcanvas.height;\n\n // put new_pixels down\n let ctx = newcanvas.getContext('2d');\n\n let new_pixels_rgba = null;\n\n if (Util.is_defined(is_rgba)) {\n\n new_pixels_rgba = new_pixels;\n\n } else {\n\n new_pixels_rgba = Util.grayscale_to_rgba(new_pixels);\n\n\n }\n\n let new_pixels_clamped = new Uint8ClampedArray(new_pixels_rgba);\n\n let new_image_data = new ImageData(new_pixels_clamped, newcanvas.width, newcanvas.height);\n \n\n ctx.putImageData(new_image_data, 0, 0);\n\n if (!Util.is_defined(no_flip)) {\n // some flipping action\n ctx.save();\n ctx.scale(1, -1);\n ctx.drawImage(newcanvas, 0, -newcanvas.height);\n ctx.restore();\n }\n\n\n newcanvas.onclick = function() {\n\n // on click, we will restore the nv canvas\n newcanvas.parentNode.replaceChild(originalcanvas, newcanvas);\n\n }\n\n // replace nv canvas with new one\n // originalcanvas.parentNode.replaceChild(newcanvas, originalcanvas);\n newcanvas.style.width = originalcanvas.clientWidth+'px';\n newcanvas.style.height = originalcanvas.clientHeight+'px';\n originalcanvas.parentNode.replaceChild(newcanvas, originalcanvas);\n\n }\n\n set_mask(new_mask) {\n\n // merge image + mask\n // and then call set_image with that information\n\n let image = this.get_image(true);\n\n // TODO here we need to flip one more time, this is until\n // we use the official niivue infrastructure for adding\n // a segmentation layer\n let originalcanvas = this.instance.canvas;\n\n let newcanvas = window.document.createElement('canvas');\n newcanvas.width = originalcanvas.width;\n newcanvas.height = originalcanvas.height;\n // put new_pixels down\n let ctx = newcanvas.getContext('2d');\n let imageclamped = new Uint8ClampedArray(image.data);\n let imagedata = new ImageData(imageclamped, image.width, image.height);\n ctx.putImageData(imagedata, 0, 0);\n ctx.save();\n ctx.scale(1, -1);\n ctx.drawImage(newcanvas, 0, -newcanvas.height);\n ctx.restore();\n image = ctx.getImageData(0, 0, newcanvas.width, newcanvas.height);\n // end of flip\n\n let masked_image = Util.harden_mask(image.data, new_mask);\n\n this.set_image(masked_image, true, true); // rgba data, no flip\n\n\n }\n\n select_box(callback) {\n return this.canvasFallback.select_box(callback);\n\n }\n\n}\n","import {Framework} from '../framework.js';\r\n\r\nimport {Util} from '../util.js';\r\n\r\nimport {CanvasFallback} from './canvasFallback.js';\r\n\r\nexport class OpenSeaDragon extends Framework {\r\n constructor(instance) {\r\n super(instance);\r\n this.name = 'opensedragon';\r\n this.canvasFallback = new CanvasFallback();\r\n\r\n }\r\n\r\n get_image(from_canvas) {\r\n return this.canvasFallback.get_image(from_canvas);\r\n }\r\n\r\n set_image(new_pixels) {\r\n return this.canvasFallback.set_image(new_pixels);\r\n }\r\n\r\n set_mask(new_mask) {\r\n // return this.canvasFallback.set_mask(new_mask);\r\n\r\n let viewer = null;\r\n let vs = this.instance._viewers;\r\n vs.forEach(function (e) {\r\n if (e.id == \"viewer\") {\r\n viewer = e;\r\n }\r\n });\r\n\r\n if (!viewer) {\r\n throw \"OpenSeaDragon viewer not found.\";\r\n }\r\n\r\n let canvas = viewer.canvas.children[0];\r\n width = canvas.width;\r\n height = canvas.height;\r\n\r\n let ctx = canvas.getContext(\"2d\");\r\n let imagedata = ctx.getImageData(0, 0, width, height);\r\n let pixels = imagedata.data;\r\n\r\n let masked_image = Util.harden_mask(pixels, new_mask);\r\n let masked_image_as_imagedata = new ImageData(masked_image, width, height);\r\n ctx.putImageData(masked_image_as_imagedata, 0, 0);\r\n }\r\n\r\n select_box(callback) {\r\n\r\n console.log(\"Using Boxcraft library to handle box selection.\");\r\n let viewer = null;\r\n let vs = this.instance._viewers;\r\n vs.forEach(function (e) {\r\n if (e.id == \"viewer\") {\r\n viewer = e;\r\n }\r\n });\r\n\r\n if (!viewer) {\r\n throw \"OpenSeaDragon viewer not found.\";\r\n }\r\n\r\n let canvas = viewer.canvas;\r\n\r\n BoxCraft.createDraggableBBox(canvas, function (topleft, bottomright) {\r\n callback(topleft, bottomright);\r\n });\r\n\r\n }\r\n\r\n \r\n\r\n}\r\n \r\n","import { Framework } from \"../framework.js\";\r\n\r\nimport { Util } from \"../util.js\";\r\n\r\nimport { CanvasFallback } from \"./canvasFallback.js\";\r\n\r\nexport class Xtk extends Framework {\r\n constructor(instance) {\r\n super(instance);\r\n this.name = \"xtk\";\r\n this.canvasFallback = new CanvasFallback();\r\n }\r\n\r\n get_image(from_canvas) {\r\n return this.canvasFallback.get_image(from_canvas);\r\n }\r\n\r\n set_image(new_pixels) {\r\n return this.canvasFallback.set_image(new_pixels);\r\n }\r\n\r\n set_mask(new_mask) {\r\n return this.canvasFallback.set_mask(new_mask);\r\n }\r\n\r\n select_box(callback) {\r\n return this.canvasFallback.select_box(callback);\r\n }\r\n}\r\n","import { Framework } from \"../framework.js\";\r\n\r\nimport { Util } from \"../util.js\";\r\n\r\nimport { CanvasFallback } from \"./canvasFallback.js\";\r\n\r\nexport class Papaya extends Framework {\r\n constructor(instance) {\r\n super(instance);\r\n this.name = \"papaya\";\r\n this.canvasFallback = new CanvasFallback();\r\n }\r\n\r\n get_image(from_canvas) {\r\n return this.canvasFallback.get_image(from_canvas);\r\n }\r\n\r\n set_image(new_pixels) {\r\n return this.canvasFallback.set_image(new_pixels);\r\n }\r\n\r\n set_mask(new_mask) {\r\n return this.canvasFallback.set_mask(new_mask);\r\n }\r\n\r\n select_box(callback) {\r\n return this.canvasFallback.select_box(callback);\r\n }\r\n}\r\n","\r\nimport {Boostlet} from \"./boostlet.js\"\r\n\r\nwindow.console.log('BOOSTLET VERSION 0.1-beta');\r\n\r\n// register global namespace with a new boostlet instance\r\n// later we might want to support multiple active boostlets\r\nwindow.Boostlet = new Boostlet();\r\n","import {Util} from './util.js';\n\nimport {Framework} from './framework.js';\n\nexport class Boostlet {\n\n constructor() {\n this.framework = null;\n }\n\n /**\n * Initializes the Boostlet.\n * \n * This includes several steps such as identifying the \n * visualization/rendering framework that is available. \n * \n * TODO: Later we want to have fallbacks in place if the framework\n * is not detected.\n * \n */\n init(name, instance) {\n\n if (typeof name != 'undefined' && typeof instance != 'undefined') {\n\n console.log('Framework forced by user!');\n throw \"Forced Framework Not Implemented.\";\n // TODO\n\n } else {\n\n this.framework = Util.detect_framework();\n\n }\n\n if (this.framework) {\n\n console.log('Found', this.framework, '!')\n \n } else {\n\n throw \"Framework Not Found.\";\n\n }\n\n }\n\n /**\n * Let's the user select a region of interest box.\n */\n async select_box(callback) {\n\n this.framework.select_box(callback);\n\n }\n\n /**\n * Let's the user select (multiple) seeds.\n */\n async select_seed(howmany) {\n\n throw \"Missing Implementation.\";\n\n }\n\n /**\n * Loads an external javascript file asynchronously. \n */\n async load_script(url, callback) {\n\n Util.load_script(url, callback);\n\n }\n\n /**\n * Sends a HTTP POST request to a url with some data.\n */\n async send_http_post(url, data, callback) {\n\n Util.send_http_post(url, data, callback);\n\n }\n\n /**\n * Gets the current image (2D).\n * \n * TODO: Optional bounding box should be supported.\n * \n */\n get_image(from_canvas) {\n\n return this.framework.get_image(from_canvas);\n\n }\n\n /**\n * Sets the current image (2D).\n * \n */\n set_image(new_pixels) {\n\n return this.framework.set_image(new_pixels);\n\n }\n\n /**\n * Sets the current mask (2D).\n * \n */\n set_mask(new_mask) {\n\n return this.framework.set_mask(new_mask);\n\n }\n\n get_dims() {\n return this.framework.get_dims();\n }\n\n get_subvolume(start, end) {\n return this.framework.get_subvolume(start, end);\n }\n\n /**\n * Encode raw image data to PNG.\n */\n convert_to_png(uint8array, width, height) {\n\n return this.framework.convert_to_png(uint8array, width, height);\n\n }\n\n filter(pixels, width, height, kernel) {\n\n return Util.filter(pixels, width, height, kernel);\n\n }\n\n /**\n * Displays a small div located at the top left corner of the screen with message and will disappear after the specified time (ms).\n * \n */\n hint(message, duration) {\n\n return Util.hint(message, duration);\n\n }\n\n}\n"],"names":[],"version":3,"file":"boostlet.min.js.map"} \ No newline at end of file +{"mappings":"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","sources":["src/util.js","src/framework.js","src/frameworks/cornerstone2d.js","src/frameworks/canvasFallback.js","src/frameworks/niivue.js","src/frameworks/openseadragon.js","src/frameworks/xtk.js","src/frameworks/papaya.js","src/index.js","src/boostlet.js","src/stats.js"],"sourcesContent":["import {Framework} from './framework.js';\nimport {Cornerstone2D} from './frameworks/cornerstone2d.js';\nimport {NiiVue} from './frameworks/niivue.js';\nimport { OpenSeaDragon } from './frameworks/openseadragon.js';\nimport { Xtk } from './frameworks/xtk.js';\nimport { Papaya } from './frameworks/papaya.js';\nimport { CanvasFallback } from './frameworks/canvasFallback.js';\n\nexport class Util {\n \n static detect_framework() {\n\n let framework = null;\n\n // check window.nv is a NiiVue instance, not just the module\n if (Util.is_defined(window.nv) && window.nv.volumes !== undefined) {\n \n framework = new NiiVue(window.nv);\n \n } else if (Util.is_defined(window.niivue) && window.niivue.volumes !== undefined) {\n \n framework = new NiiVue(window.niivue);\n\n } else if (Util.is_defined(window.cornerstone)) {\n\n framework = new Cornerstone2D(window.cornerstone);\n\n } else if (Util.is_defined(window.r)) {\n \n framework = new Xtk(window.r);\n \n } else if (Util.is_defined(window.OpenSeadragon)) {\n\n framework = new OpenSeaDragon(window.OpenSeadragon);\n \n } else if (Util.is_defined(window.papayaContainers)) {\n \n framework = new Papaya(window.papayaContainers)\n\n } else {\n // Canvas fallback\n \n console.log(\"No framework detected, falling back to canvas rendering\");\n framework = new CanvasFallback();\n \n }\n\n return framework;\n\n }\n\n static async load_script(url, callback) {\n\n if (typeof window.Object.global === 'undefined') {\n // introducing hack to make it work for openneuro\n // but only do it once\n window.Object.defineProperty(window.Object.prototype, 'global', {\n get( ){\n return window;\n },\n set(newGlobal) {\n globalThis = newGlobal;\n }\n });\n }\n\n const script = window.document.createElement(\"script\")\n script.type = \"text/javascript\"\n script.src = url;\n\n if (Util.is_defined(callback)) {\n script.onload = callback;\n }\n\n window.document.head.appendChild(script);\n eval(script);\n\n }\n\n static async send_http_post(url, data, callback) {\n\n let xhr = new XMLHttpRequest();\n xhr.open(\"POST\", url);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n // request done\n callback( xhr.response );\n\n return;\n\n }\n }\n\n xhr.send(data)\n\n }\n\n static convert_to_png(uint8array, width, height, flip) {\n\n // we are using an offscreen canvas for this\n let offscreen = window.document.createElement('canvas');\n offscreen.width = width;\n offscreen.height = height;\n\n let offscreen_ctx = offscreen.getContext('2d');\n\n let imgdata = offscreen_ctx.createImageData(offscreen.width, offscreen.height);\n let pxdata = imgdata.data;\n\n for (var i =0; i c.charCodeAt(0));\n\n return pngpixels;\n\n }\n\n static filter(pixels, width, height, kernel) {\n\n const kernelSize = Math.sqrt(kernel.length);\n const halfKernelSize = Math.floor(kernelSize / 2);\n\n const new_pixels = pixels.slice();\n\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const dstIndex = y * width + x;\n\n let newValue = 0;\n for (let ky = 0; ky < kernelSize; ky++) {\n for (let kx = 0; kx < kernelSize; kx++) {\n const srcX = x + kx - halfKernelSize;\n const srcY = y + ky - halfKernelSize;\n const srcIndex = srcY * width + srcX;\n\n const kernelValue = kernel[ky * kernelSize + kx];\n newValue += pixels[srcIndex] * kernelValue;\n }\n }\n\n new_pixels[dstIndex] = newValue;\n\n }\n }\n\n return new_pixels;\n\n }\n\n static grayscale_to_rgba(grayscale) {\n\n const rgba = new Uint8Array(grayscale.length * 4);\n\n for (let i = 0; i < grayscale.length; i++) {\n const g = grayscale[i];\n const index = i * 4;\n\n rgba[index] = g;\n rgba[index + 1] = g;\n rgba[index + 2] = g;\n rgba[index + 3] = 255; \n }\n\n return rgba;\n\n }\n\n static rgba_to_grayscale(rgba) {\n\n const grayscale = new Uint8Array(rgba.length / 4);\n\n for (let i = 0; i < rgba.length; i += 4) {\n\n grayscale[i / 4] = rgba[i];\n\n }\n\n return grayscale;\n\n }\n\n /**\n * Harden a mask into a grayscale pixel array.\n * \n * pixels needs to be RGBA\n * \n * and mask binary.\n * \n * maskcolor is optional and falls back to blue.\n * \n **/\n static harden_mask(pixels, mask, maskcolor) {\n\n // Modified from: https://github.com/facebookresearch/segment-anything/blob/40df6e4046d8b07ab8c4519e083408289eb43032/demo/src/components/helpers/maskUtils.tsx\n // Copyright (c) Meta Platforms, Inc. and affiliates.\n // All rights reserved.\n\n\n let maskcolor_ = [0, 114, 189, 255];\n\n if (Util.is_defined(maskcolor)) {\n \n maskcolor_ = maskcolor;\n \n } \n\n for (var i = 0; i < mask.length; i++) {\n\n if (mask[i] > 0.0) {\n pixels[4 * i + 0] = maskcolor_[0];\n pixels[4 * i + 1] = maskcolor_[1];\n pixels[4 * i + 2] = maskcolor_[2];\n pixels[4 * i + 3] = maskcolor_[3];\n }\n\n }\n\n return pixels;\n\n }\n\n static is_defined(variable) {\n\n return (typeof variable != 'undefined');\n\n }\n \n // \"Boostlet Tooltips\" - This is a hint mechanism that allows to display a message for a certain amount of time (ms).\n static hint(message, duration) {\n\n let hint = window.document.createElement('div');\n hint.id = 'BoostletHint';\n\n hint.style.position = 'fixed';\n hint.style.left = '10px';\n hint.style.top = '10px';\n hint.style.padding = '10px';\n hint.style.background = '#fff';\n hint.style.color = '#000';\n hint.style.zIndex = '100000';\n hint.style.border = '1px solid #007ec6';\n hint.style.borderRadius = '5px';\n hint.style.boxShadow = '0px 0px 20px 5px rgba(0,0,0, 0.3)';\n hint.style.fontSize = '14px';\n hint.style.fontWeight = 'bold';\n hint.style.textAlign = 'center';\n\n hint.innerHTML = message;\n \n window.document.body.appendChild(hint);\n\n if (typeof duration === 'number' && duration > 0) {\n setTimeout(function() {\n hint.remove();\n }, duration);\n }\n\n }\n\n}\n","import {Util} from './util.js';\r\n\r\nexport class Framework {\r\n\r\n constructor(instance) {\r\n\r\n this.name = 'generic';\r\n this.instance = instance;\r\n\r\n this.flip_on_png = false;\r\n\r\n }\r\n\r\n get_image(from_canvas) {\r\n\r\n throw \"Missing Implementation.\";\r\n\r\n }\r\n\r\n set_image(new_pixels) {\r\n\r\n throw \"Missing Implementation.\";\r\n\r\n }\r\n\r\n set_mask(new_mask) {\r\n\r\n throw \"Missing Implementation.\";\r\n \r\n }\r\n\r\n select_box(callback) {\r\n\r\n throw \"Missing Implementation.\";\r\n\r\n }\r\n\r\n convert_to_png(uint8array, width, height) {\r\n\r\n return Util.convert_to_png(uint8array, width, height, this.flip_on_png);\r\n\r\n }\r\n\r\n}\r\n","import {Framework} from '../framework.js';\r\n\r\nimport {Util} from '../util.js';\r\n\r\nimport {CanvasFallback} from './canvasFallback.js';\r\n\r\nexport class Cornerstone2D extends Framework {\r\n \r\n constructor(instance) {\r\n\r\n super(instance);\r\n this.name = 'cornerstone2D';\r\n this.canvasFallback = new CanvasFallback();\r\n\r\n this.cornerstonetools_instance = null;\r\n\r\n if (typeof window.cornerstoneTools != 'undefined') {\r\n\r\n // TODO probably not too robust\r\n this.cornerstonetools_instance = window.cornerstoneTools;\r\n\r\n }\r\n\r\n this.flip_on_png = false;\r\n\r\n }\r\n\r\n get_image(from_canvas) {\r\n\r\n let element = this.instance.getEnabledElements()[0];\r\n let pixels = null;\r\n let width = null;\r\n let height = null;\r\n\r\n if (typeof from_canvas != 'undefined') {\r\n\r\n // TODO this is hacky going through the canvas\r\n // later should grab the real volume data\r\n\r\n let canvas = element.canvas;\r\n width = canvas.width;\r\n height = canvas.height;\r\n\r\n let ctx = canvas.getContext('2d');\r\n\r\n let imagedata = ctx.getImageData(0, 0, width, height);\r\n pixels = imagedata.data;\r\n\r\n } else {\r\n\r\n // this is the real image slice data\r\n let imagedata = element.image;\r\n pixels = imagedata.getPixelData();\r\n width = imagedata.width;\r\n height = imagedata.height;\r\n\r\n }\r\n\r\n return {'data':pixels, 'width':width, 'height':height};\r\n\r\n }\r\n\r\n set_image(new_pixels) {\r\n\r\n let element = this.instance.getEnabledElements()[0];\r\n let pixels = element.image.getPixelData();\r\n\r\n // Set the new pixel values\r\n pixels.set(new_pixels);\r\n\r\n // Re-render the current slice\r\n cornerstone.renderGrayscaleImage(element, true);\r\n\r\n }\r\n\r\n set_mask(new_mask) {\r\n return this.canvasFallback.set_mask(new_mask);\r\n \r\n }\r\n\r\n select_box(callback) {\r\n\r\n if(this.cornerstonetools_instance.RectangleRoiTool === undefined) {\r\n console.log(\"Using Boxcraft library to handle box selection.\");\r\n let element = this.instance.getEnabledElements()[0];\r\n let canvas = element.canvas;\r\n\r\n // Disable the Wwwc tool\r\n cornerstoneTools.setToolDisabled(\"Wwwc\");\r\n\r\n BoxCraft.createDraggableBBox(canvas, function (topleft, bottomright) {\r\n callback(topleft, bottomright);\r\n });\r\n\r\n BoxCraft.createResizableBBox(canvas, function(topleft, bottomright) {\r\n console.log(\"Inside Draggable BBox\",topleft, bottomright);\r\n callback(topleft, bottomright);\r\n });\r\n\r\n // return this.canvasFallback.select_box(callback);\r\n\r\n\r\n }\r\n else{\r\n console.log(\"Using Cornerstonetools to handle box selection.\");\r\n this.cornerstonetools_instance.setToolActive(\"RectangleRoi\", {\r\n mouseButtonMask: 1,\r\n });\r\n\r\n let element = this.instance.getEnabledElements()[0];\r\n let canvas = element.canvas;\r\n\r\n canvas.onmouseup = function () {\r\n let state =\r\n this.cornerstonetools_instance.globalImageIdSpecificToolStateManager.saveToolState();\r\n\r\n let topleft =\r\n state[Object.keys(state).pop()].RectangleRoi.data[0].handles.start;\r\n let bottomright =\r\n state[Object.keys(state).pop()].RectangleRoi.data[0].handles.end;\r\n\r\n let topleft_c = this.instance.pixelToCanvas(element.element, topleft);\r\n let bottomright_c = this.instance.pixelToCanvas(\r\n element.element,\r\n bottomright\r\n );\r\n\r\n this.cornerstonetools_instance.clearToolState(\r\n element.element,\r\n \"RectangleRoi\"\r\n );\r\n this.instance.renderGrayscaleImage(element, true);\r\n callback(topleft_c, bottomright_c);\r\n }.bind(this);\r\n }\r\n\r\n }\r\n\r\n}","import { Framework } from \"../framework.js\";\r\n\r\nimport { Util } from \"../util.js\";\r\n\r\n\r\n\r\nexport class CanvasFallback extends Framework {\r\n constructor() {\r\n super();\r\n this.name = \"canvasFallback\";\r\n }\r\n\r\n get_canvas() {\r\n let canvases = document.querySelectorAll('canvas');\r\n let largestCanvas = canvases[0];\r\n let largestArea = largestCanvas.width * largestCanvas.height;\r\n\r\n for (let i = 1; i < canvases.length; i++) {\r\n let area = canvases[i].width * canvases[i].height;\r\n if (area > largestArea) {\r\n largestCanvas = canvases[i];\r\n largestArea = area;\r\n }\r\n }\r\n\r\n return largestCanvas;\r\n }\r\n\r\n get_image(from_canvas) {\r\n\r\n let canvas = this.get_canvas();\r\n\r\n let ctx = canvas.getContext(\"2d\");\r\n\r\n let image = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n let rgba_image = Util.rgba_to_grayscale(image.data);\r\n\r\n if (from_canvas) {\r\n return { data: image.data, width: image.width, height: image.height };\r\n } else {\r\n return { data: rgba_image, width: image.width, height: image.height };\r\n }\r\n }\r\n\r\n set_image(new_pixels) {\r\n let originalcanvas = this.get_canvas();\r\n\r\n let newcanvas = window.document.createElement(\"canvas\");\r\n\r\n newcanvas.width = originalcanvas.width;\r\n newcanvas.height = originalcanvas.height;\r\n\r\n let ctx = newcanvas.getContext(\"2d\");\r\n\r\n let newPixelsRgba = Util.grayscale_to_rgba(new_pixels);\r\n\r\n let newPixelsClamped = new Uint8ClampedArray(newPixelsRgba);\r\n\r\n let newImageData = new ImageData(\r\n newPixelsClamped,\r\n newcanvas.width,\r\n newcanvas.height\r\n );\r\n\r\n // Draw the new image data onto the canvas\r\n ctx.putImageData(newImageData, 0, 0);\r\n\r\n newcanvas.onclick = function () {\r\n // on click, we will restore the nv canvas\r\n newcanvas.parentNode.replaceChild(originalcanvas, newcanvas);\r\n };\r\n\r\n // replace nv canvas with new one\r\n originalcanvas.parentNode.replaceChild(newcanvas, originalcanvas);\r\n }\r\n\r\n set_mask(new_mask) {\r\n let image = this.get_image(true);\r\n\r\n let originalcanvas = this.get_canvas();\r\n\r\n let newcanvas = window.document.createElement('canvas');\r\n\r\n newcanvas.width = originalcanvas.width;\r\n newcanvas.height = originalcanvas.height;\r\n\r\n let ctx = newcanvas.getContext('2d');\r\n\r\n let imageclamped = new Uint8ClampedArray(image.data);\r\n\r\n let newImageData = new ImageData(\r\n imageclamped,\r\n newcanvas.width,\r\n newcanvas.height\r\n );\r\n\r\n // Draw the new image data onto the canvas\r\n ctx.putImageData(newImageData, 0, 0);\r\n\r\n image = ctx.getImageData(0, 0, newcanvas.width, newcanvas.height);\r\n\r\n let masked_image = Util.harden_mask(image.data, new_mask);\r\n\r\n let masked_image_as_imagedata = new ImageData(\r\n masked_image,\r\n newcanvas.width,\r\n newcanvas.height\r\n );\r\n\r\n ctx.putImageData(masked_image_as_imagedata, 0, 0);\r\n\r\n originalcanvas.parentNode.replaceChild(newcanvas, originalcanvas);\r\n }\r\n\r\n select_box(callback) {\r\n let scriptBoxCraft = document.createElement(\"script\");\r\n scriptBoxCraft.type = \"text/javascript\";\r\n scriptBoxCraft.src = \"https://boostlet.org/dist/boxcraft.min.js\";\r\n // scriptBoxCraft.src = \"https://shrutivarade.github.io/BoxCraft/dist/boxCraft.min.js\";\r\n // scriptBoxCraft.src = \"https://shrutivarade.github.io/boostlet/dist/boxcraft.min.js\";\r\n // scriptBoxCraft.src = \"http://localhost:8000/dist/boxcraft.min.js\";\r\n let canvas = this.get_canvas();\r\n document.head.appendChild(scriptBoxCraft);\r\n\r\n scriptBoxCraft.onload = function() {\r\n\r\n BoxCraft.createDraggableBBox(canvas, function (topleft, bottomright) {\r\n console.log(\"Inside Draggable BBox\", topleft, bottomright);\r\n callback(topleft, bottomright);\r\n });\r\n }\r\n\r\n }\r\n\r\n}\r\n","import {Framework} from '../framework.js';\n\nimport {Util} from '../util.js';\nimport {CanvasFallback} from './canvasFallback.js';\n\nexport class NiiVue extends Framework {\n \n constructor(instance) {\n\n super(instance);\n this.name = 'niivue';\n this.canvasFallback = new CanvasFallback();\n\n this.flip_on_png = true;\n\n this.onMouseDown = false;\n this.x1 = null;\n this.y1 = null;\n this.x2 = null;\n this.y2 = null;\n\n }\n\n get_image(from_canvas) {\n\n \n let pixels = null;\n let width = null;\n let height = null;\n\n if (!Util.is_defined(from_canvas)) {\n\n // use the canvas\n\n let element = this.instance.canvas;\n\n let old_crosshaircolor = this.instance.opts.crosshairColor;\n let old_crosshairwidth = this.instance.opts.crosshairWidth;\n\n this.instance.setCrosshairColor([0,0,0,0]);\n this.instance.opts.crosshairWidth=0;\n this.instance.updateGLVolume();\n\n\n let ctx = this.instance.gl;\n\n \n width = ctx.drawingBufferWidth;\n height = ctx.drawingBufferHeight;\n\n pixels = new Uint8Array(width * height * 4);\n ctx.readPixels(\n 0, \n 0, \n width, \n height, \n ctx.RGBA, \n ctx.UNSIGNED_BYTE, \n pixels);\n\n // restore crosshairs\n this.instance.setCrosshairColor(old_crosshaircolor);\n this.instance.opts.crosshairWidth = old_crosshairwidth;\n\n\n // convert rgba pixels to grayscale\n pixels = Util.rgba_to_grayscale(pixels);\n\n\n } else {\n\n // grab the real pixels of the current slice and return it\n // set width and height accordingly\n\n let v = this.instance.volumes[0];\n let currentSlice = this.instance.opts.sliceType;\n let currentCrossHairPos = this.instance.scene.crosshairPos;\n \n \n // Default to full volume\n let start = [0, 0, 0];\n let end = [v.dims[1], v.dims[2], v.dims[3]];\n\n if(currentSlice == 0){\n // axial — slice along Z\n let z_index = Math.floor(currentCrossHairPos[2] * v.dims[3]);\n width = v.dims[1];\n height = v.dims[2];\n start = [0, 0, z_index];\n end = [v.dims[1], v.dims[2], z_index + 1];\n }\n else if(currentSlice == 1){\n // coronal — slice along Y\n let y_index = Math.floor(currentCrossHairPos[1] * v.dims[2]);\n width = v.dims[1];\n height = v.dims[3];\n start = [0, y_index, 0];\n end = [v.dims[1], y_index + 1 , v.dims[3]];\n }\n else if(currentSlice == 2){\n // sagittal — slice along X\n let x_index = Math.floor(currentCrossHairPos[0] * v.dims[1]);\n width = v.dims[2];\n height = v.dims[3];\n start = [x_index, 0, 0];\n end = [x_index + 1, v.dims[2], v.dims[3]];\n }\n else {\n // multiplanar (sliceType 3) — no single slice to extract,\n // return the full volume\n width = v.dims[1];\n height = v.dims[2];\n }\n\n pixels = v.getVolumeData(start, end)[0];\n\n }\n\n return {'data':pixels, 'width':width, 'height':height};\n\n }\n\n\n\n get_subvolume(start, end) {\n const [data, dims] = this.instance.volumes[0].getVolumeData(start, end);\n return { data, dims };\n }\n\n get_dims(){\n const v = this.instance.volumes[0];\n const currentSlice = this.instance.opts.sliceType;\n\n if(currentSlice == 0) return [v.dims[1], v.dims[2], 1]; //axial\n if(currentSlice == 1 ) return [v.dims[1], v.dims[3], 1 ]; // coronal\n if(currentSlice == 2) return [v.dims[2], v.dims[3], 1 ]; // saggital\n return [v.dims[1], v.dims[2], 1]; // multiplanar fallback\n } \n\n /**\n * Sets the NiiVue.js image.\n * \n * If is_rgba==true, we do *not* convert to RGBA before setting on canvas.\n **/\n set_image(new_pixels, is_rgba, no_flip) {\n\n // TODO this is hacky since we dont work with the real volume yet\n // create new canvas\n // put pixels on canvas\n // show canvas\n // hide on click\n\n let originalcanvas = this.instance.canvas;\n\n let newcanvas = window.document.createElement('canvas');\n newcanvas.width = originalcanvas.width;\n newcanvas.height = originalcanvas.height;\n\n // put new_pixels down\n let ctx = newcanvas.getContext('2d');\n\n let new_pixels_rgba = null;\n\n if (Util.is_defined(is_rgba)) {\n\n new_pixels_rgba = new_pixels;\n\n } else {\n\n new_pixels_rgba = Util.grayscale_to_rgba(new_pixels);\n\n\n }\n\n let new_pixels_clamped = new Uint8ClampedArray(new_pixels_rgba);\n\n let new_image_data = new ImageData(new_pixels_clamped, newcanvas.width, newcanvas.height);\n \n\n ctx.putImageData(new_image_data, 0, 0);\n\n if (!Util.is_defined(no_flip)) {\n // some flipping action\n ctx.save();\n ctx.scale(1, -1);\n ctx.drawImage(newcanvas, 0, -newcanvas.height);\n ctx.restore();\n }\n\n\n newcanvas.onclick = function() {\n\n // on click, we will restore the nv canvas\n newcanvas.parentNode.replaceChild(originalcanvas, newcanvas);\n\n }\n\n // replace nv canvas with new one\n // originalcanvas.parentNode.replaceChild(newcanvas, originalcanvas);\n newcanvas.style.width = originalcanvas.clientWidth+'px';\n newcanvas.style.height = originalcanvas.clientHeight+'px';\n originalcanvas.parentNode.replaceChild(newcanvas, originalcanvas);\n\n }\n\n set_mask(new_mask) {\n\n // merge image + mask\n // and then call set_image with that information\n\n let image = this.get_image(true);\n\n // TODO here we need to flip one more time, this is until\n // we use the official niivue infrastructure for adding\n // a segmentation layer\n let originalcanvas = this.instance.canvas;\n\n let newcanvas = window.document.createElement('canvas');\n newcanvas.width = originalcanvas.width;\n newcanvas.height = originalcanvas.height;\n // put new_pixels down\n let ctx = newcanvas.getContext('2d');\n let imageclamped = new Uint8ClampedArray(image.data);\n let imagedata = new ImageData(imageclamped, image.width, image.height);\n ctx.putImageData(imagedata, 0, 0);\n ctx.save();\n ctx.scale(1, -1);\n ctx.drawImage(newcanvas, 0, -newcanvas.height);\n ctx.restore();\n image = ctx.getImageData(0, 0, newcanvas.width, newcanvas.height);\n // end of flip\n\n let masked_image = Util.harden_mask(image.data, new_mask);\n\n this.set_image(masked_image, true, true); // rgba data, no flip\n\n\n }\n\n select_box(callback) {\n return this.canvasFallback.select_box(callback);\n\n }\n\n}\n","import {Framework} from '../framework.js';\r\n\r\nimport {Util} from '../util.js';\r\n\r\nimport {CanvasFallback} from './canvasFallback.js';\r\n\r\nexport class OpenSeaDragon extends Framework {\r\n constructor(instance) {\r\n super(instance);\r\n this.name = 'opensedragon';\r\n this.canvasFallback = new CanvasFallback();\r\n\r\n }\r\n\r\n get_image(from_canvas) {\r\n return this.canvasFallback.get_image(from_canvas);\r\n }\r\n\r\n set_image(new_pixels) {\r\n return this.canvasFallback.set_image(new_pixels);\r\n }\r\n\r\n set_mask(new_mask) {\r\n // return this.canvasFallback.set_mask(new_mask);\r\n\r\n let viewer = null;\r\n let vs = this.instance._viewers;\r\n vs.forEach(function (e) {\r\n if (e.id == \"viewer\") {\r\n viewer = e;\r\n }\r\n });\r\n\r\n if (!viewer) {\r\n throw \"OpenSeaDragon viewer not found.\";\r\n }\r\n\r\n let canvas = viewer.canvas.children[0];\r\n width = canvas.width;\r\n height = canvas.height;\r\n\r\n let ctx = canvas.getContext(\"2d\");\r\n let imagedata = ctx.getImageData(0, 0, width, height);\r\n let pixels = imagedata.data;\r\n\r\n let masked_image = Util.harden_mask(pixels, new_mask);\r\n let masked_image_as_imagedata = new ImageData(masked_image, width, height);\r\n ctx.putImageData(masked_image_as_imagedata, 0, 0);\r\n }\r\n\r\n select_box(callback) {\r\n\r\n console.log(\"Using Boxcraft library to handle box selection.\");\r\n let viewer = null;\r\n let vs = this.instance._viewers;\r\n vs.forEach(function (e) {\r\n if (e.id == \"viewer\") {\r\n viewer = e;\r\n }\r\n });\r\n\r\n if (!viewer) {\r\n throw \"OpenSeaDragon viewer not found.\";\r\n }\r\n\r\n let canvas = viewer.canvas;\r\n\r\n BoxCraft.createDraggableBBox(canvas, function (topleft, bottomright) {\r\n callback(topleft, bottomright);\r\n });\r\n\r\n }\r\n\r\n \r\n\r\n}\r\n \r\n","import { Framework } from \"../framework.js\";\r\n\r\nimport { Util } from \"../util.js\";\r\n\r\nimport { CanvasFallback } from \"./canvasFallback.js\";\r\n\r\nexport class Xtk extends Framework {\r\n constructor(instance) {\r\n super(instance);\r\n this.name = \"xtk\";\r\n this.canvasFallback = new CanvasFallback();\r\n }\r\n\r\n get_image(from_canvas) {\r\n return this.canvasFallback.get_image(from_canvas);\r\n }\r\n\r\n set_image(new_pixels) {\r\n return this.canvasFallback.set_image(new_pixels);\r\n }\r\n\r\n set_mask(new_mask) {\r\n return this.canvasFallback.set_mask(new_mask);\r\n }\r\n\r\n select_box(callback) {\r\n return this.canvasFallback.select_box(callback);\r\n }\r\n}\r\n","import { Framework } from \"../framework.js\";\r\n\r\nimport { Util } from \"../util.js\";\r\n\r\nimport { CanvasFallback } from \"./canvasFallback.js\";\r\n\r\nexport class Papaya extends Framework {\r\n constructor(instance) {\r\n super(instance);\r\n this.name = \"papaya\";\r\n this.canvasFallback = new CanvasFallback();\r\n }\r\n\r\n get_image(from_canvas) {\r\n return this.canvasFallback.get_image(from_canvas);\r\n }\r\n\r\n set_image(new_pixels) {\r\n return this.canvasFallback.set_image(new_pixels);\r\n }\r\n\r\n set_mask(new_mask) {\r\n return this.canvasFallback.set_mask(new_mask);\r\n }\r\n\r\n select_box(callback) {\r\n return this.canvasFallback.select_box(callback);\r\n }\r\n}\r\n","\r\nimport {Boostlet} from \"./boostlet.js\"\r\n\r\nwindow.console.log('BOOSTLET VERSION 0.1-beta');\r\n\r\n// register global namespace with a new boostlet instance\r\n// later we might want to support multiple active boostlets\r\nwindow.Boostlet = new Boostlet();\r\n","import {Util} from './util.js';\nimport {Framework} from './framework.js';\nimport {loadStats} from './stats.js';\n\nexport class Boostlet {\n\n constructor() {\n this.framework = null;\n }\n\n /**\n * Initializes the Boostlet.\n * \n * This includes several steps such as identifying the \n * visualization/rendering framework that is available. \n * \n * TODO: Later we want to have fallbacks in place if the framework\n * is not detected.\n * \n */\n init(name, instance) {\n\n if (typeof name != 'undefined' && typeof instance != 'undefined') {\n\n console.log('Framework forced by user!');\n throw \"Forced Framework Not Implemented.\";\n // TODO\n\n } else {\n\n this.framework = Util.detect_framework();\n\n }\n\n if (this.framework) {\n\n console.log('Found', this.framework, '!')\n \n } else {\n\n throw \"Framework Not Found.\";\n\n }\n\n }\n\n /**\n * Let's the user select a region of interest box.\n */\n async select_box(callback) {\n\n this.framework.select_box(callback);\n\n }\n\n /**\n * Let's the user select (multiple) seeds.\n */\n async select_seed(howmany) {\n\n throw \"Missing Implementation.\";\n\n }\n\n /**\n * Loads an external javascript file asynchronously. \n */\n async load_script(url, callback) {\n\n Util.load_script(url, callback);\n\n }\n\n /**\n * Sends a HTTP POST request to a url with some data.\n */\n async send_http_post(url, data, callback) {\n\n Util.send_http_post(url, data, callback);\n\n }\n\n /**\n * Gets the current image (2D).\n * \n * TODO: Optional bounding box should be supported.\n * \n */\n get_image(from_canvas) {\n\n return this.framework.get_image(from_canvas);\n\n }\n\n /**\n * Sets the current image (2D).\n * \n */\n set_image(new_pixels) {\n\n return this.framework.set_image(new_pixels);\n\n }\n\n /**\n * Sets the current mask (2D).\n * \n */\n set_mask(new_mask) {\n\n return this.framework.set_mask(new_mask);\n\n }\n\n get_dims() {\n return this.framework.get_dims();\n }\n\n get_subvolume(start, end) {\n return this.framework.get_subvolume(start, end);\n }\n\n /**\n * Encode raw image data to PNG.\n */\n convert_to_png(uint8array, width, height) {\n\n return this.framework.convert_to_png(uint8array, width, height);\n\n }\n\n filter(pixels, width, height, kernel) {\n\n return Util.filter(pixels, width, height, kernel);\n\n }\n\n /**\n * Displays a small div located at the top left corner of the screen \n * with message and will disappear after the specified time (ms).\n */\n hint(message, duration) {\n\n return Util.hint(message, duration);\n\n }\n\n /**\n * \n * loads numpy-ts on first call.\n * \n * Usage:\n * const stats = await Boostlet.stats();\n * const result = stats.all(subvolumeData);\n * // gives you { mean, std, min, max, p25, p75 }\n */\n async stats() {\n\n return loadStats();\n\n }\n\n}\n","// stats.js — numpy-ts powered statistics for Boostlet\n// Lazy-loads numpy-ts once on first call, then reuses the instance.\n//\n// Usage from a boostlet:\n// const stats = await Boostlet.stats();\n// const result = stats.all(data, nv.volumes[0]);\n\nconst NUMPY_TS_URL = 'https://esm.run/numpy-ts';\n\nlet _np = null;\n\nasync function _load() {\n if (!_np) {\n _np = await import(NUMPY_TS_URL);\n }\n return _np;\n}\n\nexport async function loadStats() {\n const np = await _load();\n\n return {\n\n _wrap(data) {\n return np.array(Array.from(data), 'float32');\n },\n\n // apply nifti slope/intercept: display = raw * slope + inter\n _applyScaling(data, volume) {\n if (!volume) return this._wrap(data);\n const slope = volume.hdr.scl_slope || 1;\n const inter = volume.hdr.scl_inter || 0;\n const a = this._wrap(data);\n return a.multiply(slope).add(inter);\n },\n\n _scalar(val) {\n return typeof val === 'number' ? val : val.tolist ? val.tolist() : Number(val);\n },\n\n mean(data, volume) {\n return this._scalar(np.mean(this._applyScaling(data, volume)));\n },\n\n std(data, volume) {\n return this._scalar(np.std(this._applyScaling(data, volume)));\n },\n\n min(data, volume) {\n return this._scalar(np.min(this._applyScaling(data, volume)));\n },\n\n max(data, volume) {\n return this._scalar(np.max(this._applyScaling(data, volume)));\n },\n\n percentile(data, p, volume) {\n return this._scalar(np.percentile(this._applyScaling(data, volume), p));\n },\n\n // returns all stats in one pass\n // pass volume as second arg to apply slope/intercept\n all(data, volume) {\n const a = this._applyScaling(data, volume);\n return {\n mean : this._scalar(np.mean(a)),\n std : this._scalar(np.std(a)),\n min : this._scalar(np.min(a)),\n max : this._scalar(np.max(a)),\n p25 : this._scalar(np.percentile(a, 25)),\n p75 : this._scalar(np.percentile(a, 75)),\n };\n }\n\n };\n}\n"],"names":[],"version":3,"file":"boostlet.min.js.map"} \ No newline at end of file diff --git a/examples/PixelExplorer.js b/examples/PixelExplorer.js index f2ee9704..29f63415 100644 --- a/examples/PixelExplorer.js +++ b/examples/PixelExplorer.js @@ -1,9 +1,13 @@ CATEGORY = "Visualization" +if (typeof window._PixelExplorerLoaded === 'undefined') { +window._PixelExplorerLoaded = true; + +(function() { + const script = document.createElement("script"); script.type = "text/javascript"; script.src = "https://boostlet.org/dist/boostlet.min.js"; - script.onload = run; document.head.appendChild(script); @@ -19,11 +23,21 @@ function run() { const nv = Boostlet.framework.instance; - if (!nv.volumes.length) { - alert('No volume loaded yet!'); + // if volume isn't loaded yet, retry until it is + if (!nv.volumes || !nv.volumes.length) { + const wait = setInterval(function() { + if (nv.volumes && nv.volumes.length > 0) { + clearInterval(wait); + setup(nv); + } + }, 300); return; } + setup(nv); +} + +function setup(nv) { // Create the panel once plot(); @@ -35,18 +49,18 @@ function run() { // call the original if it existed if (existingOnLocationChange) existingOnLocationChange(loc); - if (!nv.volumes.length) return; + if (!nv.volumes || !nv.volumes.length) return; - const v = [Math.round(loc.vox[0]), Math.round(loc.vox[1]), Math.round(loc.vox[2])]; // Cursor position in voxel coordinates. + const v = [Math.round(loc.vox[0]), Math.round(loc.vox[1]), Math.round(loc.vox[2])]; const start = [v[0] - HALF, v[1] - HALF, v[2] - HALF]; const end = [v[0] + HALF, v[1] + HALF, v[2] + HALF]; // collapses the slice plane axis to a single voxel - // axial(0) Z=2, coronal(1) Y=1, sagittal(2) X=0 so that you don't get a 3D chunk of data + // axial(0) Z=2, coronal(1) Y=1, sagittal(2) X=0 const fixedAxis = nv.opts.sliceType === nv.sliceTypeSagittal ? 0 : nv.opts.sliceType === nv.sliceTypeCoronal ? 1 : 2; - start[fixedAxis] = end[fixedAxis] = Math.round((start[fixedAxis] + end[fixedAxis]) / 2); // Flattens axis, finds midpoint + start[fixedAxis] = end[fixedAxis] = Math.round((start[fixedAxis] + end[fixedAxis]) / 2); const { data, dims } = Boostlet.get_subvolume(start, end); if (data && dims) { @@ -60,7 +74,7 @@ function run() { function drawMatrix(data, dims, mc) { const nv = Boostlet.framework.instance; const { cal_min, cal_max } = nv.volumes[0]; - const range = cal_max - cal_min || 1; // range between display values. + const range = cal_max - cal_min || 1; const ctx = mc.getContext('2d'); // apply nifti slope/intercept to convert raw values to display values. @@ -70,14 +84,13 @@ function drawMatrix(data, dims, mc) { const inter = nv.volumes[0].hdr.scl_inter || 0; // getVolumeData returns dims as X Y Z and the collapsed axis has size 1 - // the first non 1 dim is cols second is rows + // the first non-1 dim is cols, second is rows const [cols, rows] = dims.filter(d => d > 1); if (!cols || !rows) return; - const cell = Math.floor(Math.min(mc.width / cols, mc.height / rows)); // picks between max cell width and max cell height. picks the smallest + const cell = Math.floor(Math.min(mc.width / cols, mc.height / rows)); if (cell < 1) return; - // Figures out whether to show a label or not. needs to be changed IMO const showLabels = cell >= 8; if (showLabels) { ctx.font = `${Math.max(Math.floor(cell * 0.28), 6)}px monospace`; @@ -87,13 +100,11 @@ function drawMatrix(data, dims, mc) { ctx.clearRect(0, 0, mc.width, mc.height); - // Loops through every voxel in the region, draws a grey square for each one based on how bright it is. If the cells are - // big enough, it prints out raw number on top. for (let r = 0; r < rows; r++) { for (let c = 0; c < cols; c++) { const raw = data[c + (rows - 1 - r) * cols]; - const val = raw * slope + inter; // convert raw to display value - const norm = (val - cal_min) / range; // Gives a range from 0 - 1, gets normalized to 0-255 in the line below + const val = raw * slope + inter; + const norm = (val - cal_min) / range; const g = Math.round(norm * 255); ctx.fillStyle = `rgb(${g},${g},${g})`; @@ -108,7 +119,7 @@ function drawMatrix(data, dims, mc) { } function plot() { - // Remove existing panel if re ran + // Remove existing panel if re-run const existing = document.getElementById('PixelExplorerDiv'); if (existing) existing.remove(); @@ -143,4 +154,7 @@ function plot() { document.addEventListener('mousemove', onMove); document.addEventListener('mouseup', onUp); }); -} \ No newline at end of file +} + +})(); +} diff --git a/examples/roiStats.js b/examples/roiStats.js new file mode 100644 index 00000000..fb2fcfb1 --- /dev/null +++ b/examples/roiStats.js @@ -0,0 +1,120 @@ +(function() { + +const CATEGORY = "Statistics"; + +const script = document.createElement("script"); +script.type = "text/javascript"; +script.src = "http://localhost:5501/dist/boostlet.min.js"; +script.onload = run; +document.head.appendChild(script); + +const HALF = 4; + +async function run() { + Boostlet.init(); + + if (Boostlet.framework.name !== 'niivue') { + alert('Only niivue is supported right now :('); + return; + } + + const nv = Boostlet.framework.instance; + + if (!nv.volumes || !nv.volumes.length) { + const wait = setInterval(function() { + if (nv.volumes && nv.volumes.length > 0) { + clearInterval(wait); + setup(nv); + } + }, 300); + return; + } + + setup(nv); +} + +async function setup(nv) { + plot(); + + const stats = await Boostlet.stats(); + + const existingOnLocationChange = nv.onLocationChange; + + nv.onLocationChange = async function(loc) { + if (existingOnLocationChange) existingOnLocationChange(loc); + if (!nv.volumes || !nv.volumes.length) return; + + const v = [Math.round(loc.vox[0]), Math.round(loc.vox[1]), Math.round(loc.vox[2])]; + + const start = [v[0] - HALF, v[1] - HALF, v[2] - HALF]; + const end = [v[0] + HALF, v[1] + HALF, v[2] + HALF]; + + const fixedAxis = nv.opts.sliceType === nv.sliceTypeSagittal ? 0 + : nv.opts.sliceType === nv.sliceTypeCoronal ? 1 : 2; + start[fixedAxis] = end[fixedAxis] = Math.round((start[fixedAxis] + end[fixedAxis]) / 2); + + const { data } = Boostlet.get_subvolume(start, end); + if (!data || data.length === 0) return; + + const result = stats.all(data, nv.volumes[0]); + updatePanel(result); + }; +} + +function updatePanel(s) { + document.getElementById('roi-mean').textContent = s.mean.toFixed(2); + document.getElementById('roi-std').textContent = s.std.toFixed(2); + document.getElementById('roi-min').textContent = s.min.toFixed(2); + document.getElementById('roi-max').textContent = s.max.toFixed(2); + document.getElementById('roi-p25').textContent = s.p25.toFixed(2); + document.getElementById('roi-p75').textContent = s.p75.toFixed(2); +} + +function plot() { + const existing = document.getElementById('RoiStatsDiv'); + if (existing) existing.remove(); + + const div = document.createElement('div'); + div.id = 'RoiStatsDiv'; + div.style.cssText = ` + position: fixed; top: 10px; right: 10px; z-index: 1000; + background: rgba(0,0,0,0.85); color: #fff; + font-family: monospace; font-size: 13px; + padding: 12px 16px; border-radius: 6px; + border: 1px solid #444; min-width: 160px; + cursor: move; line-height: 2; + `; + + div.innerHTML = ` +
ROI Stats (${HALF*2+1}×${HALF*2+1})
+
mean
+
std
+
min
+
max
+
p25
+
p75
+ `; + + document.body.appendChild(div); + + let startX, startY, startRight, startTop; + div.addEventListener('mousedown', function(e) { + startX = e.clientX; + startY = e.clientY; + startRight = div.offsetLeft; + startTop = div.offsetTop; + function onMove(e) { + div.style.left = (startRight + e.clientX - startX) + 'px'; + div.style.top = (startTop + e.clientY - startY) + 'px'; + div.style.right = 'auto'; + } + function onUp() { + document.removeEventListener('mousemove', onMove); + document.removeEventListener('mouseup', onUp); + } + document.addEventListener('mousemove', onMove); + document.addEventListener('mouseup', onUp); + }); +} + +})(); diff --git a/examples/subvolume_matrix.html b/examples/subvolume_matrix.html new file mode 100644 index 00000000..eb167376 --- /dev/null +++ b/examples/subvolume_matrix.html @@ -0,0 +1,245 @@ + + + + + + Boostlet — Subvolume Matrix + + + + + + + + +
+ + +
+ +
+ + + + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 39151d91..d8712661 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3152,102 +3152,6 @@ "node": ">= 8" } }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-select/node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/css-select/node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/css-select/node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/css-select/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, "node_modules/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", @@ -3260,45 +3164,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/data-uri-to-buffer": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.1.tgz", @@ -4845,14 +4710,6 @@ "node": ">=0.10.0" } }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -6401,17 +6258,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -6589,33 +6435,6 @@ "node": ">=8" } }, - "node_modules/svgo": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", - "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, "node_modules/tar-fs": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", diff --git a/src/boostlet.js b/src/boostlet.js index 6d33f4a5..c1ed8a36 100644 --- a/src/boostlet.js +++ b/src/boostlet.js @@ -1,6 +1,6 @@ import {Util} from './util.js'; - import {Framework} from './framework.js'; +import {loadStats} from './stats.js'; export class Boostlet { @@ -113,7 +113,7 @@ export class Boostlet { } get_dims() { - return this.framework.get_dims(); + return this.framework.get_dims(); } get_subvolume(start, end) { @@ -136,8 +136,8 @@ export class Boostlet { } /** - * Displays a small div located at the top left corner of the screen with message and will disappear after the specified time (ms). - * + * Displays a small div located at the top left corner of the screen + * with message and will disappear after the specified time (ms). */ hint(message, duration) { @@ -145,4 +145,19 @@ export class Boostlet { } + /** + * + * loads numpy-ts on first call. + * + * Usage: + * const stats = await Boostlet.stats(); + * const result = stats.all(subvolumeData); + * // gives you { mean, std, min, max, p25, p75 } + */ + async stats() { + + return loadStats(); + + } + } diff --git a/src/stats.js b/src/stats.js new file mode 100644 index 00000000..d89af379 --- /dev/null +++ b/src/stats.js @@ -0,0 +1,76 @@ +// stats.js — numpy-ts powered statistics for Boostlet +// Lazy-loads numpy-ts once on first call, then reuses the instance. +// +// Usage from a boostlet: +// const stats = await Boostlet.stats(); +// const result = stats.all(data, nv.volumes[0]); + +const NUMPY_TS_URL = 'https://esm.run/numpy-ts'; + +let _np = null; + +async function _load() { + if (!_np) { + _np = await import(NUMPY_TS_URL); + } + return _np; +} + +export async function loadStats() { + const np = await _load(); + + return { + + _wrap(data) { + return np.array(Array.from(data), 'float32'); + }, + + // apply nifti slope/intercept: display = raw * slope + inter + _applyScaling(data, volume) { + if (!volume) return this._wrap(data); + const slope = volume.hdr.scl_slope || 1; + const inter = volume.hdr.scl_inter || 0; + const a = this._wrap(data); + return a.multiply(slope).add(inter); + }, + + _scalar(val) { + return typeof val === 'number' ? val : val.tolist ? val.tolist() : Number(val); + }, + + mean(data, volume) { + return this._scalar(np.mean(this._applyScaling(data, volume))); + }, + + std(data, volume) { + return this._scalar(np.std(this._applyScaling(data, volume))); + }, + + min(data, volume) { + return this._scalar(np.min(this._applyScaling(data, volume))); + }, + + max(data, volume) { + return this._scalar(np.max(this._applyScaling(data, volume))); + }, + + percentile(data, p, volume) { + return this._scalar(np.percentile(this._applyScaling(data, volume), p)); + }, + + // returns all stats in one pass + // pass volume as second arg to apply slope/intercept + all(data, volume) { + const a = this._applyScaling(data, volume); + return { + mean : this._scalar(np.mean(a)), + std : this._scalar(np.std(a)), + min : this._scalar(np.min(a)), + max : this._scalar(np.max(a)), + p25 : this._scalar(np.percentile(a, 25)), + p75 : this._scalar(np.percentile(a, 75)), + }; + } + + }; +} diff --git a/src/util.js b/src/util.js index 4ca5add5..5bfdf97f 100644 --- a/src/util.js +++ b/src/util.js @@ -12,11 +12,12 @@ export class Util { let framework = null; - if (Util.is_defined(window.nv)) { + // check window.nv is a NiiVue instance, not just the module + if (Util.is_defined(window.nv) && window.nv.volumes !== undefined) { framework = new NiiVue(window.nv); - } else if (Util.is_defined(window.niivue)) { + } else if (Util.is_defined(window.niivue) && window.niivue.volumes !== undefined) { framework = new NiiVue(window.niivue); @@ -126,12 +127,6 @@ export class Util { let base64 = offscreen.toDataURL('image/png'); - // for debugging, download image - // const link = window.document.createElement("a"); - // link.href = base64; - // link.download = 'test.png'; - // link.click(); - base64 = base64.replace("data:image/png;base64,",""); let pngpixels = Uint8Array.from(atob(base64), (c) => c.charCodeAt(0)); @@ -282,4 +277,4 @@ export class Util { } -} \ No newline at end of file +} diff --git a/tests/niivue/pixelexplorer.html b/tests/niivue/pixelexplorer.html new file mode 100644 index 00000000..24f49b87 --- /dev/null +++ b/tests/niivue/pixelexplorer.html @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + CACTAS + + + + + + + + + +
+ Tolerance: 30
+ + +
+ + Window/Level:
+
+ +
+ + + + + + + + diff --git a/tests/scripts/config.json b/tests/scripts/config.json index e35e81f6..bcb558b7 100644 --- a/tests/scripts/config.json +++ b/tests/scripts/config.json @@ -22,7 +22,8 @@ "sobel": "http://127.0.0.1:5501/tests/niivue/sobel.html", "plotly" : "http://127.0.0.1:5501/tests/niivue/plotly.html", "segmentanything" : "http://127.0.0.1:5501/tests/niivue/segmentanything.html", - "subvolume" : "http://127.0.0.1:5501/tests/niivue/subvolume.html" + "subvolume" : "http://127.0.0.1:5501/tests/niivue/subvolume.html", + "pixelexplorer" : "http://127.0.0.1:5501/tests/niivue/pixelexplorer.html" }, "OpenSeaDragon": { "sobel" : "http://127.0.0.1:5501/tests/openseadragon/sobel.html", diff --git a/tests/scripts/images/GroundTruth_Niivue_pixelexplorer.png b/tests/scripts/images/GroundTruth_Niivue_pixelexplorer.png new file mode 100644 index 0000000000000000000000000000000000000000..55f896574720abd78489468aa2044cc952a58faa GIT binary patch literal 198212 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 z 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 z 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 Nr>dIJ5@m}I{~wAc^i}`> literal 0 HcmV?d00001 From 9cac0867aa8862b5095ab3c704e3f7d79be8d646 Mon Sep 17 00:00:00 2001 From: bronsdonayden Date: Sun, 28 Jun 2026 10:51:04 -0400 Subject: [PATCH 2/4] add stats.js, roiStats.js boostlet, fix NiiVue detection in util.js --- examples/PixelExplorer.js | 42 ++++++++++++++++++--------------------- examples/roiStats.js | 36 +++++++++++++++++++-------------- src/stats.js | 3 +++ 3 files changed, 43 insertions(+), 38 deletions(-) diff --git a/examples/PixelExplorer.js b/examples/PixelExplorer.js index 29f63415..d099c134 100644 --- a/examples/PixelExplorer.js +++ b/examples/PixelExplorer.js @@ -8,7 +8,16 @@ window._PixelExplorerLoaded = true; const script = document.createElement("script"); script.type = "text/javascript"; script.src = "https://boostlet.org/dist/boostlet.min.js"; -script.onload = run; +script.onload = function() { + // wait for nv and volumes before calling init + // calling init too early means niivue won't be detected yet + var poll = setInterval(function() { + if (window.nv && nv.volumes && nv.volumes.length > 0) { + clearInterval(poll); + run(); + } + }, 300); +}; document.head.appendChild(script); const HALF = 4; @@ -22,31 +31,18 @@ function run() { } const nv = Boostlet.framework.instance; - - // if volume isn't loaded yet, retry until it is - if (!nv.volumes || !nv.volumes.length) { - const wait = setInterval(function() { - if (nv.volumes && nv.volumes.length > 0) { - clearInterval(wait); - setup(nv); - } - }, 300); - return; - } - setup(nv); } function setup(nv) { - // Create the panel once + // create the panel once plot(); - // Save the existing onLocationChange so we don't clobber it + // save the existing onLocationChange so we don't clobber it const existingOnLocationChange = nv.onLocationChange; - // Hook into location change — fires on every crosshair move / slice change + // hook into location change — fires on every crosshair move / slice change nv.onLocationChange = function(loc) { - // call the original if it existed if (existingOnLocationChange) existingOnLocationChange(loc); if (!nv.volumes || !nv.volumes.length) return; @@ -56,10 +52,10 @@ function setup(nv) { const start = [v[0] - HALF, v[1] - HALF, v[2] - HALF]; const end = [v[0] + HALF, v[1] + HALF, v[2] + HALF]; - // collapses the slice plane axis to a single voxel - // axial(0) Z=2, coronal(1) Y=1, sagittal(2) X=0 - const fixedAxis = nv.opts.sliceType === nv.sliceTypeSagittal ? 0 - : nv.opts.sliceType === nv.sliceTypeCoronal ? 1 : 2; + // collapse the axis perpendicular to the current slice to a single voxel + // 2 = sagittal (x axis), 1 = coronal (y axis), default axial (z axis) + const fixedAxis = nv.opts.sliceType === 2 ? 0 + : nv.opts.sliceType === 1 ? 1 : 2; start[fixedAxis] = end[fixedAxis] = Math.round((start[fixedAxis] + end[fixedAxis]) / 2); const { data, dims } = Boostlet.get_subvolume(start, end); @@ -119,7 +115,7 @@ function drawMatrix(data, dims, mc) { } function plot() { - // Remove existing panel if re-run + // remove existing panel if re-run const existing = document.getElementById('PixelExplorerDiv'); if (existing) existing.remove(); @@ -135,7 +131,7 @@ function plot() { mc.style.cssText = 'display:block; width:400px; height:400px;'; container.appendChild(mc); - // Drag logic + // drag logic let startX, startY, startLeft, startTop; container.addEventListener('mousedown', function(e) { startX = e.clientX; diff --git a/examples/roiStats.js b/examples/roiStats.js index fb2fcfb1..c90eadf1 100644 --- a/examples/roiStats.js +++ b/examples/roiStats.js @@ -2,12 +2,22 @@ const CATEGORY = "Statistics"; +// inject boostlet, but wait for nv and volumes before calling init +// calling init too early means niivue won't be detected yet const script = document.createElement("script"); script.type = "text/javascript"; -script.src = "http://localhost:5501/dist/boostlet.min.js"; -script.onload = run; +script.src = "https://boostlet.org/dist/boostlet.min.js"; +script.onload = function() { + var poll = setInterval(function() { + if (window.nv && nv.volumes && nv.volumes.length > 0) { + clearInterval(poll); + run(); + } + }, 300); +}; document.head.appendChild(script); +// half-width of the roi in voxels, so the full neighborhood is (2*HALF+1)^2 const HALF = 4; async function run() { @@ -19,25 +29,16 @@ async function run() { } const nv = Boostlet.framework.instance; - - if (!nv.volumes || !nv.volumes.length) { - const wait = setInterval(function() { - if (nv.volumes && nv.volumes.length > 0) { - clearInterval(wait); - setup(nv); - } - }, 300); - return; - } - setup(nv); } async function setup(nv) { plot(); + // load numpy-ts via stats wrapper const stats = await Boostlet.stats(); + // save whatever handler was already on nv so we can chain it const existingOnLocationChange = nv.onLocationChange; nv.onLocationChange = async function(loc) { @@ -49,8 +50,10 @@ async function setup(nv) { const start = [v[0] - HALF, v[1] - HALF, v[2] - HALF]; const end = [v[0] + HALF, v[1] + HALF, v[2] + HALF]; - const fixedAxis = nv.opts.sliceType === nv.sliceTypeSagittal ? 0 - : nv.opts.sliceType === nv.sliceTypeCoronal ? 1 : 2; + // collapse the axis perpendicular to the current slice to a single voxel + // 2 = sagittal (x axis), 1 = coronal (y axis), default axial (z axis) + const fixedAxis = nv.opts.sliceType === 2 ? 0 + : nv.opts.sliceType === 1 ? 1 : 2; start[fixedAxis] = end[fixedAxis] = Math.round((start[fixedAxis] + end[fixedAxis]) / 2); const { data } = Boostlet.get_subvolume(start, end); @@ -61,6 +64,7 @@ async function setup(nv) { }; } +// write computed stats into the panel dom elements function updatePanel(s) { document.getElementById('roi-mean').textContent = s.mean.toFixed(2); document.getElementById('roi-std').textContent = s.std.toFixed(2); @@ -70,6 +74,7 @@ function updatePanel(s) { document.getElementById('roi-p75').textContent = s.p75.toFixed(2); } +// create and inject the stats panel, remove any existing one first function plot() { const existing = document.getElementById('RoiStatsDiv'); if (existing) existing.remove(); @@ -97,6 +102,7 @@ function plot() { document.body.appendChild(div); + // drag logic let startX, startY, startRight, startTop; div.addEventListener('mousedown', function(e) { startX = e.clientX; diff --git a/src/stats.js b/src/stats.js index d89af379..a8f61e91 100644 --- a/src/stats.js +++ b/src/stats.js @@ -9,6 +9,7 @@ const NUMPY_TS_URL = 'https://esm.run/numpy-ts'; let _np = null; +// only load numpy-ts once, cache it in _np async function _load() { if (!_np) { _np = await import(NUMPY_TS_URL); @@ -21,6 +22,7 @@ export async function loadStats() { return { + // convert typed array to a numpy-ts array so we can run ops on it _wrap(data) { return np.array(Array.from(data), 'float32'); }, @@ -34,6 +36,7 @@ export async function loadStats() { return a.multiply(slope).add(inter); }, + // numpy-ts returns array objects not plain numbers, unwrap to a scalar _scalar(val) { return typeof val === 'number' ? val : val.tolist ? val.tolist() : Number(val); }, From d9169e77985f2f3198cb315f5463cb04c6f056f5 Mon Sep 17 00:00:00 2001 From: bronsdonayden Date: Sun, 28 Jun 2026 10:51:10 -0400 Subject: [PATCH 3/4] add tests for pixelexplorer and roistats, update index.html --- dist/boostlet.min.js | 3 ++ index.html | 29 ++++---------- tests/niivue/pixelexplorer.html | 30 +++++--------- tests/niivue/roistats.html | 71 +++++++++++++++++++++++++++++++++ tests/scripts/config.json | 3 +- 5 files changed, 95 insertions(+), 41 deletions(-) create mode 100644 tests/niivue/roistats.html diff --git a/dist/boostlet.min.js b/dist/boostlet.min.js index 6c3301f7..00ba46f1 100644 --- a/dist/boostlet.min.js +++ b/dist/boostlet.min.js @@ -787,6 +787,7 @@ parcelRequire("bsgU1"); // const result = stats.all(data, nv.volumes[0]); const $edf78858489332f9$var$NUMPY_TS_URL = "https://esm.run/numpy-ts"; let $edf78858489332f9$var$_np = null; +// only load numpy-ts once, cache it in _np async function $edf78858489332f9$var$_load() { if (!$edf78858489332f9$var$_np) $edf78858489332f9$var$_np = await import($edf78858489332f9$var$NUMPY_TS_URL); return $edf78858489332f9$var$_np; @@ -794,6 +795,7 @@ async function $edf78858489332f9$var$_load() { async function $edf78858489332f9$export$6d8fb4b23c50da2f() { const np = await $edf78858489332f9$var$_load(); return { + // convert typed array to a numpy-ts array so we can run ops on it _wrap (data) { return np.array(Array.from(data), "float32"); }, @@ -805,6 +807,7 @@ async function $edf78858489332f9$export$6d8fb4b23c50da2f() { const a = this._wrap(data); return a.multiply(slope).add(inter); }, + // numpy-ts returns array objects not plain numbers, unwrap to a scalar _scalar (val) { return typeof val === "number" ? val : val.tolist ? val.tolist() : Number(val); }, diff --git a/index.html b/index.html index 9b0d88f3..176490d1 100644 --- a/index.html +++ b/index.html @@ -229,19 +229,9 @@ window.onload = function() { - - - // return; - - - var examples = ['sobel.js', 'segmentanything.js', 'imageCaptioning.js', 'meshAR.js', 'fibersAR.js', 'plotly.js', 'trako.js', 'melanoma.js', 'webllm.js', 'brainchop.js', 'CatVSDog.js', 'PixelExplorer.js']; + var examples = ['sobel.js', 'segmentanything.js', 'imageCaptioning.js', 'meshAR.js', 'fibersAR.js', 'plotly.js', 'trako.js', 'melanoma.js', 'webllm.js', 'brainchop.js', 'CatVSDog.js', 'PixelExplorer.js', 'roiStats.js']; var baseurl = 'https://raw.githubusercontent.com/mpsych/boostlet/main/examples/'; - // var baseurl = 'https://raw.githubusercontent.com/gaiborjosue/boostlet/webllm/examples/'; - // var baseurl = 'http://localhost:5500/examples/'; - // var baseurl = 'http://localhost:8000/examples/'; - // var baseurl = 'https://raw.githubusercontent.com/shrutivarade/boostlet/main/examples/'; - for (e in examples) { @@ -251,8 +241,6 @@ } - // var codeurl = 'http://localhost:5500/examples/'; - // var codeurl = 'https://github.com/shrutivarade/boostlet/blob/main/examples/'; var codeurl = 'https://github.com/mpsych/boostlet/blob/main/examples/'; for (e in examples) { @@ -319,26 +307,25 @@

- - + +
diff --git a/tests/niivue/pixelexplorer.html b/tests/niivue/pixelexplorer.html index 24f49b87..9d4dbf4a 100644 --- a/tests/niivue/pixelexplorer.html +++ b/tests/niivue/pixelexplorer.html @@ -47,27 +47,19 @@ + + + + + + + + + + + + + + + + CACTAS + + + + + + + +
+ Tolerance: 30
+ + +
+ + Window/Level:
+
+ +
+ + + + + + + + diff --git a/tests/scripts/config.json b/tests/scripts/config.json index bcb558b7..cfe19eb6 100644 --- a/tests/scripts/config.json +++ b/tests/scripts/config.json @@ -23,7 +23,8 @@ "plotly" : "http://127.0.0.1:5501/tests/niivue/plotly.html", "segmentanything" : "http://127.0.0.1:5501/tests/niivue/segmentanything.html", "subvolume" : "http://127.0.0.1:5501/tests/niivue/subvolume.html", - "pixelexplorer" : "http://127.0.0.1:5501/tests/niivue/pixelexplorer.html" + "pixelexplorer" : "http://127.0.0.1:5501/tests/niivue/pixelexplorer.html", + "roistats" : "http://127.0.0.1:5501/tests/niivue/roistats.html" }, "OpenSeaDragon": { "sobel" : "http://127.0.0.1:5501/tests/openseadragon/sobel.html", From bc068a5faeef56168a5a90c18fdcf8ae3ab79154 Mon Sep 17 00:00:00 2001 From: bronsdonayden Date: Sun, 28 Jun 2026 10:56:02 -0400 Subject: [PATCH 4/4] add ground truth for roistats test --- .../images/GroundTruth_Niivue_roistats.png | Bin 0 -> 196734 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/scripts/images/GroundTruth_Niivue_roistats.png diff --git a/tests/scripts/images/GroundTruth_Niivue_roistats.png b/tests/scripts/images/GroundTruth_Niivue_roistats.png new file mode 100644 index 0000000000000000000000000000000000000000..b1a7cf6cbba06134a0714ac0c59d2b81b52b77f1 GIT binary patch literal 196734 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

&w;9sj{%ExVfg_KQ{&YpEw?@9eDY_ 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

M&_Kx%;c(74x>ER!(5I^9Og6h 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 Dz`T_p literal 0 HcmV?d00001