非dicom上传下载
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2025-07-25 14:52:59 +08:00
parent a56b536e95
commit feed991971
3 changed files with 70 additions and 6 deletions

View File

@ -206,7 +206,6 @@ export default {
default: true,
},
isUpload: {
required: true,
type: Boolean,
default: false,
},

View File

@ -786,7 +786,7 @@ export default {
// resetAnnotation: false , // 使
saveCustomAnnotationTimer: null,
//
//
downloadImageVisible: false,
uploadImageVisible: false,
uploadSubjectId: null,

View File

@ -90,6 +90,29 @@
</div>
</div>
</div>
<div class="tool-item" :title="$t('trials:reading:button:upload')"
v-if="trialCriterion.ImageUploadEnum > 0 && readingTaskState < 2" v-hasPermi="['role:ir']">
<div class="tool-wrapper">
<div class="icon" @click.prevent="openUploadImage('upload')">
<i class="el-icon-upload2 svg-icon" />
</div>
</div>
</div>
<div v-if="trialCriterion.ImageDownloadEnum > 0" v-hasPermi="[
'role:ir',
'role:mim',
'role:mc',
'role:pm',
'role:apm',
'role:ea',
'role:qa',
]" class="tool-item" :title="$t('trials:reading:button:download')">
<div class="tool-wrapper">
<div class="icon" @click.prevent="openUploadImage('download')">
<i class="el-icon-download svg-icon" />
</div>
</div>
</div>
</div>
<div>
@ -202,10 +225,16 @@
:close-on-click-modal="false" :title="personalConfigDialog.title" width="600px">
<Others />
</el-dialog>
<upload-dicom-and-nonedicom v-if="uploadImageVisible" :subject-id="uploadSubjectId"
:subject-code="uploadSubjectCode" :criterion="uploadTrialCriterion" :visible.sync="uploadImageVisible"
:visit-task-id="taskId" :is-reading-task-view-in-order="isReadingTaskViewInOrder" />
<download-dicom-and-nonedicom v-if="downloadImageVisible" :subject-id="uploadSubjectId"
:subject-code="uploadSubjectCode" :criterion="uploadTrialCriterion" :task-id="taskId"
:visible.sync="downloadImageVisible" />
</div>
</template>
<script>
import { addNoneDicomMark, deleteTrialFileType } from '@/api/trials'
import { addNoneDicomMark, deleteTrialFileType, getCriterionReadingInfo } from '@/api/trials'
import {
RenderingEngine,
Enums,
@ -228,6 +257,8 @@ const { ViewportType } = Enums
const renderingEngineId = 'myRenderingEngine'
import LengthscaleTool from "../tools/LengthscaleTool"
import { getCustomizeStandardsNoneDicomTools, config } from '@/views/trials/trials-panel/reading/dicoms3D/components/toolConfig'
import uploadDicomAndNonedicom from '@/components/uploadDicomAndNonedicom'
import downloadDicomAndNonedicom from '@/components/downloadDicomAndNonedicom'
const {
ToolGroupManager,
Enums: csToolsEnums,
@ -249,7 +280,11 @@ const {
const { MouseBindings, Events: toolsEvents } = csToolsEnums
export default {
name: 'ImageViewer',
components: { Others },
components: {
Others,
downloadDicomAndNonedicom,
uploadDicomAndNonedicom,
},
props: {
relatedStudyInfo: {
type: Object,
@ -296,7 +331,19 @@ export default {
customizeStandardsNoneDicom: [],
tools: [],
criterionType: null
criterionType: null,
//
downloadImageVisible: false,
uploadImageVisible: false,
uploadSubjectId: null,
uploadSubjectCode: null,
uploadTrialCriterion: {},
uploadStatus: 'upload',
taskId: '',
isReadingTaskViewInOrder: null,
trialCriterion: {}
}
},
computed: {
@ -347,7 +394,6 @@ export default {
},
mounted() {
this.taskInfo = JSON.parse(localStorage.getItem('taskInfo'))
console.log(this.taskInfo, 'this.taskInfo')
this.readingTaskState = this.taskInfo.ReadingTaskState
this.criterionType = this.taskInfo.CriterionType
if (this.criterionType === 0) {
@ -381,11 +427,30 @@ export default {
this.digitPlaces = digitPlaces === -1 ? this.digitPlaces : digitPlaces
this.initLoader()
window.addEventListener('message', this.handleIframeMessage)
this.getTrialCriterion()
},
beforeDestroy() {
window.removeEventListener('message', this.handleIframeMessage)
},
methods: {
getTrialCriterion() {
getCriterionReadingInfo({
TrialId: this.$route.query.trialId,
TrialReadingCriterionId: this.$route.query.TrialReadingCriterionId
})
.then((res) => {
this.trialCriterion = res.Result
})
.catch(() => { })
},
openUploadImage(status) {
this.taskId = this.taskInfo.VisitTaskId
this.uploadSubjectCode = localStorage.getItem("subjectCode")
this.uploadSubjectId = localStorage.getItem("subjectId")
this.uploadTrialCriterion = this.trialCriterion
this.uploadStatus = status
this[`${status}ImageVisible`] = true
},
showPanel(e) {
e.currentTarget.firstChild.lastChild.style.display = 'block'
},