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 */ + + + 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) { // 行动事项