1
continuous-integration/drone/push Build is passing Details

main
caiyiling 2025-05-29 17:21:25 +08:00
parent f1b816fd85
commit 3f63c126ff
2 changed files with 156 additions and 148 deletions

View File

@ -1,6 +1,11 @@
<template>
<div v-loading="loading" :element-loading-text="loadingText" element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)" class="read-page-container">
<div
v-loading="loading"
:element-loading-text="loadingText"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"
class="read-page-container"
>
<!-- 检查列表 -->
<div class="left-panel">
<div class="task-container">
@ -200,7 +205,7 @@
<svg-icon v-else icon-class="fitToImage" class="svg-icon" />
</div>
<!--融合-->
<div class="tool-item" :title="$t('trials:lugano:button:fusion')" @click.prevent="openFusion" v-if="readingTool === 2">
<div v-if="readingTool === 2" class="tool-item" :title="$t('trials:lugano:button:fusion')" @click.prevent="openFusion">
<svg-icon icon-class="fusion" class="svg-icon" />
</div>
<div
@ -279,9 +284,9 @@
<div
v-if="criterionType === 0"
:title="$t('trials:reading:button:more')"
:class="['tool-item', readingTaskState === 2 ? 'tool-disabled' : '']"
@click.stop="showPanel($event)"
@mouseleave="toolMouseout"
:class="['tool-item', readingTaskState === 2 ? 'tool-disabled' : '']"
>
<div class="dropdown">
<div
@ -292,10 +297,10 @@
<i class="el-icon-arrow-down" style="color:#fff;" />
</div>
<div class="dropdown-content">
<ul style="width:100px;" v-if="readingTaskState < 2">
<ul v-if="readingTaskState < 2" style="width:100px;">
<li v-for="i in customizeStandards" :key="i.toolName" style="text-align:left;">
<a href="#" @click.prevent="setMoreToolActive(i.toolName)">
<svg-icon :icon-class="i.icon" class="svg-icon" style="margin-right: 5px;"/>
<svg-icon :icon-class="i.icon" class="svg-icon" style="margin-right: 5px;" />
{{ $t(i.i18nKey) }}
</a>
</li>
@ -304,9 +309,9 @@
</div>
</div>
<!-- 伪彩 -->
<template v-if="readingTool === 2">
<colorMap v-show="isFusion" ref="colorMap" @setColorMap="setColorMap" @voiChange="voiChange" />
</template>
<template v-if="readingTool === 2">
<colorMap v-show="isFusion" ref="colorMap" @setColorMap="setColorMap" @voiChange="voiChange" />
</template>
</div>
<div>
@ -338,7 +343,7 @@
<div class="content-wrapper">
<!-- viewports -->
<div class="viewports-wrapper">
<div ref="container" class="grid-container" >
<div ref="container" class="grid-container">
<div :class="[ 'viewports-box', isFusion ? 'viewports-box-down' : '' ]" :style="gridStyle">
<div
v-for="(v, index) in cellsMax"
@ -362,7 +367,7 @@
/>
</div>
</div>
<div :class="[ 'viewports-box', !isFusion ? 'viewports-box-down' : '' ]" v-if="readingTool === 2" :style="gridStyle">
<div v-if="readingTool === 2" :class="[ 'viewports-box', !isFusion ? 'viewports-box-down' : '' ]" :style="gridStyle">
<div
v-for="(v, index) in cellsMax"
v-show="index < cells.length"
@ -523,9 +528,13 @@
</div>
</el-dialog>
<el-dialog :visible.sync="fusionVisible" :close-on-click-modal="false" :title="$t('trials:lugano:button:record')"
width="850px" >
<FusionForm v-if="fusionVisible" :activeTaskIndex="activeTaskIndex" :taskList="visitTaskList" @close="closeFusion" @fusion="handleFusion" />
<el-dialog
:visible.sync="fusionVisible"
:close-on-click-modal="false"
:title="$t('trials:lugano:button:record')"
width="850px"
>
<FusionForm v-if="fusionVisible" :active-task-index="activeTaskIndex" :task-list="visitTaskList" @close="closeFusion" @fusion="handleFusion" />
</el-dialog>
</div>
</template>
@ -591,7 +600,7 @@ const {
synchronizers
// cursors
} = cornerstoneTools
const { createCameraPositionSynchronizer, createVOISynchronizer } = synchronizers;
const { createCameraPositionSynchronizer, createVOISynchronizer } = synchronizers
const newStyles = {
global: {
color: 'rgb(255, 0, 0)',
@ -619,12 +628,6 @@ annotation.config.style.setDefaultToolStyles(newStyles)
const { MouseBindings, Events: toolsEvents } = csToolsEnums
export default {
name: 'ReadPage',
props: {
readingTool: {
type: Number,
default: 2
}
},
components: {
StudyList,
Viewport,
@ -641,6 +644,12 @@ export default {
FusionForm,
colorMap
},
props: {
readingTool: {
type: Number,
default: 2
}
},
data() {
return {
loading: false,
@ -710,7 +719,7 @@ export default {
studyList: [],
volumeData: {},
fusionSerieId: {},
loadingText: null,
loadingText: null
// resetAnnotation: false , // 使
}
},
@ -794,7 +803,7 @@ export default {
this.digitPlaces = digitPlaces === -1 ? this.digitPlaces : digitPlaces
if (this.criterionType === 0) {
this.tools = getCustomizeStandardsTools(this.taskInfo.ReadingToolList)
let toolNames = this.tools.map(i=>i.toolName)
const toolNames = this.tools.map(i => i.toolName)
this.customizeStandards = config.customizeStandards.filter(item => !toolNames.includes(item.toolName))
} else {
this.tools = getTools(this.criterionType)
@ -1063,13 +1072,13 @@ export default {
}
]
let viewportIds = ['viewport-0', 'viewport-1', 'viewport-2', 'viewport-3']
let fusionViewportIds = ["viewport-fusion-0", "viewport-fusion-1", "viewport-fusion-2", "viewport-fusion-3"]
if(this.readingTool === 2){
const fusionViewportIds = ['viewport-fusion-0', 'viewport-fusion-1', 'viewport-fusion-2', 'viewport-fusion-3']
if (this.readingTool === 2) {
const fusionElement1 = this.$refs['viewport-fusion-0'][0].$el
const fusionElement2 = this.$refs['viewport-fusion-1'][0].$el
const fusionElement3 = this.$refs['viewport-fusion-2'][0].$el
const fusionElement4 = this.$refs['viewport-fusion-3'][0].$el
let arr = [
const arr = [
{
viewportId: 'viewport-fusion-0',
type: ViewportType.ORTHOGRAPHIC,
@ -1105,7 +1114,7 @@ export default {
}
}
]
viewportInputArray = [ ...viewportInputArray, ...arr ]
viewportInputArray = [...viewportInputArray, ...arr]
viewportIds = viewportIds.concat(fusionViewportIds)
}
renderingEngine.setViewports(viewportInputArray)
@ -1171,28 +1180,28 @@ export default {
toolGroup.addTool(CircleROITool.toolName, {
getTextLines: this.getCircleROIToolTextLines
})
if(toolGroupId === 'viewport-fusion-3'){
toolGroup.addTool(VolumeRotateTool.toolName);
if (toolGroupId === 'viewport-fusion-3') {
toolGroup.addTool(VolumeRotateTool.toolName)
toolGroup.setToolActive(VolumeRotateTool.toolName, {
bindings: [
{
mouseButton: MouseBindings.Wheel, // mouse wheel
},
],
});
bindings: [
{
mouseButton: MouseBindings.Wheel // mouse wheel
}
]
})
toolGroup.addTool(MIPJumpToClickTool.toolName, {
targetViewportIds: fusionViewportIds,
});
targetViewportIds: fusionViewportIds
})
// Set the initial state of the tools, here we set one tool active on left click.
// This means left click will draw that tool.
toolGroup.setToolActive(MIPJumpToClickTool.toolName, {
bindings: [
{
mouseButton: MouseBindings.Primary, // Left Click
},
],
});
bindings: [
{
mouseButton: MouseBindings.Primary // Left Click
}
]
})
}
toolGroup.setToolActive(StackScrollTool.toolName, {
bindings: [{ mouseButton: MouseBindings.Wheel }]
@ -1230,7 +1239,7 @@ export default {
eventTarget.addEventListener('cornerstoneimageloadprogress', this.imageLoadProgress)
console.log(Events, toolsEvents)
if ( this.readingTool === 2 ) {
if (this.readingTool === 2) {
this.setUpSynchronizers()
}
},
@ -1434,7 +1443,6 @@ export default {
this.saveCustomAnnotation(annotation)
this.$refs[`ecrf_${series.TaskInfo.VisitTaskId}`][0].bindAnnotationToQuestion(annotation)
}
}
this.setToolsPassive()
@ -1482,20 +1490,24 @@ export default {
},
async customAnnotationRemovedListener(e) {
const { annotation } = e.detail
try{
try {
// if ( this.resetAnnotation && this.isFusion ) return false
if (!annotation) return false
if (this.readingTaskState === 2) throw 'annotation Not allowed to operate'
if (this.readingTaskState === 2) {
const errorMsg = { message: 'annotation Not allowed to operate' }
throw errorMsg
}
const i = this.tools.findIndex(i => i.toolName === annotation.metadata.toolName)
if (i === -1) {
//
return
}
if (annotation.visitTaskId === this.taskInfo.VisitTaskId) {
let isBound = this.$refs[`ecrf_${annotation.visitTaskId}`][0].verifyAnnotationIsBound(annotation)
const isBound = this.$refs[`ecrf_${annotation.visitTaskId}`][0].verifyAnnotationIsBound(annotation)
if (isBound) {
this.$alert('该标记已与问题进行绑定,不允许删除!')
throw 'annotation Not allowed to operate'
const errorMsg = { message: 'annotation Not allowed to operate' }
throw errorMsg
}
}
@ -1521,7 +1533,8 @@ export default {
viewport.render()
}
} else {
throw 'annotation Not allowed to operate'
const errorMsg = { message: 'annotation Not allowed to operate' }
throw errorMsg
}
} catch (e) {
cornerstoneTools.annotation.state.addAnnotation(annotation)
@ -1545,7 +1558,7 @@ export default {
},
customAnnotationSelectionChangeListener(e) {
if (this.readingTaskState === 2) return
const {detail} = e
const { detail } = e
const annotations = cornerstoneTools.annotation.state.getAllAnnotations()
const i = annotations.findIndex(i => i.annotationUID === detail.selection[0])
if (i > -1) {
@ -2073,8 +2086,8 @@ export default {
const renderingEngine = getRenderingEngine(renderingEngineId)
const viewport = renderingEngine.getViewport(`${this.viewportKey}-${this.activeViewportIndex}`)
const { invert } = viewport.getProperties()
if ( this.isFusion ) {
viewport.setProperties({ invert: !invert }, this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].volumeId )
if (this.isFusion) {
viewport.setProperties({ invert: !invert }, this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].volumeId)
}
viewport.setProperties({ invert: !invert })
viewport.render()
@ -2218,18 +2231,18 @@ export default {
toggleFullScreen(e, index) {
this.fullScreenIndex = this.fullScreenIndex === index ? null : index
this.activeViewportIndex = index
if ( this.isFusion ) {
let viewportIds = [`${this.viewportKey}-0`, `${this.viewportKey}-1`, `${this.viewportKey}-2`]
viewportIds.forEach(id=>{
let index = this.$refs[id][0].series.SliceIndex
if (this.isFusion) {
const viewportIds = [`${this.viewportKey}-0`, `${this.viewportKey}-1`, `${this.viewportKey}-2`]
viewportIds.forEach(id => {
const index = this.$refs[id][0].series.SliceIndex
this.$refs[id][0].setFullScreen(index)
})
}
},
async toggleTask(taskInfo, taskIndex) {
if(this.isFusion){
let confirm = await this.$confirm(this.$t('trials:reading:confirm:changeStack'))
if(!confirm) return false
if (this.isFusion) {
const confirm = await this.$confirm(this.$t('trials:reading:confirm:changeStack'))
if (!confirm) return false
this.isFusion = false
this.fullScreenIndex = null
this.setToolsPassive()
@ -2299,9 +2312,9 @@ export default {
this.setToolsPassive()
},
async activeSeries(obj) {
if(this.isFusion){
let confirm = await this.$confirm(this.$t('trials:reading:confirm:changeStack'))
if(!confirm) return false
if (this.isFusion) {
const confirm = await this.$confirm(this.$t('trials:reading:confirm:changeStack'))
if (!confirm) return false
this.isFusion = false
this.setToolsPassive()
this.rows = 1
@ -2461,7 +2474,7 @@ export default {
const i = this.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId)
if (i === -1) return
const studyList = this.visitTaskList[i].StudyList
let series = this.getMarkedSeries(studyList, obj.annotation)
const series = this.getMarkedSeries(studyList, obj.annotation)
if (series) {
this.$refs[`${this.viewportKey}-${this.cells.length - 1}`][0].setSeriesInfo(series, true)
this.activeViewportIndex = i
@ -2693,7 +2706,7 @@ export default {
}
},
showPanel(e, toolName) {
if(toolName === 'layout' && this.isFusion) return false
if (toolName === 'layout' && this.isFusion) return false
e.currentTarget.firstChild.lastChild.style.display = 'block'
},
toolMouseout(e) {
@ -2710,67 +2723,67 @@ export default {
},
//
setUpSynchronizers() {
let axialCameraPositionSynchronizer = createCameraPositionSynchronizer(
const axialCameraPositionSynchronizer = createCameraPositionSynchronizer(
'AXIAL_CAMERA_SYNCHRONIZER_ID'
);
let ctVoiSynchronizer = createVOISynchronizer('CT_VOI_SYNCHRONIZER_ID', {
)
const ctVoiSynchronizer = createVOISynchronizer('CT_VOI_SYNCHRONIZER_ID', {
syncInvertState: false,
syncColormap: false,
});
let ptVoiSynchronizer = createVOISynchronizer('PT_VOI_SYNCHRONIZER_ID', {
syncColormap: false
})
const ptVoiSynchronizer = createVOISynchronizer('PT_VOI_SYNCHRONIZER_ID', {
syncInvertState: false,
syncColormap: false,
});
let fusionVoiSynchronizer = createVOISynchronizer('FUSION_VOI_SYNCHRONIZER_ID', {
syncColormap: false
})
const fusionVoiSynchronizer = createVOISynchronizer('FUSION_VOI_SYNCHRONIZER_ID', {
syncInvertState: false,
syncColormap: false,
syncColormap: false
});
[
`viewport-fusion-0`,
`viewport-fusion-1`,
`viewport-fusion-2`,
`viewport-fusion-2`
].forEach((viewportId) => {
axialCameraPositionSynchronizer.add({
renderingEngineId: this.renderingEngineId,
viewportId,
});
viewportId
})
});
[
`viewport-fusion-0`,
`viewport-fusion-0`
].forEach((viewportId) => {
ctVoiSynchronizer.add({
renderingEngineId: this.renderingEngineId,
viewportId,
});
viewportId
})
});
[
`viewport-fusion-3`,
`viewport-fusion-1`,
`viewport-fusion-1`
].forEach((viewportId) => {
ptVoiSynchronizer.add({
renderingEngineId: this.renderingEngineId,
viewportId,
});
viewportId
})
});
[
`viewport-fusion-2`,
`viewport-fusion-2`
].forEach((viewportId) => {
fusionVoiSynchronizer.add({
renderingEngineId,
viewportId,
});
viewportId
})
ctVoiSynchronizer.addTarget({
renderingEngineId,
viewportId,
});
viewportId
})
ptVoiSynchronizer.addTarget({
renderingEngineId,
viewportId,
});
});
viewportId
})
})
},
setColorMap(rgbPresetName) {
let fusionViewportIds = [`viewport-fusion-1`, `viewport-fusion-2`, `viewport-fusion-3`]
const fusionViewportIds = [`viewport-fusion-1`, `viewport-fusion-2`, `viewport-fusion-3`]
fusionViewportIds.forEach(id => {
this.$refs[id][0].setPreset(rgbPresetName)
this.$refs[id][0].renderColorBar(rgbPresetName)
@ -2778,25 +2791,25 @@ export default {
})
},
voiChange(v) {
let fusionViewportIds = [`viewport-fusion-1`, `viewport-fusion-2`, `viewport-fusion-3`]
const fusionViewportIds = [`viewport-fusion-1`, `viewport-fusion-2`, `viewport-fusion-3`]
fusionViewportIds.forEach(id => {
this.$refs[id][0].voiChange(v)
})
},
async handleFusion(data) {
try{
try {
this.fusionVisible = false
this.isFusion = true
this.rows = 2;
this.rows = 2
this.cols = 2
let { ct, pt } = data
const { ct, pt } = data
this.loading = true
this.loadingText = this.$t('trials:lugano:message:loadVolumes')
// this.resetAnnotation = true
// console.log(cornerstoneTools.annotation.state.getAllAnnotations(),'cornerstoneTools.annotation.state')
// cornerstoneTools.annotation.state.removeAllAnnotations()
this.renderedTaskIds = []
if ( this.verifyFusionData(ct, pt) ) {
if (this.verifyFusionData(ct, pt)) {
this.loading = false
this.loadingText = null
this.$refs[`viewport-0`][0].setSeriesInfo(ct)
@ -2806,10 +2819,10 @@ export default {
// this.resetAnnotation = false
return true
}
if (!this.fusionSerieId.ct || this.fusionSerieId.ct !== ct.SeriesInstanceUid ) {
if (!this.fusionSerieId.ct || this.fusionSerieId.ct !== ct.SeriesInstanceUid) {
this.fusionSerieId.ct = ct.SeriesInstanceUid
}
if (!this.fusionSerieId.pt || this.fusionSerieId.pt !== pt.SeriesInstanceUid ) {
if (!this.fusionSerieId.pt || this.fusionSerieId.pt !== pt.SeriesInstanceUid) {
this.fusionSerieId.pt = pt.SeriesInstanceUid
}
await this.getVolume(pt)
@ -2817,22 +2830,22 @@ export default {
await this.getVolume(pt, true)
this.loading = false
this.loadingText = null
let ctData = {
const ctData = {
data: ct,
volumeId: this.volumeData[ct.SeriesInstanceUid].volumeId,
volumeId: this.volumeData[ct.SeriesInstanceUid].volumeId
}
let ptData = {
const ptData = {
data: pt,
volumeId: this.volumeData[pt.SeriesInstanceUid].volumeId,
volume: this.volumeData[pt.SeriesInstanceUid].volume,
volume: this.volumeData[pt.SeriesInstanceUid].volume
}
let fusionData = {
const fusionData = {
ct,
data: pt,
volumeId: this.volumeData[pt.SeriesInstanceUid].volumeId,
ctVolumeId: this.volumeData[ct.SeriesInstanceUid].volumeId,
ptVolumeId: this.volumeData[pt.SeriesInstanceUid].volumeId,
fusionVolumeId: this.volumeData[`fusion_${pt.SeriesInstanceUid}`].volumeId,
fusionVolumeId: this.volumeData[`fusion_${pt.SeriesInstanceUid}`].volumeId
}
this.$refs[`viewport-0`][0].setSeriesInfo(ct)
this.$refs[`viewport-1`][0].setSeriesInfo(pt)
@ -2840,36 +2853,36 @@ export default {
this.$refs[`viewport-3`][0].setSeriesInfo(pt)
this.$refs[`viewport-fusion-0`][0].setSeriesInfo(ctData)
this.$refs[`viewport-fusion-1`][0].setSeriesInfo(ptData, { colorMap: true})
this.$refs[`viewport-fusion-1`][0].setSeriesInfo(ptData, { colorMap: true })
this.$refs[`viewport-fusion-2`][0].setSeriesInfo(fusionData, { isFusion: true, colorMap: true })
this.$refs[`viewport-fusion-3`][0].setSeriesInfo(ptData, { isMip: true, colorMap: true })
// this.resetAnnotation = false
this.$nextTick(() => {
this.$refs[`colorMap`].init()
})
}catch(err){
} catch (err) {
console.log(err)
this.loading = false
this.loadingText = null
}
},
verifyFusionData(ct, pt) {
if (this.fusionSerieId.ct === ct.SeriesInstanceUid && this.fusionSerieId.pt === pt.SeriesInstanceUid && cache.getVolume(this.volumeData[ct.SeriesInstanceUid].volumeId) && cache.getVolume(this.volumeData[pt.SeriesInstanceUid].volumeId) && cache.getVolume(this.volumeData[`fusion_${pt.SeriesInstanceUid}`].volumeId) ) {
if (this.fusionSerieId.ct === ct.SeriesInstanceUid && this.fusionSerieId.pt === pt.SeriesInstanceUid && cache.getVolume(this.volumeData[ct.SeriesInstanceUid].volumeId) && cache.getVolume(this.volumeData[pt.SeriesInstanceUid].volumeId) && cache.getVolume(this.volumeData[`fusion_${pt.SeriesInstanceUid}`].volumeId)) {
return true
}
return false
},
async getVolume(serie, isFusion = false ) {
async getVolume(serie, isFusion = false) {
return new Promise(async res => {
let volumeId = null, volume = null
let key = isFusion ? `fusion_${serie.SeriesInstanceUid}` : serie.SeriesInstanceUid
if(!this.volumeData[key] || !cache.getVolume(this.volumeData[key].volumeId)) {
if ( serie.Modality === 'PT' && !isFusion ) {
let volumeId = null; let volume = null
const key = isFusion ? `fusion_${serie.SeriesInstanceUid}` : serie.SeriesInstanceUid
if (!this.volumeData[key] || !cache.getVolume(this.volumeData[key].volumeId)) {
if (serie.Modality === 'PT' && !isFusion) {
serie.ImageIds.forEach(async id => {
const imageLoadObject = cache.getImage(id);
const imageLoadObject = cache.getImage(id)
if (imageLoadObject) {
await new Promise(res => {
cache.removeImageLoadObject(id, {force:true}); //
cache.removeImageLoadObject(id, { force: true }) //
res()
})
}
@ -2899,7 +2912,7 @@ export default {
},
closeFusion() {
this.fusionVisible = false
},
}
}
}
</script>

View File

@ -32,8 +32,8 @@
:reading-task-state="readingTaskState"
:criterion-id="criterionId"
:calculation-list="calculationList"
:questionMarkInfoList="questionMarkInfoList"
:questionsMarkStatus="questionsMarkStatus"
:question-mark-info-list="questionMarkInfoList"
:questions-mark-status="questionsMarkStatus"
:is-baseline="isBaseLineTask"
@resetFormItemData="resetFormItemData"
@setFormItemData="setFormItemData"
@ -97,7 +97,7 @@ export default {
readingTaskState: {
type: Number,
required: true
},
}
},
data() {
return {
@ -166,7 +166,7 @@ export default {
})
this.questions = res.Result.SinglePage
this.questionsMarkStatus = {}
this.questionMarkInfoList = res.OtherInfo.QuestionMarkInfoList.map(i=>{
this.questionMarkInfoList = res.OtherInfo.QuestionMarkInfoList.map(i => {
if (i.QuestionId && i.MeasureData) {
this.$set(this.questionsMarkStatus, i.QuestionId, 2)
}
@ -348,7 +348,7 @@ export default {
})
},
verifyAnnotationIsBound(annotation) {
let i = this.questionMarkInfoList.findIndex(i=>i.MeasureData && i.MeasureData.annotationUID === annotation.annotationUID)
const i = this.questionMarkInfoList.findIndex(i => i.MeasureData && i.MeasureData.annotationUID === annotation.annotationUID)
return i > -1
},
async operateImageMarker(obj) {
@ -359,19 +359,18 @@ export default {
} else if (obj.operateStateEnum === 2) {
//
let i = this.questionMarkInfoList.findIndex(i=>i.QuestionId === obj.question.Id)
const i = this.questionMarkInfoList.findIndex(i => i.QuestionId === obj.question.Id)
if (i > -1) {
let annotation = this.questionMarkInfoList[i].MeasureData
this.$emit('viewCustomAnnotationSeries', {visitTaskId: this.visitTaskId, annotation})
const annotation = this.questionMarkInfoList[i].MeasureData
this.$emit('viewCustomAnnotationSeries', { visitTaskId: this.visitTaskId, annotation })
}
} else if (obj.operateStateEnum === 3) {
//
// this.$set(this.questionsMarkStatus, obj.question.Id, 1)
} else if (obj.operateStateEnum === 4) {
//
this.$set(this.questionForm, obj.question.Id, '')
let i = this.questionMarkInfoList.findIndex(i=>i.QuestionId === obj.question.Id)
const i = this.questionMarkInfoList.findIndex(i => i.QuestionId === obj.question.Id)
if (i > -1) {
this.questionMarkInfoList.splice(i, 1)
}
@ -380,16 +379,16 @@ export default {
//
this.loading = true
try {
let answers = []
const answers = []
answers.push({ id: obj.question.Id, answer: this.questionForm[obj.question.Id] })
let markInfo = []
let i = this.questionMarkInfoList.findIndex(i=>i.QuestionId === this.operateQuestionId)
const markInfo = []
const i = this.questionMarkInfoList.findIndex(i => i.QuestionId === this.operateQuestionId)
if (i > -1) {
let obj = Object.assign({}, this.questionMarkInfoList[i])
const obj = Object.assign({}, this.questionMarkInfoList[i])
obj.MeasureData = obj.MeasureData ? JSON.stringify(obj.MeasureData) : ''
markInfo.push(obj)
}
let params = {
const params = {
visitTaskId: this.visitTaskId,
answers: answers,
questionMarkInfoList: markInfo
@ -402,9 +401,7 @@ export default {
console.log(e)
this.loading = false
}
}
},
async bindAnnotationToQuestion(annotation) {
try {
@ -420,13 +417,12 @@ export default {
distinguishCancelAndClose: true
})
if (confirm !== 'confirm') return
}
console.log('bindAnnotationToQuestion', annotation)
let i = this.questionMarkInfoList.findIndex(i=>i.QuestionId === this.operateQuestionId)
const i = this.questionMarkInfoList.findIndex(i => i.QuestionId === this.operateQuestionId)
if (i === -1) {
let markInfo = {
const markInfo = {
QuestionId: this.operateQuestionId,
InstanceId: annotation.instanceId,
SeriesId: annotation.seriesId,
@ -448,14 +444,13 @@ export default {
}
this.setAnswerToQuestion(annotation, this.operateQuestionId)
this.$set(this.questionsMarkStatus, this.operateQuestionId, 1)
} catch (e) {
console.log(e)
}
},
updateAnnotationToQuestion(annotation) {
console.log('updateAnnotationToQuestion', annotation)
let i = this.questionMarkInfoList.findIndex(i=>i.MeasureData && i.MeasureData.annotationUID === annotation.annotationUID)
const i = this.questionMarkInfoList.findIndex(i => i.MeasureData && i.MeasureData.annotationUID === annotation.annotationUID)
if (i === -1) return
this.questionMarkInfoList[i].measureData = annotation
this.setAnswerToQuestion(annotation, this.questionMarkInfoList[i].QuestionId)
@ -468,7 +463,7 @@ export default {
let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
this.$set(this.questionForm, questionId, length)
} else if (obj.toolName === 'Bidirectional') {
} else if (annotation.metadata.toolName === 'Bidirectional') {
// let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
// length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
let short = annotation.data.cachedStats[`imageId:${referencedImageId}`].width
@ -494,7 +489,7 @@ export default {
await this.getQuestionCalculateRelation()
await this.getQuestions()
this.$emit('resetAnnotations', this.visitTaskId)
this.$nextTick(()=>{
this.$nextTick(() => {
this.rerender = true
})
}
@ -503,7 +498,7 @@ export default {
loading.close()
console.log(e)
}
},
}
}
}
</script>