脾脏垂直径测量
parent
998c8bc701
commit
22e22c3901
|
@ -789,6 +789,7 @@ export default {
|
||||||
measureData.data = toolState.data[i]
|
measureData.data = toolState.data[i]
|
||||||
measureData.type = toolType
|
measureData.type = toolType
|
||||||
measureData.thick = this.dicomInfo.thick
|
measureData.thick = this.dicomInfo.thick
|
||||||
|
measureData.location = this.dicomInfo.location
|
||||||
var uuid = toolState.data[i].uuid
|
var uuid = toolState.data[i].uuid
|
||||||
var idx = this.measureData.findIndex(item => item.MeasureData && item.MeasureData.data && item.MeasureData.data.uuid === uuid)
|
var idx = this.measureData.findIndex(item => item.MeasureData && item.MeasureData.data && item.MeasureData.data.uuid === uuid)
|
||||||
if (idx > -1) {
|
if (idx > -1) {
|
||||||
|
@ -1036,6 +1037,7 @@ export default {
|
||||||
measureData.data = toolState.data[i]
|
measureData.data = toolState.data[i]
|
||||||
measureData.type = toolType
|
measureData.type = toolType
|
||||||
measureData.thick = this.dicomInfo.thick
|
measureData.thick = this.dicomInfo.thick
|
||||||
|
measureData.location = this.dicomInfo.location
|
||||||
measureData.ww = Math.round(viewport.voi.windowWidth)
|
measureData.ww = Math.round(viewport.voi.windowWidth)
|
||||||
measureData.wc = Math.round(viewport.voi.windowCenter)
|
measureData.wc = Math.round(viewport.voi.windowCenter)
|
||||||
measureData.data.active = false
|
measureData.data.active = false
|
||||||
|
@ -1357,6 +1359,7 @@ export default {
|
||||||
measureData.data = e.detail.measurementData
|
measureData.data = e.detail.measurementData
|
||||||
measureData.type = e.detail.toolName
|
measureData.type = e.detail.toolName
|
||||||
measureData.thick = this.dicomInfo.thick
|
measureData.thick = this.dicomInfo.thick
|
||||||
|
measureData.location = this.dicomInfo.location
|
||||||
measureData.ww = Math.round(viewport.voi.windowWidth)
|
measureData.ww = Math.round(viewport.voi.windowWidth)
|
||||||
measureData.wc = Math.round(viewport.voi.windowCenter)
|
measureData.wc = Math.round(viewport.voi.windowCenter)
|
||||||
|
|
||||||
|
@ -1373,6 +1376,7 @@ export default {
|
||||||
measureData.data = e.detail.measurementData
|
measureData.data = e.detail.measurementData
|
||||||
measureData.type = e.detail.toolName
|
measureData.type = e.detail.toolName
|
||||||
measureData.thick = this.dicomInfo.thick
|
measureData.thick = this.dicomInfo.thick
|
||||||
|
measureData.location = this.dicomInfo.location
|
||||||
measureData.ww = Math.round(viewport.voi.windowWidth)
|
measureData.ww = Math.round(viewport.voi.windowWidth)
|
||||||
measureData.wc = Math.round(viewport.voi.windowCenter)
|
measureData.wc = Math.round(viewport.voi.windowCenter)
|
||||||
const canvas = this.canvas.querySelector('canvas')
|
const canvas = this.canvas.querySelector('canvas')
|
||||||
|
@ -1487,6 +1491,7 @@ export default {
|
||||||
measureData.data = measurementData
|
measureData.data = measurementData
|
||||||
measureData.type = toolType
|
measureData.type = toolType
|
||||||
measureData.thick = this.dicomInfo.thick
|
measureData.thick = this.dicomInfo.thick
|
||||||
|
measureData.location = this.dicomInfo.location
|
||||||
measureData.ww = Math.round(viewport.voi.windowWidth)
|
measureData.ww = Math.round(viewport.voi.windowWidth)
|
||||||
measureData.wc = Math.round(viewport.voi.windowCenter)
|
measureData.wc = Math.round(viewport.voi.windowCenter)
|
||||||
measureData.data.active = false
|
measureData.data.active = false
|
||||||
|
|
|
@ -1118,7 +1118,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
modifyMeasuredData(measureObj) {
|
modifyMeasuredData(measureObj) {
|
||||||
if (measureObj.measureData.data.remark === 'Spleen') {
|
if (measureObj.measureData.data.remark === 'Spleen Tip' || measureObj.measureData.data.remark === 'Spleen Floor') {
|
||||||
this.$refs['ecrf3'].setMeasuredData(measureObj.measureData)
|
this.$refs['ecrf3'].setMeasuredData(measureObj.measureData)
|
||||||
this.isNonTargetMeasurement = false
|
this.isNonTargetMeasurement = false
|
||||||
} else {
|
} else {
|
||||||
|
@ -1133,7 +1133,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 设置测量数据
|
// 设置测量数据
|
||||||
setMeasuredData(measureData) {
|
setMeasuredData(measureData) {
|
||||||
if (this.isNonTargetMeasurement || measureData.data.remark === 'Spleen') {
|
if (this.isNonTargetMeasurement || measureData.data.remark === 'Spleen Tip' || measureData.data.remark === 'Spleen Floor') {
|
||||||
this.$refs['ecrf3'].setMeasuredData(measureData)
|
this.$refs['ecrf3'].setMeasuredData(measureData)
|
||||||
this.isNonTargetMeasurement = false
|
this.isNonTargetMeasurement = false
|
||||||
return
|
return
|
||||||
|
@ -1397,6 +1397,7 @@ export default {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
span{
|
span{
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
|
color: red;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,14 +25,7 @@
|
||||||
]"
|
]"
|
||||||
:class="[question.Type==='group'?'mb':question.Type==='upload'?'uploadWrapper':'']"
|
:class="[question.Type==='group'?'mb':question.Type==='upload'?'uploadWrapper':'']"
|
||||||
>
|
>
|
||||||
<template v-if="question.QuestionType === 48">
|
<template v-if="question.QuestionType === 60 || question.QuestionType === 61">
|
||||||
<!-- question.QuestionType === 51 || question.QuestionType === 52 -->
|
|
||||||
<!-- <el-input
|
|
||||||
v-if="question.Type==='calculation'"
|
|
||||||
v-model="questionForm[question.Id]"
|
|
||||||
disabled
|
|
||||||
style="width: 100px;"
|
|
||||||
/> -->
|
|
||||||
<div style="display: flex;flex-direction: row;justify-content: flex-start;">
|
<div style="display: flex;flex-direction: row;justify-content: flex-start;">
|
||||||
<el-input
|
<el-input
|
||||||
v-if="question.Type==='calculation'"
|
v-if="question.Type==='calculation'"
|
||||||
|
@ -53,7 +46,7 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-else-if="question.QuestionType === 51 || question.QuestionType === 52 || question.QuestionType === 53">
|
<template v-else-if="question.QuestionType === 48 || question.QuestionType === 51 || question.QuestionType === 52 || question.QuestionType === 53">
|
||||||
<el-input
|
<el-input
|
||||||
v-if="question.Type==='calculation'"
|
v-if="question.Type==='calculation'"
|
||||||
v-model="questionForm[question.Id]"
|
v-model="questionForm[question.Id]"
|
||||||
|
|
|
@ -74,6 +74,8 @@ export default {
|
||||||
spleenStatusId: '',
|
spleenStatusId: '',
|
||||||
spleenLengthId: '',
|
spleenLengthId: '',
|
||||||
spleenCommentsId: '',
|
spleenCommentsId: '',
|
||||||
|
spleenTipId: '',
|
||||||
|
spleenFloorId: '',
|
||||||
isBaseLineTask: false,
|
isBaseLineTask: false,
|
||||||
criterionType: null,
|
criterionType: null,
|
||||||
spleenInfo: null,
|
spleenInfo: null,
|
||||||
|
@ -167,13 +169,21 @@ export default {
|
||||||
this.spleenStatusId = v.Id
|
this.spleenStatusId = v.Id
|
||||||
}
|
}
|
||||||
if (v.QuestionType === 48) {
|
if (v.QuestionType === 48) {
|
||||||
// 脾脏长度
|
// 脾脏垂直径
|
||||||
this.spleenLengthId = v.Id
|
this.spleenLengthId = v.Id
|
||||||
}
|
}
|
||||||
if (v.QuestionType === 58) {
|
if (v.QuestionType === 58) {
|
||||||
// 修改脾脏状态备注
|
// 修改脾脏状态备注
|
||||||
this.spleenCommentsId = v.Id
|
this.spleenCommentsId = v.Id
|
||||||
}
|
}
|
||||||
|
if (v.QuestionType === 60) {
|
||||||
|
// 脾尖位置
|
||||||
|
this.spleenTipId = v.Id
|
||||||
|
}
|
||||||
|
if (v.QuestionType === 61) {
|
||||||
|
// 脾底位置
|
||||||
|
this.spleenFloorId = v.Id
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (v.Childrens.length > 0) {
|
if (v.Childrens.length > 0) {
|
||||||
this.setChild(v.Childrens)
|
this.setChild(v.Childrens)
|
||||||
|
@ -210,6 +220,14 @@ export default {
|
||||||
// 修改脾脏状态备注
|
// 修改脾脏状态备注
|
||||||
this.spleenCommentsId = i.Id
|
this.spleenCommentsId = i.Id
|
||||||
}
|
}
|
||||||
|
if (i.QuestionType === 60) {
|
||||||
|
// 脾尖位置
|
||||||
|
this.spleenTipId = i.Id
|
||||||
|
}
|
||||||
|
if (i.QuestionType === 61) {
|
||||||
|
// 脾底位置
|
||||||
|
this.spleenFloorId = i.Id
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (i.Childrens && i.Childrens.length > 0) {
|
if (i.Childrens && i.Childrens.length > 0) {
|
||||||
this.setChild(i.Childrens)
|
this.setChild(i.Childrens)
|
||||||
|
@ -225,17 +243,22 @@ export default {
|
||||||
var currentSpleenStatus = this.questionForm[this.spleenStatusId]
|
var currentSpleenStatus = this.questionForm[this.spleenStatusId]
|
||||||
var currentSpleenLength = this.questionForm[this.spleenLengthId]
|
var currentSpleenLength = this.questionForm[this.spleenLengthId]
|
||||||
currentSpleenStatus = isNaN(parseInt(currentSpleenStatus)) ? null : parseInt(currentSpleenStatus)
|
currentSpleenStatus = isNaN(parseInt(currentSpleenStatus)) ? null : parseInt(currentSpleenStatus)
|
||||||
var idx = this.measurements.findIndex(i => i.QuestionType === 48)
|
var stIdx = this.measurements.findIndex(i => i.QuestionType === 60)
|
||||||
|
var slIdx = this.measurements.findIndex(i => i.QuestionType === 60)
|
||||||
if (currentSpleenLength && currentSpleenStatus === 5) {
|
if (currentSpleenLength && currentSpleenStatus === 5) {
|
||||||
// '脾脏状态为不可评估,不需要添加标记!'
|
// '脾脏状态为不可评估,不需要添加标记!'
|
||||||
this.$alert(this.$t('trials:lugano:message:validSpleen1'), this.$t('trials:lugano:fusionDialog:warning'), {
|
this.$alert(this.$t('trials:lugano:message:validSpleen1'), this.$t('trials:lugano:fusionDialog:warning'), {
|
||||||
callback: _ => {}
|
callback: _ => {}
|
||||||
})
|
})
|
||||||
} else if (currentSpleenLength === 5 && idx > -1 && this.measurements[idx].MeasureData) {
|
} else if (currentSpleenStatus === 5 && ((stIdx > -1 && this.measurements[stIdx].MeasureData) || (slIdx > -1 && this.measurements[slIdx].MeasureData))) {
|
||||||
// 若有标记,状态不可为“无法评估”
|
// 若有标记,状态不可为“无法评估”
|
||||||
this.$alert(this.$t('trials:lugano:message:validSpleen1'), this.$t('trials:lugano:fusionDialog:warning'), {
|
this.$alert(this.$t('trials:lugano:message:validSpleen1'), this.$t('trials:lugano:fusionDialog:warning'), {
|
||||||
callback: _ => {}
|
callback: _ => {}
|
||||||
})
|
})
|
||||||
|
} else if (((stIdx > -1 && this.measurements[stIdx].MeasureData) || (slIdx > -1 && this.measurements[slIdx].MeasureData)) && !currentSpleenLength) {
|
||||||
|
this.$alert(this.$t('trials:lugano:message:validSpleen2'), this.$t('trials:lugano:fusionDialog:warning'), {
|
||||||
|
callback: _ => {}
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
this.saveQuestionsList()
|
this.saveQuestionsList()
|
||||||
}
|
}
|
||||||
|
@ -384,15 +407,14 @@ export default {
|
||||||
const { Id, QuestionType } = obj
|
const { Id, QuestionType } = obj
|
||||||
this.currentQsId = Id
|
this.currentQsId = Id
|
||||||
var idx = this.measurements.findIndex(i => i.QuestionId === Id)
|
var idx = this.measurements.findIndex(i => i.QuestionId === Id)
|
||||||
var orderMarkName = QuestionType === 48 ? 'Spleen' : ''
|
var orderMarkName = QuestionType === 60 ? 'Spleen Tip' : QuestionType === 61 ? 'Spleen Floor' : ''
|
||||||
if (idx === -1) {
|
if (idx === -1) {
|
||||||
// 脾脏长度(48); 肝脏血池SUVmax(51); 纵膈血池SUVmax(52)
|
|
||||||
this.measurements.push({ QuestionId: Id, QuestionType: QuestionType, StudyId: '', SeriesId: '', InstanceId: '', MarkTool: '', PicturePath: '', NumberOfFrames: '', MeasureData: '', OrderMarkName: orderMarkName })
|
this.measurements.push({ QuestionId: Id, QuestionType: QuestionType, StudyId: '', SeriesId: '', InstanceId: '', MarkTool: '', PicturePath: '', NumberOfFrames: '', MeasureData: '', OrderMarkName: orderMarkName })
|
||||||
}
|
}
|
||||||
|
|
||||||
// 脾脏长度 直径测量
|
// 脾脏长度 直径测量
|
||||||
this.$emit('setNonTargetMeasurementStatus', { status: true })
|
this.$emit('setNonTargetMeasurementStatus', { status: true })
|
||||||
DicomEvent.$emit('imageLocation', { questionId: Id, visitTaskId: this.visitTaskId, lesionName: orderMarkName, markTool: 'Length', readingTaskState: this.readingTaskState, isMarked: false })
|
DicomEvent.$emit('imageLocation', { questionId: Id, visitTaskId: this.visitTaskId, lesionName: orderMarkName, markTool: 'ArrowAnnotate', readingTaskState: this.readingTaskState, isMarked: false })
|
||||||
},
|
},
|
||||||
async removeAnnotation(obj) {
|
async removeAnnotation(obj) {
|
||||||
const { Id } = obj
|
const { Id } = obj
|
||||||
|
@ -426,7 +448,7 @@ export default {
|
||||||
idx = this.measurements.findIndex(i => i.OrderMarkName === measurement.data.remark)
|
idx = this.measurements.findIndex(i => i.OrderMarkName === measurement.data.remark)
|
||||||
}
|
}
|
||||||
if (idx === -1) return
|
if (idx === -1) return
|
||||||
var remark = this.measurements[idx].QuestionType === 48 ? 'Spleen' : ''
|
var remark = this.measurements[idx].QuestionType === 60 ? 'Spleen Tip' : this.measurements[idx].QuestionType === 61 ? 'Spleen Floor' : ''
|
||||||
measurement.data.remark = remark
|
measurement.data.remark = remark
|
||||||
this.measurements[idx].StudyId = measurement.studyId
|
this.measurements[idx].StudyId = measurement.studyId
|
||||||
this.measurements[idx].SeriesId = measurement.seriesId
|
this.measurements[idx].SeriesId = measurement.seriesId
|
||||||
|
@ -451,10 +473,12 @@ export default {
|
||||||
OrderMarkName: measurement.data.remark,
|
OrderMarkName: measurement.data.remark,
|
||||||
frame: isNaN(parseInt(measurement.frame)) ? 0 : measurement.frame
|
frame: isNaN(parseInt(measurement.frame)) ? 0 : measurement.frame
|
||||||
}
|
}
|
||||||
if (measurement.type === 'Length') {
|
if (measurement.type === 'ArrowAnnotate') {
|
||||||
const length = measurement.data.length ? measurement.data.length : null
|
const location = measurement.location ? measurement.location : null
|
||||||
this.$set(this.questionForm, this.measurements[idx].QuestionId, length || null)
|
this.$set(this.questionForm, this.measurements[idx].QuestionId, location || null)
|
||||||
if (this.measurements[idx].QuestionType === 48) {
|
if (this.measurements[idx].QuestionType === 60 || this.measurements[idx].QuestionType === 61) {
|
||||||
|
var length = this.getSpleenL()
|
||||||
|
this.$set(this.questionForm, this.spleenLengthId, length)
|
||||||
var status = this.setSpleenStatus(length)
|
var status = this.setSpleenStatus(length)
|
||||||
this.$set(this.questionForm, this.spleenStatusId, status)
|
this.$set(this.questionForm, this.spleenStatusId, status)
|
||||||
this.calculateSpleenStatus = status
|
this.calculateSpleenStatus = status
|
||||||
|
@ -474,6 +498,19 @@ export default {
|
||||||
DicomEvent.$emit('questionFormChange', true)
|
DicomEvent.$emit('questionFormChange', true)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
getSpleenL() {
|
||||||
|
var length = null
|
||||||
|
// 脾尖位置
|
||||||
|
var st = this.questionForm[this.spleenTipId]
|
||||||
|
st = isNaN(parseFloat(st)) ? null : parseFloat(st)
|
||||||
|
// 脾底位置
|
||||||
|
var sf = this.questionForm[this.spleenFloorId]
|
||||||
|
sf = isNaN(parseFloat(sf)) ? null : parseFloat(sf)
|
||||||
|
if (st && sf) {
|
||||||
|
length = Math.abs(st - sf)
|
||||||
|
}
|
||||||
|
return length
|
||||||
|
},
|
||||||
setSpleenStatus(length) {
|
setSpleenStatus(length) {
|
||||||
console.log('setSpleenStatus')
|
console.log('setSpleenStatus')
|
||||||
var status = ''
|
var status = ''
|
||||||
|
|
Loading…
Reference in New Issue