diff --git a/src/api/trials/visit.js b/src/api/trials/visit.js index 132c488..e8394f7 100644 --- a/src/api/trials/visit.js +++ b/src/api/trials/visit.js @@ -298,9 +298,9 @@ export function getPatientSubejctVisitList(param) { } // 下载影像 -export function getSubjectImageZipInfo(id) { +export function getSubjectImageZipInfo(id, id2) { return request({ - url: `/Patient/getSubjectImageZipInfo/${id}`, + url: `/Patient/getSubjectImageZipInfo/${id}/${id2}`, method: 'get', }) } diff --git a/src/utils/uploadZip.js b/src/utils/uploadZip.js index f4adbb0..ea7dd37 100644 --- a/src/utils/uploadZip.js +++ b/src/utils/uploadZip.js @@ -5,9 +5,9 @@ import Vue from 'vue'; import { getSubjectImageZipInfo, } from "@/api/trials/visit.js"; -export const downloadImage = async (id) => { +export const downloadImage = async (id, id2) => { try { - let res = await getSubjectImageZipInfo(id); + let res = await getSubjectImageZipInfo(id, id2); if (res.IsSuccess) { let item = res.Result; await setfolder(item); @@ -18,52 +18,44 @@ export const downloadImage = async (id) => { }; const setfolder = async (item) => { const zip = new JSZip(); // 创建实例对象 + let patientIds = item.PatientList.map(i => i.PatientIdStr); + let zipName = `${item.SubjectCode}_${patientIds.join(',')}`; let zipObj = {}; const promises = []; - for (let patient of item.PatientList) { - if (!zipObj[patient.PatientIdStr]) { - zipObj[patient.PatientIdStr] = zip.folder( - `${item.SubjectCode}_${patient.PatientIdStr}` - ); + for (let visit of item.VisitList) { + if (!zipObj[`${visit.VisitName}`]) { + zipObj[`${visit.VisitName}`] = zip.folder(visit.VisitName); } - for (let visit of patient.VisitList) { - if (!zipObj[`${patient.PatientIdStr}${visit.VisitName}`]) { - zipObj[`${patient.PatientIdStr}${visit.VisitName}`] = zipObj[ - patient.PatientIdStr - ].folder(visit.VisitName); - } - for (let study of visit.StudyList) { - let date = study.StudyTime.split(" ")[0]; - for (let series of study.SeriesList) { - if ( - !zipObj[ - `${patient.PatientIdStr}${visit.VisitName}${series.Modality}` - ] - ) { + for (let study of visit.StudyList) { + let date = study.StudyTime.split(" ")[0]; + for (let series of study.SeriesList) { + if ( + !zipObj[ + `${visit.VisitName}${series.Modality}` + ] + ) { + zipObj[ + `${visit.VisitName}${series.Modality}` + ] = zipObj[`${visit.VisitName}`].folder( + `${date}_${series.Modality}` + ); + } + for (let instance of series.InstancePathList) { + let obj = { + subjectCode: item.SubjectCode, + visitName: visit.VisitName, + date: study.StudyTime.split(" ")[0], + modality: series.Modality, + instancePath: instance.Path, + dicomName: instance.Path.split("/Dicom/")[1], + }; + const promise = handleBatchDown( + obj, zipObj[ - `${patient.PatientIdStr}${visit.VisitName}${series.Modality}` - ] = zipObj[`${patient.PatientIdStr}${visit.VisitName}`].folder( - `${date}_${series.Modality}` - ); - } - for (let instance of series.InstancePathList) { - let obj = { - subjectCode: item.SubjectCode, - patientIdStr: patient.PatientIdStr, - visitName: visit.VisitName, - date: study.StudyTime.split(" ")[0], - modality: series.Modality, - instancePath: instance.Path, - dicomName: instance.Path.split("/Dicom/")[1], - }; - const promise = handleBatchDown( - obj, - zipObj[ - `${patient.PatientIdStr}${visit.VisitName}${series.Modality}` - ] - ); - promises.push(promise); - } + `${visit.VisitName}${series.Modality}` + ], + ); + promises.push(promise); } } } @@ -81,7 +73,7 @@ const setfolder = async (item) => { }, }) .then((res) => { - saveAs(res, item.SubjectCode + new Date().getTime() + "_CV.zip"); // 使用FileSaver.saveAs保存文件,文件名可自定义 + saveAs(res, zipName + ".zip"); // 使用FileSaver.saveAs保存文件,文件名可自定义 zipObj = null; }); }) diff --git a/src/views/trials/trials-inspection/components/research-trials-list.vue b/src/views/trials/trials-inspection/components/research-trials-list.vue index c7cd5fe..f80011e 100644 --- a/src/views/trials/trials-inspection/components/research-trials-list.vue +++ b/src/views/trials/trials-inspection/components/research-trials-list.vue @@ -239,6 +239,7 @@ export default { let params = { PatientId: this.Patient.PatientId, SubjectId: item.SubjectId, + TrialId: item.TrialId, }; this.loading = true; let res = await deleteSubjectPatientBinding(params); diff --git a/src/views/trials/trials-inspection/index.vue b/src/views/trials/trials-inspection/index.vue index 067b73f..204bb8f 100644 --- a/src/views/trials/trials-inspection/index.vue +++ b/src/views/trials/trials-inspection/index.vue @@ -139,7 +139,6 @@ label="Called AE" show-overflow-tooltip min-width="140" - sortable="custom" >