From c618738725d5b3107455c0bb0f6a8c32191f7077 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Fri, 6 Sep 2024 13:22:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=B8=8B=E8=BD=BD=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/trials.js | 4 +- .../downloadDicomAndNonedicom/index.vue | 33 +++++ .../uploadDicomAndNonedicom/dicomFile.vue | 19 +++ .../uploadDicomAndNonedicom/index.vue | 5 +- .../uploadDicomAndNonedicom/nonedicomFile.vue | 2 +- src/views/none-dicom-show/index.vue | 130 +++++++++++------- .../components/uploadDicomFiles2.vue | 20 +-- 7 files changed, 148 insertions(+), 65 deletions(-) diff --git a/src/api/trials.js b/src/api/trials.js index bd299412..a07d282a 100644 --- a/src/api/trials.js +++ b/src/api/trials.js @@ -1364,9 +1364,9 @@ export function getForwardList(param) { }) } -export function getNoneDicomStudyList(subjectVisitId, sudyId = '', isFilterZip = false) { +export function getNoneDicomStudyList(subjectVisitId, sudyId = '', isFilterZip = false, visitTaskId = '') { return request({ - url: `/NoneDicomStudy/getNoneDicomStudyList?subjectVisitId=${subjectVisitId}&nonedicomStudyId=${sudyId}&isFilterZip=${isFilterZip}`, + url: `/NoneDicomStudy/getNoneDicomStudyList?subjectVisitId=${subjectVisitId}&nonedicomStudyId=${sudyId}&isFilterZip=${isFilterZip}&visitTaskId=${visitTaskId}`, method: 'get' }) } diff --git a/src/components/downloadDicomAndNonedicom/index.vue b/src/components/downloadDicomAndNonedicom/index.vue index 0564608d..477a7d9f 100644 --- a/src/components/downloadDicomAndNonedicom/index.vue +++ b/src/components/downloadDicomAndNonedicom/index.vue @@ -148,6 +148,7 @@ import { import studyView from '@/components/uploadDicomAndNonedicom/study-view.vue' import store from '@/store' import { downLoadFile } from '@/utils/stream.js' +import { getToken } from '@/utils/auth' let defaultSearchData = () => { return { SubjectId: null, @@ -202,6 +203,7 @@ export default { }, modelList: [], IsDicom: true, + open: null, } }, mounted() { @@ -379,6 +381,37 @@ export default { this.searchData.PageIndex = 1 this.getList() }, + preview(row) { + if (!row.IsDicom) { + this.handlePreviewNoneDicomFiles(row) + } else { + this.handleViewReadingImages(row) + } + }, + // 预览单个检查下非Dicom文件 + handlePreviewNoneDicomFiles(row) { + if (this.open) { + this.open.close() + } + let trialId = this.$route.query.trialId + var token = getToken() + const routeData = this.$router.resolve({ + path: `/showNoneDicoms?trialId=${trialId}&subjectVisitId=${row.SourceSubjectVisitId}&studyId=${row.Id}&TokenKey=${token}`, + }) + this.open = window.open(routeData.href, '_blank') + }, + // 预览阅片影像 + handleViewReadingImages(row) { + if (this.open) { + this.open.close() + } + var token = getToken() + let trialId = this.$route.query.trialId + const routeData = this.$router.resolve({ + path: `/showvisitdicoms?trialId=${trialId}&visitInfo=${row.VisitName}(${row.VisitNum})&subjectVisitId=${row.SourceSubjectVisitId}&isReading=1&TokenKey=${token}`, + }) + this.open = window.open(routeData.href, '_blank') + }, }, } diff --git a/src/components/uploadDicomAndNonedicom/dicomFile.vue b/src/components/uploadDicomAndNonedicom/dicomFile.vue index 0b8f31ea..193a80d2 100644 --- a/src/components/uploadDicomAndNonedicom/dicomFile.vue +++ b/src/components/uploadDicomAndNonedicom/dicomFile.vue @@ -115,6 +115,11 @@ @@ -453,6 +458,7 @@ import { convertBytes } from '@/utils/dicom-character-set' import { parseDicom } from '@/utils/parseDicom.js' import { dcmUpload } from '@/utils/dcmUpload/dcmUpload' import store from '@/store' +import { getToken } from '@/utils/auth' export default { name: 'dicomFile', props: { @@ -505,6 +511,7 @@ export default { trialId: null, subjectVisitId: null, errStudyUidList: [], + open: null, } }, created() { @@ -1444,6 +1451,18 @@ export default { let blob = new Blob(['\ufeff', text], { type: 'text/plain' }) return blob }, + // 预览阅片影像 + handleViewReadingImages(row) { + if (this.open) { + this.open.close() + } + var token = getToken() + let trialId = this.$route.query.trialId + const routeData = this.$router.resolve({ + path: `/showvisitdicoms?trialId=${trialId}&visitInfo=${row.VisitName}(${row.VisitNum})&subjectVisitId=${row.SourceSubjectVisitId}&isReading=1&TokenKey=${token}`, + }) + this.open = window.open(routeData.href, '_blank') + }, }, } diff --git a/src/components/uploadDicomAndNonedicom/index.vue b/src/components/uploadDicomAndNonedicom/index.vue index 058f4514..472ece43 100644 --- a/src/components/uploadDicomAndNonedicom/index.vue +++ b/src/components/uploadDicomAndNonedicom/index.vue @@ -62,10 +62,13 @@ export default { }, data() { return { - title: 'Upload Images:01 > 01001 >Timepoint', + title: '', activeName: 'dicom', } }, + mounted() { + this.title = `Upload Images:${this.SubjectCode}(${this.Criterion.TrialReadingCriterionName})` + }, methods: { beforeClose() { this.$emit('update:visible', false) diff --git a/src/components/uploadDicomAndNonedicom/nonedicomFile.vue b/src/components/uploadDicomAndNonedicom/nonedicomFile.vue index 8d28d1e3..343ef12d 100644 --- a/src/components/uploadDicomAndNonedicom/nonedicomFile.vue +++ b/src/components/uploadDicomAndNonedicom/nonedicomFile.vue @@ -550,7 +550,7 @@ export default { let trialId = this.$route.query.trialId var token = getToken() const routeData = this.$router.resolve({ - path: `/showNoneDicoms?trialId=${trialId}&subjectVisitId=${row.SourceSubjectVisitId}&studyId=${row.Id}&TokenKey=${token}`, + path: `/showNoneDicoms?trialId=${trialId}&subjectVisitId=${row.SourceSubjectVisitId}&studyId=${row.Id}&visitTaskId=${row.VisitTaskId}&TokenKey=${token}`, }) this.open = window.open(routeData.href, '_blank') }, diff --git a/src/views/none-dicom-show/index.vue b/src/views/none-dicom-show/index.vue index 907afd59..0c5506b7 100644 --- a/src/views/none-dicom-show/index.vue +++ b/src/views/none-dicom-show/index.vue @@ -6,54 +6,61 @@
-
+
{{ study.CodeView }} - {{ study.Modality }} + {{ study.Modality }} {{ getBodyPart(study.BodyPart) }}
-
+
{{ $t('trials:audit:message:noData') }}
-
+
- {{ `${j+1}. ${item.FileName}` }} + {{ `${j + 1}. ${item.FileName}` }}
- {{ `${j+1}. ${item.FileName}` }} + {{ `${j + 1}. ${item.FileName}` }}
- -
- +
+
-
- diff --git a/src/views/trials/trials-panel/visit/crc-upload/components/uploadDicomFiles2.vue b/src/views/trials/trials-panel/visit/crc-upload/components/uploadDicomFiles2.vue index 267bb120..8551d896 100644 --- a/src/views/trials/trials-panel/visit/crc-upload/components/uploadDicomFiles2.vue +++ b/src/views/trials/trials-panel/visit/crc-upload/components/uploadDicomFiles2.vue @@ -539,10 +539,11 @@ icon="el-icon-view" circle :disabled=" - scope.row.uploadState.stateCode !== '' && - scope.row.dicomInfo.failedFileCount < - scope.row.dicomInfo.fileCount && - !scope.row.uploadState.record + (scope.row.uploadState.stateCode !== '' && + scope.row.dicomInfo.failedFileCount < + scope.row.dicomInfo.fileCount && + !scope.row.uploadState.record) || + btnLoading " :title="$t('trials:uploadedDicoms:action:preview')" size="small" @@ -555,10 +556,11 @@ :title="$t('trials:uploadedDicoms:action:delete')" size="small" :disabled=" - scope.row.uploadState.stateCode !== '' && - scope.row.dicomInfo.failedFileCount < - scope.row.dicomInfo.fileCount && - !scope.row.uploadState.record + (scope.row.uploadState.stateCode !== '' && + scope.row.dicomInfo.failedFileCount < + scope.row.dicomInfo.fileCount && + !scope.row.uploadState.record) || + btnLoading " @click="handleDelete(scope.$index, scope.row)" /> @@ -1076,7 +1078,7 @@ export default { // 按序列UUID本地归档 parseDicomFile(file) { var scope = this - return new Promise(function (resolve, reject) { + return new Promise(function (resolve, reject) { if (scope.scanState === 'cancelling') { resolve() return