熊飞 2024-02-27 16:43:44 +08:00
commit 66c586009e
3 changed files with 33 additions and 13 deletions

View File

@ -33,12 +33,12 @@
</template> </template>
</el-input> </el-input>
<!-- 测量 --> <!-- 测量 -->
<el-button v-if="!questionForm[question.Id] && readingTaskState!== 2" size="mini" type="text" @click="addAnnotation(question)">{{ $t('trials:lugano:button:addAnnotation') }}</el-button> <el-button v-if="(!questionForm[question.Id] && ((question.QuestionType === 51 && liverIsInsideVolume) || (question.QuestionType === 52 && lungIsInsideVolume)) && readingTaskState!== 2)" size="mini" type="text" @click="addAnnotation(question)">{{ $t('trials:lugano:button:addAnnotation') }}</el-button>
<!-- 清除标记 --> <!-- 清除标记 -->
<el-button v-if="questionForm[question.Id] && readingTaskState!== 2" size="mini" type="text" style="padding: 7px 5px;" @click="removeAnnotation(question)">{{ $t('trials:lugano:button:clearAnnotation') }}</el-button> <el-button v-if="(questionForm[question.Id] || (question.QuestionType === 51 && !liverIsInsideVolume) || (question.QuestionType === 52 && !lungIsInsideVolume)) && readingTaskState!== 2" size="mini" type="text" style="padding: 7px 5px;" @click="removeAnnotation(question)">{{ $t('trials:lugano:button:clearAnnotation') }}</el-button>
<!-- 定位 --> <!-- 定位 -->
<el-button <el-button
v-if="questionForm[question.Id]" v-if="(questionForm[question.Id] || (question.QuestionType === 51 && !liverIsInsideVolume) || (question.QuestionType === 52 && !lungIsInsideVolume))"
size="mini" size="mini"
type="text" type="text"
style="margin-left: -5px;padding: 7px 5px;" style="margin-left: -5px;padding: 7px 5px;"
@ -224,6 +224,8 @@
:reading-task-state="readingTaskState" :reading-task-state="readingTaskState"
:question-form="questionForm" :question-form="questionForm"
:visit-task-id="visitTaskId" :visit-task-id="visitTaskId"
:lung-is-inside-volume="lungIsInsideVolume"
:liver-is-inside-volume="liverIsInsideVolume"
@setFormItemData="setFormItemData" @setFormItemData="setFormItemData"
@resetFormItemData="resetFormItemData" @resetFormItemData="resetFormItemData"
@addAnnotation="addAnnotation" @addAnnotation="addAnnotation"
@ -258,6 +260,14 @@ export default {
visitTaskId: { visitTaskId: {
type: String, type: String,
default: '' default: ''
},
lungIsInsideVolume: {
type: Boolean,
default: true
},
liverIsInsideVolume: {
type: Boolean,
default: true
} }
}, },
data() { data() {

View File

@ -14,6 +14,8 @@
:question-form="questionForm" :question-form="questionForm"
:reading-task-state="readingTaskState" :reading-task-state="readingTaskState"
:visit-task-id="visitTaskId" :visit-task-id="visitTaskId"
:lung-is-inside-volume="lungIsInsideVolume"
:liver-is-inside-volume="liverIsInsideVolume"
@setFormItemData="setFormItemData" @setFormItemData="setFormItemData"
@resetFormItemData="resetFormItemData" @resetFormItemData="resetFormItemData"
@addAnnotation="addAnnotation" @addAnnotation="addAnnotation"
@ -287,7 +289,6 @@ export default {
}, },
removeAnnotation(obj) { removeAnnotation(obj) {
console.log('question_removeAnnotation')
const { Id } = obj const { Id } = obj
var idx = this.measurements.findIndex(i => i.QuestionId === Id) var idx = this.measurements.findIndex(i => i.QuestionId === Id)
if (idx === -1) return if (idx === -1) return
@ -297,6 +298,8 @@ export default {
this.calculatePet5PS = pet5PS this.calculatePet5PS = pet5PS
this.setPet5PSCommentDisplay() this.setPet5PSCommentDisplay()
FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.measurements[idx].OtherMeasureData, type: 'clear' }) FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.measurements[idx].OtherMeasureData, type: 'clear' })
var remark = this.measurements[idx].OtherMeasureData.data.remark
remark === 'Liver' ? this.liverIsInsideVolume = true : remark === 'Mediastinum' ? this.lungIsInsideVolume = true : ''
this.measurements.splice(idx, 1) this.measurements.splice(idx, 1)
}, },
locateAnnotation(obj) { locateAnnotation(obj) {
@ -400,6 +403,7 @@ export default {
this.currentQsId = this.measurements[idx].QuestionId this.currentQsId = this.measurements[idx].QuestionId
// const { QuestionId, QuestionType } = this.measurements[idx] // const { QuestionId, QuestionType } = this.measurements[idx]
this.questionFormChangeState = true this.questionFormChangeState = true
remark === 'Liver' ? this.liverIsInsideVolume = true : remark === 'Mediastinum' ? this.lungIsInsideVolume = true : ''
}, },
resetFormItemData(v) { resetFormItemData(v) {
this.questionForm[v] = null this.questionForm[v] = null

View File

@ -627,7 +627,7 @@ export default {
} else { } else {
this.$set(this.questionForm, 'saveTypeEnum', 0) this.$set(this.questionForm, 'saveTypeEnum', 0)
} }
this.$set(this.questionForm, 'OtherMeasureData', measureData) this.$set(this.questionForm, 'OtherMeasureData', measureData.data)
var isLymph = this.getQuestionVal(2) var isLymph = this.getQuestionVal(2)
isLymph = !isNaN(parseInt(isLymph)) ? parseInt(isLymph) : null isLymph = !isNaN(parseInt(isLymph)) ? parseInt(isLymph) : null
const lesionPart = this.getQuestionVal(8) const lesionPart = this.getQuestionVal(8)
@ -725,20 +725,24 @@ export default {
handleSave() { handleSave() {
this.$refs.measurementForm.validate(async valid => { this.$refs.measurementForm.validate(async valid => {
if (!valid) return if (!valid) return
const loading = this.$loading({ fullscreen: true })
if (!this.isInsideVolume) { if (!this.isInsideVolume) {
this.$alert('当前标记在图像外,不允许保存!', '提示', { // this.$alert('', '', {
callback: action => { // callback: action => {}
this.$message({ // })
type: 'info', loading.close()
message: `action: ${action}` this.$confirm(this.$t('当前标记在图像外,不允许保存!'), {
}) type: 'warning',
} showCancelButton: false,
callback: action => {}
}) })
return return
} }
// SUV // SUV
var lesionState = this.getQuestionVal(7) var lesionState = this.getQuestionVal(7)
if ((lesionState === 2 || lesionState === 3) && this.questionForm.OtherMeasureData) { if ((lesionState === 2 || lesionState === 3) && this.questionForm.OtherMeasureData) {
loading.close()
this.$confirm(this.$t('评估状态为无法评估或消失的病灶不能测量SUV值'), { this.$confirm(this.$t('评估状态为无法评估或消失的病灶不能测量SUV值'), {
type: 'warning', type: 'warning',
showCancelButton: false, showCancelButton: false,
@ -750,6 +754,7 @@ export default {
if (this.questionForm.OtherMeasureData) { if (this.questionForm.OtherMeasureData) {
var suvmax = this.getQuestionVal(20) var suvmax = this.getQuestionVal(20)
if (suvmax === 0) { if (suvmax === 0) {
loading.close()
this.$confirm(this.$t('当前病灶suv测量值为0不允许保存'), { this.$confirm(this.$t('当前病灶suv测量值为0不允许保存'), {
type: 'warning', type: 'warning',
showCancelButton: false, showCancelButton: false,
@ -759,7 +764,6 @@ export default {
} }
} }
const loading = this.$loading({ fullscreen: true })
var otherMeasureData = this.questionForm.OtherMeasureData ? Object.assign({}, this.questionForm.OtherMeasureData) : null var otherMeasureData = this.questionForm.OtherMeasureData ? Object.assign({}, this.questionForm.OtherMeasureData) : null
if (otherMeasureData) { if (otherMeasureData) {
for (const k in otherMeasureData.data.cachedStats) { for (const k in otherMeasureData.data.cachedStats) {
@ -876,6 +880,7 @@ export default {
} }
var suvMax = this.getQuestionVal(20) var suvMax = this.getQuestionVal(20)
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers }) this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers })
this.isInsideVolume = true
}) })
.catch(() => {}) .catch(() => {})
}, },
@ -911,6 +916,7 @@ export default {
} }
var suvMax = this.getQuestionVal(20) var suvMax = this.getQuestionVal(20)
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers }) this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers })
this.isInsideVolume = true
}, },
handleDelete() { handleDelete() {
// //