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 @@
-
-
-
+
+
+
{{ $t('recompose:title:init') }}
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
{{ $t('recompose:button:cancel') }}
-
+
{{ $t('recompose:button:save') }}
-
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 @@