After this Code Runs I have to hover the cornerstoneViewport to activate the annotations i want that annotation to show up after this code runs without hovering the CVport
const restore = () => {
let element;
const stack = {
currentImageIdIndex: 0,
imageIds,
};
console.log(dicomAnnotaionList);
imageIds.forEach((imageId) => {
element = document.getElementsByClassName("cornerstone-canvas")[0];
cornerstone.enable(element);
dicomAnnotaionList.forEach((ann) => {
cornerstone.loadImage(imageId).then(function (image) {
cornerstone.displayImage(element, image);
cornerstoneTools.addStackStateManager(element, ["stack"]);
cornerstoneTools.addToolState(element, "stack", stack);
cornerstone.draw(element);
const ToolStateManager =
cornerstoneTools.globalImageIdSpecificToolStateManager;
ToolStateManager.restoreImageIdToolState(imageId, {
...ann,
});
});
});
});
cornerstoneTools.addTool(cornerstoneTools.LengthTool);
cornerstoneTools.setToolPassive("Length");
cornerstoneTools.addTool(cornerstoneTools.RectangleRoiTool);
cornerstoneTools.setToolPassive("RectangleRoi");
cornerstoneTools.addTool(cornerstoneTools.EllipticalRoiTool);
cornerstoneTools.setToolPassive("EllipticalRoi");
cornerstoneTools.addTool(cornerstoneTools.FreehandRoiTool);
cornerstoneTools.setToolPassive("FreehandRoi");
setIsRestored(true);
};
I have this bit of code that might help
This block runs in an useEffect. As you can see, I'm using "Promise.all" to have access to a callback when all images are loaded, and use setState mechanics at this moment.