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"; export const platform = process.platform === "darwin" ? "macos" : "windows";
app.commandLine.appendSwitch('disable-web-security'); app.commandLine.appendSwitch('disable-web-security');
app.disableHardwareAcceleration() // app.disableHardwareAcceleration()
function createWindow() { function createWindow() {
win = new BrowserWindow({ win = new BrowserWindow({

View File

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

View File

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