分割部分问题解决
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2026-04-09 18:08:20 +08:00
parent 5289c156c0
commit 5a7fa1fb77
4 changed files with 41 additions and 14 deletions

View File

@ -76,7 +76,9 @@ import * as cornerstoneTools from '@cornerstonejs/tools'
import { createImageIdsAndCacheMetaData } from '@/views/trials/trials-panel/reading/dicoms/components/Fusion/js/createImageIdsAndCacheMetaData' import { createImageIdsAndCacheMetaData } from '@/views/trials/trials-panel/reading/dicoms/components/Fusion/js/createImageIdsAndCacheMetaData'
import setCtTransferFunctionForVolumeActor from '@/views/trials/trials-panel/reading/dicoms/components/Fusion/js/setCtTransferFunctionForVolumeActor' import setCtTransferFunctionForVolumeActor from '@/views/trials/trials-panel/reading/dicoms/components/Fusion/js/setCtTransferFunctionForVolumeActor'
import { setCtMappingRange } from '@/views/trials/trials-panel/reading/dicoms/components/Fusion/js/setCtTransferFunctionForVolumeActor' import { setCtMappingRange } from '@/views/trials/trials-panel/reading/dicoms/components/Fusion/js/setCtTransferFunctionForVolumeActor'
import { setPetColorMapTransferFunctionForVolumeActor } from '@/views/trials/trials-panel/reading/dicoms/components/Fusion/js/setPetColorMapTransferFunctionForVolumeActor' import {
setPetTransferFunctionForVolumeActor
} from './helpers/index.js'
import { vec3, mat4 } from 'gl-matrix' import { vec3, mat4 } from 'gl-matrix'
import DicomEvent from '@/views/trials/trials-panel/reading/dicoms/components/DicomEvent' import DicomEvent from '@/views/trials/trials-panel/reading/dicoms/components/DicomEvent'
export default { export default {
@ -99,6 +101,10 @@ export default {
default: () => { default: () => {
return {} return {}
} }
},
histogramVisible: {
type: Boolean,
default: false
} }
}, },
data() { data() {
@ -183,6 +189,7 @@ export default {
this.element.addEventListener("CORNERSTONE_VOLUME_NEW_IMAGE", this.stackNewImage) this.element.addEventListener("CORNERSTONE_VOLUME_NEW_IMAGE", this.stackNewImage)
this.element.addEventListener('CORNERSTONE_VOI_MODIFIED', this.voiModified) this.element.addEventListener('CORNERSTONE_VOI_MODIFIED', this.voiModified)
this.element.addEventListener('wheel', (e) => { this.element.addEventListener('wheel', (e) => {
if (this.histogramVisible) return false
// console.log('CORNERSTONE_STACK_VIEWPORT_SCROLL') // console.log('CORNERSTONE_STACK_VIEWPORT_SCROLL')
const renderingEngine = getRenderingEngine(this.renderingEngineId) const renderingEngine = getRenderingEngine(this.renderingEngineId)
const viewport = renderingEngine.getViewport(this.viewportId) const viewport = renderingEngine.getViewport(this.viewportId)
@ -490,7 +497,7 @@ export default {
.setVolumes([{ .setVolumes([{
volumeId: this.volumeId, callback: (r) => { volumeId: this.volumeId, callback: (r) => {
if (this.series.Modality === 'PT') { if (this.series.Modality === 'PT') {
setPetColorMapTransferFunctionForVolumeActor(r, true) setPetTransferFunctionForVolumeActor(r)
} else { } else {
let volume = cache.getVolume(this.volumeId) let volume = cache.getVolume(this.volumeId)
const voi = metaData.get('voiLutModule', volume._imageIds[Math.ceil((volume._imageIds.length - 1) / 2)]) const voi = metaData.get('voiLutModule', volume._imageIds[Math.ceil((volume._imageIds.length - 1) / 2)])
@ -506,6 +513,15 @@ export default {
} }
}) })
viewport.render() viewport.render()
if (this.series.Modality === 'PT') {
setTimeout(() => {
viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true })
viewport.resetProperties()
viewport.setProperties({ voiRange: { upper: 5, lower: 0 } })
viewport.render()
renderingEngine.render()
}, 100)
}
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }

View File

@ -315,8 +315,9 @@
:rendering-engine-id="renderingEngineId" :viewport-id="`viewport-${index}`" :viewport-index="index" :rendering-engine-id="renderingEngineId" :viewport-id="`viewport-${index}`" :viewport-index="index"
:histogramVisible="histogramVisible" @activeViewport="activeViewport" :histogramVisible="histogramVisible" @activeViewport="activeViewport"
@toggleTaskByViewport="toggleTaskByViewport" @previewCD="previewCD" @toggleTaskByViewport="toggleTaskByViewport" @previewCD="previewCD"
@renderAnnotations="renderAnnotations" @contentMouseup="contentMouseup" @resetViewport="resetViewport" @renderAnnotations="renderAnnotations" @contentMouseup="contentMouseup"
v-if="readingTool === 3" v-resize="(e) => handleSizeChange(e, `viewport-${index}`)" /> @resetViewport="resetViewport" v-if="readingTool === 3"
v-resize="(e) => handleSizeChange(e, `viewport-${index}`)" />
<Viewport :ref="`viewport-${index}`" :data-viewport-uid="`viewport-${index}`" <Viewport :ref="`viewport-${index}`" :data-viewport-uid="`viewport-${index}`"
:rendering-engine-id="renderingEngineId" :viewport-id="`viewport-${index}`" :viewport-index="index" :rendering-engine-id="renderingEngineId" :viewport-id="`viewport-${index}`" :viewport-index="index"
@activeViewport="activeViewport" @toggleTaskByViewport="toggleTaskByViewport" @previewCD="previewCD" @activeViewport="activeViewport" @toggleTaskByViewport="toggleTaskByViewport" @previewCD="previewCD"
@ -362,8 +363,8 @@
:volumeToolGroupId="volumeToolGroupId" :viewportKey="viewportKey" :global-loading.sync="loading" :volumeToolGroupId="volumeToolGroupId" :viewportKey="viewportKey" :global-loading.sync="loading"
:loadingText.sync="loadingText" :rendering-engine-id="renderingEngineId" :loadingText.sync="loadingText" :rendering-engine-id="renderingEngineId"
:activeViewportIndex="activeViewportIndex" :activeTool.sync="activeTool" :activeViewportIndex="activeViewportIndex" :activeTool.sync="activeTool"
:actionConfiguration="actionConfiguration" @setToolsPassive="setToolsPassive" :actionConfiguration="actionConfiguration" :histogramVisible="histogramVisible"
@resetQuestion="resetQuestion" /> @setToolsPassive="setToolsPassive" @resetQuestion="resetQuestion" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('trials:reading:dicom3D:tabs:ecrf')" name="ecrf"> <el-tab-pane :label="$t('trials:reading:dicom3D:tabs:ecrf')" name="ecrf">
<div v-for="s in visitTaskList" v-show="lastViewportTaskId === s.VisitTaskId" :key="s.VisitTaskId" <div v-for="s in visitTaskList" v-show="lastViewportTaskId === s.VisitTaskId" :key="s.VisitTaskId"
@ -876,10 +877,10 @@ export default {
handler() { handler() {
if (this.readingTool !== 3) return false if (this.readingTool !== 3) return false
this.setToolsPassive() this.setToolsPassive()
let viewportIds = ['viewport-0', 'viewport-1', 'viewport-2', 'viewport-3'] let viewportIds = ['viewport-0', 'viewport-1', 'viewport-2', 'viewport-3', this.volumeToolGroupId]
if (this.isMPR) { // if (this.isMPR) {
viewportIds = ['viewport-MPR-0', 'viewport-MPR-1', 'viewport-MPR-2'] // viewportIds = [this.volumeToolGroupId]
} // }
viewportIds.forEach(id => { viewportIds.forEach(id => {
const toolGroup = ToolGroupManager.getToolGroup(id) const toolGroup = ToolGroupManager.getToolGroup(id)
if (this.histogramVisible) { if (this.histogramVisible) {
@ -894,6 +895,7 @@ export default {
}) })
for (let i = 0; i < this.cells.length; i++) { for (let i = 0; i < this.cells.length; i++) {
const viewportId = `${this.viewportKey}-${i}` const viewportId = `${this.viewportKey}-${i}`
let renderingEngine = getRenderingEngine(renderingEngineId)
const viewport = renderingEngine.getViewport(viewportId) const viewport = renderingEngine.getViewport(viewportId)
viewport.render() viewport.render()
} }

View File

@ -113,11 +113,15 @@ export default {
if (find) { if (find) {
this.form.studyId = this.series.StudyId this.form.studyId = this.series.StudyId
this.handleChange(null, 'study') this.handleChange(null, 'study')
let findSeries = find.SeriesArr.some(item => item.Id === this.form.seriesId)
if (findSeries) {
this.form.seriesId = this.series.Id this.form.seriesId = this.series.Id
this.handleChange(null, 'series') this.handleChange(null, 'series')
} }
} }
}
if (this.visitInfo.operateStateEnum === 22) { if (this.visitInfo.operateStateEnum === 22) {
let o = {} let o = {}
if (this.isTableQuestion) { if (this.isTableQuestion) {

View File

@ -322,6 +322,10 @@ export default {
globalLoading: { globalLoading: {
type: Boolean, type: Boolean,
default: false default: false
},
histogramVisible: {
type: Boolean,
default: false
} }
}, },
data() { data() {
@ -561,6 +565,7 @@ export default {
setToolActive(toolName) { setToolActive(toolName) {
if (this.segmentList.length <= 0) return false if (this.segmentList.length <= 0) return false
if (this.curSegment.lock) return false if (this.curSegment.lock) return false
if (this.histogramVisible && !this.ThresholdTools.includes(toolName)) return false
const toolGroupId = this.isMPR ? this.volumeToolGroupId : `${this.viewportKey}-${this.activeViewportIndex}` const toolGroupId = this.isMPR ? this.volumeToolGroupId : `${this.viewportKey}-${this.activeViewportIndex}`
const toolGroup = ToolGroupManager.getToolGroup(toolGroupId) const toolGroup = ToolGroupManager.getToolGroup(toolGroupId)
if (this.activeTool === toolName) { if (this.activeTool === toolName) {