iRecist和Recist阅片标准更改
parent
b8b876c0c9
commit
663c78ef51
|
@ -187,3 +187,10 @@ export function setSkipReadingCache(param) {
|
|||
data: param
|
||||
})
|
||||
}
|
||||
export function resetReadingTask(param) {
|
||||
return request({
|
||||
url: `/ReadingImageTask/resetReadingTask`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
{{ language==='en'?question.GroupEnName:question.GroupName }}
|
||||
</h4>
|
||||
</div>
|
||||
<template v-else-if="((question.QuestionType === 56 || question.QuestionType === 57) && question.IsBaseLineTask)" />
|
||||
<template v-else-if="((question.QuestionType === 56) && question.IsBaseLineTask)" />
|
||||
<template v-else>
|
||||
<el-form-item
|
||||
v-if="(question.ShowQuestion===1 && question.ParentTriggerValueList.includes(String(questionForm[question.ParentId]))) || question.ShowQuestion===0"
|
||||
|
@ -286,7 +286,7 @@
|
|||
:reading-task-state="readingTaskState"
|
||||
:question-form="questionForm"
|
||||
:visit-task-id="visitTaskId"
|
||||
:pet5PS="pet5PS"
|
||||
:pet5p-s="pet5PS"
|
||||
:lung-is-inside-volume="lungIsInsideVolume"
|
||||
:liver-is-inside-volume="liverIsInsideVolume"
|
||||
@setFormItemData="setFormItemData"
|
||||
|
@ -333,7 +333,7 @@ export default {
|
|||
pet5PS: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
|
@ -119,6 +119,9 @@
|
|||
/>
|
||||
</template>
|
||||
<template v-else-if="qs.DictionaryCode && qs.QuestionMark === 7 && !isBaseLineTask">
|
||||
<el-option-group
|
||||
:label="!isNaN(parseFloat(answers.LastTaskState)) ? `${$t('trials:dicomReading:tip:lastVisitStatus')} ${$fd(qs.DictionaryCode,parseFloat(answers.LastTaskState))}` : ''"
|
||||
>
|
||||
<!-- 首次分裂的病灶只能选择存在 -->
|
||||
<template v-if="answers.IsFristAdd=== 'True' && answers.SplitOrMergeType === '0'">
|
||||
<el-option
|
||||
|
@ -157,6 +160,7 @@
|
|||
:label="item.label"
|
||||
/>
|
||||
</template>
|
||||
</el-option-group>
|
||||
</template>
|
||||
<template v-else-if="qs.DictionaryCode && qs.QuestionMark !== 7">
|
||||
<el-option
|
||||
|
@ -390,20 +394,19 @@ export default {
|
|||
}
|
||||
|
||||
// 首次分裂的病灶默认状态为空时,设置默认值为存在
|
||||
if (this.answers.IsFristAdd === 'True' && this.answers.SplitOrMergeType === '0' && isNaN(parseInt(this.getQuestionVal(7)))) {
|
||||
if (this.answers.IsFristAdd === 'True' && this.answers.SplitOrMergeType === '0' && lesionState === '') {
|
||||
const stateId = this.getQuestionId(7)
|
||||
if (this.lesionType === 0 || this.lesionType === 1 || this.lesionType === 2 || this.lesionType === 6 || this.lesionType === 7) {
|
||||
this.$set(this.questionForm, stateId, 0)
|
||||
} else if (this.lesionType === 5 || this.lesionType === 8) {
|
||||
this.$set(this.questionForm, stateId, 1)
|
||||
}
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
|
||||
const isLymphLesion = this.getQuestionVal(2)
|
||||
const lesionPart = this.getQuestionVal(8)
|
||||
const lesionOrgan = this.getQuestionVal(6)
|
||||
const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
|
||||
const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
|
||||
const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
|
||||
const lesionLength = this.getQuestionVal(0)
|
||||
const lesionShort = this.getQuestionVal(1)
|
||||
const lesionState = this.getQuestionVal(7)
|
||||
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
|
||||
}
|
||||
this.isRender = true
|
||||
|
@ -584,13 +587,12 @@ export default {
|
|||
} else {
|
||||
this.$set(this.questionForm, 'saveTypeEnum', 0)
|
||||
}
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
|
||||
const isLymphLesion = this.getQuestionVal(2)
|
||||
const lesionPart = this.getQuestionVal(8)
|
||||
const lesionOrgan = this.getQuestionVal(6)
|
||||
const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
|
||||
const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
|
||||
const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
|
||||
const lesionLength = this.getQuestionVal(0)
|
||||
const lesionShort = this.getQuestionVal(1)
|
||||
const lesionState = this.getQuestionVal(7)
|
||||
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
|
||||
|
||||
if (question.QuestionMark === 7) {
|
||||
|
@ -638,9 +640,6 @@ export default {
|
|||
this.$set(this.questionForm, lengthObj.Id, '')
|
||||
this.$set(this.questionForm, shortObj.Id, '')
|
||||
}
|
||||
// if (this.toolType !== measureData.type) {
|
||||
// 获取器官问题
|
||||
// var organ = this.getQuestionVal(5)
|
||||
|
||||
// 十字线工具 器官只能是淋巴结类型
|
||||
|
||||
|
@ -703,9 +702,8 @@ export default {
|
|||
}
|
||||
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
|
||||
var lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
|
||||
var lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
|
||||
var lesionLength = this.getQuestionVal(0)
|
||||
var lesionShort = this.getQuestionVal(1)
|
||||
|
||||
// 当前添加的新病灶或第一次次转变任务不做处理
|
||||
if (!(this.isCurrentTaskAdd === 'True' || this.isFirstChangeTask)) {
|
||||
|
@ -737,7 +735,7 @@ export default {
|
|||
}
|
||||
}
|
||||
}
|
||||
const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
|
||||
const lesionState = this.getQuestionVal(7)
|
||||
var status = ''
|
||||
if (lesionState) {
|
||||
if (this.lesionType === 0 && lesionState === 1) {
|
||||
|
@ -786,34 +784,12 @@ export default {
|
|||
this.$set(this.questionForm, 'saveTypeEnum', 1)
|
||||
}
|
||||
this.$set(this.questionForm, 'MeasureData', measureData)
|
||||
var isLymph = this.getQuestionVal(2)
|
||||
isLymph = !isNaN(parseInt(isLymph)) ? parseInt(isLymph) : null
|
||||
const isLymph = this.getQuestionVal(2)
|
||||
const lesionPart = this.getQuestionVal(8)
|
||||
const lesionOrgan = this.getQuestionVal(6)
|
||||
// const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? Number(this.getQuestionVal(0)) : ''
|
||||
// const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? Number(this.getQuestionVal(1)) : ''
|
||||
const lesionL = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
|
||||
const lesionS = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
|
||||
var lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
|
||||
// // 状态为空时,非淋巴结靶病灶长径>0mm,自动给“存在”状态,如果淋巴结靶病灶短径>=10mm,自动给“存在”状态。淋巴结靶病灶在短径小于10mm时,用十字线标记测量时标记为消失
|
||||
// if (!this.isBaseLineTask && this.lesionType === 0 && ((isLymphLesion === 0 && lesionLength > 0) || (isLymphLesion === 1 && lesionShort >= 10))) {
|
||||
// const stateId = this.getQuestionId(7)
|
||||
// this.$set(this.questionForm, stateId, 0)
|
||||
// lesionState = 0
|
||||
// }
|
||||
|
||||
// if (!this.isBaseLineTask && this.lesionType === 0 && (isLymphLesion === 1 && measureData.type === 'Bidirectional' && lesionShort < 10)) {
|
||||
// const stateId = this.getQuestionId(7)
|
||||
// this.$set(this.questionForm, stateId, 3)
|
||||
// lesionState = 3
|
||||
// }
|
||||
// // 基线时,默认状态都为存在
|
||||
// if (this.isBaseLineTask && !lesionState) {
|
||||
// const stateId = this.getQuestionId(7)
|
||||
// this.$set(this.questionForm, stateId, 0)
|
||||
// lesionState = 0
|
||||
// }
|
||||
|
||||
const lesionL = this.getQuestionVal(0)
|
||||
const lesionS = this.getQuestionVal(1)
|
||||
var lesionState = this.getQuestionVal(7)
|
||||
this.$emit('resetQuestions', { isLymphLesion: isLymph, lesionPart, lesionOrgan, lesionShort: lesionS, lesionLength: lesionL, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
|
||||
this.toolType = measureData.type
|
||||
DicomEvent.$emit('refreshStudyListMeasureData')
|
||||
|
@ -839,29 +815,33 @@ export default {
|
|||
}
|
||||
},
|
||||
getQuestionVal(questionMark) {
|
||||
var idx = this.questions.findIndex(i => i.QuestionMark === questionMark)
|
||||
const idx = this.questions.findIndex(i => i.QuestionMark === questionMark)
|
||||
if (idx > -1) {
|
||||
var questionId = this.questions[idx].Id
|
||||
return this.questionForm[questionId]
|
||||
const questionId = this.questions[idx].Id
|
||||
const answer = this.questionForm[questionId]
|
||||
if (isNaN(parseFloat(answer))) {
|
||||
return answer
|
||||
} else {
|
||||
return parseFloat(answer)
|
||||
}
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
},
|
||||
filterState(arr) {
|
||||
if (!this.isBaseLineTask) {
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
|
||||
const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : 0
|
||||
const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : 0
|
||||
const lastLesionL = !isNaN(parseInt(this.answers.LastTaskMajorAxis)) ? parseInt(this.answers.LastTaskMajorAxis) : 0
|
||||
const lastLesionS = !isNaN(parseInt(this.answers.LastTaskShortAxis)) ? parseInt(this.answers.LastTaskShortAxis) : 0
|
||||
if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionShort < lastLesionS) {
|
||||
const isLymphLesion = this.getQuestionVal(2)
|
||||
const lesionLength = this.getQuestionVal(0)
|
||||
const lesionShort = this.getQuestionVal(1)
|
||||
const bLesionL = !isNaN(parseFloat(this.answers.LastTaskMajorAxis)) ? parseFloat(this.answers.BaseLineMajorAxis) : 0
|
||||
const bLesionS = !isNaN(parseFloat(this.answers.LastTaskShortAxis)) ? parseFloat(this.answers.BaseLineShortAxis) : 0
|
||||
if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && this.questionForm.MeasureData.type === 'Bidirectional' && lesionShort < bLesionS) {
|
||||
const v = this.isConvertedTask ? 4 : 1
|
||||
arr = arr.filter(i => i.value !== v)
|
||||
} else if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionShort >= 10 && lesionShort > lastLesionS) {
|
||||
} else if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && this.questionForm.MeasureData.type === 'Bidirectional' && lesionShort >= 10 && lesionShort > bLesionS) {
|
||||
const v = this.isConvertedTask ? 4 : 1
|
||||
arr = arr.filter(i => i.value === 0 || i.value === v)
|
||||
} else if (this.lesionType === 1 && isLymphLesion === 0 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionLength < lastLesionL) {
|
||||
} else if (this.lesionType === 1 && isLymphLesion === 0 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionLength < bLesionL) {
|
||||
const v = this.isConvertedTask ? 4 : 1
|
||||
arr = arr.filter(i => i.value !== v)
|
||||
}
|
||||
|
@ -926,16 +906,15 @@ export default {
|
|||
// 生成Blob对象(文件对象)
|
||||
return new Blob([bytesCode], { type: imgtype })
|
||||
},
|
||||
handleSave() {
|
||||
this.$refs.measurementForm.validate(async valid => {
|
||||
async handleSave() {
|
||||
const valid = await this.$refs.measurementForm.validate()
|
||||
if (!valid) return
|
||||
const loading = this.$loading({ fullscreen: true })
|
||||
var measureData = this.questionForm.MeasureData
|
||||
var lesionState = this.getQuestionVal(7)
|
||||
var lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
|
||||
var lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
|
||||
var lesionLength = this.getQuestionVal(0)
|
||||
var lesionShort = this.getQuestionVal(1)
|
||||
var lymphNodes = this.getQuestionVal(2)
|
||||
lymphNodes = (lymphNodes !== null && lymphNodes !== undefined) ? parseInt(lymphNodes) : null
|
||||
if (this.isBaseLineTask) {
|
||||
// 基线
|
||||
// 靶病灶且状态为存在(0)
|
||||
|
@ -1961,6 +1940,7 @@ export default {
|
|||
// 靶病灶状态为0(存在)时,一定存在长径或者长短径(长径、十字线 )
|
||||
// 普通靶病灶:长径大于10mm且不小于2倍层厚(基线校验)
|
||||
// 淋巴结靶病灶:短径大于15mm且不小于2倍层厚(基线校验)
|
||||
try {
|
||||
var picturePath = ''
|
||||
if (val && measureData && this.questionForm.IsDicomReading) {
|
||||
var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)
|
||||
|
@ -2003,7 +1983,8 @@ export default {
|
|||
this.deleteInfo = null
|
||||
params.rowId = ''
|
||||
}
|
||||
submitTableQuestion(params).then(async res => {
|
||||
const res = await submitTableQuestion(params)
|
||||
if (res.IsSuccess) {
|
||||
// 保存成功!
|
||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||
this.currentMarkTool = measureData ? measureData.type : ''
|
||||
|
@ -2013,11 +1994,10 @@ export default {
|
|||
this.originalQuestionForm = { ...this.questionForm }
|
||||
loading.close()
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = isLymphLesion ? parseInt(isLymphLesion) : null
|
||||
var lesionOrgan = this.getQuestionVal(6)
|
||||
this.$set(this.questionForm, 'RowId', res.Result.RowId)
|
||||
const lesionPart = this.getQuestionVal(8)
|
||||
const lesionState = Number(this.getQuestionVal(7))
|
||||
const lesionState = this.getQuestionVal(7)
|
||||
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, lesionState, rowIndex: this.rowIndex, rowId: res.Result.RowId, questionId: this.parentQsId, anwsers: this.questionForm })
|
||||
|
||||
// await store.dispatch('reading/refreshMeasuredData', this.visitTaskId)
|
||||
|
@ -2025,17 +2005,23 @@ export default {
|
|||
this.$emit('close')
|
||||
DicomEvent.$emit('getReportInfo', true)
|
||||
DicomEvent.$emit('setMeasuredToolsPassive')
|
||||
}).catch(() => { loading.close() })
|
||||
})
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
loading.close()
|
||||
}
|
||||
})
|
||||
},
|
||||
handleDeleteMeasureData() {
|
||||
async handleDeleteMeasureData() {
|
||||
// 是否确认清除标记?
|
||||
this.$confirm(this.$t('trials:reading:warnning:msg47'), {
|
||||
const confirm = await this.$confirm(
|
||||
this.$t('trials:reading:warnning:msg47'),
|
||||
{
|
||||
type: 'warning',
|
||||
distinguishCancelAndClose: true
|
||||
})
|
||||
.then(async() => {
|
||||
}
|
||||
)
|
||||
if (confirm !== 'confirm') return
|
||||
this.organList = []
|
||||
await this.getOrganInfoList()
|
||||
// 重置长短径 和 状态
|
||||
|
@ -2058,12 +2044,11 @@ export default {
|
|||
DicomEvent.$emit('getMeasureData')
|
||||
// Store.$emit('updateImage', this.questionForm.MeasureData.instanceId)
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
|
||||
const lesionPart = this.getQuestionVal(8)
|
||||
const lesionOrgan = this.getQuestionVal(6)
|
||||
const lesionLength = ''
|
||||
const lesionShort = ''
|
||||
const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
|
||||
const lesionState = this.getQuestionVal(7)
|
||||
|
||||
if (!this.questionForm.IsDicomReading) {
|
||||
DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData)
|
||||
|
@ -2079,26 +2064,25 @@ export default {
|
|||
}
|
||||
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers })
|
||||
DicomEvent.$emit('refreshStudyListMeasureData')
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
handleDelete() {
|
||||
// 是否确认删除?
|
||||
this.$confirm(this.$t('trials:reading:warnning:msg48'), {
|
||||
async handleDelete() {
|
||||
const loading = this.$loading({ fullscreen: true })
|
||||
try {
|
||||
const confirm = await this.$confirm(
|
||||
this.$t('trials:reading:warnning:msg48'),
|
||||
{
|
||||
type: 'warning',
|
||||
distinguishCancelAndClose: true
|
||||
})
|
||||
.then(async() => {
|
||||
}
|
||||
)
|
||||
if (confirm !== 'confirm') return
|
||||
if (this.questionForm.RowId) {
|
||||
const loading = this.$loading({ fullscreen: true })
|
||||
var param = {
|
||||
visitTaskId: this.visitTaskId,
|
||||
questionId: this.parentQsId,
|
||||
rowId: this.questionForm.RowId
|
||||
}
|
||||
deleteReadingRowAnswer(param)
|
||||
.then(async res => {
|
||||
loading.close()
|
||||
const res = await deleteReadingRowAnswer(param)
|
||||
if (res.IsSuccess) {
|
||||
if (this.questionForm.IsDicomReading && this.questionForm.MeasureData) {
|
||||
await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
|
||||
|
@ -2110,11 +2094,8 @@ export default {
|
|||
DicomEvent.$emit('getReportInfo', true)
|
||||
// '删除成功!'
|
||||
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||
loading.close()
|
||||
}
|
||||
}).catch(() => { loading.close() })
|
||||
} else {
|
||||
// const loading = this.$loading({ fullscreen: true })
|
||||
// 移除新建病灶并关闭窗口
|
||||
if (this.questionForm.IsDicomReading && this.questionForm.MeasureData) {
|
||||
await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
|
||||
|
@ -2124,19 +2105,25 @@ export default {
|
|||
DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData)
|
||||
}
|
||||
this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
|
||||
// loading.close()
|
||||
}
|
||||
DicomEvent.$emit('refreshStudyListMeasureData')
|
||||
})
|
||||
loading.close()
|
||||
} catch (e) {
|
||||
loading.close()
|
||||
console.log(e)
|
||||
}
|
||||
},
|
||||
handleClose() {
|
||||
async handleClose() {
|
||||
if (!this.questionForm.RowId) {
|
||||
// '当前病灶为新建病灶,未保存。如果关闭窗口,将会删除病灶信息,是否继续?'
|
||||
this.$confirm(this.$t('trials:reading:warnning:msg49'), {
|
||||
const confirm = await this.$confirm(
|
||||
this.$t('trials:reading:warnning:msg49'),
|
||||
{
|
||||
type: 'warning',
|
||||
distinguishCancelAndClose: true
|
||||
})
|
||||
.then(async() => {
|
||||
}
|
||||
)
|
||||
if (confirm !== 'confirm') return
|
||||
// 移除新建病灶并关闭窗口
|
||||
if (this.questionForm.MeasureData) {
|
||||
await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
|
||||
|
@ -2144,21 +2131,8 @@ export default {
|
|||
// await store.dispatch('reading/removeReadingQuestionAndAnswer', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
|
||||
DicomEvent.$emit('getMeasureData')
|
||||
this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
|
||||
})
|
||||
.catch(() => {})
|
||||
} else {
|
||||
// saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断)
|
||||
|
||||
if (this.questionForm.saveTypeEnum === 1) {
|
||||
// // 当前病灶信息有更新,未保存,是否继续?
|
||||
// this.$confirm(this.$t('trials:reading:warnning:msg50'), {
|
||||
// type: 'warning',
|
||||
// distinguishCancelAndClose: true
|
||||
// })
|
||||
// .then(() => {
|
||||
// this.$emit('close')
|
||||
// })
|
||||
// .catch(() => {})
|
||||
this.$emit('close')
|
||||
} else {
|
||||
this.$emit('close')
|
||||
|
@ -2178,13 +2152,12 @@ export default {
|
|||
} else if (this.lesionType === 8) {
|
||||
this.$set(this.questionForm, stateId, 4)
|
||||
}
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
|
||||
const isLymphLesion = this.getQuestionVal(2)
|
||||
const lesionPart = this.getQuestionVal(8)
|
||||
const lesionOrgan = this.getQuestionVal(6)
|
||||
const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
|
||||
const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
|
||||
const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
|
||||
const lesionLength = this.getQuestionVal(0)
|
||||
const lesionShort = this.getQuestionVal(1)
|
||||
const lesionState = this.getQuestionVal(7)
|
||||
|
||||
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
|
||||
}
|
||||
|
|
|
@ -2,10 +2,20 @@
|
|||
<div class="measurement-wrapper" :style="{'height':height+10+'px'}">
|
||||
|
||||
<div class="container" :style="{'height':height+'px'}">
|
||||
<h3 v-if="isReadingShowSubjectInfo" style="color: #ddd;padding: 5px 0px;margin: 0;">
|
||||
<div class="basic-info">
|
||||
<h3 v-if="isReadingShowSubjectInfo">
|
||||
<span v-if="subjectCode">{{ subjectCode }} </span>
|
||||
<span style="margin-left:5px;">{{ taskBlindName }}</span>
|
||||
</h3>
|
||||
<div v-if="readingTaskState < 2">
|
||||
<el-tooltip class="item" effect="dark" :content="$t('trials:dicomReading:message:confirmReset')" placement="bottom">
|
||||
<i
|
||||
class="el-icon-refresh-left"
|
||||
@click="resetMeasuredData"
|
||||
/>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 非测量问题 -->
|
||||
<div class="lesions">
|
||||
<Questions
|
||||
|
@ -157,6 +167,7 @@
|
|||
</template>
|
||||
<script>
|
||||
import { splitLesion } from '@/api/trials'
|
||||
import { resetReadingTask } from '@/api/reading'
|
||||
import DicomEvent from './../DicomEvent'
|
||||
import store from '@/store'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
@ -1068,6 +1079,36 @@ export default {
|
|||
getECRFQuestions(obj) {
|
||||
this.$refs['ecrf'].getQuestions(obj.visitTaskId)
|
||||
},
|
||||
async resetMeasuredData() {
|
||||
try {
|
||||
const confirm = await this.$confirm(
|
||||
this.$t('trials:dicomReading:message:confirmReset1'),
|
||||
this.$t('trials:dicomReading:message:confirmReset2'),
|
||||
{
|
||||
type: 'warning',
|
||||
distinguishCancelAndClose: true
|
||||
}
|
||||
)
|
||||
if (confirm !== 'confirm') return
|
||||
this.loading = true
|
||||
const res = await resetReadingTask({ visitTaskId: this.visitTaskId })
|
||||
this.loading = false
|
||||
if (res.IsSuccess) {
|
||||
// 刷新标注、表单、报告页信息
|
||||
this.activeName = ''
|
||||
this.activeItem.activeRowIndex = null
|
||||
this.activeItem.activeCollapseId = null
|
||||
await this.getReadingQuestionAndAnswer(this.visitTaskId)
|
||||
this.$refs['ecrf'].resetQSForm()
|
||||
DicomEvent.$emit('getMeasureData')
|
||||
DicomEvent.$emit('getReportInfo', true)
|
||||
DicomEvent.$emit('refreshStudyListMeasureData')
|
||||
}
|
||||
} catch (e) {
|
||||
this.loading = false
|
||||
console.log(e)
|
||||
}
|
||||
},
|
||||
receiveMsg(event) {
|
||||
if (event.data.type === 'isCanActiveNoneDicomTool') {
|
||||
this.getUnSaveTarget()
|
||||
|
@ -1140,6 +1181,22 @@ export default {
|
|||
|
||||
.container{
|
||||
padding: 10px;
|
||||
.basic-info{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
h3{
|
||||
color: #ddd;
|
||||
padding: 5px 0px;
|
||||
margin: 0;
|
||||
}
|
||||
i{
|
||||
color: #fff;
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
.title{
|
||||
padding: 5px;
|
||||
|
|
|
@ -390,6 +390,18 @@ export default {
|
|||
this.loading = false
|
||||
})
|
||||
},
|
||||
async resetQSForm() {
|
||||
try {
|
||||
this.loading = true
|
||||
var trialId = this.$route.query.trialId
|
||||
await store.dispatch('reading/refreshDicomReadingQuestionAnswer', { trialId: trialId, visitTaskId: this.visitTaskId })
|
||||
this.getQuestions(this.visitTaskId, true)
|
||||
this.loading = false
|
||||
} catch(e) {
|
||||
this.loading = false
|
||||
}
|
||||
|
||||
},
|
||||
checkAnnotationStatus(obj) {
|
||||
for (let i = 0; i < obj.length; i++) {
|
||||
if (obj[i].SaveEnum === 1) {
|
||||
|
|
|
@ -119,8 +119,12 @@
|
|||
/>
|
||||
</template>
|
||||
<template v-else-if="qs.DictionaryCode && qs.QuestionMark === 7 && !isBaseLineTask">
|
||||
<el-option-group
|
||||
:label="!isNaN(parseFloat(answers.LastTaskState)) ? `${$t('trials:dicomReading:tip:lastVisitStatus')} ${$fd(qs.DictionaryCode,parseFloat(answers.LastTaskState))}` : ''"
|
||||
>
|
||||
<!-- 首次分裂的病灶只能选择存在 -->
|
||||
<template v-if="answers.IsFristAdd=== 'True' && answers.SplitOrMergeType === '0'">
|
||||
|
||||
<el-option
|
||||
v-for="item of $d[qs.DictionaryCode]"
|
||||
v-show="item.value === 0"
|
||||
|
@ -147,6 +151,7 @@
|
|||
:label="item.label"
|
||||
/>
|
||||
</template>
|
||||
</el-option-group>
|
||||
</template>
|
||||
<template v-else-if="qs.DictionaryCode && qs.QuestionMark !== 7">
|
||||
<el-option
|
||||
|
@ -326,7 +331,7 @@ export default {
|
|||
// saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断);2:已保存,信息完整
|
||||
var lesionState = this.getQuestionVal(7)
|
||||
if (this.questionForm.RowId) {
|
||||
this.$set(this.questionForm, 'saveTypeEnum', isNaN(parseInt(lesionState)) ? 1 : 2)
|
||||
this.$set(this.questionForm, 'saveTypeEnum', lesionState === '' ? 1 : 2)
|
||||
} else {
|
||||
this.$set(this.questionForm, 'saveTypeEnum', 0)
|
||||
}
|
||||
|
@ -366,16 +371,15 @@ export default {
|
|||
}
|
||||
|
||||
// 首次分裂的病灶默认状态为空时,设置默认值为存在
|
||||
if (this.answers.IsFristAdd === 'True' && this.answers.SplitOrMergeType === '0' && isNaN(parseInt(this.getQuestionVal(7)))) {
|
||||
if (this.answers.IsFristAdd === 'True' && this.answers.SplitOrMergeType === '0' && lesionState === '') {
|
||||
const stateId = this.getQuestionId(7)
|
||||
this.$set(this.questionForm, stateId, 0)
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
|
||||
const isLymphLesion = this.getQuestionVal(2)
|
||||
const lesionPart = this.getQuestionVal(8)
|
||||
const lesionOrgan = this.getQuestionVal(6)
|
||||
const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
|
||||
const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
|
||||
const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
|
||||
const lesionLength = this.getQuestionVal(0)
|
||||
const lesionShort = this.getQuestionVal(1)
|
||||
const lesionState = this.getQuestionVal(7)
|
||||
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
|
||||
}
|
||||
this.isRender = true
|
||||
|
@ -555,15 +559,12 @@ export default {
|
|||
} else {
|
||||
this.$set(this.questionForm, 'saveTypeEnum', 0)
|
||||
}
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
|
||||
const isLymphLesion = this.getQuestionVal(2)
|
||||
const lesionPart = this.getQuestionVal(8)
|
||||
const lesionOrgan = this.getQuestionVal(6)
|
||||
// const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? Number(this.getQuestionVal(0)) : ''
|
||||
// const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? Number(this.getQuestionVal(1)) : ''
|
||||
const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
|
||||
const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
|
||||
const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
|
||||
const lesionLength = this.getQuestionVal(0)
|
||||
const lesionShort = this.getQuestionVal(1)
|
||||
const lesionState = this.getQuestionVal(7)
|
||||
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
|
||||
|
||||
if (question.QuestionMark === 7) {
|
||||
|
@ -582,7 +583,6 @@ export default {
|
|||
}
|
||||
},
|
||||
setMeasureData(measureData, isInit = false) {
|
||||
console.log('setMeasureData')
|
||||
return new Promise(resolve => {
|
||||
if (measureData) {
|
||||
if (measureData.pictureBaseStr) {
|
||||
|
@ -590,7 +590,6 @@ export default {
|
|||
measureData.pictureBaseStr = ''
|
||||
}
|
||||
// 获取长径(0)
|
||||
// const loading = this.$loading({ fullscreen: true })
|
||||
var lengthObj = this.questions.find(i => i.QuestionMark === 0)
|
||||
var shortObj = this.questions.find(i => i.QuestionMark === 1)
|
||||
|
||||
|
@ -613,9 +612,6 @@ export default {
|
|||
this.$set(this.questionForm, lengthObj.Id, '')
|
||||
this.$set(this.questionForm, shortObj.Id, '')
|
||||
}
|
||||
// if (this.toolType !== measureData.type) {
|
||||
// 获取器官问题
|
||||
// var organ = this.getQuestionVal(5)
|
||||
|
||||
// 十字线工具 器官只能是淋巴结类型
|
||||
|
||||
|
@ -631,13 +627,6 @@ export default {
|
|||
this.getOrganInfoList()
|
||||
}
|
||||
|
||||
// if (this.toolType) {
|
||||
// this.questionForm[this.getQuestionId(8)] = ''
|
||||
// this.questionForm[this.getQuestionId(5)] = ''
|
||||
// this.questionForm[this.getQuestionId(6)] = ''
|
||||
// this.questionForm[this.getQuestionId(2)] = ''
|
||||
// }
|
||||
|
||||
var data = {}
|
||||
if (measureData.isDicomReading === false) {
|
||||
this.$set(this.questionForm, 'IsDicomReading', false)
|
||||
|
@ -664,9 +653,8 @@ export default {
|
|||
}
|
||||
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
|
||||
var lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
|
||||
var lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
|
||||
var lesionLength = this.getQuestionVal(0)
|
||||
var lesionShort = this.getQuestionVal(1)
|
||||
// 当前添加的新病灶不做处理
|
||||
if (!(this.isCurrentTaskAdd === 'True')) {
|
||||
// 非基线时,非淋巴结病灶长径>=10mm,自动给“存在”状态,如果淋巴结病灶短径>=10mm,自动给“存在”状态。
|
||||
|
@ -685,7 +673,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
|
||||
const lesionState = this.getQuestionVal(7)
|
||||
var status = ''
|
||||
if (lesionState) {
|
||||
if (this.lesionType === 0 && lesionState === 1) {
|
||||
|
@ -731,42 +719,17 @@ export default {
|
|||
}
|
||||
}
|
||||
this.$set(this.questionForm, 'MeasureData', measureData)
|
||||
var isLymph = this.getQuestionVal(2)
|
||||
isLymph = !isNaN(parseInt(isLymph)) ? parseInt(isLymph) : null
|
||||
const isLymph = this.getQuestionVal(2)
|
||||
const lesionPart = this.getQuestionVal(8)
|
||||
const lesionOrgan = this.getQuestionVal(6)
|
||||
// const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? Number(this.getQuestionVal(0)) : ''
|
||||
// const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? Number(this.getQuestionVal(1)) : ''
|
||||
const lesionL = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
|
||||
const lesionS = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
|
||||
var lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
|
||||
// // 状态为空时,非淋巴结靶病灶长径>0mm,自动给“存在”状态,如果淋巴结靶病灶短径>=10mm,自动给“存在”状态。淋巴结靶病灶在短径小于10mm时,用十字线标记测量时标记为消失
|
||||
// if (!this.isBaseLineTask && this.lesionType === 0 && ((isLymphLesion === 0 && lesionLength > 0) || (isLymphLesion === 1 && lesionShort >= 10))) {
|
||||
// const stateId = this.getQuestionId(7)
|
||||
// this.$set(this.questionForm, stateId, 0)
|
||||
// lesionState = 0
|
||||
// }
|
||||
|
||||
// if (!this.isBaseLineTask && this.lesionType === 0 && (isLymphLesion === 1 && measureData.type === 'Bidirectional' && lesionShort < 10)) {
|
||||
// const stateId = this.getQuestionId(7)
|
||||
// this.$set(this.questionForm, stateId, 3)
|
||||
// lesionState = 3
|
||||
// }
|
||||
// // 基线时,默认状态都为存在
|
||||
// if (this.isBaseLineTask && !lesionState) {
|
||||
// const stateId = this.getQuestionId(7)
|
||||
// this.$set(this.questionForm, stateId, 0)
|
||||
// lesionState = 0
|
||||
// }
|
||||
|
||||
const lesionL = this.getQuestionVal(0)
|
||||
const lesionS = this.getQuestionVal(1)
|
||||
var lesionState = this.getQuestionVal(7)
|
||||
this.$emit('resetQuestions', { isLymphLesion: isLymph, lesionPart, lesionOrgan, lesionShort: lesionS, lesionLength: lesionL, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
|
||||
this.toolType = measureData.type
|
||||
DicomEvent.$emit('refreshStudyListMeasureData')
|
||||
resolve()
|
||||
})
|
||||
|
||||
// loading.close()
|
||||
// this.handleSave()
|
||||
},
|
||||
returnFloat(num) {
|
||||
if (num) return
|
||||
|
@ -784,27 +747,31 @@ export default {
|
|||
}
|
||||
},
|
||||
getQuestionVal(questionMark) {
|
||||
var idx = this.questions.findIndex(i => i.QuestionMark === questionMark)
|
||||
const idx = this.questions.findIndex(i => i.QuestionMark === questionMark)
|
||||
if (idx > -1) {
|
||||
var questionId = this.questions[idx].Id
|
||||
return this.questionForm[questionId]
|
||||
const questionId = this.questions[idx].Id
|
||||
const answer = this.questionForm[questionId]
|
||||
if (isNaN(parseFloat(answer))) {
|
||||
return answer
|
||||
} else {
|
||||
return parseFloat(answer)
|
||||
}
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
},
|
||||
filterState(arr) {
|
||||
if (!this.isBaseLineTask) {
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
|
||||
const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : 0
|
||||
const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : 0
|
||||
const lastLesionL = !isNaN(parseInt(this.answers.LastTaskMajorAxis)) ? parseInt(this.answers.LastTaskMajorAxis) : 0
|
||||
const lastLesionS = !isNaN(parseInt(this.answers.LastTaskShortAxis)) ? parseInt(this.answers.LastTaskShortAxis) : 0
|
||||
if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionShort < lastLesionS) {
|
||||
const isLymphLesion = this.getQuestionVal(2)
|
||||
const lesionLength = this.getQuestionVal(0)
|
||||
const lesionShort = this.getQuestionVal(1)
|
||||
const bLesionL = !isNaN(parseFloat(this.answers.LastTaskMajorAxis)) ? parseFloat(this.answers.BaseLineMajorAxis) : 0
|
||||
const bLesionS = !isNaN(parseFloat(this.answers.LastTaskShortAxis)) ? parseFloat(this.answers.BaseLineShortAxis) : 0
|
||||
if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && this.questionForm.MeasureData.type === 'Bidirectional' && lesionShort < bLesionS) {
|
||||
arr = arr.filter(i => i.value !== 1)
|
||||
} else if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionShort >= 10 && lesionShort > lastLesionS) {
|
||||
} else if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && this.questionForm.MeasureData.type === 'Bidirectional' && lesionShort >= 10 && lesionShort > bLesionS) {
|
||||
arr = arr.filter(i => i.value === 0 || i.value === 1)
|
||||
} else if (this.lesionType === 1 && isLymphLesion === 0 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionLength < lastLesionL) {
|
||||
} else if (this.lesionType === 1 && isLymphLesion === 0 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionLength < bLesionL) {
|
||||
arr = arr.filter(i => i.value !== 1)
|
||||
}
|
||||
return arr
|
||||
|
@ -868,18 +835,15 @@ export default {
|
|||
// 生成Blob对象(文件对象)
|
||||
return new Blob([bytesCode], { type: imgtype })
|
||||
},
|
||||
handleSave() {
|
||||
this.$refs.measurementForm.validate(async valid => {
|
||||
async handleSave() {
|
||||
const valid = await this.$refs.measurementForm.validate()
|
||||
if (!valid) return
|
||||
const loading = this.$loading({ fullscreen: true })
|
||||
var measureData = this.questionForm.MeasureData
|
||||
var lesionState = this.getQuestionVal(7)
|
||||
// var lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? Number(this.getQuestionVal(0)) : ''
|
||||
// var lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? Number(this.getQuestionVal(1)) : ''
|
||||
var lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
|
||||
var lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
|
||||
var lesionLength = this.getQuestionVal(0)
|
||||
var lesionShort = this.getQuestionVal(1)
|
||||
var lymphNodes = this.getQuestionVal(2)
|
||||
lymphNodes = (lymphNodes !== null && lymphNodes !== undefined) ? parseInt(lymphNodes) : null
|
||||
if (this.isBaseLineTask) {
|
||||
// 基线
|
||||
// 靶病灶且状态为存在(0)
|
||||
|
@ -1318,12 +1282,11 @@ export default {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
DicomEvent.$emit('getScreenshots', { questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex, visitTaskId: this.visitTaskId, lesionName: this.lesionMark, lesionType: this.lesionType, isMarked: !!measureData }, async val => {
|
||||
// 靶病灶状态为0(存在)时,一定存在长径或者长短径(长径、十字线 )
|
||||
// 普通靶病灶:长径大于10mm且不小于2倍层厚(基线校验)
|
||||
// 淋巴结靶病灶:短径大于15mm且不小于2倍层厚(基线校验)
|
||||
|
||||
try {
|
||||
var picturePath = ''
|
||||
if (val && measureData && this.questionForm.IsDicomReading) {
|
||||
var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)
|
||||
|
@ -1365,7 +1328,8 @@ export default {
|
|||
this.deleteInfo = null
|
||||
params.rowId = ''
|
||||
}
|
||||
submitTableQuestion(params).then(async res => {
|
||||
const res = await submitTableQuestion(params)
|
||||
if (res.IsSuccess) {
|
||||
// 保存成功!
|
||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||
this.currentMarkTool = measureData ? measureData.type : ''
|
||||
|
@ -1373,31 +1337,35 @@ export default {
|
|||
|
||||
this.$set(this.questionForm, 'saveTypeEnum', 2)
|
||||
this.originalQuestionForm = { ...this.questionForm }
|
||||
loading.close()
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = isLymphLesion ? parseInt(isLymphLesion) : null
|
||||
var lesionOrgan = this.getQuestionVal(6)
|
||||
this.$set(this.questionForm, 'RowId', res.Result.RowId)
|
||||
const lesionPart = this.getQuestionVal(8)
|
||||
const lesionState = Number(this.getQuestionVal(7))
|
||||
const lesionState = this.getQuestionVal(7)
|
||||
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, lesionState, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
|
||||
|
||||
// await store.dispatch('reading/refreshMeasuredData', this.visitTaskId)
|
||||
// DicomEvent.$emit('getMeasureData')
|
||||
this.$emit('close')
|
||||
DicomEvent.$emit('getReportInfo', true)
|
||||
DicomEvent.$emit('setMeasuredToolsPassive')
|
||||
}).catch(() => { loading.close() })
|
||||
})
|
||||
loading.close()
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
loading.close()
|
||||
}
|
||||
})
|
||||
},
|
||||
handleDeleteMeasureData() {
|
||||
async handleDeleteMeasureData() {
|
||||
// 是否确认清除标记?
|
||||
this.$confirm(this.$t('trials:reading:warnning:msg47'), {
|
||||
const confirm = await this.$confirm(
|
||||
this.$t('trials:reading:warnning:msg47'),
|
||||
{
|
||||
type: 'warning',
|
||||
distinguishCancelAndClose: true
|
||||
})
|
||||
.then(async() => {
|
||||
}
|
||||
)
|
||||
if (confirm !== 'confirm') return
|
||||
this.organList = []
|
||||
await this.getOrganInfoList()
|
||||
// 重置长短径 和 状态
|
||||
|
@ -1408,7 +1376,6 @@ export default {
|
|||
|
||||
var stateId = this.getQuestionId(7)
|
||||
this.$set(this.questionForm, stateId, '')
|
||||
// saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断)
|
||||
if (this.questionForm.RowId) {
|
||||
this.$set(this.questionForm, 'saveTypeEnum', 1)
|
||||
} else {
|
||||
|
@ -1417,14 +1384,12 @@ export default {
|
|||
await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
|
||||
DicomEvent.$emit('getMeasureData')
|
||||
// Store.$emit('updateImage', this.questionForm.MeasureData.instanceId)
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
|
||||
const isLymphLesion = this.getQuestionVal(2)
|
||||
const lesionPart = this.getQuestionVal(8)
|
||||
const lesionOrgan = this.getQuestionVal(6)
|
||||
const lesionLength = ''
|
||||
const lesionShort = ''
|
||||
const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
|
||||
|
||||
const lesionState = this.getQuestionVal(7)
|
||||
if (!this.questionForm.IsDicomReading) {
|
||||
DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData)
|
||||
}
|
||||
|
@ -1439,92 +1404,74 @@ export default {
|
|||
}
|
||||
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers })
|
||||
DicomEvent.$emit('refreshStudyListMeasureData')
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
handleDelete() {
|
||||
// 是否确认删除?
|
||||
this.$confirm(this.$t('trials:reading:warnning:msg48'), {
|
||||
async handleDelete() {
|
||||
const loading = this.$loading({ fullscreen: true })
|
||||
try {
|
||||
const confirm = await this.$confirm(
|
||||
this.$t('trials:reading:warnning:msg48'),
|
||||
{
|
||||
type: 'warning',
|
||||
distinguishCancelAndClose: true
|
||||
})
|
||||
.then(async() => {
|
||||
}
|
||||
)
|
||||
if (confirm !== 'confirm') return
|
||||
if (this.questionForm.RowId) {
|
||||
const loading = this.$loading({ fullscreen: true })
|
||||
var param = {
|
||||
visitTaskId: this.visitTaskId,
|
||||
questionId: this.parentQsId,
|
||||
rowId: this.questionForm.RowId
|
||||
}
|
||||
deleteReadingRowAnswer(param)
|
||||
.then(async res => {
|
||||
loading.close()
|
||||
const res = await deleteReadingRowAnswer(param)
|
||||
if (res.IsSuccess) {
|
||||
// this.$emit('getReadingQuestionAndAnswer')
|
||||
if (this.questionForm.IsDicomReading && this.questionForm.MeasureData) {
|
||||
await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
|
||||
}
|
||||
// await store.dispatch('reading/removeReadingQuestionAndAnswer', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
|
||||
// DicomEvent.$emit('getMeasureData')
|
||||
if (!this.questionForm.IsDicomReading && this.questionForm.MeasureData) {
|
||||
DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData)
|
||||
}
|
||||
this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
|
||||
DicomEvent.$emit('getReportInfo', true)
|
||||
// if (!this.questionForm.IsDicomReading) {
|
||||
// DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData)
|
||||
// }
|
||||
// '删除成功!'
|
||||
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||
loading.close()
|
||||
}
|
||||
}).catch(() => { loading.close() })
|
||||
} else {
|
||||
// const loading = this.$loading({ fullscreen: true })
|
||||
// 移除新建病灶并关闭窗口
|
||||
if (this.questionForm.MeasureData && this.questionForm.IsDicomReading) {
|
||||
await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
|
||||
}
|
||||
// DicomEvent.$emit('getMeasureData')
|
||||
if (!this.questionForm.IsDicomReading && this.questionForm.MeasureData) {
|
||||
DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData)
|
||||
}
|
||||
this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
|
||||
// loading.close()
|
||||
}
|
||||
DicomEvent.$emit('refreshStudyListMeasureData')
|
||||
})
|
||||
loading.close()
|
||||
} catch (e) {
|
||||
loading.close()
|
||||
console.log(e)
|
||||
}
|
||||
},
|
||||
handleClose() {
|
||||
async handleClose() {
|
||||
if (!this.questionForm.RowId) {
|
||||
// '当前病灶为新建病灶,未保存。如果关闭窗口,将会删除病灶信息,是否继续?'
|
||||
this.$confirm(this.$t('trials:reading:warnning:msg49'), {
|
||||
const confirm = await this.$confirm(
|
||||
this.$t('trials:reading:warnning:msg49'),
|
||||
{
|
||||
type: 'warning',
|
||||
distinguishCancelAndClose: true
|
||||
})
|
||||
.then(async() => {
|
||||
}
|
||||
)
|
||||
if (confirm !== 'confirm') return
|
||||
// 移除新建病灶并关闭窗口
|
||||
if (this.questionForm.MeasureData) {
|
||||
await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
|
||||
}
|
||||
// await store.dispatch('reading/removeReadingQuestionAndAnswer', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
|
||||
DicomEvent.$emit('getMeasureData')
|
||||
this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
|
||||
})
|
||||
.catch(() => {})
|
||||
} else {
|
||||
// saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断)
|
||||
|
||||
if (this.questionForm.saveTypeEnum === 1) {
|
||||
// // 当前病灶信息有更新,未保存,是否继续?
|
||||
// this.$confirm(this.$t('trials:reading:warnning:msg50'), {
|
||||
// type: 'warning',
|
||||
// distinguishCancelAndClose: true
|
||||
// })
|
||||
// .then(() => {
|
||||
// this.$emit('close')
|
||||
// })
|
||||
// .catch(() => {})
|
||||
this.$emit('close')
|
||||
} else {
|
||||
this.$emit('close')
|
||||
|
@ -1538,13 +1485,12 @@ export default {
|
|||
if (isNaN(parseInt(lesionState)) && this.answers.IsFristAdd === 'False') {
|
||||
const stateId = this.getQuestionId(7)
|
||||
this.$set(this.questionForm, stateId, 2)
|
||||
var isLymphLesion = this.getQuestionVal(2)
|
||||
isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
|
||||
const isLymphLesion = this.getQuestionVal(2)
|
||||
const lesionPart = this.getQuestionVal(8)
|
||||
const lesionOrgan = this.getQuestionVal(6)
|
||||
const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
|
||||
const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
|
||||
const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
|
||||
const lesionLength = this.getQuestionVal(0)
|
||||
const lesionShort = this.getQuestionVal(1)
|
||||
const lesionState = this.getQuestionVal(7)
|
||||
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,10 +2,21 @@
|
|||
<div class="measurement-wrapper" :style="{'height':height+10+'px'}">
|
||||
|
||||
<div class="container" :style="{'height':height+'px'}">
|
||||
<h3 v-if="isReadingShowSubjectInfo" style="color: #ddd;padding: 5px 0px;margin: 0;">
|
||||
<div class="basic-info">
|
||||
<h3 v-if="isReadingShowSubjectInfo">
|
||||
<span v-if="subjectCode">{{ subjectCode }} </span>
|
||||
<span style="margin-left:5px;">{{ taskBlindName }}</span>
|
||||
</h3>
|
||||
<div v-if="readingTaskState < 2">
|
||||
<el-tooltip class="item" effect="dark" :content="$t('trials:dicomReading:message:confirmReset')" placement="bottom">
|
||||
<i
|
||||
class="el-icon-refresh-left"
|
||||
@click="resetMeasuredData"
|
||||
/>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 非测量问题 -->
|
||||
<div class="lesions">
|
||||
<Questions ref="ecrf" :question-form-change-state="questionFormChangeState" :question-form-change-num="questionFormChangeNum" />
|
||||
|
@ -122,6 +133,7 @@
|
|||
</template>
|
||||
<script>
|
||||
import { splitLesion } from '@/api/trials'
|
||||
import { resetReadingTask } from '@/api/reading'
|
||||
import DicomEvent from './../DicomEvent'
|
||||
import store from '@/store'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
@ -943,6 +955,36 @@ export default {
|
|||
getECRFQuestions(obj) {
|
||||
this.$refs['ecrf'].getQuestions(obj.visitTaskId)
|
||||
},
|
||||
async resetMeasuredData() {
|
||||
try {
|
||||
const confirm = await this.$confirm(
|
||||
this.$t('trials:dicomReading:message:confirmReset1'),
|
||||
this.$t('trials:dicomReading:message:confirmReset2'),
|
||||
{
|
||||
type: 'warning',
|
||||
distinguishCancelAndClose: true
|
||||
}
|
||||
)
|
||||
if (confirm !== 'confirm') return
|
||||
this.loading = true
|
||||
const res = await resetReadingTask({ visitTaskId: this.visitTaskId })
|
||||
this.loading = false
|
||||
if (res.IsSuccess) {
|
||||
// 刷新标注、表单、报告页信息
|
||||
this.activeName = ''
|
||||
this.activeItem.activeRowIndex = null
|
||||
this.activeItem.activeCollapseId = null
|
||||
await this.getReadingQuestionAndAnswer(this.visitTaskId)
|
||||
this.$refs['ecrf'].resetQSForm()
|
||||
DicomEvent.$emit('getMeasureData')
|
||||
DicomEvent.$emit('getReportInfo', true)
|
||||
DicomEvent.$emit('refreshStudyListMeasureData')
|
||||
}
|
||||
} catch (e) {
|
||||
this.loading = false
|
||||
console.log(e)
|
||||
}
|
||||
},
|
||||
receiveMsg(event) {
|
||||
if (event.data.type === 'isCanActiveNoneDicomTool') {
|
||||
this.getUnSaveTarget()
|
||||
|
@ -1021,6 +1063,22 @@ export default {
|
|||
|
||||
.container{
|
||||
padding: 10px;
|
||||
.basic-info{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
h3{
|
||||
color: #ddd;
|
||||
padding: 5px 0px;
|
||||
margin: 0;
|
||||
}
|
||||
i{
|
||||
color: #fff;
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
.title{
|
||||
padding: 5px;
|
||||
|
|
|
@ -110,6 +110,9 @@
|
|||
/>
|
||||
</template>
|
||||
<template v-else-if="qs.DictionaryCode && qs.QuestionMark === 7 && !isBaseLineTask">
|
||||
<el-option-group
|
||||
:label="!isNaN(parseFloat(answers.LastTaskState)) ? `${$t('trials:dicomReading:tip:lastVisitStatus')} ${$fd(qs.DictionaryCode,parseFloat(answers.LastTaskState))}` : ''"
|
||||
>
|
||||
<!-- 首次分裂的病灶只能选择存在 -->
|
||||
<template v-if="answers.IsFristAdd=== 'True' && answers.SplitOrMergeType === '0'">
|
||||
<el-option
|
||||
|
@ -138,6 +141,7 @@
|
|||
:label="item.label"
|
||||
/>
|
||||
</template>
|
||||
</el-option-group>
|
||||
</template>
|
||||
<template v-else-if="qs.DictionaryCode && qs.QuestionMark !== 7">
|
||||
<el-option
|
||||
|
|
|
@ -2,10 +2,20 @@
|
|||
<div class="measurement-wrapper" :style="{'height':height+10+'px'}">
|
||||
|
||||
<div class="container" :style="{'height':height+'px'}">
|
||||
<h3 v-if="isReadingShowSubjectInfo" style="color: #ddd;padding: 5px 0px;margin: 0;">
|
||||
<div class="basic-info">
|
||||
<h3 v-if="isReadingShowSubjectInfo">
|
||||
<span v-if="subjectCode">{{ subjectCode }} </span>
|
||||
<span style="margin-left:5px;">{{ taskBlindName }}</span>
|
||||
</h3>
|
||||
<div v-if="readingTaskState < 2">
|
||||
<el-tooltip class="item" effect="dark" :content="$t('trials:dicomReading:message:confirmReset')" placement="bottom">
|
||||
<i
|
||||
class="el-icon-refresh-left"
|
||||
@click="resetMeasuredData"
|
||||
/>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 非测量问题 -->
|
||||
<div class="lesions">
|
||||
<Questions ref="ecrf" :question-form-change-state="questionFormChangeState" :question-form-change-num="questionFormChangeNum" />
|
||||
|
@ -118,6 +128,7 @@
|
|||
</template>
|
||||
<script>
|
||||
import { splitLesion } from '@/api/trials'
|
||||
import { resetReadingTask } from '@/api/reading'
|
||||
import DicomEvent from './../DicomEvent'
|
||||
|
||||
import store from '@/store'
|
||||
|
@ -880,6 +891,36 @@ export default {
|
|||
getECRFQuestions(obj) {
|
||||
this.$refs['ecrf'].getQuestions(obj.visitTaskId)
|
||||
},
|
||||
async resetMeasuredData() {
|
||||
try {
|
||||
const confirm = await this.$confirm(
|
||||
this.$t('trials:dicomReading:message:confirmReset1'),
|
||||
this.$t('trials:dicomReading:message:confirmReset2'),
|
||||
{
|
||||
type: 'warning',
|
||||
distinguishCancelAndClose: true
|
||||
}
|
||||
)
|
||||
if (confirm !== 'confirm') return
|
||||
this.loading = true
|
||||
const res = await resetReadingTask({ visitTaskId: this.visitTaskId })
|
||||
this.loading = false
|
||||
if (res.IsSuccess) {
|
||||
// 刷新标注、表单、报告页信息
|
||||
this.activeName = ''
|
||||
this.activeItem.activeRowIndex = null
|
||||
this.activeItem.activeCollapseId = null
|
||||
await this.getReadingQuestionAndAnswer(this.visitTaskId)
|
||||
this.$refs['ecrf'].resetQSForm()
|
||||
DicomEvent.$emit('getMeasureData')
|
||||
DicomEvent.$emit('getReportInfo', true)
|
||||
DicomEvent.$emit('refreshStudyListMeasureData')
|
||||
}
|
||||
} catch (e) {
|
||||
this.loading = false
|
||||
console.log(e)
|
||||
}
|
||||
},
|
||||
receiveMsg(event) {
|
||||
if (event.data.type === 'isCanActiveNoneDicomTool') {
|
||||
this.getUnSaveTarget()
|
||||
|
|
Loading…
Reference in New Issue