diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue
index 74655d93..6ffcbff9 100644
--- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue
+++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue
@@ -247,11 +247,11 @@
-
+
-
+
@@ -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,38 +1681,55 @@ export default {
: { lower: voiRange[0], upper: voiRange[1] }
},
voiChange(v) {
- const viewportId = viewportIds.FUSION.AXIAL
- const volumeId = ptVolumeId
- const voiRange = { lower: 0, upper: v }
- const viewport = (
- renderingEngine.getViewport(viewportId)
- )
- if (!viewport) return
- const viewportsContainingVolumeUID = csUtils.getViewportsWithVolumeId(
- volumeId,
- viewport.renderingEngineId
- )
+ let viewportIds = ['FUSION_AXIAL', 'PT_AXIAL', 'PET_MIP_CORONAL']
+ viewportIds.map(viewportId=>{
+ const volumeId = ptVolumeId
+ const voiRange = { lower: 0, upper: v }
+ const viewport = (
+ renderingEngine.getViewport(viewportId)
+ )
+ if (!viewport) return
+ const viewportsContainingVolumeUID = csUtils.getViewportsWithVolumeId(
+ volumeId,
+ viewport.renderingEngineId
+ )
- viewport.setProperties({ voiRange }, volumeId)
- viewportsContainingVolumeUID.forEach((vp) => {
- vp.render()
- this.$refs[vp.id].setWwWc()
+ viewport.setProperties({ voiRange }, volumeId)
+ viewportsContainingVolumeUID.forEach((vp) => {
+ 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)
- this.createColorBar(this.rgbPresetName, 'colorBarCanvas', 256, 15)
- const renderingEngine = getRenderingEngine(renderingEngineId)
+ 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)
- )
+ const viewport = (
+ renderingEngine.getViewport(v)
+ )
- viewport.setProperties({ colormap: { name: rgbPresetName } }, ptVolumeId)
- // viewport.setProperties({ colormap: { name: rgbPresetName }}, ctVolumeId)
- viewport.render()
+ viewport.setProperties({ colormap: { name: rgbPresetName } }, ptVolumeId)
+ 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
- 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)
-
- viewport.render()
- })
+ 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)
+ 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'