From 4f2d406b52355a8160c171eb552f1be70af6db98 Mon Sep 17 00:00:00 2001 From: Bill Wallace Date: Tue, 24 Feb 2026 17:50:32 -0500 Subject: [PATCH 1/2] Update to use newer cs3d --- bun.lockb | Bin 215855 -> 297303 bytes package.json | 26 ++++++++++++++-------- src/App.tsx | 13 ++++++----- src/lib/createImageIdsAndCacheMetaData.ts | 1 - src/main.tsx | 9 ++++++++ src/vite-env.d.ts | 4 ++++ vite.config.ts | 7 ++++++ 7 files changed, 44 insertions(+), 16 deletions(-) diff --git a/bun.lockb b/bun.lockb index a189bc4eba6e2abd3548a8d413cde649832521f2..286029b09d9ab1a4e45505ca7b8a9a34147ddef5 100755 GIT binary patch delta 95156 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 delta 47339 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 diff --git a/package.json b/package.json index e9d6cbc..16c18de 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,9 @@ "private": true, "version": "0.0.0", "type": "module", + "engines": { + "node": ">=20" + }, "scripts": { "dev": "vite", "build": "tsc && vite build", @@ -15,20 +18,20 @@ "@cornerstonejs/dicom-image-loader": "^2.1.16", "@cornerstonejs/nifti-volume-loader": "^2.1.16", "@cornerstonejs/tools": "^2.1.16", - "dcmjs": "0.33.0", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", - "dicomweb-client": "0.10.4", + "dicomweb-client": "0.11.2", "react": "^18.2.0", "react-dom": "^18.2.0", "vite-plugin-wasm": "^3.3.0" }, "devDependencies": { - "@babel/preset-react": "^7.25.9", + "@babel/preset-react": "7.26.3", "@originjs/vite-plugin-commonjs": "^1.0.3", - "@rollup/plugin-babel": "^6.0.4", + "@rollup/plugin-babel": "6.0.4", "@rollup/plugin-commonjs": "^28.0.1", - "@rollup/plugin-node-resolve": "^15.3.0", - "@rollup/plugin-typescript": "^12.1.1", + "@rollup/plugin-node-resolve": "15.3.1", + "@rollup/plugin-typescript": "11.1.6", "@rollup/plugin-wasm": "^6.2.2", "@types/react": "^18.2.66", "@types/react-dom": "^18.2.22", @@ -43,9 +46,14 @@ "rollup-plugin-dts": "^6.1.1", "rollup-plugin-peer-deps-external": "^2.2.4", "rollup-plugin-postcss": "^4.0.2", - "rollup-plugin-terser": "^7.0.2", - "typescript": "^5.6.3", + "typescript": "5.5.4", "vite": "^5.2.0", "vite-plugin-static-copy": "^1.0.5" + }, + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" } -} +} \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index e0ff41d..cd689dd 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -21,17 +21,19 @@ function App() { } running.current = true + // 4.x: init() unchanged. For 3.x-style viewport padding use init({ rendering: { useLegacyCameraFOV: true } }) await csRenderInit() await csToolsInit() - dicomImageLoaderInit({maxWebWorkers:1}) + dicomImageLoaderInit({ maxWebWorkers: 1 }) // Get Cornerstone imageIds and fetch metadata into RAM + // Same study/series UIDs; base URL from CS3D examples (old backend may have moved) const imageIds = await createImageIdsAndCacheMetaData({ StudyInstanceUID: "1.3.6.1.4.1.14519.5.2.1.7009.2403.334240657131972136850343327463", SeriesInstanceUID: "1.3.6.1.4.1.14519.5.2.1.7009.2403.226151125820845824875394858561", - wadoRsRoot: "https://d3t6nz73ql33tx.cloudfront.net/dicomweb", + wadoRsRoot: "https://d14fa38qiwhyfd.cloudfront.net/dicomweb", }) // Instantiate a rendering engine @@ -60,12 +62,11 @@ function App() { imageIds, }) - // Set the volume to load - // @ts-ignore + // Start loading the volume (streaming) volume.load() - // Set the volume on the viewport and it's default properties - viewport.setVolumes([{ volumeId}]) + // Set the volume on the viewport (4.x: setVolumes is async) + await viewport.setVolumes([{ volumeId }], true) // Render the image viewport.render() diff --git a/src/lib/createImageIdsAndCacheMetaData.ts b/src/lib/createImageIdsAndCacheMetaData.ts index cbd0b7b..4ae9fef 100644 --- a/src/lib/createImageIdsAndCacheMetaData.ts +++ b/src/lib/createImageIdsAndCacheMetaData.ts @@ -1,7 +1,6 @@ import { api } from "dicomweb-client" import cornerstoneDICOMImageLoader from "@cornerstonejs/dicom-image-loader" -/** /** * Uses dicomweb-client to fetch metadata of a study, cache it in cornerstone, * and return a list of imageIds for the frames. diff --git a/src/main.tsx b/src/main.tsx index 1be872b..8ea316e 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,9 +1,18 @@ import React from 'react' import ReactDOM from 'react-dom/client' +import { setConfiguration } from '@cornerstonejs/core'; +import { getWasmBasePath } from 'virtual:cornerstone-wasm-config'; import App from './App.tsx' import Nifti from './Nifti.tsx' import './index.css' +// Set WASM loading base path (for subpath deployment). Use plugin's value or Vite's base. +const wasmBase = getWasmBasePath() || import.meta.env.BASE_URL +if (wasmBase) { + // @ts-ignore + setConfiguration({ wasmBasePath: wasmBase }) +} + ReactDOM.createRoot(document.getElementById('root')!).render( diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 11f02fe..96b6f2a 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -1 +1,5 @@ /// + +declare module 'virtual:cornerstone-wasm-config' { + export function getWasmBasePath(): string; +} diff --git a/vite.config.ts b/vite.config.ts index 9752594..a5ffdee 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,6 +1,7 @@ import { defineConfig } from "vite" import react from "@vitejs/plugin-react" import { viteCommonjs } from "@originjs/vite-plugin-commonjs" +import { vitePluginCornerstoneWasm } from "./vite-plugin-cornerstone-wasm" /** * Vite configuration for the application. @@ -34,12 +35,18 @@ export default defineConfig({ react(), // for dicom-parser viteCommonjs(), + // Optional: pass wasmBasePath to override WASM loading path (e.g. for subpath deployment). + // When not set, use setConfiguration({ wasmBasePath: import.meta.env.BASE_URL }) in main.tsx. + vitePluginCornerstoneWasm({ wasmBasePath: "" }), ], // seems like only required in dev mode optimizeDeps: { exclude: ["@cornerstonejs/dicom-image-loader"], include: ["dicom-parser"], }, + build: { + minify: false, + }, worker: { format: "es", rollupOptions: { From 0cfcbd4eb16c98133544a2479af8f6fcf2e7be34 Mon Sep 17 00:00:00 2001 From: Bill Wallace Date: Tue, 24 Feb 2026 18:08:57 -0500 Subject: [PATCH 2/2] Fix plugin path --- package.json | 6 ---- vite-plugin-cornerstone-wasm.ts | 55 +++++++++++++++++++++++++++++++++ vite.config.ts | 13 ++++---- 3 files changed, 62 insertions(+), 12 deletions(-) create mode 100644 vite-plugin-cornerstone-wasm.ts diff --git a/package.json b/package.json index 16c18de..4929d32 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,6 @@ "engines": { "node": ">=20" }, - "scripts": { - "dev": "vite", - "build": "tsc && vite build", - "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview" - }, "dependencies": { "@cornerstonejs/calculate-suv": "1.1.0", "@cornerstonejs/core": "^2.1.16", diff --git a/vite-plugin-cornerstone-wasm.ts b/vite-plugin-cornerstone-wasm.ts new file mode 100644 index 0000000..b15fa5f --- /dev/null +++ b/vite-plugin-cornerstone-wasm.ts @@ -0,0 +1,55 @@ +import type { Plugin } from 'vite'; + +const VIRTUAL_MODULE_ID = 'virtual:cornerstone-wasm-config'; +const RESOLVED_VIRTUAL_MODULE_ID = '\0' + VIRTUAL_MODULE_ID; + +export interface VitePluginCornerstoneWasmOptions { + /** + * Base path (or URL prefix) for loading WASM binaries. + * When set, this is passed to Cornerstone's config so WASM URLs are resolved + * correctly when the app is served under a subpath (e.g. base '/subpath/'). + * If not set, the plugin does not inject a base path (app can use setConfiguration({ wasmBasePath: import.meta.env.BASE_URL }) instead). + */ + wasmBasePath?: string; +} + +/** + * Vite plugin that allows replacing the WASM loading path used by Cornerstone + * (e.g. @cornerstonejs/dicom-image-loader codecs). Use when the app is served + * under a subpath or you need to point WASM to a custom URL. + * + * Usage: + * 1. Add the plugin with optional wasmBasePath: + * cornerstoneWasm({ wasmBasePath: '/subpath/' }) + * 2. In your app entry (e.g. main.tsx), before loading any images: + * import { getWasmBasePath } from 'virtual:cornerstone-wasm-config'; + * import { setConfiguration } from '@cornerstonejs/core'; + * const base = getWasmBasePath(); + * if (base) setConfiguration({ wasmBasePath: base }); + * + * If you don't use the virtual module, you can instead call + * setConfiguration({ wasmBasePath: import.meta.env.BASE_URL }) for subpath support. + */ +export function vitePluginCornerstoneWasm( + options: VitePluginCornerstoneWasmOptions = {} +): Plugin { + const { wasmBasePath = '' } = options; + + return { + name: 'vite-plugin-cornerstone-wasm', + resolveId(id: string) { + if (id === VIRTUAL_MODULE_ID) return RESOLVED_VIRTUAL_MODULE_ID; + return null; + }, + load(id: string) { + if (id !== RESOLVED_VIRTUAL_MODULE_ID) return null; + return ` +export function getWasmBasePath() { + return ${JSON.stringify(wasmBasePath)}; +} +`; + }, + }; +} + +export default vitePluginCornerstoneWasm; diff --git a/vite.config.ts b/vite.config.ts index a5ffdee..2cbbec1 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -31,26 +31,27 @@ import { vitePluginCornerstoneWasm } from "./vite-plugin-cornerstone-wasm" * ``` */ export default defineConfig({ + base: '/subpath/', plugins: [ react(), // for dicom-parser viteCommonjs(), // Optional: pass wasmBasePath to override WASM loading path (e.g. for subpath deployment). // When not set, use setConfiguration({ wasmBasePath: import.meta.env.BASE_URL }) in main.tsx. - vitePluginCornerstoneWasm({ wasmBasePath: "" }), + vitePluginCornerstoneWasm({ wasmBasePath: '' }), ], // seems like only required in dev mode optimizeDeps: { - exclude: ["@cornerstonejs/dicom-image-loader"], - include: ["dicom-parser"], + exclude: ['@cornerstonejs/dicom-image-loader'], + include: ['dicom-parser'], }, build: { minify: false, }, worker: { - format: "es", + format: 'es', rollupOptions: { - external: ["@icr/polyseg-wasm"], + external: ['@icr/polyseg-wasm'], }, }, -}) +});