CornerstoneJs React restoreImageIdToolState在运行代码后未自动加载注释



运行此代码后,我必须将鼠标悬停在cornerstoneViewport上以激活注释我希望该注释在该代码运行后显示,而无需悬停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);
};

我有这段代码可能有助于

Promise.all(imageIds.map(imageId => cs.loadAndCacheImage(imageId)))
.then(image => {
//... do stuff ... 
setLoading(false);
})
.catch(error => console.log(error));

此块在useEffect中运行。正如你所看到的,我正在使用";承诺;以在加载所有图像时访问回调,并在此时使用setState机制。

最新更新