RECIST1.1标准阅片时,对于非DICOM图像可以画标记并创建病灶,升级后的工具不能画标记了
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
dff6de546c
commit
035e46bacc
|
@ -570,7 +570,7 @@ export default {
|
||||||
end: { x: e.offsetX, y: e.offsetY }
|
end: { x: e.offsetX, y: e.offsetY }
|
||||||
},
|
},
|
||||||
remark: this.lesionName,
|
remark: this.lesionName,
|
||||||
uuid: `${this.imgId}-${this.lesionName}`,
|
uuid: `${this.imgId}-${this.lesionName ? this.lesionName : Date.now()}`,
|
||||||
toolName: 'ArrowAnnotate',
|
toolName: 'ArrowAnnotate',
|
||||||
toolType: 'ArrowAnnotate'
|
toolType: 'ArrowAnnotate'
|
||||||
}
|
}
|
||||||
|
@ -601,7 +601,7 @@ export default {
|
||||||
end: { x: e.offsetX, y: e.offsetY }
|
end: { x: e.offsetX, y: e.offsetY }
|
||||||
},
|
},
|
||||||
remark: this.lesionName,
|
remark: this.lesionName,
|
||||||
uuid: `${this.imgId}-${this.lesionName}`,
|
uuid: `${this.imgId}-${this.lesionName ? this.lesionName : Date.now()}`,
|
||||||
toolName: 'RectangleRoi',
|
toolName: 'RectangleRoi',
|
||||||
toolType: 'RectangleRoi'
|
toolType: 'RectangleRoi'
|
||||||
}
|
}
|
||||||
|
|
|
@ -1405,7 +1405,7 @@ export default {
|
||||||
if (taskIdx === -1) return
|
if (taskIdx === -1) return
|
||||||
const annotations = this.visitTaskList[taskIdx].Annotations
|
const annotations = this.visitTaskList[taskIdx].Annotations
|
||||||
annotations.map(i => {
|
annotations.map(i => {
|
||||||
if (i.MeasureData) {
|
if (i.MeasureData && !Object.hasOwn(i.MeasureData, 'isDicomReading')) {
|
||||||
const annotation = i.MeasureData
|
const annotation = i.MeasureData
|
||||||
annotation.highlighted = false
|
annotation.highlighted = false
|
||||||
cornerstoneTools.annotation.state.addAnnotation(annotation)
|
cornerstoneTools.annotation.state.addAnnotation(annotation)
|
||||||
|
|
|
@ -8,35 +8,24 @@
|
||||||
<span style="margin-left:5px;">{{ visitInfo.TaskBlindName }}</span>
|
<span style="margin-left:5px;">{{ visitInfo.TaskBlindName }}</span>
|
||||||
</h3>
|
</h3>
|
||||||
<div v-if="readingTaskState < 2">
|
<div v-if="readingTaskState < 2">
|
||||||
<el-tooltip class="item" effect="dark" :content="$t('trials:dicomReading:message:confirmReset')" placement="bottom">
|
<el-tooltip class="item" effect="dark" :content="$t('trials:dicomReading:message:confirmReset')"
|
||||||
<i
|
placement="bottom">
|
||||||
class="el-icon-refresh-left"
|
<i class="el-icon-refresh-left" @click="resetForm" />
|
||||||
@click="resetForm"
|
|
||||||
/>
|
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 影像质量评估 -->
|
<!-- 影像质量评估 -->
|
||||||
<div v-if="outerQuestions.length > 0" class="outer_form_wrapper">
|
<div v-if="outerQuestions.length > 0" class="outer_form_wrapper">
|
||||||
<el-form
|
<el-form ref="outerForm" size="small" :model="outerForm">
|
||||||
ref="outerForm"
|
<question-form-item v-for="outerQs in outerQuestions" :key="outerQs.Id" :question="outerQs"
|
||||||
size="small"
|
:question-form="outerForm" :reading-task-state="readingTaskState" :visit-task-id="visitTaskId"
|
||||||
:model="outerForm"
|
@resetFormItemData="resetOuterFormItemData" @setFormItemData="setOuterFormItemData" />
|
||||||
>
|
|
||||||
<question-form-item
|
|
||||||
v-for="outerQs in outerQuestions"
|
|
||||||
:key="outerQs.Id"
|
|
||||||
:question="outerQs"
|
|
||||||
:question-form="outerForm"
|
|
||||||
:reading-task-state="readingTaskState"
|
|
||||||
:visit-task-id="visitTaskId"
|
|
||||||
@resetFormItemData="resetOuterFormItemData"
|
|
||||||
@setFormItemData="setOuterFormItemData"
|
|
||||||
/>
|
|
||||||
<el-form-item v-if="readingTaskState < 2">
|
<el-form-item v-if="readingTaskState < 2">
|
||||||
<div class="outer_form-footer">
|
<div class="outer_form-footer">
|
||||||
<i class="el-icon-warning feedback-icon" :style="{color: taskInfo && taskInfo.IsExistUnprocessedFeedback ? '#ffeb3b' : '#fff'}" @click="openFeedBackTable" />
|
<i class="el-icon-warning feedback-icon"
|
||||||
|
:style="{ color: taskInfo && taskInfo.IsExistUnprocessedFeedback ? '#ffeb3b' : '#fff' }"
|
||||||
|
@click="openFeedBackTable" />
|
||||||
<el-button size="mini" @click="saveOuterForm">{{ $t('common:button:save') }}</el-button>
|
<el-button size="mini" @click="saveOuterForm">{{ $t('common:button:save') }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -44,146 +33,116 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- 病灶评估 -->
|
<!-- 病灶评估 -->
|
||||||
<template v-if="tableQuestions.length > 0 && criterionType !== 10">
|
<template v-if="tableQuestions.length > 0 && criterionType !== 10">
|
||||||
<div
|
<div v-for="(qs, index) in tableQuestions" :key="index" class="lesions lesions_wrapper">
|
||||||
v-for="(qs,index) in tableQuestions"
|
<h4 v-if="qs.Type === 'group'" style="color: #ddd;padding: 5px 0px;margin: 0;">
|
||||||
:key="index"
|
{{ language === 'en' ? qs.GroupEnName : qs.GroupName }}
|
||||||
class="lesions lesions_wrapper"
|
|
||||||
>
|
|
||||||
<h4
|
|
||||||
v-if="qs.Type === 'group'"
|
|
||||||
style="color: #ddd;padding: 5px 0px;margin: 0;"
|
|
||||||
>
|
|
||||||
{{ language==='en'?qs.GroupEnName:qs.GroupName }}
|
|
||||||
</h4>
|
</h4>
|
||||||
<div class="lesion_list">
|
<div class="lesion_list">
|
||||||
<div
|
<div v-for="table in qs.Childrens" v-show="!(isBaseLineTask && table.LesionType === 2)" :key="table.Id">
|
||||||
v-for="table in qs.Childrens"
|
<div v-if="table.Type === 'table'" class="flex-row" style="margin:3px 0;">
|
||||||
v-show="!(isBaseLineTask && table.LesionType === 2)"
|
|
||||||
:key="table.Id"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
v-if="table.Type === 'table'"
|
|
||||||
class="flex-row"
|
|
||||||
style="margin:3px 0;"
|
|
||||||
>
|
|
||||||
<div class="title">{{ table.QuestionName }}</div>
|
<div class="title">{{ table.QuestionName }}</div>
|
||||||
<div
|
<div v-if="readingTaskState < 2 && (isBaseLineTask || table.LesionType === 2)" class="add-icon"
|
||||||
v-if="readingTaskState<2 && (isBaseLineTask || table.LesionType === 2)"
|
@click.prevent="addTarget(table)">
|
||||||
class="add-icon"
|
|
||||||
@click.prevent="addTarget(table)"
|
|
||||||
>
|
|
||||||
<i class="el-icon-plus" />
|
<i class="el-icon-plus" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-collapse
|
<el-collapse v-if="table.Type === 'table' && table.TableQuestions" v-model="activeName" accordion
|
||||||
v-if="table.Type === 'table' && table.TableQuestions"
|
@change="handleCollapseChange">
|
||||||
v-model="activeName"
|
<el-collapse-item v-for="(answer, i) in table.TableQuestions.Answers"
|
||||||
accordion
|
:key="`${table.Id}_${answer.RowIndex}`" :name="`${table.Id}_${answer.RowIndex}`"
|
||||||
@change="handleCollapseChange"
|
@contextmenu.prevent.native="collapseRightClick($event, table.Id, answer.RowIndex)">
|
||||||
>
|
|
||||||
<el-collapse-item
|
|
||||||
v-for="(answer,i) in table.TableQuestions.Answers"
|
|
||||||
:key="`${table.Id}_${answer.RowIndex}`"
|
|
||||||
:name="`${table.Id}_${answer.RowIndex}`"
|
|
||||||
@contextmenu.prevent.native="collapseRightClick($event, table.Id, answer.RowIndex)"
|
|
||||||
>
|
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
<div
|
<div style="width:340px;position: relative;"
|
||||||
style="width:340px;position: relative;"
|
:style="{ color: (activeName === table.Id + answer.RowIndex ? '#ffeb3b' : '#fff') }">
|
||||||
:style="{color:(activeName===table.Id+answer.RowIndex?'#ffeb3b':'#fff')}"
|
{{ getLesionName(table.OrderMark, answer.RowIndex) }}
|
||||||
>
|
|
||||||
{{ getLesionName(table.OrderMark,answer.RowIndex) }}
|
|
||||||
<!-- 未保存 -->
|
<!-- 未保存 -->
|
||||||
<el-tooltip v-if="readingTaskState<2 && parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].SaveTypeEnum) === 0" class="item" effect="dark" :content="$t('trials:reading:button:unsaved')" placement="bottom">
|
<el-tooltip
|
||||||
|
v-if="readingTaskState < 2 && parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].SaveTypeEnum) === 0"
|
||||||
|
class="item" effect="dark" :content="$t('trials:reading:button:unsaved')" placement="bottom">
|
||||||
<i class="el-icon-warning" style="color:red" />
|
<i class="el-icon-warning" style="color:red" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<!-- 信息不完整 -->
|
<!-- 信息不完整 -->
|
||||||
<el-tooltip v-if="readingTaskState<2 && parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].SaveTypeEnum) ===1" class="item" effect="dark" :content="$t('trials:reading:button:incompleteInfor')" placement="bottom">
|
<el-tooltip
|
||||||
|
v-if="readingTaskState < 2 && parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].SaveTypeEnum) === 1"
|
||||||
|
class="item" effect="dark" :content="$t('trials:reading:button:incompleteInfor')"
|
||||||
|
placement="bottom">
|
||||||
<i class="el-icon-warning" style="color:#ff9800" />
|
<i class="el-icon-warning" style="color:#ff9800" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<div style="position: absolute;left: 50px;top: 2px;">
|
<div style="position: absolute;left: 50px;top: 2px;">
|
||||||
<div style="font-size: 11px;width:220px;height: 30px;">
|
<div style="font-size: 11px;width:220px;height: 30px;">
|
||||||
<div
|
<div v-if="innerFormData[`${table.Id}_${answer.RowIndex}`].LesionPart"
|
||||||
v-if="innerFormData[`${table.Id}_${answer.RowIndex}`].LesionPart"
|
|
||||||
style="margin-left:10px;display: inline-block; white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width:90px"
|
style="margin-left:10px;display: inline-block; white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width:90px"
|
||||||
:title="innerFormData[`${table.Id}_${answer.RowIndex}`].LesionPart"
|
:title="innerFormData[`${table.Id}_${answer.RowIndex}`].LesionPart">
|
||||||
>
|
|
||||||
{{ innerFormData[`${table.Id}_${answer.RowIndex}`].LesionPart }}
|
{{ innerFormData[`${table.Id}_${answer.RowIndex}`].LesionPart }}
|
||||||
</div>
|
</div>
|
||||||
<div style="display: inline-block;margin-left:5px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width:50px">
|
<div
|
||||||
|
style="display: inline-block;margin-left:5px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width:50px">
|
||||||
<span v-if="table.LesionType === 0">
|
<span v-if="table.LesionType === 0">
|
||||||
{{ $fd('TargetState',parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionState)) }}
|
{{
|
||||||
|
$fd('TargetState', parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionState))
|
||||||
|
}}
|
||||||
</span>
|
</span>
|
||||||
<span v-else-if="table.LesionType === 1">
|
<span v-else-if="table.LesionType === 1">
|
||||||
{{ $fd('NoTargetState',parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionState)) }}
|
{{
|
||||||
|
$fd('NoTargetState',
|
||||||
|
parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionState))
|
||||||
|
}}
|
||||||
</span>
|
</span>
|
||||||
<span v-else>
|
<span v-else>
|
||||||
{{ $fd('NewLesionState',parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionState)) }}
|
{{
|
||||||
|
$fd('NewLesionState',
|
||||||
|
parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionState))
|
||||||
|
}}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="display: inline-block;margin-left:5px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width:60px">
|
<div
|
||||||
<template v-if="innerFormData[`${table.Id}_${answer.RowIndex}`].IsLymphLesion && !isNaN(parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionShort))">
|
style="display: inline-block;margin-left:5px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width:60px">
|
||||||
|
<template
|
||||||
|
v-if="innerFormData[`${table.Id}_${answer.RowIndex}`].IsLymphLesion && !isNaN(parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionShort))">
|
||||||
{{ innerFormData[`${table.Id}_${answer.RowIndex}`].LesionShort }}mm
|
{{ innerFormData[`${table.Id}_${answer.RowIndex}`].LesionShort }}mm
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="!innerFormData[`${table.Id}_${answer.RowIndex}`].IsLymphLesion && !isNaN(parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionLength))">
|
<template
|
||||||
|
v-else-if="!innerFormData[`${table.Id}_${answer.RowIndex}`].IsLymphLesion && !isNaN(parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionLength))">
|
||||||
{{ innerFormData[`${table.Id}_${answer.RowIndex}`].LesionLength }}mm
|
{{ innerFormData[`${table.Id}_${answer.RowIndex}`].LesionLength }}mm
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 分裂 -->
|
<!-- 分裂 -->
|
||||||
<div v-if="((table.LesionType === 0 && parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionState) === 0) || (table.LesionType === 1 && [0,1].includes(parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionState))) || (table.LesionType === 2 && parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionState) === 0)) && innerFormData[`${table.Id}_${answer.RowIndex}`].IsCurrentTaskAdd === 'False'" style="position: absolute;right: 5px;top: 2px;transform: rotateY(180deg);">
|
<div
|
||||||
<el-tooltip v-show="readingTaskState<2 && !!innerFormData[`${table.Id}_${answer.RowIndex}`].RowId && !isBaseLineTask && innerFormData[`${table.Id}_${answer.RowIndex}`].IsDicomReading !== false" class="table" :content="$t('trials:reading:button:split')" placement="left">
|
v-if="((table.LesionType === 0 && parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionState) === 0) || (table.LesionType === 1 && [0, 1].includes(parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionState))) || (table.LesionType === 2 && parseInt(innerFormData[`${table.Id}_${answer.RowIndex}`].LesionState) === 0)) && innerFormData[`${table.Id}_${answer.RowIndex}`].IsCurrentTaskAdd === 'False'"
|
||||||
<i class="iconfont icon-24gl-split" style="color:#fff;font-size: 16px;" @click.stop="lesionSplit(table.Id, innerFormData[`${table.Id}_${answer.RowIndex}`].RowId)" />
|
style="position: absolute;right: 5px;top: 2px;transform: rotateY(180deg);">
|
||||||
|
<el-tooltip
|
||||||
|
v-show="readingTaskState < 2 && !!innerFormData[`${table.Id}_${answer.RowIndex}`].RowId && !isBaseLineTask && innerFormData[`${table.Id}_${answer.RowIndex}`].IsDicomReading !== false"
|
||||||
|
class="table" :content="$t('trials:reading:button:split')" placement="left">
|
||||||
|
<i class="iconfont icon-24gl-split" style="color:#fff;font-size: 16px;"
|
||||||
|
@click.stop="lesionSplit(table.Id, innerFormData[`${table.Id}_${answer.RowIndex}`].RowId)" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<el-form
|
<el-form :ref="`${table.Id}_${answer.RowIndex}`" size="small"
|
||||||
:ref="`${table.Id}_${answer.RowIndex}`"
|
:model="innerFormData[`${table.Id}_${answer.RowIndex}`]">
|
||||||
size="small"
|
<table-question-form-item :ref="`form_${table.Id}_${answer.RowIndex}`" :table-info="table"
|
||||||
:model="innerFormData[`${table.Id}_${answer.RowIndex}`]"
|
:answer="answer" :question-form="innerFormData[`${table.Id}_${answer.RowIndex}`]"
|
||||||
>
|
:reading-task-state="readingTaskState" :organs="organs" :is-base-line-task="isBaseLineTask"
|
||||||
<table-question-form-item
|
:is-current-task="isCurrentTask" @update="innerFormDataUpdate" @close="closeInnerForm"
|
||||||
:ref="`form_${table.Id}_${answer.RowIndex}`"
|
@lesionTypeChange="lesionTypeChange" />
|
||||||
:table-info="table"
|
<div v-if="readingTaskState < 2" style="text-align:right;margin-top:10px;">
|
||||||
:answer="answer"
|
|
||||||
:question-form="innerFormData[`${table.Id}_${answer.RowIndex}`]"
|
|
||||||
:reading-task-state="readingTaskState"
|
|
||||||
:organs="organs"
|
|
||||||
:is-base-line-task="isBaseLineTask"
|
|
||||||
:is-current-task="isCurrentTask"
|
|
||||||
@update="innerFormDataUpdate"
|
|
||||||
@close="closeInnerForm"
|
|
||||||
@lesionTypeChange="lesionTypeChange"
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
v-if="readingTaskState<2"
|
|
||||||
style="text-align:right;margin-top:10px;"
|
|
||||||
>
|
|
||||||
<!-- 清除标记 -->
|
<!-- 清除标记 -->
|
||||||
<el-button
|
<el-button v-if="innerFormData[`${table.Id}_${answer.RowIndex}`].MeasureData" size="mini"
|
||||||
v-if="innerFormData[`${table.Id}_${answer.RowIndex}`].MeasureData"
|
@click="clearMeasureData(table, answer.RowIndex)">
|
||||||
size="mini"
|
|
||||||
@click="clearMeasureData(table, answer.RowIndex)"
|
|
||||||
>
|
|
||||||
{{ $t('trials:reading:button:removeMark') }}
|
{{ $t('trials:reading:button:removeMark') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 删除 -->
|
<!-- 删除 -->
|
||||||
<el-button
|
<el-button v-if="table.TableQuestions.Answers[i].IsCurrentTaskAdd !== 'False'" size="mini"
|
||||||
v-if="table.TableQuestions.Answers[i].IsCurrentTaskAdd !== 'False'"
|
@click="deleteLesion(table, answer.RowIndex)">
|
||||||
size="mini"
|
|
||||||
@click="deleteLesion(table, answer.RowIndex)"
|
|
||||||
>
|
|
||||||
{{ $t('common:button:delete') }}
|
{{ $t('common:button:delete') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 保存 -->
|
<!-- 保存 -->
|
||||||
<el-button
|
<el-button size="mini" @click="saveLesion(table, answer.RowIndex)">
|
||||||
size="mini"
|
|
||||||
@click="saveLesion(table, answer.RowIndex)"
|
|
||||||
>
|
|
||||||
{{ $t('common:button:save') }}
|
{{ $t('common:button:save') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -212,6 +171,7 @@ import { resetReadingTask, setSkipReadingCache } from '@/api/reading'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import QuestionFormItem from './QuestionFormItem'
|
import QuestionFormItem from './QuestionFormItem'
|
||||||
import TableQuestionFormItem from './TableQuestionFormItem'
|
import TableQuestionFormItem from './TableQuestionFormItem'
|
||||||
|
import DicomEvent from '@/views/trials/trials-panel/reading/dicoms/components/DicomEvent'
|
||||||
export default {
|
export default {
|
||||||
name: 'QuestionList',
|
name: 'QuestionList',
|
||||||
components: {
|
components: {
|
||||||
|
@ -283,6 +243,7 @@ export default {
|
||||||
this.getOrganList()
|
this.getOrganList()
|
||||||
this.getOuterQuestions()
|
this.getOuterQuestions()
|
||||||
this.getTableQuestions()
|
this.getTableQuestions()
|
||||||
|
window.addEventListener('message', this.receiveMsg)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 获取器官信息
|
// 获取器官信息
|
||||||
|
@ -344,7 +305,7 @@ export default {
|
||||||
this.$set(this.outerForm, v, null)
|
this.$set(this.outerForm, v, null)
|
||||||
},
|
},
|
||||||
setOuterFormItemData(obj) {
|
setOuterFormItemData(obj) {
|
||||||
|
|
||||||
},
|
},
|
||||||
// 获取表格问题
|
// 获取表格问题
|
||||||
async getTableQuestions() {
|
async getTableQuestions() {
|
||||||
|
@ -468,7 +429,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
setAnnotation(obj) {
|
setAnnotation(obj) {
|
||||||
const annotation = Object.assign({}, obj.annotation)
|
const annotation = Object.assign({}, !Object.hasOwn(obj, 'isDicomReading') ? obj.annotation : obj)
|
||||||
if (this.activeName) {
|
if (this.activeName) {
|
||||||
// 判断当前激活的病灶是否有标注信息
|
// 判断当前激活的病灶是否有标注信息
|
||||||
const tableId = this.activeName.split('_')[0]
|
const tableId = this.activeName.split('_')[0]
|
||||||
|
@ -493,6 +454,13 @@ export default {
|
||||||
child => child.Id === tableId
|
child => child.Id === tableId
|
||||||
)
|
)
|
||||||
if (typeof targetTable !== 'object') return
|
if (typeof targetTable !== 'object') return
|
||||||
|
if (Object.hasOwn(annotation, 'isDicomReading') && !annotation.isDicomReading) {
|
||||||
|
// 非dicom获取名称进行重绘
|
||||||
|
annotation.data.remark = innerForm.LesionName
|
||||||
|
annotation.markTool = annotation.data.toolName
|
||||||
|
DicomEvent.$emit('addNoneDicomMeasureData', annotation)
|
||||||
|
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'IsDicomReading', false)
|
||||||
|
}
|
||||||
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'MeasureData', annotation)
|
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'MeasureData', annotation)
|
||||||
let length = null
|
let length = null
|
||||||
let short = null
|
let short = null
|
||||||
|
@ -544,7 +512,7 @@ export default {
|
||||||
}
|
}
|
||||||
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'SaveTypeEnum', innerForm.RowId ? 1 : 0)
|
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'SaveTypeEnum', innerForm.RowId ? 1 : 0)
|
||||||
this.setMarkName(this.innerFormData[`${tableId}_${rowIndex}`].LesionType, this.innerFormData[`${tableId}_${rowIndex}`][stateId], this.innerFormData[`${tableId}_${rowIndex}`].LesionName, annotation)
|
this.setMarkName(this.innerFormData[`${tableId}_${rowIndex}`].LesionType, this.innerFormData[`${tableId}_${rowIndex}`][stateId], this.innerFormData[`${tableId}_${rowIndex}`].LesionName, annotation)
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (this.isBaseLineTask) {
|
if (this.isBaseLineTask) {
|
||||||
|
@ -656,7 +624,7 @@ export default {
|
||||||
this.$confirm(msg, {
|
this.$confirm(msg, {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -667,7 +635,7 @@ export default {
|
||||||
this.$confirm(msg, {
|
this.$confirm(msg, {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -676,10 +644,16 @@ export default {
|
||||||
answer.RowId = ''
|
answer.RowId = ''
|
||||||
const maxIndex = this.getMaxRowIndex(tableInfo.TableQuestions.Answers)
|
const maxIndex = this.getMaxRowIndex(tableInfo.TableQuestions.Answers)
|
||||||
answer.RowIndex = `${maxIndex + 1}.00`
|
answer.RowIndex = `${maxIndex + 1}.00`
|
||||||
answer.IsDicomReading = true
|
answer.IsDicomReading = annotation && Object.hasOwn(annotation, 'isDicomReading') ? annotation.isDicomReading : true
|
||||||
answer.SaveTypeEnum = 0
|
answer.SaveTypeEnum = 0
|
||||||
answer.LesionType = tableInfo.LesionType
|
answer.LesionType = tableInfo.LesionType
|
||||||
answer.LesionName = this.getLesionName(tableInfo.OrderMark, answer.RowIndex)
|
answer.LesionName = this.getLesionName(tableInfo.OrderMark, answer.RowIndex)
|
||||||
|
if (!answer.IsDicomReading) {
|
||||||
|
// 非dicom获取名称进行重绘
|
||||||
|
annotation.data.remark = answer.LesionName
|
||||||
|
annotation.markTool = annotation.data.toolName
|
||||||
|
DicomEvent.$emit('addNoneDicomMeasureData', annotation)
|
||||||
|
}
|
||||||
let state = null
|
let state = null
|
||||||
if (this.isBaseLineTask && tableInfo.LesionType === 0) {
|
if (this.isBaseLineTask && tableInfo.LesionType === 0) {
|
||||||
state = 0
|
state = 0
|
||||||
|
@ -693,14 +667,14 @@ export default {
|
||||||
tableInfo.TableQuestions.Answers.push(answer)
|
tableInfo.TableQuestions.Answers.push(answer)
|
||||||
if (typeof annotation === 'object') {
|
if (typeof annotation === 'object') {
|
||||||
answer.MeasureData = annotation
|
answer.MeasureData = annotation
|
||||||
if (annotation.metadata.toolName === 'Length') {
|
if (annotation.metadata?.toolName === 'Length') {
|
||||||
const referencedImageId = annotation.metadata.referencedImageId
|
const referencedImageId = annotation.metadata.referencedImageId
|
||||||
let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
|
let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
|
||||||
length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
|
length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
|
||||||
const lengthId = this.getQuestionId(0, tableInfo.TableQuestions.Questions)
|
const lengthId = this.getQuestionId(0, tableInfo.TableQuestions.Questions)
|
||||||
answer.LesionLength = length
|
answer.LesionLength = length
|
||||||
answer[lengthId] = length
|
answer[lengthId] = length
|
||||||
} else if (annotation.metadata.toolName === 'Bidirectional') {
|
} else if (annotation.metadata?.toolName === 'Bidirectional') {
|
||||||
const referencedImageId = annotation.metadata.referencedImageId
|
const referencedImageId = annotation.metadata.referencedImageId
|
||||||
let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
|
let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
|
||||||
length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
|
length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
|
||||||
|
@ -775,7 +749,11 @@ export default {
|
||||||
this.$set(this.innerFormData[`${table.Id}_${rowIndex}`], 'LesionState', null)
|
this.$set(this.innerFormData[`${table.Id}_${rowIndex}`], 'LesionState', null)
|
||||||
const obj = Object.assign({}, innerForm.MeasureData)
|
const obj = Object.assign({}, innerForm.MeasureData)
|
||||||
// 移除标注信息
|
// 移除标注信息
|
||||||
this.$emit('removeAnnotation', obj)
|
if (innerForm.IsDicomReading && innerForm.IsDicomReading !== 'False') {
|
||||||
|
this.$emit('removeAnnotation', obj)
|
||||||
|
} else {
|
||||||
|
DicomEvent.$emit('removeNoneDicomMeasureData', obj)
|
||||||
|
}
|
||||||
// 重置标注信息
|
// 重置标注信息
|
||||||
this.$set(this.innerFormData[`${table.Id}_${rowIndex}`], 'MeasureData', null)
|
this.$set(this.innerFormData[`${table.Id}_${rowIndex}`], 'MeasureData', null)
|
||||||
// 重置保存标志
|
// 重置保存标志
|
||||||
|
@ -806,7 +784,11 @@ export default {
|
||||||
if (innerForm.MeasureData) {
|
if (innerForm.MeasureData) {
|
||||||
// 移除标注信息
|
// 移除标注信息
|
||||||
const obj = Object.assign({}, innerForm.MeasureData)
|
const obj = Object.assign({}, innerForm.MeasureData)
|
||||||
this.$emit('removeAnnotation', obj)
|
if (innerForm.IsDicomReading && innerForm.IsDicomReading !== 'False') {
|
||||||
|
this.$emit('removeAnnotation', obj)
|
||||||
|
} else {
|
||||||
|
DicomEvent.$emit('removeNoneDicomMeasureData', obj)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 刷新表格问题
|
// 刷新表格问题
|
||||||
await this.getTableQuestions()
|
await this.getTableQuestions()
|
||||||
|
@ -819,7 +801,11 @@ export default {
|
||||||
if (innerForm.MeasureData) {
|
if (innerForm.MeasureData) {
|
||||||
// 移除标注信息
|
// 移除标注信息
|
||||||
const obj = Object.assign({}, innerForm.MeasureData)
|
const obj = Object.assign({}, innerForm.MeasureData)
|
||||||
this.$emit('removeAnnotation', obj)
|
if (innerForm.IsDicomReading && innerForm.IsDicomReading !== 'False') {
|
||||||
|
this.$emit('removeAnnotation', obj)
|
||||||
|
} else {
|
||||||
|
DicomEvent.$emit('removeNoneDicomMeasureData', obj)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 移除病灶
|
// 移除病灶
|
||||||
this.removeAnswer(table.Id, rowIndex)
|
this.removeAnswer(table.Id, rowIndex)
|
||||||
|
@ -857,7 +843,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg19'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg19'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -869,7 +855,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg20'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg20'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -886,7 +872,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg21'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg21'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -898,7 +884,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg22'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg22'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -916,7 +902,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg23'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg23'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -928,7 +914,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg24'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg24'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -944,7 +930,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg25'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg25'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -961,7 +947,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg26'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg26'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -983,7 +969,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg27'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg27'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -995,7 +981,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg28'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg28'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1011,7 +997,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg29'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg29'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1023,7 +1009,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg30'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg30'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1045,7 +1031,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg31'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg31'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1057,7 +1043,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg32'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg32'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1074,7 +1060,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg33'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg33'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1086,7 +1072,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg34'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg34'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1103,7 +1089,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg35'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg35'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1115,7 +1101,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg36'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg36'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1132,7 +1118,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg37'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg37'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1144,7 +1130,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg38'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg38'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1161,7 +1147,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg39'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg39'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1173,7 +1159,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg40'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg40'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1190,7 +1176,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg41'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg41'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1202,7 +1188,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg42'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg42'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1219,7 +1205,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg43'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg43'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1231,7 +1217,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg44'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg44'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1248,7 +1234,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg45'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg45'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1260,7 +1246,7 @@ export default {
|
||||||
this.$confirm(this.$t('trials:reading:warnning:msg46'), {
|
this.$confirm(this.$t('trials:reading:warnning:msg46'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
loading.close()
|
loading.close()
|
||||||
return
|
return
|
||||||
|
@ -1390,7 +1376,7 @@ export default {
|
||||||
if (annotation) {
|
if (annotation) {
|
||||||
this.setMarkName(this.innerFormData[`${obj.tableId}_${obj.rowIndex}`].LesionType, obj.val, this.innerFormData[`${obj.tableId}_${obj.rowIndex}`].LesionName, annotation)
|
this.setMarkName(this.innerFormData[`${obj.tableId}_${obj.rowIndex}`].LesionType, obj.val, this.innerFormData[`${obj.tableId}_${obj.rowIndex}`].LesionName, annotation)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (obj.questionMark === 8) {
|
if (obj.questionMark === 8) {
|
||||||
this.$set(this.innerFormData[`${obj.tableId}_${obj.rowIndex}`], 'LesionPart', obj.val)
|
this.$set(this.innerFormData[`${obj.tableId}_${obj.rowIndex}`], 'LesionPart', obj.val)
|
||||||
|
@ -1448,7 +1434,7 @@ export default {
|
||||||
this.$confirm(msg, {
|
this.$confirm(msg, {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -1551,7 +1537,7 @@ export default {
|
||||||
type: 'imgfail',
|
type: 'imgfail',
|
||||||
trialId: this.$route.query.trialId,
|
trialId: this.$route.query.trialId,
|
||||||
visitTaskId: this.visitTaskId,
|
visitTaskId: this.visitTaskId,
|
||||||
callBack: async() => {
|
callBack: async () => {
|
||||||
const confirm = await this.$confirm(
|
const confirm = await this.$confirm(
|
||||||
this.$t('trials:reading:confirm:feedbackmsg'),
|
this.$t('trials:reading:confirm:feedbackmsg'),
|
||||||
{
|
{
|
||||||
|
@ -1588,7 +1574,7 @@ export default {
|
||||||
this.$confirm(msg, {
|
this.$confirm(msg, {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
this.$set(this.innerFormData[`${obj.tableId}_${obj.rowIndex}`], 'LesionType', innerForm.LesionType)
|
this.$set(this.innerFormData[`${obj.tableId}_${obj.rowIndex}`], 'LesionType', innerForm.LesionType)
|
||||||
return
|
return
|
||||||
|
@ -1605,7 +1591,7 @@ export default {
|
||||||
this.$confirm(msg, {
|
this.$confirm(msg, {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
this.$set(this.innerFormData[`${obj.tableId}_${obj.rowIndex}`], 'LesionType', innerForm.LesionType)
|
this.$set(this.innerFormData[`${obj.tableId}_${obj.rowIndex}`], 'LesionType', innerForm.LesionType)
|
||||||
return
|
return
|
||||||
|
@ -1616,7 +1602,7 @@ export default {
|
||||||
this.$confirm(this.$t(' trials:reading:warnning:msg15'), {
|
this.$confirm(this.$t(' trials:reading:warnning:msg15'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
this.$set(this.innerFormData[`${obj.tableId}_${obj.rowIndex}`], 'LesionType', innerForm.LesionType)
|
this.$set(this.innerFormData[`${obj.tableId}_${obj.rowIndex}`], 'LesionType', innerForm.LesionType)
|
||||||
return
|
return
|
||||||
|
@ -1694,7 +1680,11 @@ export default {
|
||||||
// 移除标注信息
|
// 移除标注信息
|
||||||
if (innerForm.MeasureData) {
|
if (innerForm.MeasureData) {
|
||||||
const obj = Object.assign({}, innerForm.MeasureData)
|
const obj = Object.assign({}, innerForm.MeasureData)
|
||||||
this.$emit('removeAnnotation', obj)
|
if (innerForm.IsDicomReading && innerForm.IsDicomReading !== 'False') {
|
||||||
|
this.$emit('removeAnnotation', obj)
|
||||||
|
} else {
|
||||||
|
DicomEvent.$emit('removeNoneDicomMeasureData', obj)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 关闭窗口
|
// 关闭窗口
|
||||||
this.activeName = ''
|
this.activeName = ''
|
||||||
|
@ -1819,28 +1809,42 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
return { isCanActiveTool: true, reason: '' }
|
return { isCanActiveTool: true, reason: '' }
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
receiveMsg(event) {
|
||||||
|
if (event.data.type === 'isCanActiveNoneDicomTool') {
|
||||||
|
let obj = { isCanActiveTool: true, lesionName: '', reason: '', toolName: event.data.toolName }
|
||||||
|
let { isCanActiveTool, reason } = this.validTool(event.data.toolName)
|
||||||
|
obj.isCanActiveTool = isCanActiveTool
|
||||||
|
obj.reason = reason
|
||||||
|
DicomEvent.$emit('isCanActiveNoneDicomTool', obj)
|
||||||
|
} else if (event.data.type === 'setMeasurement') {
|
||||||
|
this.setAnnotation(event.data.data)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.questionList-wrapper{
|
.questionList-wrapper {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
// overflow: hidden;
|
// overflow: hidden;
|
||||||
|
|
||||||
.container{
|
.container {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
.basic-info{
|
|
||||||
|
.basic-info {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
h3{
|
|
||||||
|
h3 {
|
||||||
color: #ddd;
|
color: #ddd;
|
||||||
padding: 5px 0px;
|
padding: 5px 0px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
i{
|
|
||||||
|
i {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
@ -1848,64 +1852,75 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.outer_form_wrapper{
|
|
||||||
::v-deep .el-form-item__label{
|
.outer_form_wrapper {
|
||||||
|
::v-deep .el-form-item__label {
|
||||||
color: #c3c3c3;
|
color: #c3c3c3;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
::v-deep .el-input__inner{
|
|
||||||
background-color: transparent;
|
::v-deep .el-input__inner {
|
||||||
color: #ddd;
|
|
||||||
border: 1px solid #5e5e5e;
|
|
||||||
}
|
|
||||||
::v-deep .el-textarea__inner{
|
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
color: #ddd;
|
color: #ddd;
|
||||||
border: 1px solid #5e5e5e;
|
border: 1px solid #5e5e5e;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-form-item{
|
::v-deep .el-textarea__inner {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #ddd;
|
||||||
|
border: 1px solid #5e5e5e;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-form-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
::v-deep .el-form-item__content{
|
|
||||||
|
::v-deep .el-form-item__content {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
::v-deep .el-button--mini, .el-button--mini.is-round {
|
|
||||||
|
::v-deep .el-button--mini,
|
||||||
|
.el-button--mini.is-round {
|
||||||
padding: 7px 10px;
|
padding: 7px 10px;
|
||||||
}
|
}
|
||||||
::v-deep .el-form-item__content
|
|
||||||
.el-select{
|
::v-deep .el-form-item__content .el-select {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
.outer_form-footer{
|
|
||||||
|
.outer_form-footer {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.feedback-icon{
|
|
||||||
|
.feedback-icon {
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
&:hover{
|
|
||||||
|
&:hover {
|
||||||
color: #68a2d5;
|
color: #68a2d5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
.title{
|
|
||||||
|
.title {
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #ddd;
|
color: #ddd;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
|
|
||||||
}
|
}
|
||||||
.add-icon{
|
|
||||||
|
.add-icon {
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #ddd;
|
color: #ddd;
|
||||||
|
@ -1914,42 +1929,49 @@ export default {
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.add-icon:hover{
|
|
||||||
|
.add-icon:hover {
|
||||||
background-color: #607d8b;
|
background-color: #607d8b;
|
||||||
}
|
}
|
||||||
|
|
||||||
.flex-row{
|
.flex-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
background-color: #424242;
|
background-color: #424242;
|
||||||
|
|
||||||
}
|
}
|
||||||
.lesion_list{
|
|
||||||
|
.lesion_list {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
.el-collapse{
|
|
||||||
border-bottom:none;
|
.el-collapse {
|
||||||
border-top:none;
|
border-bottom: none;
|
||||||
::v-deep .el-collapse-item{
|
border-top: none;
|
||||||
background-color: #000!important;
|
|
||||||
|
::v-deep .el-collapse-item {
|
||||||
|
background-color: #000 !important;
|
||||||
color: #ddd;
|
color: #ddd;
|
||||||
|
|
||||||
}
|
}
|
||||||
::v-deep .el-collapse-item__header{
|
|
||||||
background-color: #000!important;
|
::v-deep .el-collapse-item__header {
|
||||||
|
background-color: #000 !important;
|
||||||
color: #ddd;
|
color: #ddd;
|
||||||
border-bottom-color:#5a5a5a;
|
border-bottom-color: #5a5a5a;
|
||||||
padding-left: 5px;
|
padding-left: 5px;
|
||||||
height: 35px;
|
height: 35px;
|
||||||
line-height: 35px;
|
line-height: 35px;
|
||||||
}
|
}
|
||||||
::v-deep .el-collapse-item__wrap{
|
|
||||||
background-color: #000!important;
|
::v-deep .el-collapse-item__wrap {
|
||||||
|
background-color: #000 !important;
|
||||||
color: #ddd;
|
color: #ddd;
|
||||||
}
|
}
|
||||||
::v-deep .el-collapse-item__content{
|
|
||||||
width:260px;
|
::v-deep .el-collapse-item__content {
|
||||||
|
width: 260px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
right: 0px;
|
right: 0px;
|
||||||
|
@ -1958,7 +1980,7 @@ export default {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
color: #ddd;
|
color: #ddd;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
background-color:#1e1e1e;
|
background-color: #1e1e1e;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue