feat: volume+ts解决刷新问题

This commit is contained in:
mozzie 2024-09-18 15:58:34 +08:00
parent 98b5b354d9
commit f2f7382fec
3 changed files with 16 additions and 14 deletions

View File

@ -39,7 +39,7 @@ const themeTitleBarStyles = {
export const platform = process.platform === "darwin" ? "macos" : "windows";
app.commandLine.appendSwitch('disable-web-security');
app.disableHardwareAcceleration()
// app.disableHardwareAcceleration()
function createWindow() {
win = new BrowserWindow({

View File

@ -9,7 +9,6 @@ export interface CtTransferFunction {
export default function setCtTransferFunctionForVolumeActor(p: CtTransferFunction) {
const { volumeActor, defaultWindowCenter, defaultWindowWidth } = p
console.log(defaultWindowCenter, defaultWindowWidth)
const lower = defaultWindowCenter - defaultWindowWidth / 2.0;
const upper = defaultWindowCenter + defaultWindowWidth / 2.0;
ctVoiRange = { lower, upper };

View File

@ -47,6 +47,7 @@ const {
const { MouseBindings } = csToolsEnums;
const wadoRsRoot = "http://localhost:8042/dicom-web";
const renderingEngineId = "renderEngineNo1";
const { ViewportType, OrientationAxis } = CoreEnums;
const wwwl = { windowCenter: 50, windowWidth: 850 };
@ -66,9 +67,8 @@ export const Viewer = () => {
const SeriesInstanceUID = queryParams.get("SeriesInstanceUID");
const StudyInstanceUID = queryParams.get("StudyInstanceUID");
const [imageIds, setImageIds] = useState<string[]>();
const renderingEngineId = "renderEngineNo1";
const renderingEngineRef = useRef<RenderingEngine>();
const volumeRef = useRef<Record<string, any>>();
const ts = "-" + Date.now(); // 每次都是新的volumeId
useEffect(() => {
cornerstoneTools.addTool(StackScrollMouseWheelTool);
@ -90,10 +90,13 @@ export const Viewer = () => {
wadoRsRoot,
});
// 这一步会对imageIds进行排序如果不排序imageIds会错误乱,stackViewport顺序会错误
volumeRef.current = await volumeLoader.createAndCacheVolume(volumeId, {
imageIds
const volume = await volumeLoader.createAndCacheVolume(volumeId + ts, {
imageIds,
});
volumeRef.current.load();
volume.load();
console.log("2222");
console.log(SeriesInstanceUID);
console.log(StudyInstanceUID);
const volumeViewportInput: PublicViewportInput[] = [
{
@ -142,14 +145,14 @@ export const Viewer = () => {
stackViewportId
) as IStackViewport;
stackViewport.setStack(volumeRef.current.imageIds);
setImageIds(volumeRef.current.imageIds);
stackViewport.setStack(volume.imageIds);
setImageIds(volume.imageIds);
await setVolumesForViewports(
renderingEngineRef.current,
[
{
volumeId: volumeId,
volumeId: volumeId + ts,
callback: ({ volumeActor }) =>
setCtTransferFunctionForVolumeActor({
volumeActor,
@ -202,9 +205,8 @@ export const Viewer = () => {
}
// 默认windowWidtth
const { windowCenter, windowWidth } =
volumeRef.current.cornerstoneImageMetaData;
console.log("默认窗宽/位: ", windowCenter, windowWidth);
// const { windowCenter, windowWidth } =
// volumeRef.current.cornerstoneImageMetaData;
};
initCornerstone(() => {
@ -221,7 +223,8 @@ export const Viewer = () => {
ToolGroupManager.destroyToolGroup(toolGroupMprId);
ToolGroupManager.destroyToolGroup(toolGroupStackId);
cornerstoneTools.removeTool(StackScrollMouseWheelTool);1
cornerstoneTools.removeTool(StackScrollMouseWheelTool);
1;
cornerstoneTools.removeTool(CrosshairsTool);
cornerstoneTools.removeTool(WindowLevelTool);
cornerstoneTools.removeTool(ZoomTool);