From b762d3d0dd8d961a53fb3967cc15409b9996e71d Mon Sep 17 00:00:00 2001
From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com>
Date: Thu, 12 Sep 2024 10:46:33 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E8=AE=B0=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/load.js | 16 +
.../downloadDicomAndNonedicom/index.vue | 19 +-
.../trial-summary/download-monitor/index.vue | 349 ++++++++++++++++++
.../qc-check/components/qualityAssurance.vue | 37 +-
4 files changed, 410 insertions(+), 11 deletions(-)
create mode 100644 src/views/trials/trials-panel/trial-summary/download-monitor/index.vue
diff --git a/src/api/load.js b/src/api/load.js
index f867992c..77282c73 100644
--- a/src/api/load.js
+++ b/src/api/load.js
@@ -79,4 +79,20 @@ export function verifyIRStudyAllowUpload(data) {
method: 'post',
data
})
+}
+// 影像下载成功确认
+export function downloadImageSuccess(params) {
+ return request({
+ url: '/DownloadAndUpload/downloadImageSuccess',
+ method: 'post',
+ params
+ })
+}
+// 影像下载记录列表
+export function getTrialDownloadList(data) {
+ return request({
+ url: '/DownloadAndUpload/getTrialDownloadList',
+ method: 'post',
+ data
+ })
}
\ No newline at end of file
diff --git a/src/components/downloadDicomAndNonedicom/index.vue b/src/components/downloadDicomAndNonedicom/index.vue
index edef5de7..f42a584e 100644
--- a/src/components/downloadDicomAndNonedicom/index.vue
+++ b/src/components/downloadDicomAndNonedicom/index.vue
@@ -143,6 +143,7 @@
import {
getSubjectImageDownloadSelectList,
getIRReadingDownloadStudyInfo,
+ downloadImageSuccess,
} from '@/api/load.js'
import studyView from '@/components/uploadDicomAndNonedicom/study-view.vue'
import store from '@/store'
@@ -207,6 +208,7 @@ export default {
modelList: [],
IsDicom: true,
open: null,
+ downloadId: null,
}
},
mounted() {
@@ -316,6 +318,7 @@ export default {
let res = await getIRReadingDownloadStudyInfo(data)
this.btnLoading = false
if (res.IsSuccess) {
+ this.downloadId = res.OtherInfo
this.downloadImage(res.Result)
}
} catch (err) {
@@ -327,7 +330,10 @@ export default {
async downloadImage(data) {
try {
let { files, name, fileType } = this.formatDownloadFile(data)
- await downLoadFile(files, name, 'zip')
+ let res = await downLoadFile(files, name, 'zip')
+ if (res && this.downloadId) {
+ this.downloadImageSuccess()
+ }
} catch (err) {
console.log(err)
}
@@ -382,6 +388,17 @@ export default {
return { files, name }
},
+ // 影像下载成功确认
+ async downloadImageSuccess() {
+ try {
+ let params = {
+ TrialImageDownloadId: this.downloadId,
+ }
+ await downloadImageSuccess(params)
+ } catch (err) {
+ console.log(err)
+ }
+ },
handleOpenDialog(item) {
this.model_cfg.title = `${item.SubjectCode || ''} > ${item.TaskBlindName}`
if (item.IsDicom) {
diff --git a/src/views/trials/trials-panel/trial-summary/download-monitor/index.vue b/src/views/trials/trials-panel/trial-summary/download-monitor/index.vue
new file mode 100644
index 00000000..5415de35
--- /dev/null
+++ b/src/views/trials/trials-panel/trial-summary/download-monitor/index.vue
@@ -0,0 +1,349 @@
+/* eslint-disable */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('common:button:search') }}
+
+
+
+ {{ $t('common:button:reset') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $fd('UserType', scope.row.UserTypeEnum) }}
+
+
+
+
+
+
+ {{
+ scope.row.DicomStudyCount + scope.row.NoneDicomStudyCount
+ }}
+
+
+
+
+
+
+ {{ $fd('downloadImageType', scope.row.ImageType) }}
+
+
+
+
+
+
+
+
+ {{ fileSizeFormatter(scope.row.ImageSize) }}
+
+
+
+
+
+
+ {{ $fd('downloadIsSuccess', scope.row.IsSuccess) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/trials/trials-panel/visit/qc-check/components/qualityAssurance.vue b/src/views/trials/trials-panel/visit/qc-check/components/qualityAssurance.vue
index 38e72f9c..f95eea93 100644
--- a/src/views/trials/trials-panel/visit/qc-check/components/qualityAssurance.vue
+++ b/src/views/trials/trials-panel/visit/qc-check/components/qualityAssurance.vue
@@ -1253,7 +1253,7 @@ import { getToken } from '@/utils/auth'
import const_ from '@/const/sign-code'
import uploadPetClinicalData from '@/views/trials/trials-panel/visit/crc-upload/components/uploadPetClinicalData.vue'
import { downLoadFile } from '@/utils/stream.js'
-import { getCRCUploadedStudyInfo } from '@/api/load.js'
+import { getCRCUploadedStudyInfo, downloadImageSuccess } from '@/api/load.js'
import store from '@/store'
export default {
name: 'QualityAssurance',
@@ -1370,6 +1370,7 @@ export default {
downloading: false,
selectTableDicom: [], // 选中的dicom数据
selectTableNonedicom: [], // 选中的非dicom数据
+ downloadId: null,
}
},
async mounted() {
@@ -1427,6 +1428,7 @@ export default {
let res = await getCRCUploadedStudyInfo(data)
this.downloading = false
if (res.IsSuccess) {
+ this.downloadId = res.OtherInfo
this.downloadImage(res.Result, type)
}
} catch (err) {
@@ -1438,10 +1440,14 @@ export default {
async downloadImage(data, type) {
try {
let { files, name, fileType } = this.formatDownloadFile(data, type)
+ let res = null
if (fileType === 'list') {
- await downLoadFile(files, name, 'zip')
+ res = await downLoadFile(files, name, 'zip')
} else {
- await downLoadFile(files, name)
+ res = await downLoadFile(files, name)
+ }
+ if (res && this.downloadId) {
+ this.downloadImageSuccess()
}
} catch (err) {
console.log(err)
@@ -1467,7 +1473,7 @@ export default {
name: `${data.SubjectCode}_${data.VisitName}_${this.$fd(
'IsDicom',
true
- )}/${study.StudyCode}_${study.StudyTime.split(" ")[0]}_${
+ )}/${study.StudyCode}_${study.StudyTime.split(' ')[0]}_${
series.Modality
}/${fileName}`,
url: this.OSSclientConfig.basePath + instance.Path,
@@ -1504,9 +1510,9 @@ export default {
name: `${data.SubjectCode}_${data.VisitName}_${this.$fd(
'IsDicom',
true
- )}/${study.StudyCode}_${study.ImageDate.split(" ")[0]}_${study.Modality}/${
- item.FileName
- }`,
+ )}/${study.StudyCode}_${study.ImageDate.split(' ')[0]}_${
+ study.Modality
+ }/${item.FileName}`,
url: this.OSSclientConfig.basePath + item.Path,
}
files.push(obj)
@@ -1516,6 +1522,17 @@ export default {
}
return { files, name, fileType: 'list' }
},
+ // 影像下载成功确认
+ async downloadImageSuccess() {
+ try {
+ let params = {
+ TrialImageDownloadId: this.downloadId,
+ }
+ await downloadImageSuccess(params)
+ } catch (err) {
+ console.log(err)
+ }
+ },
// 获取QC界面基本信息
getQCInfo() {
this.loading = true
@@ -1643,9 +1660,9 @@ export default {
var str = `${item.keyName}
`
if (item.keyValue) {
// 问题总结
- str = `${str}${this.$t('trials:audit:form:questionSummary')}:
${
- item.keyValue
- }
`
+ str = `${str}${this.$t(
+ 'trials:audit:form:questionSummary'
+ )}:
${item.keyValue}
`
}
if (item.actionContent) {
// 行动事项