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