From 9952968575869bd29056544e173342c92d88087f Mon Sep 17 00:00:00 2001 From: Ross Date: Tue, 20 May 2025 09:57:50 +0100 Subject: [PATCH] another stage --- dicom-viewer/src/App.tsx | 55 ++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/dicom-viewer/src/App.tsx b/dicom-viewer/src/App.tsx index ae35feb..360eb42 100644 --- a/dicom-viewer/src/App.tsx +++ b/dicom-viewer/src/App.tsx @@ -270,8 +270,8 @@ function App() { } */ cornerstoneTools.utilities.stackPrefetch.enable(viewport.element); + renderingEngine.resize(true, true) console.log(i, viewport) - viewport.resetCameraForResize(); viewport.render(); // Attach overlay update for each viewport @@ -279,6 +279,17 @@ function App() { // Initial overlay update updateOverlay(i, viewport); } + + /* // Resize and render all viewports to ensure correct canvas size + for (let i = 0; i < viewportGrid.rows * viewportGrid.cols; i++) { + const renderingEngineId = `renderingEngine_${i}`; + const viewportId = `CT_${i}`; + const renderingEngine = renderingEnginesRef.current[renderingEngineId]; + if (renderingEngine) { + const viewport = renderingEngine.getViewport(viewportId); + renderingEngine.resize(true, false) + } + } */ applyMouseToolBindings(); return; } @@ -333,17 +344,24 @@ function App() { applyMouseToolBindings(); }; - // Delay setup by 100ms (adjust as needed) + setup(); +/* // Delay setup by 100ms (adjust as needed) const timeout = setTimeout(() => { setup(); - }, 300); return () => clearTimeout(timeout); + }, 300); */ + + return; + }, [elementRef, updateOverlay, viewportGrid, loadedImageIds]); // Handler to reset the view (camera and window/level) - const handleResetView = useCallback(() => { - const viewport = viewportRef.current + const handleDoubleClick = useCallback((viewportIdx: numebr) => { + const renderingEngineId = `renderingEngine_${viewportIdx}`; + const viewportId = `CT_${viewportIdx}`; + const renderingEngine = renderingEnginesRef.current[renderingEngineId]; + const viewport = renderingEngine.getViewport(viewportId); if (viewport && typeof viewport.resetCamera === "function") { viewport.resetCamera(); viewport.resetProperties(); // Resets window/level and other properties @@ -351,16 +369,13 @@ function App() { } }, []) - // Double-click handler (reuse the same logic) - const handleDoubleClick = handleResetView - // Handler to apply a preset for a specific viewport const handleApplyPreset = useCallback((viewportIdx: number, center: number, width: number) => { console.log("Applying preset:", center, width); const renderingEngineId = `renderingEngine_${viewportIdx}`; const viewportId = `CT_${viewportIdx}`; try { -const renderingEngine = renderingEnginesRef.current[renderingEngineId]; + const renderingEngine = renderingEnginesRef.current[renderingEngineId]; console.log("Rendering engine:", renderingEngine); if (renderingEngine) { const viewport = renderingEngine.getViewport(viewportId); @@ -437,6 +452,7 @@ const renderingEngine = renderingEnginesRef.current[renderingEngineId]; display: "flex", flexDirection: "column", }} + onDoubleClick={() => handleDoubleClick(i)} > {/* Overlay info (bottom left of viewport) */}
- {/* Reset View Button */} - - {/* Viewport grid menu at top center */}