ir阅片下载
parent
64e936ad6d
commit
400b13e7a6
|
@ -0,0 +1,393 @@
|
|||
<template>
|
||||
<div>
|
||||
<div class="top">
|
||||
<span>{{ $t('upload:dicom:title') }}</span>
|
||||
<div class="btnBox">
|
||||
<el-button type="primary" size="mini">
|
||||
{{ $t('upload:dicom:button:upload') }}
|
||||
</el-button>
|
||||
<el-button size="mini">
|
||||
{{ $t('upload:dicom:button:preview') }}
|
||||
</el-button>
|
||||
<el-button size="mini">
|
||||
{{ $t('upload:dicom:button:delete') }}
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<!--检查列表-->
|
||||
<el-table
|
||||
:data="list"
|
||||
style="width: 100%"
|
||||
max-height="250"
|
||||
:loading="loading"
|
||||
>
|
||||
<!--检查类型-->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
:label="$t('upload:dicom:table:modality')"
|
||||
/>
|
||||
<!--检查部位-->
|
||||
<el-table-column
|
||||
prop="TaskBlindName"
|
||||
:label="$t('upload:dicom:table:bodyPart')"
|
||||
/>
|
||||
<!--序列数量-->
|
||||
<el-table-column
|
||||
prop="OrginalStudyList"
|
||||
:label="$t('upload:dicom:table:seriesCount')"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
v-if="
|
||||
scope.row.OrginalStudyList &&
|
||||
scope.row.OrginalStudyList.length >= 1
|
||||
"
|
||||
type="text"
|
||||
@click="handleOpenDialog(scope.row, 'OrginalStudyList')"
|
||||
>
|
||||
<span>{{ scope.row.OrginalStudyList.length }}</span>
|
||||
</el-button>
|
||||
<span v-else>0</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!--图象数-->
|
||||
<el-table-column
|
||||
prop="TaskBlindName"
|
||||
:label="$t('upload:dicom:table:instanceCount')"
|
||||
/>
|
||||
<!--后处理序列数-->
|
||||
<el-table-column
|
||||
prop="TaskBlindName"
|
||||
:label="$t('upload:dicom:table:uploadSeriesCount')"
|
||||
/>
|
||||
<!--后处理图像数-->
|
||||
<el-table-column
|
||||
prop="TaskBlindName"
|
||||
:label="$t('upload:dicom:table:uploadInstanceCount')"
|
||||
/>
|
||||
<el-table-column
|
||||
:label="$t('common:action:action')"
|
||||
fixed="right"
|
||||
width="140"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<!--预览--->
|
||||
<el-button
|
||||
v-if="isUpload"
|
||||
circle
|
||||
icon="el-icon-delete"
|
||||
:title="$t('upload:dicom:button:preview')"
|
||||
/>
|
||||
<!--删除--->
|
||||
<el-button
|
||||
v-if="isUpload"
|
||||
circle
|
||||
icon="el-icon-delete"
|
||||
:title="$t('upload:dicom:button:delete')"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="top"></div>
|
||||
<!--上传列表-->
|
||||
<el-table
|
||||
ref="dicomFilesTable"
|
||||
v-adaptive="{ bottomOffset: 85 }"
|
||||
height="100"
|
||||
:data="uploadQueues"
|
||||
:row-key="(row) => row.studyIndex"
|
||||
class="dicomFiles-table"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
width="55"
|
||||
:selectable="handleSelectable"
|
||||
/>
|
||||
<el-table-column type="index" width="40" />
|
||||
<el-table-column min-width="200" show-overflow-tooltip>
|
||||
<template slot="header">
|
||||
<el-tooltip placement="top">
|
||||
<div slot="content">
|
||||
{{ $t('trials:uploadDicomList:table:studyDetail1') }}<br />
|
||||
{{ $t('trials:uploadDicomList:table:studyDetail2') }}<br />
|
||||
{{ $t('trials:uploadedDicoms:table:studyDate') }}
|
||||
</div>
|
||||
<span>{{ $t('trials:uploadDicomList:table:studyInfo') }}</span>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<div style="line-height: 15px">
|
||||
<div>
|
||||
<div>
|
||||
<span v-if="scope.row.dicomInfo.accNumber"
|
||||
><span style="font-weight: 500">Acc:</span>
|
||||
{{ scope.row.dicomInfo.accNumber }}</span
|
||||
>
|
||||
<span v-else style="color: #f44336">N/A</span>
|
||||
</div>
|
||||
<div style="display: inline-block; margin-right: 2px">
|
||||
<span v-if="scope.row.dicomInfo.modality.length > 0">
|
||||
{{ scope.row.dicomInfo.modality.join('、') }},</span
|
||||
>
|
||||
<span v-else style="color: #f44336">N/A,</span>
|
||||
</div>
|
||||
<div style="display: inline-block; margin-right: 2px">
|
||||
<span v-if="scope.row.seriesList.length"
|
||||
>{{ scope.row.seriesList.length }} Series,</span
|
||||
>
|
||||
<span v-else style="color: #f44336">N/A,</span>
|
||||
</div>
|
||||
<div style="display: inline-block">
|
||||
<span v-if="scope.row.fileList.length"
|
||||
>{{ scope.row.fileList.length }} Instances</span
|
||||
>
|
||||
<span v-else style="color: #f44336">N/A</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div style="display: inline-block; margin-right: 2px">
|
||||
<span v-if="scope.row.dicomInfo.bodyPart">
|
||||
{{ scope.row.dicomInfo.bodyPart }},
|
||||
</span>
|
||||
<span v-else style="color: #f44336">N/A, </span>
|
||||
</div>
|
||||
<div style="display: inline-block">
|
||||
<span v-if="scope.row.dicomInfo.description">
|
||||
{{ scope.row.dicomInfo.description }}</span
|
||||
>
|
||||
<span v-else style="color: #f44336">N/A</span>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
{{ scope.row.dicomInfo.studyTime }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column min-width="130" show-overflow-tooltip>
|
||||
<template slot="header">
|
||||
<el-tooltip placement="top">
|
||||
<div slot="content">
|
||||
{{ $t('trials:uploadDicomList:table:pId') }}<br />
|
||||
{{ $t('trials:uploadDicomList:table:patientName') }}<br />
|
||||
{{ $t('trials:uploadDicomList:table:pInfo') }}
|
||||
</div>
|
||||
<span>{{ $t('trials:uploadDicomList:table:patientInfo') }}</span>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<div style="line-height: 15px">
|
||||
<div>
|
||||
<span v-if="scope.row.dicomInfo.patientId"
|
||||
><span style="font-weight: 500">PID: </span
|
||||
>{{ scope.row.dicomInfo.patientId }}</span
|
||||
>
|
||||
<span v-else style="color: #f44336">N/A</span>
|
||||
</div>
|
||||
<div>
|
||||
<span
|
||||
:class="[scope.row.dicomInfo.patientName ? '' : 'colorOfRed']"
|
||||
>
|
||||
{{
|
||||
scope.row.dicomInfo.patientName
|
||||
? scope.row.dicomInfo.patientName
|
||||
: 'N/A'
|
||||
}}
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
<span
|
||||
:class="[scope.row.dicomInfo.patientSex ? '' : 'colorOfRed']"
|
||||
>
|
||||
{{
|
||||
scope.row.dicomInfo.patientSex
|
||||
? scope.row.dicomInfo.patientSex
|
||||
: 'N/A'
|
||||
}},
|
||||
</span>
|
||||
|
||||
<span
|
||||
:class="[scope.row.dicomInfo.patientAge ? '' : 'colorOfRed']"
|
||||
>
|
||||
{{
|
||||
scope.row.dicomInfo.patientAge
|
||||
? scope.row.dicomInfo.patientAge
|
||||
: 'N/A'
|
||||
}},
|
||||
</span>
|
||||
|
||||
<span
|
||||
:class="[
|
||||
scope.row.dicomInfo.patientBirthDate ? '' : 'colorOfRed',
|
||||
]"
|
||||
>
|
||||
{{
|
||||
scope.row.dicomInfo.patientBirthDate
|
||||
? scope.row.dicomInfo.patientBirthDate
|
||||
: 'N/A'
|
||||
}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
:label="$t('trials:uploadDicomList:table:failedFileCount')"
|
||||
min-width="150"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<!--:percentage="
|
||||
(scope.row.dicomInfo.failedFileCount * 100) /
|
||||
scope.row.dicomInfo.fileCount
|
||||
"
|
||||
:show-text="false"--->
|
||||
<template slot-scope="scope">
|
||||
<el-progress
|
||||
color="#409eff"
|
||||
:percentage="
|
||||
(
|
||||
(scope.row.dicomInfo.uploadFileSize * 100) /
|
||||
scope.row.dicomInfo.fileSize
|
||||
).toFixed(2) * 1
|
||||
"
|
||||
/>
|
||||
<span>
|
||||
{{ $t('trials:uploadDicomList:table:uploadNow')
|
||||
}}{{ scope.row.dicomInfo.failedFileCount }} /
|
||||
{{ scope.row.dicomInfo.fileCount }}:[{{
|
||||
(scope.row.dicomInfo.uploadFileSize / 1024 / 1024).toFixed(2)
|
||||
}}MB/{{
|
||||
(scope.row.dicomInfo.fileSize / 1024 / 1024).toFixed(2)
|
||||
}}MB]
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
:label="$t('trials:uploadDicomList:table:status')"
|
||||
min-width="140"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
v-if="
|
||||
!scope.row.dicomInfo.failedFileCount &&
|
||||
!scope.row.dicomInfo.isInit
|
||||
"
|
||||
>
|
||||
{{ $t('trials:uploadDicomList:table:status1') }}</span
|
||||
>
|
||||
<span
|
||||
style="color: #409eff"
|
||||
v-else-if="
|
||||
!scope.row.dicomInfo.failedFileCount &&
|
||||
scope.row.dicomInfo.isInit &&
|
||||
btnLoading
|
||||
"
|
||||
>{{ $t('trials:uploadDicomList:table:status2') }}</span
|
||||
>
|
||||
<span
|
||||
style="color: #409eff"
|
||||
v-else-if="
|
||||
scope.row.dicomInfo.failedFileCount <
|
||||
scope.row.dicomInfo.fileCount && !scope.row.uploadState.record
|
||||
"
|
||||
>{{ $t('trials:uploadDicomList:table:status2') }}</span
|
||||
>
|
||||
<span
|
||||
style="color: #2cc368"
|
||||
v-else-if="
|
||||
scope.row.dicomInfo.failedFileCount ===
|
||||
scope.row.dicomInfo.fileCount
|
||||
"
|
||||
>{{ $t('trials:uploadDicomList:table:status3') }}</span
|
||||
>
|
||||
<span
|
||||
style="color: #f66"
|
||||
v-else-if="
|
||||
scope.row.uploadState.record &&
|
||||
scope.row.uploadState.record.fileCount === 0
|
||||
"
|
||||
>{{ $t('trials:uploadDicomList:table:status5') }}</span
|
||||
>
|
||||
<span style="color: #f66" v-else>{{
|
||||
$t('trials:uploadDicomList:table:Failed')
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
:label="$t('trials:uploadDicomList:table:record')"
|
||||
min-width="140"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tooltip placement="top" v-if="scope.row.uploadState.record">
|
||||
<div slot="content">
|
||||
<div style="max-height: 500px; overflow-y: auto">
|
||||
{{ $t('trials:uploadDicomList:table:Existed') }}:
|
||||
<div v-if="scope.row.uploadState.record.Existed.length">
|
||||
<div
|
||||
v-for="item of scope.row.uploadState.record.Existed"
|
||||
:key="item"
|
||||
style="font-size: 12px; color: #baa72a"
|
||||
>
|
||||
{{ item }}
|
||||
</div>
|
||||
</div>
|
||||
<div v-else> </div>
|
||||
{{ $t('trials:uploadDicomList:table:Uploaded') }}:
|
||||
<div v-if="scope.row.uploadState.record.Uploaded.length">
|
||||
<div
|
||||
v-for="item of scope.row.uploadState.record.Uploaded"
|
||||
:key="item"
|
||||
style="font-size: 12px; color: #24b837"
|
||||
>
|
||||
{{ item }}
|
||||
</div>
|
||||
</div>
|
||||
<div v-else> </div>
|
||||
<br />
|
||||
{{ $t('trials:uploadDicomList:table:Failed') }}:
|
||||
<div v-if="scope.row.uploadState.record.Failed.length">
|
||||
<div
|
||||
v-for="item of scope.row.uploadState.record.Failed"
|
||||
:key="item"
|
||||
style="font-size: 12px; color: #f66"
|
||||
>
|
||||
{{ item }}
|
||||
</div>
|
||||
</div>
|
||||
<div v-else> </div>
|
||||
</div>
|
||||
</div>
|
||||
<el-button size="mini" style="cursor: pointer">
|
||||
<span style="font-size: 12px; color: #baa72a">{{
|
||||
scope.row.uploadState.record.Existed.length
|
||||
}}</span>
|
||||
/
|
||||
<span style="font-size: 12px; color: #24b837">{{
|
||||
scope.row.uploadState.record.Uploaded.length
|
||||
}}</span>
|
||||
/
|
||||
<span style="font-size: 12px; color: #f66">{{
|
||||
scope.row.uploadState.record.Failed.length
|
||||
}}</span>
|
||||
</el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,53 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
:visible.sync="visible"
|
||||
:fullscreen="true"
|
||||
:close-on-click-modal="false"
|
||||
:before-close="beforeClose"
|
||||
class="uploadDicomAndNonedicom"
|
||||
>
|
||||
<span slot="title">{{ title }}</span>
|
||||
<el-tabs type="border-card">
|
||||
<el-tab-pane label="DICOM 影像">
|
||||
<dicomFile />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="非DICOM 影像">
|
||||
<nonedicomFile />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import dicomFile from './dicomFile.vue'
|
||||
import nonedicomFile from './nonedicomFile.vue'
|
||||
export default {
|
||||
name: 'uploadDicomAndNonedicom',
|
||||
components: { dicomFile, nonedicomFile },
|
||||
props: {
|
||||
visible: {
|
||||
required: true,
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
visitId: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: 'Upload Images:01 > 01001 >Timepoint',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
beforeClose() {
|
||||
this.$emit('update:visible', false)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep.el-tabs--left .el-tabs__header.is-left {
|
||||
margin-right: 0;
|
||||
}
|
||||
</style>
|
|
@ -106,7 +106,8 @@
|
|||
v-if="item.val === 1"
|
||||
class="divider"
|
||||
content-position="center"
|
||||
>{{ ` ${$t("trials:reading:title:preset")}` }}</el-divider>
|
||||
>{{ ` ${$t('trials:reading:title:preset')}` }}</el-divider
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -163,7 +164,7 @@
|
|||
<svg-icon icon-class="magnifier" class="svg-icon" />
|
||||
</div>
|
||||
<!-- 缩放 -->
|
||||
<div class="text">{{ $t("trials:reading:button:zoom") }}</div>
|
||||
<div class="text">{{ $t('trials:reading:button:zoom') }}</div>
|
||||
</div>
|
||||
</el-tooltip>
|
||||
|
||||
|
@ -183,7 +184,7 @@
|
|||
<svg-icon icon-class="move" class="svg-icon" />
|
||||
</div>
|
||||
<!-- 移动 -->
|
||||
<div class="text">{{ $t("trials:reading:button:move") }}</div>
|
||||
<div class="text">{{ $t('trials:reading:button:move') }}</div>
|
||||
</div>
|
||||
</el-tooltip>
|
||||
|
||||
|
@ -210,7 +211,7 @@
|
|||
</div>
|
||||
<!-- 旋转 -->
|
||||
<div class="text">
|
||||
{{ $t("trials:reading:button:rotate")
|
||||
{{ $t('trials:reading:button:rotate')
|
||||
}}<i class="el-icon-caret-bottom" />
|
||||
</div>
|
||||
<div class="dropdown-content">
|
||||
|
@ -223,7 +224,8 @@
|
|||
<a
|
||||
href="#"
|
||||
@click.prevent="setDicomCanvasRotate(rotate.val)"
|
||||
>{{ rotate.label }}</a>
|
||||
>{{ rotate.label }}</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -258,8 +260,8 @@
|
|||
<div class="text">
|
||||
{{
|
||||
fitType === 1
|
||||
? $t("trials:reading:button:fitWindow")
|
||||
: $t("trials:reading:button:fitImage")
|
||||
? $t('trials:reading:button:fitWindow')
|
||||
: $t('trials:reading:button:fitImage')
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -282,7 +284,7 @@
|
|||
</div>
|
||||
<!-- 同步 -->
|
||||
<div class="text">
|
||||
{{ $t("trials:reading:button:imageIndexSync") }}
|
||||
{{ $t('trials:reading:button:imageIndexSync') }}
|
||||
</div>
|
||||
</div>
|
||||
</el-tooltip>
|
||||
|
@ -307,7 +309,7 @@
|
|||
<svg-icon icon-class="image" class="svg-icon" />
|
||||
</div>
|
||||
<!-- 截屏 -->
|
||||
<div class="text">{{ $t("trials:reading:button:screenShot") }}</div>
|
||||
<div class="text">{{ $t('trials:reading:button:screenShot') }}</div>
|
||||
</div>
|
||||
</el-tooltip>
|
||||
|
||||
|
@ -316,7 +318,7 @@
|
|||
<div slot="content">
|
||||
<div v-if="tool.disabledReason">
|
||||
<h4 style="margin: 0; padding-bottom: 2px">{{ tool.text }}</h4>
|
||||
<br>{{ tool.disabledReason }}
|
||||
<br />{{ tool.disabledReason }}
|
||||
</div>
|
||||
<div v-else>{{ tool.text }}</div>
|
||||
</div>
|
||||
|
@ -365,7 +367,7 @@
|
|||
<svg-icon icon-class="clear" class="svg-icon" />
|
||||
</div>
|
||||
<!-- 缩放 -->
|
||||
<div class="text">{{ $t("trials:dicom-show:Eraser") }}</div>
|
||||
<div class="text">{{ $t('trials:dicom-show:Eraser') }}</div>
|
||||
</div>
|
||||
</el-tooltip>
|
||||
<div class="tool-frame">
|
||||
|
@ -467,7 +469,7 @@
|
|||
<div class="icon" @click.prevent="resetViewport">
|
||||
<svg-icon icon-class="refresh" class="svg-icon" />
|
||||
</div>
|
||||
<div class="text">{{ $t("trials:reading:button:reset") }}</div>
|
||||
<div class="text">{{ $t('trials:reading:button:reset') }}</div>
|
||||
</div>
|
||||
</el-tooltip>
|
||||
<el-tooltip
|
||||
|
@ -482,7 +484,7 @@
|
|||
<div class="icon" @click.prevent="openUploadImage('upload')">
|
||||
<i class="el-icon-upload2 svg-icon" />
|
||||
</div>
|
||||
<div class="text">{{ $t("trials:reading:button:upload") }}</div>
|
||||
<div class="text">{{ $t('trials:reading:button:upload') }}</div>
|
||||
</div>
|
||||
</el-tooltip>
|
||||
<el-tooltip
|
||||
|
@ -505,7 +507,7 @@
|
|||
<div class="icon" @click.prevent="openUploadImage('download')">
|
||||
<i class="el-icon-download svg-icon" />
|
||||
</div>
|
||||
<div class="text">{{ $t("trials:reading:button:download") }}</div>
|
||||
<div class="text">{{ $t('trials:reading:button:download') }}</div>
|
||||
</div>
|
||||
</el-tooltip>
|
||||
|
||||
|
@ -515,17 +517,19 @@
|
|||
v-if="isExistsManual"
|
||||
type="text"
|
||||
@click="previewManuals"
|
||||
>{{ $t("trials:reading:button:handbooks") }}</el-button>
|
||||
>{{ $t('trials:reading:button:handbooks') }}</el-button
|
||||
>
|
||||
<!-- 临床数据 -->
|
||||
<el-button
|
||||
v-if="isExistsClinicalData"
|
||||
type="text"
|
||||
@click="previewCD"
|
||||
>{{ $t("trials:reading:button:clinicalData") }}</el-button>
|
||||
>{{ $t('trials:reading:button:clinicalData') }}</el-button
|
||||
>
|
||||
<!-- <el-button v-if="isExistsNoDicomFile" type="text" @click="previewNoneDicoms">非Dicom文件</el-button> -->
|
||||
|
||||
<el-button type="text" @click="previewConfig">{{
|
||||
$t("trials:reading:button:customCfg")
|
||||
$t('trials:reading:button:customCfg')
|
||||
}}</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -625,7 +629,7 @@
|
|||
:fullscreen="isFullscreen"
|
||||
>
|
||||
<span slot="title" class="dialog-footer">
|
||||
<span>{{ $t("trials:reading:button:handbooks") }}</span>
|
||||
<span>{{ $t('trials:reading:button:handbooks') }}</span>
|
||||
<span style="position: absolute; right: 20px; font-size: 20px">
|
||||
<svg-icon
|
||||
:icon-class="isFullscreen ? 'exit-fullscreen' : 'fullscreen'"
|
||||
|
@ -646,12 +650,19 @@
|
|||
<!-- <button :title="$t('trials:dicom-show:Eraser')" class="btn-link" data-tool="Eraser" @click="setToolActive($event,'Eraser')">-->
|
||||
<!-- <svg-icon icon-class="clear" style="font-size:20px;" />-->
|
||||
<!-- </button>-->
|
||||
<upload-image
|
||||
<!-- <upload-image
|
||||
v-if="uploadImageVisible"
|
||||
:visible.sync="uploadImageVisible"
|
||||
:subject-id="subjectId"
|
||||
:criterion="trialCriterion"
|
||||
:status="uploadStatus"
|
||||
/> -->
|
||||
<download-dicom-and-nonedicom
|
||||
v-if="downloadImageVisible"
|
||||
:SubjectId="uploadSubjectId"
|
||||
:SubjectCode="uploadSubjectCode"
|
||||
:Criterion="uploadTrialCriterion"
|
||||
:visible.sync="downloadImageVisible"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -677,6 +688,7 @@ import { mapGetters } from 'vuex'
|
|||
import store from '@/store'
|
||||
import { getDoctorShortcutKey, getUserWLTemplateList } from '@/api/user'
|
||||
import uploadImage from '@/components/uploadImage'
|
||||
import downloadDicomAndNonedicom from '@/components/downloadDicomAndNonedicom'
|
||||
import { getCriterionReadingInfo } from '@/api/trials'
|
||||
export default {
|
||||
name: 'DicomViewer',
|
||||
|
@ -688,48 +700,49 @@ export default {
|
|||
Others,
|
||||
Manuals,
|
||||
MeasurementList,
|
||||
'upload-image': uploadImage
|
||||
'upload-image': uploadImage,
|
||||
'download-dicom-and-nonedicom': downloadDicomAndNonedicom,
|
||||
},
|
||||
props: {
|
||||
isExistsClinicalData: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
default: false,
|
||||
},
|
||||
isExistsNoDicomFile: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
default: false,
|
||||
},
|
||||
isExistsManual: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
isReadingShowSubjectInfo: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
isReadingTaskViewInOrder: {
|
||||
type: Number,
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
IseCRFShowInDicomReading: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
subjectId: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: ''
|
||||
default: '',
|
||||
},
|
||||
trialReadingCriterionId: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: ''
|
||||
default: '',
|
||||
},
|
||||
trialId: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: ''
|
||||
}
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -738,7 +751,7 @@ export default {
|
|||
{ index: 0, row: 1, col: 1, name: 'A' },
|
||||
{ index: 1, row: 1, col: 2, name: 'A|A' },
|
||||
{ index: 2, row: 1, col: 2, name: 'A|B' },
|
||||
{ index: 3, row: 2, col: 2, name: 'A|A|A|A' }
|
||||
{ index: 3, row: 2, col: 2, name: 'A|A|A|A' },
|
||||
// { index: 2, row: 2, col: 1 },
|
||||
// { index: 3, row: 2, col: 2 }
|
||||
],
|
||||
|
@ -747,7 +760,7 @@ export default {
|
|||
{ label: this.$t('trials:reading:button:rotateVertical'), val: 2 }, // 垂直翻转
|
||||
{ label: this.$t('trials:reading:button:rotateHorizontal'), val: 3 }, // 水平翻转
|
||||
{ label: this.$t('trials:reading:button:rotateTurnLeft'), val: 4 }, // 左转90度
|
||||
{ label: this.$t('trials:reading:button:rotateTurnRight'), val: 5 } // 右转90度
|
||||
{ label: this.$t('trials:reading:button:rotateTurnRight'), val: 5 }, // 右转90度
|
||||
],
|
||||
maxCanvas: 1,
|
||||
layoutRow: 1,
|
||||
|
@ -755,8 +768,8 @@ export default {
|
|||
currentDicomCanvasIndex: 0,
|
||||
currentDicomCanvas: {
|
||||
toolState: {
|
||||
clipPlaying: false
|
||||
}
|
||||
clipPlaying: false,
|
||||
},
|
||||
},
|
||||
colormapsList: [],
|
||||
rotateList: [],
|
||||
|
@ -773,7 +786,7 @@ export default {
|
|||
text: this.$t('trials:reading:button:length'),
|
||||
icon: 'length',
|
||||
isDisabled: false,
|
||||
disabledReason: ''
|
||||
disabledReason: '',
|
||||
},
|
||||
// 长短径测量
|
||||
{
|
||||
|
@ -781,7 +794,7 @@ export default {
|
|||
text: this.$t('trials:reading:button:bidirectional'),
|
||||
icon: 'bidirection',
|
||||
isDisabled: false,
|
||||
disabledReason: ''
|
||||
disabledReason: '',
|
||||
},
|
||||
// 矩形工具
|
||||
{
|
||||
|
@ -789,7 +802,7 @@ export default {
|
|||
text: this.$t('trials:reading:button:rectangle'),
|
||||
icon: 'rectangle',
|
||||
isDisabled: false,
|
||||
disabledReason: ''
|
||||
disabledReason: '',
|
||||
},
|
||||
// 圆形工具
|
||||
{
|
||||
|
@ -797,7 +810,7 @@ export default {
|
|||
text: this.$t('trials:reading:button:elliptical'),
|
||||
icon: 'oval',
|
||||
isDisabled: false,
|
||||
disabledReason: ''
|
||||
disabledReason: '',
|
||||
},
|
||||
// 箭头工具
|
||||
{
|
||||
|
@ -805,8 +818,8 @@ export default {
|
|||
text: this.$t('trials:reading:button:arrowAnnotate'),
|
||||
icon: 'arrow',
|
||||
isDisabled: false,
|
||||
disabledReason: ''
|
||||
}
|
||||
disabledReason: '',
|
||||
},
|
||||
],
|
||||
|
||||
fitType: 0,
|
||||
|
@ -818,25 +831,25 @@ export default {
|
|||
label: this.$t('trials:reading:button:wwwcDefault'),
|
||||
val: -1,
|
||||
ww: null,
|
||||
wc: null
|
||||
wc: null,
|
||||
}, // 默认值
|
||||
{
|
||||
label: this.$t('trials:reading:button:wwwcCustom'),
|
||||
val: 0,
|
||||
ww: null,
|
||||
wc: null
|
||||
wc: null,
|
||||
}, // 自定义
|
||||
{
|
||||
label: this.$t('trials:reading:button:wwwcRegion'),
|
||||
val: 1,
|
||||
ww: null,
|
||||
wc: null
|
||||
wc: null,
|
||||
}, // 区域窗宽
|
||||
{ label: 'CT Brain', wc: 40, ww: 80 },
|
||||
{ label: 'CT Lungs', wc: -400, ww: 1500 },
|
||||
{ label: 'CT Abdomen', wc: 60, ww: 400 },
|
||||
{ label: 'CT Liver', wc: 40, ww: 400 },
|
||||
{ label: 'CT Bone', wc: 300, ww: 1500 }
|
||||
{ label: 'CT Bone', wc: 300, ww: 1500 },
|
||||
],
|
||||
activeSeries: {},
|
||||
seriesStack: [],
|
||||
|
@ -844,13 +857,13 @@ export default {
|
|||
isScrollSync: false,
|
||||
imageIndexSync: {
|
||||
sourceCanvas: '',
|
||||
targetCanvas: []
|
||||
targetCanvas: [],
|
||||
},
|
||||
isFirstRender: false,
|
||||
customWwc: { visible: false, title: null }, // 自定义调窗
|
||||
personalConfigDialog: {
|
||||
visible: false,
|
||||
title: this.$t('trials:reading:button:customCfg')
|
||||
title: this.$t('trials:reading:button:customCfg'),
|
||||
}, // 个性化配置
|
||||
layout: '',
|
||||
isFirstNotLinked: false,
|
||||
|
@ -862,14 +875,17 @@ export default {
|
|||
clipPlaying: false,
|
||||
fps: 15,
|
||||
// 上传
|
||||
downloadImageVisible: false,
|
||||
uploadImageVisible: false,
|
||||
trialCriterion: {},
|
||||
uploadStatus: 'upload'
|
||||
uploadSubjectId: null,
|
||||
uploadSubjectCode: null,
|
||||
uploadTrialCriterion: {},
|
||||
uploadStatus: 'upload',
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
...mapGetters(['visitTaskList', 'currentReadingTaskState'])
|
||||
...mapGetters(['visitTaskList', 'currentReadingTaskState']),
|
||||
},
|
||||
watch: {
|
||||
currentReadingTaskState: {
|
||||
|
@ -888,7 +904,7 @@ export default {
|
|||
this.activeTool = ''
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
currentDicomCanvasIndex: {
|
||||
immediate: true,
|
||||
|
@ -905,8 +921,8 @@ export default {
|
|||
this.clipPlaying = false
|
||||
this.fps = 15
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.getTrialCriterion()
|
||||
|
@ -919,7 +935,7 @@ export default {
|
|||
// cornerstone.imageCache.setMaximumSizeBytes(maximumSizeInBytes)
|
||||
this.customWwc = {
|
||||
visible: false,
|
||||
title: this.$t('trials:reading:dagTitle:wwwcCustom')
|
||||
title: this.$t('trials:reading:dagTitle:wwwcCustom'),
|
||||
}
|
||||
this.CriterionType = parseInt(localStorage.getItem('CriterionType'))
|
||||
if (this.CriterionType === 10) {
|
||||
|
@ -929,15 +945,15 @@ export default {
|
|||
text: this.$t('trials:reading:button:arrowAnnotate'),
|
||||
icon: 'arrow',
|
||||
isDisabled: false,
|
||||
disabledReason: ''
|
||||
disabledReason: '',
|
||||
},
|
||||
{
|
||||
toolName: 'RectangleRoi',
|
||||
text: this.$t('trials:reading:button:rectangle'),
|
||||
icon: 'rectangle',
|
||||
isDisabled: false,
|
||||
disabledReason: ''
|
||||
}
|
||||
disabledReason: '',
|
||||
},
|
||||
]
|
||||
} else if (this.CriterionType === 17) {
|
||||
this.measuredTools = [
|
||||
|
@ -946,22 +962,22 @@ export default {
|
|||
text: this.$t('trials:reading:button:length'),
|
||||
icon: 'length',
|
||||
isDisabled: false,
|
||||
disabledReason: ''
|
||||
disabledReason: '',
|
||||
},
|
||||
{
|
||||
toolName: 'RectangleRoi',
|
||||
text: this.$t('trials:reading:button:rectangle'),
|
||||
icon: 'rectangle',
|
||||
isDisabled: false,
|
||||
disabledReason: ''
|
||||
disabledReason: '',
|
||||
},
|
||||
{
|
||||
toolName: 'ArrowAnnotate',
|
||||
text: this.$t('trials:reading:button:arrowAnnotate'),
|
||||
icon: 'arrow',
|
||||
isDisabled: false,
|
||||
disabledReason: ''
|
||||
}
|
||||
disabledReason: '',
|
||||
},
|
||||
]
|
||||
}
|
||||
this.rotateList[0] = '1'
|
||||
|
@ -976,7 +992,7 @@ export default {
|
|||
window.addEventListener('resize', this.setCanvasStyle)
|
||||
|
||||
// DicomEvent.$on('updateImage', (instanceId) => {
|
||||
|
||||
|
||||
// for (let i = 0; i < this.maxCanvas; i++) {
|
||||
// var stack = this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].stack
|
||||
// if (stack.studyId) {
|
||||
|
@ -993,7 +1009,7 @@ export default {
|
|||
}
|
||||
console.log('getMeasureData')
|
||||
})
|
||||
|
||||
|
||||
DicomEvent.$on('getScreenshots', (callback) => {
|
||||
var base64Str =
|
||||
this.$refs[
|
||||
|
@ -1041,7 +1057,7 @@ export default {
|
|||
getTrialCriterion() {
|
||||
getCriterionReadingInfo({
|
||||
TrialId: this.trialId,
|
||||
TrialReadingCriterionId: this.trialReadingCriterionId
|
||||
TrialReadingCriterionId: this.trialReadingCriterionId,
|
||||
})
|
||||
.then((res) => {
|
||||
this.trialCriterion = res.Result
|
||||
|
@ -1049,26 +1065,28 @@ export default {
|
|||
.catch(() => {})
|
||||
},
|
||||
openUploadImage(status) {
|
||||
this.uploadSubjectCode = this.$route.query.subjectCode
|
||||
this.uploadSubjectId = this.$route.query.subjectId
|
||||
this.uploadTrialCriterion = this.trialCriterion
|
||||
this.uploadStatus = status
|
||||
this.uploadImageVisible = true
|
||||
this[`${status}ImageVisible`] = true
|
||||
},
|
||||
async getWwcTpl() {
|
||||
// const loading = this.$loading({ fullscreen: true })
|
||||
try {
|
||||
let res = await getUserWLTemplateList()
|
||||
this.customWwcTpl = []
|
||||
res.Result.map((i) => {
|
||||
this.customWwcTpl.push({
|
||||
label: i.TemplateName,
|
||||
wc: i.WL,
|
||||
ww: i.WW
|
||||
})
|
||||
res.Result.map((i) => {
|
||||
this.customWwcTpl.push({
|
||||
label: i.TemplateName,
|
||||
wc: i.WL,
|
||||
ww: i.WW,
|
||||
})
|
||||
this.wwwcArr = [...this.defaultWwwc, ...this.customWwcTpl]
|
||||
} catch(e) {
|
||||
})
|
||||
this.wwwcArr = [...this.defaultWwwc, ...this.customWwcTpl]
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
}
|
||||
|
||||
},
|
||||
async getHotKeys() {
|
||||
// const loading = this.$loading({ fullscreen: true })
|
||||
|
@ -1084,11 +1102,11 @@ export default {
|
|||
key: item.Keyboardkey,
|
||||
code: item.Code,
|
||||
text: item.Text,
|
||||
shortcutKeyEnum: item.ShortcutKeyEnum
|
||||
shortcutKeyEnum: item.ShortcutKeyEnum,
|
||||
})
|
||||
})
|
||||
this.bindHotKey()
|
||||
} catch(e) {
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
}
|
||||
},
|
||||
|
@ -1105,7 +1123,7 @@ export default {
|
|||
key: item.keys.controlKey.key,
|
||||
code: item.keys.controlKey.code,
|
||||
text: item.keys.text,
|
||||
shortcutKeyEnum: item.label
|
||||
shortcutKeyEnum: item.label,
|
||||
})
|
||||
})
|
||||
|
||||
|
@ -1148,7 +1166,7 @@ export default {
|
|||
DicomEvent.$emit('selectSeries', {
|
||||
seriesId: series.seriesId,
|
||||
studyId: series.studyId,
|
||||
offset: -1
|
||||
offset: -1,
|
||||
})
|
||||
} else if (shortcutKeyEnum === 4) {
|
||||
// 下一个序列
|
||||
|
@ -1157,7 +1175,7 @@ export default {
|
|||
DicomEvent.$emit('selectSeries', {
|
||||
seriesId: series.seriesId,
|
||||
studyId: series.studyId,
|
||||
offset: 1
|
||||
offset: 1,
|
||||
})
|
||||
} else if (shortcutKeyEnum === 5) {
|
||||
// 上一张图像
|
||||
|
@ -1287,7 +1305,7 @@ export default {
|
|||
top: '72px',
|
||||
left: '205px',
|
||||
right: '350px',
|
||||
zIndex: 10
|
||||
zIndex: 10,
|
||||
}
|
||||
this.canvasW = window.innerWidth - 570 + 'px'
|
||||
this.canvasH = window.innerHeight - 130 + 'px'
|
||||
|
@ -1387,10 +1405,7 @@ export default {
|
|||
// this.$refs['measurementList'].initPage(dicomSeries)
|
||||
store.dispatch('reading/setActiveSeries', dicomSeries)
|
||||
if (this.currentDicomCanvasIndex === this.maxCanvas - 1) {
|
||||
store.dispatch(
|
||||
'reading/setLastCanvasTaskId',
|
||||
dicomSeries.visitTaskId
|
||||
)
|
||||
store.dispatch('reading/setLastCanvasTaskId', dicomSeries.visitTaskId)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -1421,10 +1436,7 @@ export default {
|
|||
|
||||
store.dispatch('reading/setActiveSeries', dicomSeries)
|
||||
if (this.currentDicomCanvasIndex === this.maxCanvas - 1) {
|
||||
store.dispatch(
|
||||
'reading/setLastCanvasTaskId',
|
||||
dicomSeries.visitTaskId
|
||||
)
|
||||
store.dispatch('reading/setLastCanvasTaskId', dicomSeries.visitTaskId)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -1474,7 +1486,7 @@ export default {
|
|||
visitTaskId = this.visitTaskList[i].VisitTaskId
|
||||
}
|
||||
this.getFirstSeries(activeSeries, visitTaskId).then(
|
||||
async(baseSerires) => {
|
||||
async (baseSerires) => {
|
||||
this.seriesStack = [baseSerires, activeSeries]
|
||||
this.currentDicomCanvasIndex = 1
|
||||
store.dispatch(
|
||||
|
@ -1502,7 +1514,7 @@ export default {
|
|||
activeSeries,
|
||||
activeSeries,
|
||||
activeSeries,
|
||||
activeSeries
|
||||
activeSeries,
|
||||
]
|
||||
this.currentDicomCanvasIndex = 3
|
||||
store.dispatch(
|
||||
|
@ -1521,9 +1533,7 @@ export default {
|
|||
for (let i = 0; i < this.maxCanvas && i < seriesStack.length; i++) {
|
||||
this.canvasObj[i] = seriesStack[i]
|
||||
let s = Object.assign({}, seriesStack[i])
|
||||
promiseArr.push(
|
||||
this.$refs[`dicomCanvas${i}`][0].loadImageStack(s)
|
||||
)
|
||||
promiseArr.push(this.$refs[`dicomCanvas${i}`][0].loadImageStack(s))
|
||||
}
|
||||
Promise.all(promiseArr)
|
||||
.then(() => {
|
||||
|
@ -1585,24 +1595,24 @@ export default {
|
|||
trialId: this.trialId,
|
||||
subjectVisitId: this.visitTaskList[taskIdx].VisitId,
|
||||
visitTaskId: this.visitTaskList[taskIdx].VisitTaskId,
|
||||
taskBlindName: this.visitTaskList[taskIdx].TaskBlindName
|
||||
taskBlindName: this.visitTaskList[taskIdx].TaskBlindName,
|
||||
})
|
||||
}
|
||||
if (!this.visitTaskList[taskIdx].readingQuestionsInit) {
|
||||
await store.dispatch('reading/getReadingQuestionAndAnswer', {
|
||||
trialId: this.trialId,
|
||||
visitTaskId: this.visitTaskList[taskIdx].VisitTaskId
|
||||
visitTaskId: this.visitTaskList[taskIdx].VisitTaskId,
|
||||
})
|
||||
}
|
||||
if (!this.visitTaskList[taskIdx].questionsInit) {
|
||||
await store.dispatch('reading/getDicomReadingQuestionAnswer', {
|
||||
trialId: this.trialId,
|
||||
visitTaskId: this.visitTaskList[taskIdx].VisitTaskId
|
||||
visitTaskId: this.visitTaskList[taskIdx].VisitTaskId,
|
||||
})
|
||||
}
|
||||
|
||||
await store.dispatch('reading/setStatus', {
|
||||
visitTaskId: this.visitTaskList[taskIdx].VisitTaskId
|
||||
visitTaskId: this.visitTaskList[taskIdx].VisitTaskId,
|
||||
})
|
||||
}
|
||||
firstAddSeries = this.getSeriesInfoByMark(firstAddVisitTaskId, obj)
|
||||
|
@ -1696,8 +1706,7 @@ export default {
|
|||
var studyList = this.visitTaskList[index].StudyList
|
||||
var studyId = this.visitTaskList[index].MeasureData[idx].StudyId
|
||||
var seriesId = this.visitTaskList[index].MeasureData[idx].SeriesId
|
||||
var instanceId =
|
||||
this.visitTaskList[index].MeasureData[idx].InstanceId
|
||||
var instanceId = this.visitTaskList[index].MeasureData[idx].InstanceId
|
||||
var studyIdx = studyList.findIndex(
|
||||
(study) => study.StudyId === studyId
|
||||
)
|
||||
|
@ -1706,10 +1715,15 @@ export default {
|
|||
(s) => s.seriesId === seriesId
|
||||
)
|
||||
if (seriesIdx > -1) {
|
||||
var series = studyList[studyIdx].SeriesList[seriesIdx];
|
||||
let frame = this.visitTaskList[index].MeasureData[idx].MeasureData.frame
|
||||
let filterStr = series.isExistMutiFrames ? `frame=${frame}&instanceId=${instanceId}` : `instanceId=${instanceId}`
|
||||
var instanceIdx = series.imageIds.findIndex(imageId => imageId.includes(filterStr))
|
||||
var series = studyList[studyIdx].SeriesList[seriesIdx]
|
||||
let frame =
|
||||
this.visitTaskList[index].MeasureData[idx].MeasureData.frame
|
||||
let filterStr = series.isExistMutiFrames
|
||||
? `frame=${frame}&instanceId=${instanceId}`
|
||||
: `instanceId=${instanceId}`
|
||||
var instanceIdx = series.imageIds.findIndex((imageId) =>
|
||||
imageId.includes(filterStr)
|
||||
)
|
||||
// var instanceIdx = series.instanceList.findIndex(
|
||||
// (imageId) => !!~imageId.indexOf(instanceId)
|
||||
// );
|
||||
|
@ -1738,16 +1752,14 @@ export default {
|
|||
i.description,
|
||||
baseSeries.description
|
||||
),
|
||||
index
|
||||
index,
|
||||
}
|
||||
})
|
||||
similarArr = similarArr.sort((a, b) => {
|
||||
return b.similar - a.similar
|
||||
})
|
||||
const i =
|
||||
similarArr[0] && similarArr[0].similar > 0.85
|
||||
? similarArr[0].index
|
||||
: -1
|
||||
similarArr[0] && similarArr[0].similar > 0.85 ? similarArr[0].index : -1
|
||||
if (i > -1) {
|
||||
obj = seriesList[i]
|
||||
}
|
||||
|
@ -1822,7 +1834,7 @@ export default {
|
|||
trialId: this.trialId,
|
||||
subjectVisitId: this.visitTaskList[index].VisitId,
|
||||
visitTaskId: this.visitTaskList[index].VisitTaskId,
|
||||
taskBlindName: this.visitTaskList[index].TaskBlindName
|
||||
taskBlindName: this.visitTaskList[index].TaskBlindName,
|
||||
})
|
||||
|
||||
await store.dispatch(
|
||||
|
@ -1841,16 +1853,14 @@ export default {
|
|||
i.description,
|
||||
baseSeries.description
|
||||
),
|
||||
index
|
||||
index,
|
||||
}
|
||||
})
|
||||
similarArr = similarArr.sort((a, b) => {
|
||||
return b.similar - a.similar
|
||||
})
|
||||
const i =
|
||||
similarArr[0] && similarArr[0].similar > 0.85
|
||||
? similarArr[0].index
|
||||
: -1
|
||||
similarArr[0] && similarArr[0].similar > 0.85 ? similarArr[0].index : -1
|
||||
if (i > -1) {
|
||||
obj = seriesList[i]
|
||||
}
|
||||
|
@ -2025,9 +2035,7 @@ export default {
|
|||
},
|
||||
// 鼠标移入测量工具时,判断工具是否可激活
|
||||
enter(e, toolName) {
|
||||
var i = this.measuredTools.findIndex(
|
||||
(item) => item.toolName === toolName
|
||||
)
|
||||
var i = this.measuredTools.findIndex((item) => item.toolName === toolName)
|
||||
if (i === -1) return
|
||||
var isCurrentTask =
|
||||
this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0]
|
||||
|
@ -2089,8 +2097,11 @@ export default {
|
|||
`dicomCanvas${this.currentDicomCanvasIndex}`
|
||||
][0].setToolActive(toolName)
|
||||
}
|
||||
} else if (dicomSeries.isCurrentTask &&
|
||||
isMeasuredTool && dicomSeries.readingTaskState >= 2) {
|
||||
} else if (
|
||||
dicomSeries.isCurrentTask &&
|
||||
isMeasuredTool &&
|
||||
dicomSeries.readingTaskState >= 2
|
||||
) {
|
||||
if (this.activeTool === toolName) {
|
||||
this.$refs[
|
||||
`dicomCanvas${this.currentDicomCanvasIndex}`
|
||||
|
@ -2162,9 +2173,7 @@ export default {
|
|||
][0].fitToWindow()
|
||||
} else if (toolName === 'fitToImage') {
|
||||
this.fitType = 1
|
||||
this.$refs[
|
||||
`dicomCanvas${this.currentDicomCanvasIndex}`
|
||||
][0].fitToImage()
|
||||
this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].fitToImage()
|
||||
}
|
||||
this.activeTool = toolName
|
||||
},
|
||||
|
@ -2181,7 +2190,9 @@ export default {
|
|||
const isLoaded = this.getSeriesLoadStatus()
|
||||
if (!isLoaded) return
|
||||
this.clipPlaying = isPlay
|
||||
this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].setFps(this.fps)
|
||||
this.$refs[`dicomCanvas${this.currentDicomCanvasIndex}`][0].setFps(
|
||||
this.fps
|
||||
)
|
||||
this.$refs[
|
||||
`dicomCanvas${this.currentDicomCanvasIndex}`
|
||||
][0].toggleClipPlay(isPlay)
|
||||
|
@ -2297,8 +2308,8 @@ export default {
|
|||
previewManuals() {
|
||||
this.isFullscreen = false
|
||||
this.manualsDialog.visible = true
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
|
Loading…
Reference in New Issue