PET-CT融合页面,测量值和问题没有关联
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2025-12-15 17:13:34 +08:00
parent 4143eb6279
commit e5233c8894
2 changed files with 69 additions and 2 deletions

View File

@ -2561,8 +2561,14 @@ export default {
}, },
async activeSeries(obj) { async activeSeries(obj) {
if (this.isFusion || this.isMPR) { if (this.isFusion || this.isMPR) {
if (this.isFusion && this.$refs[`ecrf_${this.taskInfo.VisitTaskId}`][0].verifyAnnotationIsSave()) {
const confirm = await this.$confirm(this.$t('trials:reading:confirm:clearnAnnotation'))
if (!confirm) return false
this.$refs[`ecrf_${this.taskInfo.VisitTaskId}`][0].removeAllNoSaveAnnotation()
} else {
const confirm = await this.$confirm(this.$t('trials:reading:confirm:changeStack')) const confirm = await this.$confirm(this.$t('trials:reading:confirm:changeStack'))
if (!confirm) return false if (!confirm) return false
}
this.isFusion = false this.isFusion = false
this.setToolsPassive() this.setToolsPassive()
this.rows = 1 this.rows = 1
@ -2758,6 +2764,18 @@ export default {
this.activeViewportIndex = 0 this.activeViewportIndex = 0
// return this.activeSeries(series) // return this.activeSeries(series)
} }
if (this.isFusion) {
this.activeViewportIndex = 0
if (series.Modality === 'PT') {
this.activeViewportIndex = 1
}
series = {
data: series,
StudyIndex: series.StudyIndex,
SeriesIndex: series.SeriesIndex,
TaskInfo: series.TaskInfo
}
}
} }
this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].setSeriesInfo(series, true) this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].setSeriesInfo(series, true)
this.$refs[series.TaskInfo.VisitTaskId][0].setSeriesActive(series.StudyIndex, series.SeriesIndex) this.$refs[series.TaskInfo.VisitTaskId][0].setSeriesActive(series.StudyIndex, series.SeriesIndex)
@ -2803,6 +2821,18 @@ export default {
this.activeViewportIndex = 0 this.activeViewportIndex = 0
// return this.activeSeries(series) // return this.activeSeries(series)
} }
if (this.isFusion) {
this.activeViewportIndex = 0
if (series.Modality === 'PT') {
this.activeViewportIndex = 1
}
series = {
data: series,
StudyIndex: series.StudyIndex,
SeriesIndex: series.SeriesIndex,
TaskInfo: series.TaskInfo
}
}
} }
this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].setSeriesInfo(series, true) this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].setSeriesInfo(series, true)
this.$refs[series.TaskInfo.VisitTaskId][0].setSeriesActive(series.StudyIndex, series.SeriesIndex) this.$refs[series.TaskInfo.VisitTaskId][0].setSeriesActive(series.StudyIndex, series.SeriesIndex)
@ -3212,6 +3242,11 @@ export default {
}, },
async handleFusion(data) { async handleFusion(data) {
try { try {
if (!this.isFusion && this.$refs[`ecrf_${this.taskInfo.VisitTaskId}`][0].verifyAnnotationIsSave()) {
const confirm = await this.$confirm(this.$t('trials:reading:confirm:clearnAnnotation'))
if (!confirm) return false
this.$refs[`ecrf_${this.taskInfo.VisitTaskId}`][0].removeAllNoSaveAnnotation()
}
this.fusionVisible = false this.fusionVisible = false
this.isFusion = true this.isFusion = true
this.rows = 2 this.rows = 2

View File

@ -703,6 +703,38 @@ export default {
loading.close() loading.close()
} }
}, },
verifyAnnotationIsSave() {
return Object.keys(this.questionsMarkStatus).some(key => !this.questionsMarkStatus[key].isSaved)
},
removeAllNoSaveAnnotation() {
Object.keys(this.questionsMarkStatus).forEach(key => {
if (!this.questionsMarkStatus[key].isSaved) {
if (key.includes("_")) {
let QuestionId = key.split("_")[1]
DicomEvent.$emit('operateImageMarkerTable', { QuestionId, operateStateEnum: 4 })
} else {
let QuestionId = key
let res = this.findQuestion(QuestionId, this.questions)
if (res) {
DicomEvent.$emit('operateImageMarker', { QuestionId, operateStateEnum: 4 })
} else {
DicomEvent.$emit('operateImageMarkerTable', { QuestionId, operateStateEnum: 4 })
}
}
}
})
},
findQuestion(id, arr) {
for (let i = 0; i < arr.length; i++) {
let item = arr[i]
if (item.Id === id) return true
if (item.Childrens) {
let res = this.findQuestion(id, item.Childrens)
if (res) return true
}
if (i === arr.length - 1) return false
}
},
findMarkIndex(question) { findMarkIndex(question) {
const { Id, RowId } = question const { Id, RowId } = question
if (this.isTableQuestion) { if (this.isTableQuestion) {