lugano更改
parent
9ce6ff25b9
commit
0280dfb959
|
@ -247,11 +247,11 @@
|
||||||
</div>
|
</div>
|
||||||
<el-dialog v-if="customWwc.visible" :visible.sync="customWwc.visible" :close-on-click-modal="false"
|
<el-dialog v-if="customWwc.visible" :visible.sync="customWwc.visible" :close-on-click-modal="false"
|
||||||
:title="customWwc.title" width="400px" custom-class="base-dialog-wrapper">
|
:title="customWwc.title" width="400px" custom-class="base-dialog-wrapper">
|
||||||
<CustomWwwcForm :ww="activeCanvasWW" :wc="activeCanvasWC" @close="customWwc.visible = false" @setWwwc="setWwwc" />
|
<custom-wwwc-form :ww="activeCanvasWW" :wc="activeCanvasWC" @close="customWwc.visible = false" @setWwwc="setWwwc" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog :visible.sync="fusion.visible" :close-on-click-modal="false" :title="$t('trials:lugano:button:record')"
|
<el-dialog :visible.sync="fusion.visible" :close-on-click-modal="false" :title="$t('trials:lugano:button:record')"
|
||||||
width="850px">
|
width="850px">
|
||||||
<FusionForm @close="fusion.visible = false" />
|
<fusion-form @close="fusion.visible = false" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -352,6 +352,7 @@ const mipToolGroupUID = 'MIP_TOOLGROUP_ID'
|
||||||
var axialCameraPositionSynchronizer
|
var axialCameraPositionSynchronizer
|
||||||
var ctVoiSynchronizer
|
var ctVoiSynchronizer
|
||||||
var ptVoiSynchronizer
|
var ptVoiSynchronizer
|
||||||
|
var fusionVoiSynchronizer
|
||||||
const viewportIds = {
|
const viewportIds = {
|
||||||
CT: { AXIAL: 'CT_AXIAL', SAGITTAL: 'CT_SAGITTAL', CORONAL: 'CT_CORONAL' },
|
CT: { AXIAL: 'CT_AXIAL', SAGITTAL: 'CT_SAGITTAL', CORONAL: 'CT_CORONAL' },
|
||||||
PT: { AXIAL: 'PT_AXIAL', SAGITTAL: 'PT_SAGITTAL', CORONAL: 'PT_CORONAL' },
|
PT: { AXIAL: 'PT_AXIAL', SAGITTAL: 'PT_SAGITTAL', CORONAL: 'PT_CORONAL' },
|
||||||
|
@ -376,6 +377,7 @@ var mipToolGroup
|
||||||
const axialCameraSynchronizerId = 'AXIAL_CAMERA_SYNCHRONIZER_ID'
|
const axialCameraSynchronizerId = 'AXIAL_CAMERA_SYNCHRONIZER_ID'
|
||||||
const ctVoiSynchronizerId = 'CT_VOI_SYNCHRONIZER_ID'
|
const ctVoiSynchronizerId = 'CT_VOI_SYNCHRONIZER_ID'
|
||||||
const ptVoiSynchronizerId = 'PT_VOI_SYNCHRONIZER_ID'
|
const ptVoiSynchronizerId = 'PT_VOI_SYNCHRONIZER_ID'
|
||||||
|
const fusionVoiSynchronizerId = 'FUSION_VOI_SYNCHRONIZER_ID'
|
||||||
const timeout = 5 * 60 * 1000
|
const timeout = 5 * 60 * 1000
|
||||||
let timerId
|
let timerId
|
||||||
export default {
|
export default {
|
||||||
|
@ -1323,9 +1325,18 @@ export default {
|
||||||
axialCameraPositionSynchronizer = createCameraPositionSynchronizer(
|
axialCameraPositionSynchronizer = createCameraPositionSynchronizer(
|
||||||
axialCameraSynchronizerId
|
axialCameraSynchronizerId
|
||||||
)
|
)
|
||||||
ctVoiSynchronizer = createVOISynchronizer(ctVoiSynchronizerId)
|
ctVoiSynchronizer = createVOISynchronizer(ctVoiSynchronizerId, {
|
||||||
ptVoiSynchronizer = createVOISynchronizer(ptVoiSynchronizerId);
|
syncInvertState: false,
|
||||||
|
syncColormap: false,
|
||||||
|
});
|
||||||
|
ptVoiSynchronizer = createVOISynchronizer(ptVoiSynchronizerId, {
|
||||||
|
syncInvertState: false,
|
||||||
|
syncColormap: false,
|
||||||
|
});
|
||||||
|
fusionVoiSynchronizer = createVOISynchronizer(fusionVoiSynchronizerId, {
|
||||||
|
syncInvertState: false,
|
||||||
|
syncColormap: false,
|
||||||
|
});
|
||||||
// Add viewports to camera synchronizers
|
// Add viewports to camera synchronizers
|
||||||
[
|
[
|
||||||
viewportIds.CT.AXIAL,
|
viewportIds.CT.AXIAL,
|
||||||
|
@ -1348,25 +1359,41 @@ export default {
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
[
|
[
|
||||||
viewportIds.FUSION.AXIAL
|
// viewportIds.FUSION.AXIAL,
|
||||||
].forEach((viewportId) => {
|
viewportIds.PETMIP.CORONAL,
|
||||||
// In this example, the fusion viewports are only targets for CT VOI
|
viewportIds.PT.AXIAL
|
||||||
// synchronization, not sources
|
|
||||||
ctVoiSynchronizer.addTarget({
|
|
||||||
renderingEngineId,
|
|
||||||
viewportId
|
|
||||||
})
|
|
||||||
});
|
|
||||||
[
|
|
||||||
viewportIds.PT.AXIAL,
|
|
||||||
viewportIds.FUSION.AXIAL,
|
|
||||||
viewportIds.PETMIP.CORONAL
|
|
||||||
].forEach((viewportId) => {
|
].forEach((viewportId) => {
|
||||||
ptVoiSynchronizer.add({
|
ptVoiSynchronizer.add({
|
||||||
renderingEngineId,
|
renderingEngineId,
|
||||||
viewportId
|
viewportId
|
||||||
})
|
})
|
||||||
})
|
});
|
||||||
|
[
|
||||||
|
viewportIds.FUSION.AXIAL
|
||||||
|
].forEach((viewportId) => {
|
||||||
|
fusionVoiSynchronizer.add({
|
||||||
|
renderingEngineId,
|
||||||
|
viewportId,
|
||||||
|
})
|
||||||
|
ctVoiSynchronizer.addTarget({
|
||||||
|
renderingEngineId,
|
||||||
|
viewportId
|
||||||
|
})
|
||||||
|
ptVoiSynchronizer.addTarget({
|
||||||
|
renderingEngineId,
|
||||||
|
viewportId,
|
||||||
|
})
|
||||||
|
});
|
||||||
|
// [
|
||||||
|
// viewportIds.PT.AXIAL,
|
||||||
|
// viewportIds.FUSION.AXIAL,
|
||||||
|
// viewportIds.PETMIP.CORONAL
|
||||||
|
// ].forEach((viewportId) => {
|
||||||
|
// ptVoiSynchronizer.add({
|
||||||
|
// renderingEngineId,
|
||||||
|
// viewportId
|
||||||
|
// })
|
||||||
|
// });
|
||||||
},
|
},
|
||||||
|
|
||||||
async setUpDisplay() {
|
async setUpDisplay() {
|
||||||
|
@ -1415,7 +1442,7 @@ export default {
|
||||||
// Set the volumes to load
|
// Set the volumes to load
|
||||||
this.ptVolume.load()
|
this.ptVolume.load()
|
||||||
this.ctVolume.load()
|
this.ctVolume.load()
|
||||||
console.log(this.ctVolume.cornerstoneImageMetaData)
|
// console.log(this.ctVolume.cornerstoneImageMetaData)
|
||||||
// const windowCenter = this.ctVolume.cornerstoneImageMetaData.windowCenter[0]
|
// const windowCenter = this.ctVolume.cornerstoneImageMetaData.windowCenter[0]
|
||||||
// const windowWidth = this.ctVolume.cornerstoneImageMetaData.windowWidth[0]
|
// const windowWidth = this.ctVolume.cornerstoneImageMetaData.windowWidth[0]
|
||||||
// setCtMappingRange(windowWidth, windowCenter)
|
// setCtMappingRange(windowWidth, windowCenter)
|
||||||
|
@ -1654,38 +1681,55 @@ export default {
|
||||||
: { lower: voiRange[0], upper: voiRange[1] }
|
: { lower: voiRange[0], upper: voiRange[1] }
|
||||||
},
|
},
|
||||||
voiChange(v) {
|
voiChange(v) {
|
||||||
const viewportId = viewportIds.FUSION.AXIAL
|
let viewportIds = ['FUSION_AXIAL', 'PT_AXIAL', 'PET_MIP_CORONAL']
|
||||||
const volumeId = ptVolumeId
|
viewportIds.map(viewportId=>{
|
||||||
const voiRange = { lower: 0, upper: v }
|
const volumeId = ptVolumeId
|
||||||
const viewport = (
|
const voiRange = { lower: 0, upper: v }
|
||||||
renderingEngine.getViewport(viewportId)
|
const viewport = (
|
||||||
)
|
renderingEngine.getViewport(viewportId)
|
||||||
if (!viewport) return
|
)
|
||||||
const viewportsContainingVolumeUID = csUtils.getViewportsWithVolumeId(
|
if (!viewport) return
|
||||||
volumeId,
|
const viewportsContainingVolumeUID = csUtils.getViewportsWithVolumeId(
|
||||||
viewport.renderingEngineId
|
volumeId,
|
||||||
)
|
viewport.renderingEngineId
|
||||||
|
)
|
||||||
|
|
||||||
viewport.setProperties({ voiRange }, volumeId)
|
viewport.setProperties({ voiRange }, volumeId)
|
||||||
viewportsContainingVolumeUID.forEach((vp) => {
|
viewportsContainingVolumeUID.forEach((vp) => {
|
||||||
vp.render()
|
vp.render()
|
||||||
this.$refs[vp.id].setWwWc()
|
this.$refs[vp.id].setWwWc()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
async setColorMap(rgbPresetName) {
|
async setColorMap(rgbPresetName) {
|
||||||
this.rgbPresetName = rgbPresetName
|
this.rgbPresetName = rgbPresetName
|
||||||
this.$refs['FUSION_AXIAL'].setPreset(this.rgbPresetName)
|
let viewports = ['FUSION_AXIAL', 'PT_AXIAL', 'PET_MIP_CORONAL']
|
||||||
this.$refs['FUSION_AXIAL'].renderColorBar(this.rgbPresetName)
|
viewports.map(v=>{
|
||||||
this.createColorBar(this.rgbPresetName, 'colorBarCanvas', 256, 15)
|
this.$refs[v].setPreset(this.rgbPresetName)
|
||||||
const renderingEngine = getRenderingEngine(renderingEngineId)
|
this.$refs[v].renderColorBar(this.rgbPresetName)
|
||||||
|
this.createColorBar(this.rgbPresetName, 'colorBarCanvas', 256, 15)
|
||||||
|
const renderingEngine = getRenderingEngine(renderingEngineId)
|
||||||
|
|
||||||
const viewport = (
|
const viewport = (
|
||||||
renderingEngine.getViewport(viewportIds.FUSION.AXIAL)
|
renderingEngine.getViewport(v)
|
||||||
)
|
)
|
||||||
|
|
||||||
viewport.setProperties({ colormap: { name: rgbPresetName } }, ptVolumeId)
|
viewport.setProperties({ colormap: { name: rgbPresetName } }, ptVolumeId)
|
||||||
// viewport.setProperties({ colormap: { name: rgbPresetName }}, ctVolumeId)
|
viewport.render()
|
||||||
viewport.render()
|
})
|
||||||
|
// this.$refs['FUSION_AXIAL'].setPreset(this.rgbPresetName)
|
||||||
|
// this.$refs['FUSION_AXIAL'].renderColorBar(this.rgbPresetName)
|
||||||
|
// this.createColorBar(this.rgbPresetName, 'colorBarCanvas', 256, 15)
|
||||||
|
// const renderingEngine = getRenderingEngine(renderingEngineId)
|
||||||
|
|
||||||
|
// const viewport = (
|
||||||
|
// renderingEngine.getViewport(viewportIds.FUSION.AXIAL)
|
||||||
|
// )
|
||||||
|
|
||||||
|
// viewport.setProperties({ colormap: { name: rgbPresetName } }, ptVolumeId)
|
||||||
|
// // viewport.setProperties({ colormap: { name: rgbPresetName }}, ctVolumeId)
|
||||||
|
// viewport.render()
|
||||||
// document.onselectstart = function() { return false }// 解决拖动会选中文字的问题
|
// document.onselectstart = function() { return false }// 解决拖动会选中文字的问题
|
||||||
// document.ondragstart = function() { return false }
|
// document.ondragstart = function() { return false }
|
||||||
},
|
},
|
||||||
|
@ -1775,33 +1819,16 @@ export default {
|
||||||
this.setToolMode('passive', this.activeTool)
|
this.setToolMode('passive', this.activeTool)
|
||||||
this.activeTool = ''
|
this.activeTool = ''
|
||||||
}
|
}
|
||||||
const viewports = [
|
let viewporId = this.activeIndex === 1 ? 'CT_AXIAL' : this.activeIndex === 2 ? 'PT_AXIAL' : this.activeIndex === 3 ? 'FUSION_AXIAL' : 'PET_MIP_CORONAL'
|
||||||
{ viewportId: 'CT_AXIAL', volumeId: ctVolumeId },
|
let volumeId = this.activeIndex === 1 ? ctVolumeId : ptVolumeId
|
||||||
{ viewportId: 'PT_AXIAL', volumeId: ptVolumeId }
|
const renderingEngine = getRenderingEngine(renderingEngineId)
|
||||||
// { viewportId: 'FUSION_AXIAL', volumeId: ptVolumeId }
|
const viewport = renderingEngine.getViewport(viewporId)
|
||||||
]
|
const { invert } = viewport.getProperties()
|
||||||
viewports.map(v => {
|
if ( this.isFusion ) {
|
||||||
const { viewportId, volumeId } = v
|
viewport.setProperties({ invert: !invert }, volumeId )
|
||||||
const renderingEngine = getRenderingEngine(renderingEngineId)
|
}
|
||||||
|
viewport.setProperties({ invert: !invert })
|
||||||
// Get the volume viewport
|
viewport.render()
|
||||||
const viewport = (
|
|
||||||
renderingEngine.getViewport(viewportId)
|
|
||||||
)
|
|
||||||
|
|
||||||
// Get the volume actor from the viewport
|
|
||||||
const actorEntry = viewport.getActor(volumeId)
|
|
||||||
|
|
||||||
const volumeActor = actorEntry.actor
|
|
||||||
const rgbTransferFunction = volumeActor
|
|
||||||
.getProperty()
|
|
||||||
.getRGBTransferFunction(0)
|
|
||||||
|
|
||||||
// Todo: implement invert in setProperties
|
|
||||||
csUtils.invertRgbTransferFunction(rgbTransferFunction)
|
|
||||||
|
|
||||||
viewport.render()
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
showPanel(e) {
|
showPanel(e) {
|
||||||
e.currentTarget.firstChild.lastChild.style.display = 'block'
|
e.currentTarget.firstChild.lastChild.style.display = 'block'
|
||||||
|
|
Loading…
Reference in New Issue