diff --git a/src/api/reading.js b/src/api/reading.js
index a7fa5a6d..66473ab8 100644
--- a/src/api/reading.js
+++ b/src/api/reading.js
@@ -251,3 +251,11 @@ export function uploadOCTLipidAngleTemplate(param) {
data: param
})
}
+
+export function saveTableQuestionMark(param) {
+ return request({
+ url: `/ReadingImageTask/saveTableQuestionMark`,
+ method: 'post',
+ data: param
+ })
+}
diff --git a/src/store/modules/reading.js b/src/store/modules/reading.js
index 4a411426..51b7fd20 100644
--- a/src/store/modules/reading.js
+++ b/src/store/modules/reading.js
@@ -70,6 +70,12 @@ function getQuestions(questions) {
answerObj.angle = angle
answerObj.saveTypeEnum = isNaN(parseFloat(angle)) ? 1 : 2
}
+ } else if (criterionType === 21) {
+ // MRI-PDFF
+ let isMeasurable = getQuestionAnswer(item.TableQuestions.Questions, 1105, answerObj)
+ answerObj.isMeasurable = isMeasurable
+ answerObj.mean = getQuestionAnswer(item.TableQuestions.Questions, 1104, answerObj)
+ answerObj.saveTypeEnum = isNaN(parseFloat(isMeasurable)) ? 1 : 2
} else {
answerObj.lesionPart = getQuestionAnswer(item.TableQuestions.Questions, 8, answerObj)
answerObj.loctation = getQuestionAnswer(item.TableQuestions.Questions, 6, answerObj)
@@ -507,6 +513,7 @@ const actions = {
})
},
getMeasuredData({ state }, visitTaskId) {
+ console.log('getMeasuredData')
return new Promise(resolve => {
var index = state.visitTaskList.findIndex(i => i.VisitTaskId === visitTaskId)
if (state.visitTaskList[index].measureDataInit) {
@@ -523,6 +530,13 @@ const actions = {
el.OtherMeasureData = JSON.parse(el.OtherMeasureData)
el.OtherMeasureData.data.remark = el.OrderMarkName
}
+ // if (el.TableQuestionMarkList.length > 0) {
+ // let list = el.TableQuestionMarkList.map(i=>{
+ // i.MeasureData = i.MeasureData ? JSON.parse(i.MeasureData) : ''
+ // return i
+ // })
+ // el.TableQuestionMarkList = list
+ // }
arr.push(el)
})
state.visitTaskList[index].MeasureData = arr
@@ -606,6 +620,13 @@ const actions = {
el.MeasureData = JSON.parse(el.MeasureData)
el.MeasureData.data.remark = el.OrderMarkName
}
+ // if (el.TableQuestionMarkList.length > 0) {
+ // let list = el.TableQuestionMarkList.map(i=>{
+ // i.MeasureData = i.MeasureData ? JSON.parse(i.MeasureData) : ''
+ // return i
+ // })
+ // el.TableQuestionMarkList = list
+ // }
arr.push(el)
})
state.visitTaskList[index].MeasureData = arr
@@ -623,27 +644,40 @@ const actions = {
resolve(noneDicomMeasureData)
})
},
- addMeasuredData({ state }, obj) {
+ addMeasuredData({ state }, obj) {
return new Promise(resolve => {
+ const criterionType = parseInt(localStorage.getItem('CriterionType'))
var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId)
var measureData = state.visitTaskList[index].MeasureData
// var idx = measureData.findIndex(item => item.MeasureData.uuid === obj.data.MeasureData.data.uuid)
- var idx = measureData.findIndex(item => item.QuestionId === obj.data.QuestionId && item.RowIndex === obj.data.RowIndex)
- if (idx > -1) {
- for (const k in state.visitTaskList[index].MeasureData[idx]) {
- if (k !== 'Id' && obj.data[k]) {
- state.visitTaskList[index].MeasureData[idx][k] = obj.data[k]
+
+ if (criterionType === 21) {
+ let i = measureData.findIndex(i=>i.TableQuestionId === obj.data.TableQuestionId)
+ if (i > -1) {
+ for (const k in state.visitTaskList[index].MeasureData[i]) {
+ if (k !== 'Id' && obj.data[k]) {
+ state.visitTaskList[index].MeasureData[i][k] = obj.data[k]
+ }
}
+ } else {
+ state.visitTaskList[index].MeasureData.push(obj.data)
}
-
- // state.visitTaskList[index].MeasureData[idx].MeasureData = obj.data.MeasureData
- console.log('更新标记成功', idx)
} else {
- state.visitTaskList[index].MeasureData.push(obj.data)
- console.log('新增标记成功')
+ var idx = measureData.findIndex(item => item.QuestionId === obj.data.QuestionId && item.RowIndex === obj.data.RowIndex)
+ if (idx > -1) {
+ for (const k in state.visitTaskList[index].MeasureData[idx]) {
+ if (k !== 'Id' && obj.data[k]) {
+ state.visitTaskList[index].MeasureData[idx][k] = obj.data[k]
+ }
+ }
+ console.log('更新标记成功', idx)
+ } else {
+ state.visitTaskList[index].MeasureData.push(obj.data)
+ console.log('新增标记成功')
+ }
}
+
// sessionStorage.setItem('visitTaskList', state.visitTaskList.length > 0 ? JSON.stringify(state.visitTaskList) : '')
- console.log(state.visitTaskList)
resolve()
})
},
@@ -738,32 +772,45 @@ const actions = {
return new Promise(resolve => {
var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId)
var measureData = state.visitTaskList[index].MeasureData
-
- // var uuid = obj.measureData.data.uuid
- // var idx = measureData.findIndex(item => item.MeasureData && item.MeasureData.data && item.MeasureData.data.uuid === uuid)
- var idx = measureData.findIndex(item => item.QuestionId === obj.questionId && item.RowIndex === obj.rowIndex)
- if (idx > -1) {
- if (measureData[idx].FristAddTaskId) {
- measureData[idx].MeasureData = ''
- console.log('清除标记成功', idx)
- } else {
- measureData.splice(idx, 1)
- console.log('移除标记成功', idx)
- }
- state.visitTaskList[index].MeasureData = measureData
- } else if (obj.orderMarkName) {
+ const criterionType = parseInt(localStorage.getItem('CriterionType'))
+ if (criterionType === 21) {
const i = measureData.findIndex(item => item.QuestionId === obj.questionId && item.OrderMarkName === obj.orderMarkName)
- if (i > -1) {
- if (measureData[i].FristAddTaskId) {
- measureData[i].MeasureData = ''
- console.log('清除标记成功', i)
- } else {
- measureData.splice(i, 1)
- console.log('移除标记成功', i)
+ if (i > -1) {
+ if (measureData[i].FristAddTaskId) {
+ measureData[i].MeasureData = ''
+ console.log('清除标记成功', i)
+ } else {
+ measureData.splice(i, 1)
+ console.log('移除标记成功', i)
+ }
}
- }
state.visitTaskList[index].MeasureData = measureData
+ } else {
+ var idx = measureData.findIndex(item => item.QuestionId === obj.questionId && item.RowIndex === obj.rowIndex)
+ if (idx > -1) {
+ if (measureData[idx].FristAddTaskId) {
+ measureData[idx].MeasureData = ''
+ console.log('清除标记成功', idx)
+ } else {
+ measureData.splice(idx, 1)
+ console.log('移除标记成功', idx)
+ }
+ state.visitTaskList[index].MeasureData = measureData
+ } else if (obj.orderMarkName) {
+ const i = measureData.findIndex(item => item.QuestionId === obj.questionId && item.OrderMarkName === obj.orderMarkName)
+ if (i > -1) {
+ if (measureData[i].FristAddTaskId) {
+ measureData[i].MeasureData = ''
+ console.log('清除标记成功', i)
+ } else {
+ measureData.splice(i, 1)
+ console.log('移除标记成功', i)
+ }
+ }
+ state.visitTaskList[index].MeasureData = measureData
+ }
}
+
// if (idx > -1) {
// measureData.splice(idx, 1)
@@ -1034,7 +1081,7 @@ const actions = {
}
},
setImageloadedInfo({ state }, obj) {
- console.log('setImageloadedInfo', obj)
+ // console.log('setImageloadedInfo', obj)
// if(obj.instance === '20dd8fc9-51b0-ec63-942b-cb3006c72650')
// var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId)
// // const prefetchInstanceCount = state.visitTaskList[index].StudyList[obj.studyIndex].SeriesList[obj.seriesIndex].prefetchInstanceCount
diff --git a/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue b/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue
index 9c157e11..0bc5056d 100644
--- a/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue
+++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue
@@ -148,12 +148,14 @@ 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 ProbeTool from '@/views/trials/trials-panel/reading/dicoms/tools/Probe/ProbeTool'
// 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'
import invertOrientationString from '@/views/trials/trials-panel/reading/dicoms/tools/OrientationMarkers/invertOrientationString'
// import calculateLongestAndShortestDiameters from '@/views/trials/trials-panel/reading/dicoms/tools/Bidirectional/calculateLongestAndShortestDiameters'
import calculateSUV from '@/views/trials/trials-panel/reading/dicoms/tools/calculateSUV'
+// import { ProbeTool } from '@cornerstonejs/tools'
cornerstoneTools.external.cornerstone = cornerstone
cornerstoneTools.external.Hammer = Hammer
cornerstoneTools.external.cornerstoneMath = cornerstoneMath
@@ -799,8 +801,8 @@ export default {
measureData.ww = Math.round(viewport.voi.windowWidth)
measureData.wc = Math.round(viewport.voi.windowCenter)
var questionInfo = this.measureData[idx]
- const canvas = this.canvas.querySelector('canvas')
- measureData.pictureBaseStr = canvas.toDataURL('image/png', 1)
+ // const canvas = this.canvas.querySelector('canvas')
+ // measureData.pictureBaseStr = canvas.toDataURL('image/png', 1)
measureData.data.active = false
this.$emit('modifyMeasureData', { measureData, questionInfo })
// e.stopImmediatePropagation()
@@ -1000,26 +1002,14 @@ export default {
if (i > -1) {
var idx = this.measureData.findIndex(item => item.MeasureData && item.MeasureData.data && item.MeasureData.data.uuid === toolState.data[i].uuid)
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.disabledMarks.indexOf(markName) === -1 || !this.disabledMarks) {
- // if (toolType === 'Bidirectional') {
- // const {
- // longestDiameter,
- // shortestDiameter
- // } = calculateLongestAndShortestDiameters(toolState.data[i], image, this.digitPlaces)
- // toolState.data[i].longestDiameter = longestDiameter
- // toolState.data[i].shortestDiameter = shortestDiameter
- // }
- // if (toolType === 'Length') {
- // toolState.data[i].length = this.calculateLenth(toolState.data[i])
- // }
var questionInfo = this.measureData[idx]
- const canvas = this.canvas.querySelector('canvas')
- measureData.pictureBaseStr = canvas.toDataURL('image/png', 1)
+ // const canvas = this.canvas.querySelector('canvas')
+ // measureData.pictureBaseStr = canvas.toDataURL('image/png', 1)
measureData.studyId = this.stack.studyId
measureData.seriesId = this.stack.seriesId
measureData.instanceId = instanceId
@@ -1031,6 +1021,10 @@ export default {
measureData.ww = Math.round(viewport.voi.windowWidth)
measureData.wc = Math.round(viewport.voi.windowCenter)
measureData.data.active = false
+ var criterionType = parseInt(localStorage.getItem('CriterionType'))
+ if (criterionType === 21) {
+ measureData.tableQuestionId = this.measureData[idx].TableQuestionId
+ }
this.$emit('modifyMeasureData', { measureData, questionInfo })
}
}
@@ -1161,6 +1155,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 === 'Probe' && parseInt(localStorage.getItem('CriterionType')) === 21) {
+ cornerstoneTools.addToolForElement(element, ProbeTool, { configuration: { fixedRadius: 5, handleRadius: true, drawHandlesOnHover: true, hideHandlesIfMoving: true, digits: this.digitPlaces }})
} else {
cornerstoneTools.addToolForElement(element, apiTool)
}
@@ -1351,8 +1347,8 @@ export default {
measureData.ww = Math.round(viewport.voi.windowWidth)
measureData.wc = Math.round(viewport.voi.windowCenter)
- const canvas = this.canvas.querySelector('canvas')
- measureData.pictureBaseStr = canvas.toDataURL('image/png', 1)
+ // const canvas = this.canvas.querySelector('canvas')
+ // measureData.pictureBaseStr = canvas.toDataURL('image/png', 1)
this.$emit('setMeasureData', measureData)
cornerstoneTools.setToolPassiveForElement(this.canvas, e.detail.toolName)
} else if (e.detail.toolName === 'Bidirectional') {
@@ -1367,8 +1363,22 @@ export default {
measureData.location = this.dicomInfo.location
measureData.ww = Math.round(viewport.voi.windowWidth)
measureData.wc = Math.round(viewport.voi.windowCenter)
- const canvas = this.canvas.querySelector('canvas')
- measureData.pictureBaseStr = canvas.toDataURL('image/png', 1)
+ // const canvas = this.canvas.querySelector('canvas')
+ // measureData.pictureBaseStr = canvas.toDataURL('image/png', 1)
+ this.$emit('setMeasureData', measureData)
+ cornerstoneTools.setToolPassiveForElement(this.canvas, e.detail.toolName)
+ } else if (e.detail.toolName === 'Probe') {
+ const measureData = {}
+ measureData.studyId = this.stack.studyId
+ measureData.seriesId = this.stack.seriesId
+ measureData.instanceId = instanceId
+ measureData.frame = this.stack.frame ? this.stack.frame : 0
+ measureData.data = e.detail.measurementData
+ measureData.type = e.detail.toolName
+ measureData.thick = this.dicomInfo.thick
+ measureData.location = this.dicomInfo.location
+ measureData.ww = Math.round(viewport.voi.windowWidth)
+ measureData.wc = Math.round(viewport.voi.windowCenter)
this.$emit('setMeasureData', measureData)
cornerstoneTools.setToolPassiveForElement(this.canvas, e.detail.toolName)
} else if (!e.detail.toolName) {
@@ -1448,7 +1458,7 @@ export default {
},
onMeasurementmodified(e) {
// 移动
- // console.log('modified')
+ console.log('modified')
if (this.readingTaskState >= 2) return
const { measurementData, toolType } = e.detail
var element = cornerstone.getEnabledElement(this.canvas)
@@ -1466,8 +1476,8 @@ export default {
var markName = this.measureData[idx].OrderMarkName
if (this.disabledMarks.indexOf(markName) === -1 || !this.disabledMarks) {
var questionInfo = this.measureData[idx]
- const canvas = this.canvas.querySelector('canvas')
- measureData.pictureBaseStr = canvas.toDataURL('image/png', 1)
+ // const canvas = this.canvas.querySelector('canvas')
+ // measureData.pictureBaseStr = canvas.toDataURL('image/png', 1)
measureData.studyId = this.stack.studyId
measureData.seriesId = this.stack.seriesId
measureData.instanceId = instanceId
@@ -1479,6 +1489,10 @@ export default {
measureData.ww = Math.round(viewport.voi.windowWidth)
measureData.wc = Math.round(viewport.voi.windowCenter)
measureData.data.active = false
+ var criterionType = parseInt(localStorage.getItem('CriterionType'))
+ if (criterionType === 21) {
+ measureData.tableQuestionId = this.measureData[idx].TableQuestionId
+ }
this.$emit('modifyMeasureData', { measureData, questionInfo })
}
}
diff --git a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue
index 64973ddc..877d4408 100644
--- a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue
+++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue
@@ -493,6 +493,14 @@
:is-show="isShow"
:is-reading-show-subject-info="isReadingShowSubjectInfo"
/>
+