diff --git a/src/store/modules/reading.js b/src/store/modules/reading.js
index cfc74e05..1467ddc9 100644
--- a/src/store/modules/reading.js
+++ b/src/store/modules/reading.js
@@ -499,7 +499,7 @@ const actions = {
// var uuid = obj.measureData.data.uuid
// var idx = measureData.findIndex(item => item.MeasureData && item.MeasureData.data && item.MeasureData.data.uuid === uuid)
- console.log(obj, measureData)
+ // console.log(obj, measureData)
var idx = measureData.findIndex(item => item.Id === obj.questionInfo.Id)
console.log('idx', idx)
if (idx > -1) {
@@ -510,7 +510,9 @@ const actions = {
measureData.splice(idx, 1)
console.log('移除标记成功', idx)
}
- await deleteCustomTag(obj.questionInfo.Id)
+ if (obj.questionInfo.Id) {
+ await deleteCustomTag(obj.questionInfo.Id)
+ }
state.visitTaskList[index].MeasureData = measureData
} else if (obj.orderMarkName) {
const i = measureData.findIndex(item => item.QuestionId === obj.questionId && item.OrderMarkName === obj.orderMarkName)
@@ -523,7 +525,9 @@ const actions = {
console.log('移除标记成功', i)
}
}
- await deleteCustomTag(obj.questionInfo.Id)
+ if (obj.questionInfo.Id) {
+ await deleteCustomTag(obj.questionInfo.Id)
+ }
state.visitTaskList[index].MeasureData = measureData
}
// sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '')
diff --git a/src/views/dicom-show/dicom-study.vue b/src/views/dicom-show/dicom-study.vue
index 59bc1e8b..b51e5315 100644
--- a/src/views/dicom-show/dicom-study.vue
+++ b/src/views/dicom-show/dicom-study.vue
@@ -225,8 +225,8 @@ export default {
},
beforeDestroy() {
requestPoolManager.stopTaskTimer()
- window.removeEventListener('beforeunload', e => {
- cornerstone.imageCache.purgeCache()
+ window.removeEventListener('beforeunload', e => {
+ cornerstone.imageCache.purgeCache()
requestPoolManager.resetRequestPool()
})
},
diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue
index 94ca0017..4e754cae 100644
--- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue
+++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue
@@ -13,7 +13,7 @@
-
+
@@ -146,6 +146,7 @@ import LengthTool from '@/views/trials/trials-panel/reading/dicoms/tools/Length/
import BidirectionalTool from '@/views/trials/trials-panel/reading/dicoms/tools/Bidirectional/BidirectionalTool'
import ArrowAnnotateTool from '@/views/trials/trials-panel/reading/dicoms/tools/ArrowAnnotate/ArrowAnnotateTool'
import RectangleRoiTool from '@/views/trials/trials-panel/reading/dicoms/tools/RectangleRoi/RectangleRoiTool'
+import CircleRoiTool from '@/views/trials/trials-panel/reading/dicoms/tools/CircleRoi/CircleRoiTool'
// import OrientationMarkersTool from '@/views/trials/trials-panel/reading/dicoms/tools/OrientationMarkers/OrientationMarkersTool'
import ScaleOverlayTool from '@/views/trials/trials-panel/reading/dicoms/tools/ScaleOverlay/ScaleOverlayTool'
import getOrientationString from '@/views/trials/trials-panel/reading/dicoms/tools/OrientationMarkers/getOrientationString'
@@ -257,7 +258,7 @@ export default {
series: '',
ToolStateManager: null,
renderedMeasured: [],
- measuredTools: ['Length', 'Bidirectional', 'ArrowAnnotate', 'RectangleRoi'],
+ measuredTools: ['Length', 'Bidirectional', 'ArrowAnnotate', 'RectangleRoi', 'CircleRoi'],
measureData: [],
selectedLesion: null,
activeTool: 0, // 0:enable 1:passive 2:active
@@ -297,8 +298,8 @@ export default {
],
scrollSyncInfo: { offset: 0 },
- hideMeasureArr: []
-
+ hideMeasureArr: [],
+ enabledElement: null
}
},
computed: {
@@ -398,7 +399,8 @@ export default {
cornerstone.updateImage(this.canvas, true)
})
DicomEvent.$on('updateImage', () => {
- cornerstone.updateImage(this.canvas)
+ if (!this.canvas) return
+ this.updateImage()
})
// this.canvas.addEventListener('keydown', event => {
// event.preventDefault()
@@ -541,7 +543,7 @@ export default {
this.mousePosition.y = currentPoints.image.y + 1
this.mousePosition.mo = stats.mo
this.mousePosition.suv = stats.suv
- if (this.isFirstChangeTask && this.pointNearTool(e)) {
+ if (this.pointNearTool(e)) {
e.stopImmediatePropagation()
e.stopPropagation()
e.preventDefault()
@@ -550,18 +552,14 @@ export default {
mouseUp(e) {
console.log('mouseUp')
- if (this.readingTaskState >= 2) return
+ // if (this.readingTaskState >= 2) return
this.image = e.detail.image
this.getToolStateInfo(e)
},
mouseDown(e) {
this.image = e.detail.image
var pointNearTool = this.pointNearTool(e)
- if (this.isFirstChangeTask && pointNearTool) {
- e.stopImmediatePropagation()
- e.stopPropagation()
- e.preventDefault()
- } else if (this.activeToolName === 'Length' || this.activeToolName === 'Bidirectional' && this.readingTaskState < 2) {
+ if (this.activeToolName === 'Length' || this.activeToolName === 'Bidirectional') {
if (!e.detail.image.columnPixelSpacing || !e.detail.image.rowPixelSpacing) {
// '该影像不具备测量长度所需的必要数据,不能进行长度测量。请选择其他工具进行标注。'
this.$confirm(this.$t('trials:reading:warnning:msg56'), '', {
@@ -574,6 +572,10 @@ export default {
e.stopPropagation()
e.preventDefault()
}
+ } else if (pointNearTool) {
+ e.stopImmediatePropagation()
+ e.stopPropagation()
+ e.preventDefault()
}
},
pointNearTool(e) {
@@ -600,8 +602,8 @@ export default {
getDisabledMarks(measureDatas) {
var arr = []
measureDatas.map(i => {
- if ((i.LesionType === 0 || i.LesionType === 1 || i.LesionType === 7) && i.IsFirstChangeTask) {
- arr.push(i.OrderMarkName)
+ if (i.Id && this.readingTaskState >= 2) {
+ arr.push(i.MeasureData.data.remark)
}
})
return arr
@@ -882,7 +884,9 @@ export default {
} else if (this.activeTool === 1 && this.readingTaskState < 2) {
cornerstoneTools.setToolPassiveForElement(element, data.MeasureData.type, { mouseButtonMask: 1 })
} else {
- cornerstoneTools.setToolEnabledForElement(element, data.MeasureData.type, { mouseButtonMask: 1 })
+ // cornerstoneTools.setToolEnabledForElement(element, data.MeasureData.type, { mouseButtonMask: 1 })
+ cornerstoneTools.setToolPassiveForElement(element, data.MeasureData.type, { mouseButtonMask: 1 })
+
}
// console.log('renderMeasuredData', this.stack.frame)
@@ -986,15 +990,14 @@ export default {
if (idx > -1) {
console.log('mouseClick')
DicomEvent.$emit('setCollapseActive', this.measureData[idx])
- if (this.readingTaskState < 2) {
const measureData = {}
var markName = this.measureData[idx].OrderMarkName
- if (this.activeToolName === 'Eraser') {
- var questionInfo = this.measureData[idx]
+ if (this.activeToolName === 'Eraser' && this.disabledMarks.indexOf(markName) === -1) {
+ const questionInfo = this.measureData[idx]
this.$emit('moveMeasureData', { measureData, questionInfo })
}
if ((this.disabledMarks.indexOf(markName) === -1 || !this.disabledMarks) && this.activeToolName !== 'Eraser') {
- var questionInfo = this.measureData[idx]
+ const questionInfo = this.measureData[idx]
const canvas = this.canvas.querySelector('canvas')
measureData.pictureBaseStr = canvas.toDataURL('image/png', 1)
measureData.studyId = this.stack.studyId
@@ -1010,7 +1013,7 @@ export default {
measureData.data.active = false
this.$emit('modifyMeasureData', { measureData, questionInfo })
}
- }
+
break
}
}
@@ -1049,11 +1052,7 @@ export default {
var idx = this.visitTaskList.findIndex(i => i.VisitTaskId === dicomSeries.visitTaskId)
this.stack.visitTaskNum = this.visitTaskList[idx].VisitTaskNum
this.isFirstChangeTask = this.visitTaskList[idx].IsFirstChangeTask
- if (this.isFirstChangeTask) {
- this.disabledMarks = this.getDisabledMarks(this.visitTaskList[idx].MeasureData)
- } else {
- this.disabledMarks = []
- }
+ this.disabledMarks = this.getDisabledMarks(this.visitTaskList[idx].MeasureData)
this.maxVistNum = this.visitTaskList[this.visitTaskList.length - 1].VisitTaskNum
this.minVistNum = this.visitTaskList[0].VisitTaskNum
@@ -1114,7 +1113,6 @@ export default {
if (!this.toolState.initialized) {
this.toolState.initialized = true
const toolButtons = document.querySelectorAll('[data-tool]')
-
// const scope = this
Array.from(toolButtons).forEach((toolBtn) => {
// Add the tool
@@ -1134,6 +1132,8 @@ export default {
cornerstoneTools.addToolForElement(element, ArrowAnnotateTool, { configuration: { allowEmptyLabel: true, handleRadius: false, drawHandlesOnHover: true, hideHandlesIfMoving: true }})
} else if (toolName === 'RectangleRoi') {
cornerstoneTools.addToolForElement(element, RectangleRoiTool, { configuration: { allowEmptyLabel: true, handleRadius: false, drawHandlesOnHover: true, hideHandlesIfMoving: true }})
+ } else if (toolName === 'CircleRoi') {
+ cornerstoneTools.addToolForElement(element, CircleRoiTool, { configuration: { handleRadius: false, drawHandlesOnHover: true, hideHandlesIfMoving: true, digits: this.digitPlaces, drawHandles: true, showMinMax: true }})
} else {
cornerstoneTools.addToolForElement(element, apiTool)
}
@@ -1221,8 +1221,8 @@ export default {
if (this.dicomInfo.thick) {
this.dicomInfo.thick = this.dicomInfo.thick.toFixed(2)
}
- let newImageIdIndex = this.stack.imageIds.findIndex(i=>i===imageId)
- if(newImageIdIndex === -1) return
+ const newImageIdIndex = this.stack.imageIds.findIndex(i => i === imageId)
+ if (newImageIdIndex === -1) return
this.stack.currentImageIdIndex = newImageIdIndex
this.stack.imageIdIndex = newImageIdIndex
this.series.imageIdIndex = newImageIdIndex
@@ -1298,7 +1298,7 @@ export default {
this.setMarkers()
},
onMeasurementcompleted(e) {
- if (this.readingTaskState >= 2) return
+ // if (this.readingTaskState >= 2) return
var element = cornerstone.getEnabledElement(this.canvas)
var viewport = element.viewport
@@ -1311,7 +1311,7 @@ export default {
var instanceId = imageInfo.instanceId
var frame = imageInfo.frame
this.stack.frame = !isNaN(parseInt(frame)) ? parseInt(frame) : 0
- if (e.detail.toolName === 'Length' || e.detail.toolName === 'ArrowAnnotate' || e.detail.toolName === 'RectangleRoi') {
+ if (e.detail.toolName === 'Length' || e.detail.toolName === 'ArrowAnnotate' || e.detail.toolName === 'RectangleRoi' || e.detail.toolName === 'CircleRoi') {
const measureData = {}
measureData.studyId = this.stack.studyId
measureData.seriesId = this.stack.seriesId
@@ -1326,6 +1326,7 @@ export default {
const canvas = this.canvas.querySelector('canvas')
measureData.pictureBaseStr = canvas.toDataURL('image/png', 1)
+ measureData.temporary = this.readingTaskState >= 2
this.$emit('setMeasureData', measureData)
cornerstoneTools.setToolPassiveForElement(this.canvas, e.detail.toolName)
} else if (e.detail.toolName === 'Bidirectional') {
@@ -1342,6 +1343,7 @@ export default {
measureData.wc = Math.round(viewport.voi.windowCenter)
const canvas = this.canvas.querySelector('canvas')
measureData.pictureBaseStr = canvas.toDataURL('image/png', 1)
+ measureData.temporary = this.readingTaskState >= 2
this.$emit('setMeasureData', measureData)
cornerstoneTools.setToolPassiveForElement(this.canvas, e.detail.toolName)
} else if (!e.detail.toolName) {
@@ -1422,7 +1424,7 @@ export default {
onMeasurementmodified(e) {
// 移动
console.log('modified')
- if (this.readingTaskState >= 2) return
+ // if (this.readingTaskState >= 2) return
const { measurementData, toolType } = e.detail
var element = cornerstone.getEnabledElement(this.canvas)
var viewport = element.viewport
@@ -1466,15 +1468,21 @@ export default {
}
},
updateImage(instanceId) {
+ if (!this.canvas) return
var i = this.visitTaskList.findIndex(i => i.VisitTaskId === this.stack.visitTaskId)
this.measureData = this.visitTaskList[i].MeasureData
-
const ToolStateManager = cornerstoneTools.globalImageIdSpecificToolStateManager
-
var element = cornerstone.getEnabledElement(this.canvas)
+ if (!element) return
var { imageId } = element.image
- ToolStateManager.clearImageIdToolState(imageId)
- cornerstone.updateImage(element, true)
+ if (imageId) {
+ ToolStateManager.clearImageIdToolState(imageId)
+ let elements = cornerstone.getEnabledElementsByImageId(imageId)
+ elements.map(el=>{
+ cornerstone.updateImage(el.element)
+ })
+ }
+ // cornerstone.updateImage(element)
},
toggleSeries(evt, type) {
evt.stopImmediatePropagation()
@@ -1756,20 +1764,19 @@ export default {
this.activeToolName = toolName
this.$nextTick(() => {
// console.log(cornerstoneTools.isToolActiveForElement(this.canvas, 'Bidirectional'))
- if (!cornerstoneTools.isToolActiveForElement(this.canvas, toolName)) {
- cornerstoneTools.setToolActiveForElement(this.canvas, toolName, {
- mouseButtonMask: 1
- })
- }
+
if (toolName === 'Zoom') {
cornerstoneTools.setToolActiveForElement(this.canvas, 'Zoom', {
mouseButtonMask: [1, 2]
})
- }
- if (toolName === 'Pan') {
+ } else if (toolName === 'Pan') {
cornerstoneTools.setToolActiveForElement(this.canvas, 'Pan', {
mouseButtonMask: [1, 4]
})
+ } else {
+ cornerstoneTools.setToolActiveForElement(this.canvas, toolName, {
+ mouseButtonMask: 1
+ })
}
})
},
diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue
index 9856780e..ff58527e 100644
--- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue
+++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue
@@ -106,8 +106,7 @@
v-if="item.val === 1"
class="divider"
content-position="center"
- >{{ ` ${$t("trials:reading:title:preset")}` }}
+ >{{ ` ${$t("trials:reading:title:preset")}` }}
@@ -224,8 +223,7 @@
{{ rotate.label }}
+ >{{ rotate.label }}
@@ -318,7 +316,7 @@
{{ tool.text }}
-
{{ tool.disabledReason }}
+
{{ tool.disabledReason }}
{{ tool.text }}
@@ -445,10 +443,10 @@
placement="bottom"
>