文章目錄
- 前言
- 一、mpr窗口預設窗值
- 二、vr preset
- 三、調用流程
前言
實現mpr窗口預設窗值,vr窗口預設配色
效果如下:
一、mpr窗口預設窗值
可參考 第十五章 預設窗值
邏輯一樣的,把windowWidth, windowCenter值轉換為voiRange值,再調用viewport.setProperties設置。
在MPR類中增加函數setWindow
const presetWindow = [{id: "wwwl-default",text: "默認",tooltip: "默認窗寬窗位",icon: "icon-tiaochuang",wwwl: {wl: 0,ww: 0,}},{id: "wwwl-ct-bone",text: "骨窗",tooltip: "CT骨窗 [300/1500]",icon: "icon-jawbone",wwwl: {wl: 300,ww: 1500,}},{id: "wwwl-ct-lung",text: "肺窗",tooltip: "CT肺窗 [-600/1500]",icon: "icon-lungs-line",wwwl: {wl: -600,ww: 1500,}},{id: "wwwl-ct-abdomen",text: "腹部",tooltip: "CT腹部 [60/400]",icon: "icon-fubu",wwwl: {wl: 60,ww: 400,}},{id: "wwwl-ct-angio",text: "血管",tooltip: "CT血管 [300/600]",icon: "icon-xinxieguan1",wwwl: {wl: 300,ww: 600,}},{id: "wwwl-ct-brain",text: "顱腦",tooltip: "CT顱腦 [40/80]",icon: "icon-xinxieguan",wwwl: {wl: 40,ww: 80,}},{id: "wwwl-ct-chest",text: "胸腔",tooltip: "CT胸腔 [40/400]",icon: "icon-Frightn",wwwl: {wl: 40,ww: 400,}},
];setWindow(ww, wl) {if (!this.loaded) {return;}const viewports = this.renderingEngine.getViewports();for (let i = 0; i < viewports.length; i++) {const viewport = viewports[i];if (viewport.id !== idVolume) {const voiLutFunction = viewport.getProperties().VOILUTFunction;const newRange = csUtils.windowLevel.toLowHighRange(ww, wl, voiLutFunction);viewport.setProperties({voiRange: newRange});viewport.render();}}}
二、vr preset
cornerstone3D中預設22種viewport preset。保存在CONSTANTS.VIEWPORT_PRESETS中。
在MPR類中添加setVRColor函數,同時把CONSTANTS.VIEWPORT_PRESETS.name導出,以便Toolbar3d.vue中使用
import {RenderingEngine,Enums,...CONSTANTS
} from "@cornerstonejs/core";const presetColors = CONSTANTS.VIEWPORT_PRESETS.map(preset => preset.name);setVRColor(presetName) {if (!this.loaded) {return;}const viewport = this.renderingEngine.getViewport(idVolume);const volumeActor = viewport.getDefaultActor().actor;csUtils.applyPreset(volumeActor,CONSTANTS.VIEWPORT_PRESETS.find(preset => preset.name === presetName));viewport.render();
}
三、調用流程
基本流程:
-
- Toolbar3d.vue中添加操作按鈕或其他元素
-
- View3d.vue中響應操作
-
- DisplayerArea3d.vue調用MPR類中的函數
可參考前面章節