CornerstoneJs React restoreImageIdToolState не загружает аннотации автоматически после запуска кода
После выполнения этого кода мне нужно навести курсор на anglestoneViewport, чтобы активировать аннотации, которые я хочу, чтобы эта аннотация отображалась после запуска этого кода без наведения на 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);
};
1 ответ
У меня есть этот бит кода, который может помочь
Promise.all(imageIds.map(imageId => cs.loadAndCacheImage(imageId)))
.then(image => {
//... do stuff ...
setLoading(false);
})
.catch(error => console.log(error));
Этот блок работает в useEffect. Как видите, я использую «Promise.all», чтобы иметь доступ к обратному вызову, когда все изображения загружены, и в этот момент использую механику setState.