FDG-PET评估数据交互和数据验证

uat_us
caiyiling 2024-01-15 14:12:31 +08:00
parent f7e7b323c5
commit c6f349c3b8
4 changed files with 68 additions and 15 deletions

View File

@ -295,6 +295,9 @@ export default {
}, },
methods: { methods: {
formItemChange(v, question) { formItemChange(v, question) {
if(question.QuestionType === 55){
this.$emit('setFormItemData', {key:question.Id,val:v})
}
if (question.Childrens.length > 0) { if (question.Childrens.length > 0) {
this.resetChild(question.Childrens) this.resetChild(question.Childrens)
} }

View File

@ -53,6 +53,8 @@ export default {
measurements: [], measurements: [],
currentQsId: '', currentQsId: '',
pet5PSId: '', pet5PSId: '',
pet5PSCommentsId:'',
calculatePet5PS:null,
liverSuvmaxId: '', liverSuvmaxId: '',
lungSuvmaxId: '', lungSuvmaxId: '',
suvmaxId: '', suvmaxId: '',
@ -146,6 +148,8 @@ export default {
} }
}) })
this.questions = questions this.questions = questions
this.calculatePet5PS = this.setpet5PS()
this.setPet5PSCommentDisplay()
this.measurements = [] this.measurements = []
res.OtherInfo.QuestionMarkInfoList.forEach(i => { res.OtherInfo.QuestionMarkInfoList.forEach(i => {
if (i.OtherMeasureData) { if (i.OtherMeasureData) {
@ -179,6 +183,10 @@ export default {
// PET 5PS // PET 5PS
this.pet5PSId = i.Id this.pet5PSId = i.Id
} }
if (i.QuestionType === 59) {
// PET 5PS
this.pet5PSCommentsId = i.Id
}
if (i.Childrens && i.Childrens.length > 0) { if (i.Childrens && i.Childrens.length > 0) {
this.setChild(i.Childrens) this.setChild(i.Childrens)
} }
@ -283,11 +291,12 @@ export default {
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
this.$set(this.questionForm, Id, '') this.$set(this.questionForm, Id, '')
this.setpet5PS() var pet5PS = this.setpet5PS()
this.questionForm[this.pet5PSId] = pet5PS
this.calculatePet5PS = pet5PS
this.setPet5PSCommentDisplay()
FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.measurements[idx].OtherMeasureData, type: 'clear' }) FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.measurements[idx].OtherMeasureData, type: 'clear' })
this.measurements.splice(idx, 1) this.measurements.splice(idx, 1)
console.log( this.measurements)
this.questionFormChangeState = true
}, },
locateAnnotation(obj) { locateAnnotation(obj) {
console.log('locateAnnotation') console.log('locateAnnotation')
@ -326,7 +335,10 @@ export default {
if (measurement.type === 'CircleROI') { if (measurement.type === 'CircleROI') {
const suvMax = measurement.suvMax const suvMax = measurement.suvMax
this.$set(this.questionForm, obj.QuestionId, suvMax || null) this.$set(this.questionForm, obj.QuestionId, suvMax || null)
this.setpet5PS() var pet5PS = this.setpet5PS()
this.questionForm[this.pet5PSId] = pet5PS
this.calculatePet5PS = pet5PS
this.setPet5PSCommentDisplay()
} }
FusionEvent.$emit('addOrUpdateAnnotations', { data }) FusionEvent.$emit('addOrUpdateAnnotations', { data })
this.questionFormChangeState = true this.questionFormChangeState = true
@ -359,7 +371,10 @@ export default {
if (measurement.metadata.toolName === 'CircleROI') { if (measurement.metadata.toolName === 'CircleROI') {
// const suvMax = measurement.suvMax // const suvMax = measurement.suvMax
this.$set(this.questionForm, obj.QuestionId, null) this.$set(this.questionForm, obj.QuestionId, null)
this.setpet5PS() var pet5PS = this.setpet5PS()
this.questionForm[this.pet5PSId] = pet5PS
this.calculatePet5PS = pet5PS
this.setPet5PSCommentDisplay()
} }
FusionEvent.$emit('addOrUpdateAnnotations', { data }) FusionEvent.$emit('addOrUpdateAnnotations', { data })
this.questionFormChangeState = true this.questionFormChangeState = true
@ -368,7 +383,10 @@ export default {
var idx = this.measurements.findIndex(i => i.OrderMarkName === remark) var idx = this.measurements.findIndex(i => i.OrderMarkName === remark)
if (idx === -1) return if (idx === -1) return
this.$set(this.questionForm, this.measurements[idx].QuestionId, '') this.$set(this.questionForm, this.measurements[idx].QuestionId, '')
this.setpet5PS() var pet5PS = this.setpet5PS()
this.questionForm[this.pet5PSId] = pet5PS
this.calculatePet5PS = pet5PS
this.setPet5PSCommentDisplay()
this.measurements[idx].OtherMeasureData = '' this.measurements[idx].OtherMeasureData = ''
this.currentQsId = this.measurements[idx].QuestionId this.currentQsId = this.measurements[idx].QuestionId
// const { QuestionId, QuestionType } = this.measurements[idx] // const { QuestionId, QuestionType } = this.measurements[idx]
@ -379,6 +397,26 @@ export default {
}, },
setFormItemData(obj) { setFormItemData(obj) {
this.questionForm[obj.key] = obj.val this.questionForm[obj.key] = obj.val
if(obj.key === this.pet5PSId){
this.setPet5PSCommentDisplay()
}
},
setPet5PSCommentDisplay(){
if( this.pet5PSCommentsId && this.pet5PSId ){
for (let i = 0; i < this.questions[0].Childrens[0].Childrens.length; i++) {
if (this.questions[0].Childrens[0].Childrens[i].QuestionType === 59) {
if(this.calculatePet5PS && this.calculatePet5PS !== this.questionForm[this.pet5PSId]){
this.questions[0].Childrens[0].Childrens[i].ShowQuestion = 0
this.questions[0].Childrens[0].Childrens[i].IsRequired = 0
}else{
this.questions[0].Childrens[0].Childrens[i].ShowQuestion = 2
this.questions[0].Childrens[0].Childrens[i].IsRequired = 3
this.questionForm[this.pet5PSCommentsId] = ''
}
break
}
}
}
}, },
setpet5PS() { setpet5PS() {
console.log('setpet5PS') console.log('setpet5PS')
@ -391,18 +429,23 @@ export default {
const lungSUVmax = !isNaN(parseFloat(this.questionForm[this.lungSuvmaxId])) ? parseFloat(this.questionForm[this.lungSuvmaxId]) : 0 const lungSUVmax = !isNaN(parseFloat(this.questionForm[this.lungSuvmaxId])) ? parseFloat(this.questionForm[this.lungSuvmaxId]) : 0
if (maxSUVmax > liverSUVmax * 2) { if (maxSUVmax > liverSUVmax * 2) {
// 访 max SUVmax>2*SUVmax 5 // 访 max SUVmax>2*SUVmax 5
this.questionForm[this.pet5PSId] = '5' // this.questionForm[this.pet5PSId] = '5'
return '5'
} else if (maxSUVmax > liverSUVmax) { } else if (maxSUVmax > liverSUVmax) {
// 访SUVmax>SUVmax 4 // 访SUVmax>SUVmax 4
this.questionForm[this.pet5PSId] = '4' // this.questionForm[this.pet5PSId] = '4'
return '4'
} else if (maxSUVmax > lungSUVmax && maxSUVmax <= liverSUVmax) { } else if (maxSUVmax > lungSUVmax && maxSUVmax <= liverSUVmax) {
// SUVmax<访max SUVmax1*SUVmax 3 // SUVmax<访max SUVmax1*SUVmax 3
this.questionForm[this.pet5PSId] = '3' // this.questionForm[this.pet5PSId] = '3'
return '3'
} else if (maxSUVmax < lungSUVmax) { } else if (maxSUVmax < lungSUVmax) {
// 访SUVmax<SUVmax 2 // 访SUVmax<SUVmax 2
this.questionForm[this.pet5PSId] = '2' // this.questionForm[this.pet5PSId] = '2'
return '2'
}else{ }else{
this.questionForm[this.pet5PSId] = '' // this.questionForm[this.pet5PSId] = ''
return ''
} }
}, },
resetSuvQuestions() { resetSuvQuestions() {
@ -422,7 +465,10 @@ export default {
if (v.Childrens.length > 0) { if (v.Childrens.length > 0) {
this.setSuvChild(v.Childrens) this.setSuvChild(v.Childrens)
} }
this.setpet5PS() var pet5PS = this.setpet5PS()
this.questionForm[this.pet5PSId] = pet5PS
this.calculatePet5PS = pet5PS
this.setPet5PSCommentDisplay()
this.questionFormChangeState = true this.questionFormChangeState = true
}) })

View File

@ -297,7 +297,6 @@ export default {
}) })
}, },
setSpleenCommentDisplay(){ setSpleenCommentDisplay(){
console.log('setSpleenCommentDisplay')
if( this.spleenCommentsId && this.spleenStatusId ){ if( this.spleenCommentsId && this.spleenStatusId ){
for (let i = 0; i < this.questions[0].Childrens.length; i++) { for (let i = 0; i < this.questions[0].Childrens.length; i++) {
if (this.questions[0].Childrens[i].QuestionType === 58) { if (this.questions[0].Childrens[i].QuestionType === 58) {

View File

@ -122,10 +122,15 @@
<!-- 结论 --> <!-- 结论 -->
<el-table-column <el-table-column
prop="EvaluationResult" prop="EvaluationResult"
:label="$t('trials:oncologyReview:title:findings')"
show-overflow-tooltip show-overflow-tooltip
width="150" width="150"
> >
<template slot="header" slot-scope="scope">
<div>
<span>{{ $t('trials:oncologyReview:title:findings') }}</span>
<span style="color:red">*</span>
</div>
</template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-select <el-select
v-if="oncologyInfo.ReadingTaskState < 2 && !scope.row.IsBaseLine" v-if="oncologyInfo.ReadingTaskState < 2 && !scope.row.IsBaseLine"
@ -156,7 +161,7 @@
<div> <div>
<!-- 原因 --> <!-- 原因 -->
<span>{{ $t('trials:oncologyReview:title:reason') }}</span> <span>{{ $t('trials:oncologyReview:title:reason') }}</span>
<span style="color:red">*</span> <span style="color:red">!</span>
</div> </div>
</el-tooltip> </el-tooltip>