多帧图像旋转异常修复
parent
43d87e612a
commit
b9ee682ace
|
@ -162,7 +162,9 @@ export default {
|
||||||
isMove: false
|
isMove: false
|
||||||
},
|
},
|
||||||
mousePosition: { x: '', y: '', mo: '' },
|
mousePosition: { x: '', y: '', mo: '' },
|
||||||
markers: { top: '', right: '', bottom: '', left: '' }
|
markers: { top: '', right: '', bottom: '', left: '' },
|
||||||
|
orientationMarkers: [],
|
||||||
|
originalMarkers: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -413,6 +415,7 @@ export default {
|
||||||
this.dicomInfo.location = position
|
this.dicomInfo.location = position
|
||||||
},
|
},
|
||||||
getOrientationMarker(element) {
|
getOrientationMarker(element) {
|
||||||
|
console.log('getOrientationMarker')
|
||||||
const enabledElement = cornerstone.getEnabledElement(element)
|
const enabledElement = cornerstone.getEnabledElement(element)
|
||||||
const imagePlane = cornerstone.metaData.get(
|
const imagePlane = cornerstone.metaData.get(
|
||||||
'imagePlaneModule',
|
'imagePlaneModule',
|
||||||
|
@ -436,6 +439,7 @@ export default {
|
||||||
if (!markers) {
|
if (!markers) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
this.orientationMarkers = [oppositeColumn, row, column, oppositeRow]
|
this.orientationMarkers = [oppositeColumn, row, column, oppositeRow]
|
||||||
this.originalMarkers = [oppositeColumn, row, column, oppositeRow]
|
this.originalMarkers = [oppositeColumn, row, column, oppositeRow]
|
||||||
this.setMarkers()
|
this.setMarkers()
|
||||||
|
@ -697,8 +701,11 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
resetRotate() {
|
resetRotate() {
|
||||||
this.orientationMarkers = [...this.originalMarkers]
|
if (this.originalMarkers.length > 0) {
|
||||||
this.setMarkers()
|
this.orientationMarkers = [...this.originalMarkers]
|
||||||
|
this.setMarkers()
|
||||||
|
}
|
||||||
|
|
||||||
var viewport = cornerstone.getViewport(this.canvas)
|
var viewport = cornerstone.getViewport(this.canvas)
|
||||||
viewport.hflip = false
|
viewport.hflip = false
|
||||||
viewport.vflip = false
|
viewport.vflip = false
|
||||||
|
@ -707,24 +714,26 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
setRotate(hflip, vflip, angle, type) {
|
setRotate(hflip, vflip, angle, type) {
|
||||||
var markers = [...this.orientationMarkers]
|
if (this.orientationMarkers.length > 0) {
|
||||||
if (type === 2) {
|
var markers = [...this.orientationMarkers]
|
||||||
// 垂直翻转
|
if (type === 2) {
|
||||||
this.orientationMarkers[1] = markers[3]
|
// 垂直翻转
|
||||||
|
this.orientationMarkers[1] = markers[3]
|
||||||
|
|
||||||
this.orientationMarkers[3] = markers[1]
|
this.orientationMarkers[3] = markers[1]
|
||||||
} else if (type === 3) {
|
} else if (type === 3) {
|
||||||
// 水平翻转
|
// 水平翻转
|
||||||
this.orientationMarkers[0] = markers[2]
|
this.orientationMarkers[0] = markers[2]
|
||||||
this.orientationMarkers[2] = markers[0]
|
this.orientationMarkers[2] = markers[0]
|
||||||
} else if (type === 4) {
|
} else if (type === 4) {
|
||||||
// 左转90度
|
// 左转90度
|
||||||
this.orientationMarkers = markers.slice(1, 4).concat(markers[0])
|
this.orientationMarkers = markers.slice(1, 4).concat(markers[0])
|
||||||
} else if (type === 5) {
|
} else if (type === 5) {
|
||||||
// 右转90度
|
// 右转90度
|
||||||
this.orientationMarkers = [markers[3]].concat(markers.slice(0, 3))
|
this.orientationMarkers = [markers[3]].concat(markers.slice(0, 3))
|
||||||
|
}
|
||||||
|
this.setMarkers()
|
||||||
}
|
}
|
||||||
this.setMarkers()
|
|
||||||
var viewport = cornerstone.getViewport(this.canvas)
|
var viewport = cornerstone.getViewport(this.canvas)
|
||||||
if (hflip) viewport.hflip = !viewport.hflip
|
if (hflip) viewport.hflip = !viewport.hflip
|
||||||
if (vflip) viewport.vflip = !viewport.vflip
|
if (vflip) viewport.vflip = !viewport.vflip
|
||||||
|
|
|
@ -162,6 +162,19 @@
|
||||||
<button :title="$t('trials:dicom-show:lens')" class="btn-link" data-tool="Magnify" @click="setToolActive($event,'Magnify')">
|
<button :title="$t('trials:dicom-show:lens')" class="btn-link" data-tool="Magnify" @click="setToolActive($event,'Magnify')">
|
||||||
<svg-icon icon-class="zoom" style="font-size:20px;" />
|
<svg-icon icon-class="zoom" style="font-size:20px;" />
|
||||||
</button>
|
</button>
|
||||||
|
<button :title="$t('trials:reading:button:rotate')" class="btn-link dropdown" data-tool="Rotate">
|
||||||
|
<svg-icon icon-class="rotate" style="font-size:20px;" />
|
||||||
|
<div class="dropdown-content">
|
||||||
|
<div @click.stop="setDicomCanvasRotate(1)">{{ $t('trials:reading:button:rotateDefault') }}</div>
|
||||||
|
<div @click.stop="setDicomCanvasRotate(2)">{{ $t('trials:reading:button:rotateHorizontal') }}</div>
|
||||||
|
<div @click.stop="setDicomCanvasRotate(3)">{{ $t('trials:reading:button:rotateVertical') }}</div>
|
||||||
|
<div @click.stop="setDicomCanvasRotate(4)">{{ $t('trials:reading:button:rotateTurnLeft') }}</div>
|
||||||
|
<div @click.stop="setDicomCanvasRotate(5)">{{ $t('trials:reading:button:rotateTurnRight') }}</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
<button :title="$t('trials:reading:button:move')" class="btn-link" data-tool="Pan" @click="setToolActive($event,'Pan')">
|
||||||
|
<svg-icon icon-class="move" style="font-size:20px;" />
|
||||||
|
</button>
|
||||||
<button :title="$t('trials:reading:button:fitWindow')" class="btn-link" data-tool="fitToWindow" @click="fitToType($event,'fitToWindow')">
|
<button :title="$t('trials:reading:button:fitWindow')" class="btn-link" data-tool="fitToWindow" @click="fitToType($event,'fitToWindow')">
|
||||||
<svg-icon icon-class="fitToWindow" style="font-size:20px;" />
|
<svg-icon icon-class="fitToWindow" style="font-size:20px;" />
|
||||||
</button>
|
</button>
|
||||||
|
@ -169,19 +182,7 @@
|
||||||
<svg-icon icon-class="fitToImage" style="font-size:20px;" />
|
<svg-icon icon-class="fitToImage" style="font-size:20px;" />
|
||||||
</button>
|
</button>
|
||||||
<!-- <button title="旋转" class="btn-link dropdown" data-tool="Rotate" @click="setToolActive($event,'Rotate')"> -->
|
<!-- <button title="旋转" class="btn-link dropdown" data-tool="Rotate" @click="setToolActive($event,'Rotate')"> -->
|
||||||
<button :title="$t('trials:reading:button:rotate')" class="btn-link dropdown" data-tool="Rotate">
|
|
||||||
<svg-icon icon-class="rotate" style="font-size:20px;" />
|
|
||||||
<div class="dropdown-content">
|
|
||||||
<p @click.stop="setDicomCanvasRotate(1)">{{ $t('trials:reading:button:rotateDefault') }}</p>
|
|
||||||
<p @click.stop="setDicomCanvasRotate(2)">{{ $t('trials:reading:button:rotateHorizontal') }}</p>
|
|
||||||
<p @click.stop="setDicomCanvasRotate(3)">{{ $t('trials:reading:button:rotateVertical') }}</p>
|
|
||||||
<p @click.stop="setDicomCanvasRotate(4)">{{ $t('trials:reading:button:rotateTurnLeft') }}</p>
|
|
||||||
<p @click.stop="setDicomCanvasRotate(5)">{{ $t('trials:reading:button:rotateTurnRight') }}</p>
|
|
||||||
</div>
|
|
||||||
</button>
|
|
||||||
<button :title="$t('trials:reading:button:move')" class="btn-link" data-tool="Pan" @click="setToolActive($event,'Pan')">
|
|
||||||
<svg-icon icon-class="move" style="font-size:20px;" />
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 测量标注 -->
|
<!-- 测量标注 -->
|
||||||
|
@ -886,13 +887,19 @@ export default {
|
||||||
background-color: #323232;
|
background-color: #323232;
|
||||||
min-width: 80px;
|
min-width: 80px;
|
||||||
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
|
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
|
||||||
|
border: 1px solid #4e4e4e;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
.dicom-wrapper .dropdown:hover .dropdown-content {
|
.dicom-wrapper .dropdown:hover .dropdown-content {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
.dicom-wrapper .dropdown-content p{
|
.dicom-wrapper .dropdown-content div{
|
||||||
|
height: 25px;
|
||||||
|
line-height: 25px;
|
||||||
cursor:point;
|
cursor:point;
|
||||||
}
|
}
|
||||||
|
.dicom-wrapper .dropdown-content div:hover{
|
||||||
|
background-color: #16477b90;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1572,8 +1572,10 @@ export default {
|
||||||
|
|
||||||
resetViewport() {
|
resetViewport() {
|
||||||
this.toolState.viewportInvert = false
|
this.toolState.viewportInvert = false
|
||||||
this.orientationMarkers = [...this.originalMarkers]
|
if (this.originalMarkers.length > 0) {
|
||||||
this.setMarkers()
|
this.orientationMarkers = [...this.originalMarkers]
|
||||||
|
this.setMarkers()
|
||||||
|
}
|
||||||
var image = cornerstone.getImage(this.canvas)
|
var image = cornerstone.getImage(this.canvas)
|
||||||
cornerstone.setViewport(
|
cornerstone.setViewport(
|
||||||
this.canvas,
|
this.canvas,
|
||||||
|
@ -1689,8 +1691,10 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
resetRotate() {
|
resetRotate() {
|
||||||
this.orientationMarkers = [...this.originalMarkers]
|
if (this.originalMarkers.length > 0) {
|
||||||
this.setMarkers()
|
this.orientationMarkers = [...this.originalMarkers]
|
||||||
|
this.setMarkers()
|
||||||
|
}
|
||||||
var viewport = cornerstone.getViewport(this.canvas)
|
var viewport = cornerstone.getViewport(this.canvas)
|
||||||
viewport.hflip = false
|
viewport.hflip = false
|
||||||
viewport.vflip = false
|
viewport.vflip = false
|
||||||
|
@ -1705,23 +1709,25 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
setRotate(hflip, vflip, angle, type) {
|
setRotate(hflip, vflip, angle, type) {
|
||||||
var markers = [...this.orientationMarkers]
|
if (this.orientationMarkers.length > 0) {
|
||||||
if (type === 2) {
|
var markers = [...this.orientationMarkers]
|
||||||
// 垂直翻转
|
if (type === 2) {
|
||||||
this.orientationMarkers[0] = markers[2]
|
// 垂直翻转
|
||||||
this.orientationMarkers[2] = markers[0]
|
this.orientationMarkers[0] = markers[2]
|
||||||
} else if (type === 3) {
|
this.orientationMarkers[2] = markers[0]
|
||||||
// 水平翻转
|
} else if (type === 3) {
|
||||||
this.orientationMarkers[1] = markers[3]
|
// 水平翻转
|
||||||
this.orientationMarkers[3] = markers[1]
|
this.orientationMarkers[1] = markers[3]
|
||||||
} else if (type === 4) {
|
this.orientationMarkers[3] = markers[1]
|
||||||
// 左转90度
|
} else if (type === 4) {
|
||||||
this.orientationMarkers = markers.slice(1, 4).concat(markers[0])
|
// 左转90度
|
||||||
} else if (type === 5) {
|
this.orientationMarkers = markers.slice(1, 4).concat(markers[0])
|
||||||
// 右转90度
|
} else if (type === 5) {
|
||||||
this.orientationMarkers = [markers[3]].concat(markers.slice(0, 3))
|
// 右转90度
|
||||||
|
this.orientationMarkers = [markers[3]].concat(markers.slice(0, 3))
|
||||||
|
}
|
||||||
|
this.setMarkers()
|
||||||
}
|
}
|
||||||
this.setMarkers()
|
|
||||||
var viewport = cornerstone.getViewport(this.canvas)
|
var viewport = cornerstone.getViewport(this.canvas)
|
||||||
if (hflip) viewport.hflip = !viewport.hflip
|
if (hflip) viewport.hflip = !viewport.hflip
|
||||||
if (vflip) viewport.vflip = !viewport.vflip
|
if (vflip) viewport.vflip = !viewport.vflip
|
||||||
|
|
Loading…
Reference in New Issue