diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/MPRViewport.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/MPRViewport.vue index b172a179..370deaac 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/MPRViewport.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/MPRViewport.vue @@ -40,10 +40,10 @@
Location: {{ `${Number(imageInfo.location).toFixed(digitPlaces)} mm` - }}
+ }}
Slice Thickness: {{ `${Number(imageInfo.sliceThickness).toFixed(digitPlaces)} mm` - }}
+ }}
WW/WL: {{ imageInfo.wwwc }}
@@ -185,6 +185,7 @@ export default { rotateAngle: 0, rotateBarLeft: 0, loading: false, + toggleClipPlayTimer: null } }, mounted() { @@ -491,11 +492,20 @@ export default { this.playClipState = isPlay const renderingEngine = getRenderingEngine(this.renderingEngineId) const viewport = renderingEngine.getViewport(this.viewportId) - if (isPlay) { - cornerstoneTools.utilities.cine.playClip(viewport.element, { framesPerSecond, loop: true }) + this.toggleClipPlayTimer = setInterval(() => { + let index = this.series.SliceIndex + 1; + if (index > this.imageInfo.total - 1) index = 0 + csUtils.jumpToSlice(viewport.element, { imageIndex: index }); + + }, framesPerSecond) + // cornerstoneTools.utilities.cine.playClip(viewport.element, { framesPerSecond, loop: true }) } else { - cornerstoneTools.utilities.cine.stopClip(viewport.element) + if (this.toggleClipPlayTimer) { + clearInterval(this.toggleClipPlayTimer) + this.toggleClipPlayTimer = null + } + // cornerstoneTools.utilities.cine.stopClip(viewport.element) } }, scrollPage(type) { @@ -794,6 +804,12 @@ export default { return `NS: ${this.$store.state.trials.downloadTip}` } }, + destroyed() { + if (this.toggleClipPlayTimer) { + clearInterval(this.toggleClipPlayTimer) + this.toggleClipPlayTimer = null + } + } }