Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
4249ccd9d6
|
@ -25,6 +25,7 @@
|
|||
v-if="selectArr.includes(s.VisitTaskId) && s.StudyList.length > 0"
|
||||
:ref="s.VisitTaskId"
|
||||
:visit-task-info="s"
|
||||
:markedSeriesIds="markedSeriesIds"
|
||||
@activeSeries="activeSeries"
|
||||
/>
|
||||
|
||||
|
@ -573,7 +574,8 @@ export default {
|
|||
lastViewportTaskId: '',
|
||||
digitPlaces: 2,
|
||||
instanceInfo: {},
|
||||
lastViewportTaskIds: []
|
||||
lastViewportTaskIds: [],
|
||||
markedSeriesIds: []
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
@ -711,7 +713,16 @@ export default {
|
|||
if (!this.selectArr.includes(item.VisitTaskId)) {
|
||||
this.selectArr.push(item.VisitTaskId)
|
||||
}
|
||||
if (item.IsCurrentTask) {
|
||||
this.markedSeriesIds = []
|
||||
annotations.map(i=> {
|
||||
if (i.MeasureData && i.MeasureData.seriesId) {
|
||||
this.markedSeriesIds.push(i.MeasureData.seriesId)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
this.visitTaskList.push({
|
||||
...item,
|
||||
StudyList: studyList,
|
||||
|
@ -1075,7 +1086,6 @@ export default {
|
|||
})
|
||||
},
|
||||
addAnnotationListeners() {
|
||||
console.log(toolsEvents)
|
||||
const debouncedCallback = this.debounce((evt) => {
|
||||
this.annotationModifiedListener(evt)
|
||||
}, 100)
|
||||
|
@ -1109,7 +1119,7 @@ export default {
|
|||
console.log(arr)
|
||||
},
|
||||
annotationAddedListener(e) {
|
||||
console.log('annotationAddedListener', e)
|
||||
|
||||
},
|
||||
annotationCompletedListener(e) {
|
||||
console.log('Completed')
|
||||
|
@ -1128,9 +1138,12 @@ export default {
|
|||
annotation.sliceThickness = series.SliceThickness
|
||||
annotation.numberOfFrames = isNaN(parseInt(params.frame)) ? null : parseInt(params.frame)
|
||||
annotation.markTool = annotation.metadata.toolName
|
||||
|
||||
// this.$refs['ecrf'].setAnnotation({ annotation, toolName: annotation.metadata.toolName })
|
||||
this.$refs[`ecrf_${this.lastViewportTaskId}`][0].setAnnotation({ annotation, toolName: annotation.metadata.toolName })
|
||||
this.markedSeriesIds.push(series.Id)
|
||||
}
|
||||
|
||||
this.setToolsPassive()
|
||||
},
|
||||
annotationModifiedListener(e) {
|
||||
|
@ -1147,7 +1160,16 @@ export default {
|
|||
this.setToolsPassive()
|
||||
},
|
||||
annotationRemovedListener(e) {
|
||||
|
||||
if (this.readingTaskState === 2) return
|
||||
const { annotation } = e.detail
|
||||
if (!annotation) return
|
||||
if (annotation.visitTaskId === this.taskInfo.VisitTaskId && annotation.seriesId) {
|
||||
const index = this.markedSeriesIds.indexOf(annotation.seriesId)
|
||||
if (index !== -1) {
|
||||
this.markedSeriesIds.splice(index, 1)
|
||||
}
|
||||
}
|
||||
console.log(this.markedSeriesIds)
|
||||
},
|
||||
removeAnnotation(annotation) {
|
||||
cornerstoneTools.annotation.state.removeAnnotation(annotation.annotationUID)
|
||||
|
@ -1433,11 +1455,11 @@ export default {
|
|||
viewport.render()
|
||||
} else if (type === 4) {
|
||||
const { rotation } = viewport.getViewPresentation()
|
||||
viewport.setViewPresentation({ rotation: rotation + 90 })
|
||||
viewport.setViewPresentation({ rotation: rotation === 0 ? 270 : rotation - 90 })
|
||||
viewport.render()
|
||||
} else if (type === 5) {
|
||||
const { rotation } = viewport.getViewPresentation()
|
||||
viewport.setViewPresentation({ rotation: rotation - 90 })
|
||||
viewport.setViewPresentation({ rotation: rotation + 90 })
|
||||
viewport.render()
|
||||
}
|
||||
this.$refs[`viewport-${this.activeViewportIndex}`][0].rotateOrientationMarkers(type)
|
||||
|
@ -1624,10 +1646,9 @@ export default {
|
|||
bindHotKey() {
|
||||
const container = this.$refs['container']
|
||||
container.addEventListener('keydown', event => {
|
||||
event.preventDefault()
|
||||
var idx = this.hotKeyList.findIndex(i => i.code === event.code && i.ctrlKey === event.ctrlKey && i.shiftKey === event.shiftKey && i.altKey === event.altKey)
|
||||
let idx = this.hotKeyList.findIndex(i => i.code === event.code && i.ctrlKey === event.ctrlKey && i.shiftKey === event.shiftKey && i.altKey === event.altKey)
|
||||
if (idx === -1) return
|
||||
var shortcutKeyEnum = this.hotKeyList[idx].shortcutKeyEnum
|
||||
let shortcutKeyEnum = this.hotKeyList[idx].shortcutKeyEnum
|
||||
|
||||
if (shortcutKeyEnum === 1) {
|
||||
// 前一图像视口
|
||||
|
@ -1705,6 +1726,9 @@ export default {
|
|||
const viewportIds = ['viewport-0', 'viewport-1', 'viewport-2', 'viewport-3']
|
||||
renderingEngine.renderViewports(viewportIds)
|
||||
}
|
||||
event.stopImmediatePropagation()
|
||||
event.stopPropagation()
|
||||
event.preventDefault()
|
||||
})
|
||||
},
|
||||
// 重置热键信息
|
||||
|
@ -2006,13 +2030,16 @@ export default {
|
|||
return
|
||||
} else if (Object.keys(firstAddSeries).length !== 0 && Object.keys(currentAddSeries).length === 0) {
|
||||
// 当前访视序列与首次出现病灶的序列对齐
|
||||
currentAddSeries = this.getRelatedSeries(this.visitTaskList[index], firstAddSeries)
|
||||
// currentAddSeries = this.getRelatedSeries(this.visitTaskList[index], firstAddSeries)
|
||||
|
||||
if (Object.keys(currentAddSeries).length === 0) {
|
||||
// 未找到对齐的,则就显示当前最后一个窗口现实的序列信息
|
||||
// if (Object.keys(currentAddSeries).length === 0) {
|
||||
// // 未找到对齐的,则就显示当前最后一个窗口现实的序列信息
|
||||
// currentAddSeries = this.$refs[`viewport-${this.cells.length - 1}`][0].series
|
||||
// }
|
||||
|
||||
// 显示当前序列
|
||||
currentAddSeries = this.$refs[`viewport-${this.cells.length - 1}`][0].series
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 无序
|
||||
currentAddSeries = this.getMarkedSeries(this.visitTaskList[index].StudyList, obj)
|
||||
|
@ -2026,6 +2053,7 @@ export default {
|
|||
if (i === this.cells.length - 1) {
|
||||
this.$refs[`viewport-${i}`][0].setSeriesInfo(currentAddSeries, true)
|
||||
this.activeViewportIndex = i
|
||||
this.$refs[currentAddSeries.TaskInfo.VisitTaskId][0].setSeriesActive(currentAddSeries.StudyIndex, currentAddSeries.SeriesIndex)
|
||||
} else {
|
||||
this.$refs[`viewport-${i}`][0].setSeriesInfo(firstAddSeries, true)
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
<div class="dicom-list-container">
|
||||
<div
|
||||
v-for="(series, i) in study.SeriesList"
|
||||
:key="i"
|
||||
:key="series.Id"
|
||||
style="position:relative;margin-top:1px;"
|
||||
@click="activeSeries(series, i, index)"
|
||||
>
|
||||
|
@ -80,8 +80,8 @@
|
|||
</span>
|
||||
<span v-show="series.LoadedImageCount >= series.InstanceCount">{{ series.Modality }}: {{ series.InstanceCount }} image</span>
|
||||
</div>
|
||||
<div v-show="series.IsBeMark">
|
||||
<i class="el-icon-star-on" style="font-size: 16px;color: #ff5722;" />
|
||||
<div style="line-height: 12px;">
|
||||
<i v-show="series.IsBeMark || markedSeriesIds.includes(series.Id)" class="el-icon-star-on" style="font-size: 12px;color: #ff5722;" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -106,6 +106,12 @@ export default {
|
|||
default() {
|
||||
return {}
|
||||
}
|
||||
},
|
||||
markedSeriesIds: {
|
||||
type: Array,
|
||||
default() {
|
||||
return []
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
|
|
|
@ -110,6 +110,9 @@ import {
|
|||
utilities as csUtils
|
||||
} from '@cornerstonejs/core'
|
||||
import * as cornerstoneTools from '@cornerstonejs/tools'
|
||||
const {
|
||||
ToolGroupManager
|
||||
} = cornerstoneTools
|
||||
import { vec3 } from 'gl-matrix'
|
||||
export default {
|
||||
name: 'ImageViewport',
|
||||
|
@ -202,6 +205,9 @@ export default {
|
|||
// this.imageInfo.wwwc = `${Math.round(detail.image.windowWidth)}/${Math.round(detail.image.windowCenter)}`
|
||||
this.getOrientationMarker()
|
||||
this.$emit('renderAnnotations', this.series)
|
||||
// const toolGroupId = `viewport-${this.viewportIndex}`
|
||||
// const toolGroup = ToolGroupManager.getToolGroup(toolGroupId)
|
||||
// toolGroup.setToolEnabled('ScaleOverlay');
|
||||
},
|
||||
voiModified(e) {
|
||||
const renderingEngine = getRenderingEngine(this.renderingEngineId)
|
||||
|
@ -284,7 +290,7 @@ export default {
|
|||
const viewport = renderingEngine.getViewport(this.viewportId)
|
||||
|
||||
if (isPlay) {
|
||||
cornerstoneTools.utilities.cine.playClip(viewport.element, { framesPerSecond })
|
||||
cornerstoneTools.utilities.cine.playClip(viewport.element, { framesPerSecond, loop: false })
|
||||
} else {
|
||||
cornerstoneTools.utilities.cine.stopClip(viewport.element)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue