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 01/10] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E9=97=AE=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 From 4f0f1243787c4a434b18c14375b91aa6e15200b6 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Fri, 6 Sep 2024 13:36:25 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E7=BD=91=E9=80=9F=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E5=86=99=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/trials.js | 2 +- src/utils/multipartUpload/aws.js | 6 +++--- src/utils/multipartUpload/oss.js | 6 +++--- vue.config.js | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/store/modules/trials.js b/src/store/modules/trials.js index 0422295e..cb52300b 100644 --- a/src/store/modules/trials.js +++ b/src/store/modules/trials.js @@ -9,7 +9,7 @@ const getDefaultState = () => { studyListQuery: null, unlock: false, config: {}, - uploadTip: '0.00kb/s', + uploadTip: '0.00KB/s', timer: null, whiteList: [], checkTaskId: null diff --git a/src/utils/multipartUpload/aws.js b/src/utils/multipartUpload/aws.js index 3de55a21..0fdd1a90 100644 --- a/src/utils/multipartUpload/aws.js +++ b/src/utils/multipartUpload/aws.js @@ -14,7 +14,7 @@ export function AWSclose() { if (timer) { clearInterval(timer); timer = null; - store.state.trials.uploadTip = '0kb/s' + store.state.trials.uploadTip = '0KB/s' } bytesReceivedPerSecond = {}; } @@ -440,10 +440,10 @@ function setTimer() { let timeList = Object.keys(bytesReceivedPerSecond).sort((a, b) => a - b); if (timeList.length > 0) { let totalBytes = timeList.reduce((sum, bytes) => sum + bytesReceivedPerSecond[bytes], 0) / (5 * 1024); - let unit = 'kb/s'; + let unit = 'KB/s'; if (totalBytes > 1024) { totalBytes = totalBytes / 1024; - unit = "mb/s"; + unit = "MB/s"; } store.state.trials.uploadTip = totalBytes.toFixed(2) + unit; } diff --git a/src/utils/multipartUpload/oss.js b/src/utils/multipartUpload/oss.js index 5ee667b4..16405723 100644 --- a/src/utils/multipartUpload/oss.js +++ b/src/utils/multipartUpload/oss.js @@ -8,7 +8,7 @@ export function OSSclose() { if (timer) { clearInterval(timer); timer = null; - store.state.trials.uploadTip = '0kb/s' + store.state.trials.uploadTip = '0KB/s' } bytesReceivedPerSecond = {}; savaData = {}; @@ -140,10 +140,10 @@ function setTimer() { let timeList = Object.keys(bytesReceivedPerSecond).sort((a, b) => a - b); if (timeList.length > 0) { let totalBytes = timeList.reduce((sum, bytes) => sum + bytesReceivedPerSecond[bytes], 0) / (5 * 1024); - let unit = 'kb/s'; + let unit = 'KB/s'; if (totalBytes > 1024) { totalBytes = totalBytes / 1024; - unit = "mb/s"; + unit = "MB/s"; } store.state.trials.uploadTip = totalBytes.toFixed(2) + unit; } diff --git a/vue.config.js b/vue.config.js index ea3e8bf9..f7fb01e5 100644 --- a/vue.config.js +++ b/vue.config.js @@ -24,10 +24,10 @@ module.exports = { productionSourceMap: false, devServer: { port: '8080', - headers: { - 'Cross-Origin-Opener-Policy': 'same-origin', - 'Cross-Origin-Embedder-Policy': 'require-corp' - }, + // headers: { + // 'Cross-Origin-Opener-Policy': 'same-origin', + // 'Cross-Origin-Embedder-Policy': 'require-corp' + // }, // open: true, overlay: { warnings: false, From f2af36b89a0e0d60bd5882b3871e2bc97fe31109 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Fri, 6 Sep 2024 13:57:00 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E4=B8=B4=E5=BA=8A=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E9=A1=B5=E9=9D=A2=EF=BC=8C=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E5=AF=B9=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visit/crc-upload/components/uploadClinicalData.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/views/trials/trials-panel/visit/crc-upload/components/uploadClinicalData.vue b/src/views/trials/trials-panel/visit/crc-upload/components/uploadClinicalData.vue index 009a901c..99f4d1d8 100644 --- a/src/views/trials/trials-panel/visit/crc-upload/components/uploadClinicalData.vue +++ b/src/views/trials/trials-panel/visit/crc-upload/components/uploadClinicalData.vue @@ -252,7 +252,7 @@
-
+
From 73a4135fd64be9856ac99dab2d58378b18f05d74 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Fri, 6 Sep 2024 14:04:00 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=EF=BC=8C=E6=A0=87=E7=AD=BE=E6=8D=A2=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/recompose/index.vue | 187 ++++++++++++++++++++++------------ 1 file changed, 123 insertions(+), 64 deletions(-) diff --git a/src/views/recompose/index.vue b/src/views/recompose/index.vue index edc686f4..171d78ea 100644 --- a/src/views/recompose/index.vue +++ b/src/views/recompose/index.vue @@ -1,76 +1,130 @@ From dc5c1720c702977b41b749d227563b65566816ed Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Fri, 6 Sep 2024 14:10:57 +0800 Subject: [PATCH 05/10] =?UTF-8?q?CRC=E4=B8=8A=E4=BC=A0=E5=BD=B1=E5=83=8F?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crc-upload/components/uploadDicomFiles2.vue | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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 8551d896..894a0487 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 @@ -1,9 +1,12 @@