diff --git a/src/views/trials/trials-panel/trial-summary/image-summary/index.vue b/src/views/trials/trials-panel/trial-summary/image-summary/index.vue index 813af93d..fb63744d 100644 --- a/src/views/trials/trials-panel/trial-summary/image-summary/index.vue +++ b/src/views/trials/trials-panel/trial-summary/image-summary/index.vue @@ -204,16 +204,16 @@ export default { } let res = await getExportSubjectVisitImageList(data) if (res.IsSuccess) { - this.downLoad(IsKeyImage, res.Result) + this.downLoad(IsKeyImage, res.Result, IsExportReading) } } catch (err) { console.log(err) } }, // 下载 - async downLoad(IsKeyImage = false, row) { + async downLoad(IsKeyImage = false, row, IsExportReading = false) { try { - let { files, name } = this.formatDownloadFile(IsKeyImage, row) + let { files, name } = this.formatDownloadFile(IsKeyImage, row, IsExportReading) let res = await downLoadFile(files, name, 'zip') // } } catch (err) { @@ -221,24 +221,44 @@ export default { } }, // 格式化下载文件路径 - formatDownloadFile(IsKeyImage = false, row) { + formatDownloadFile(IsKeyImage = false, row, IsExportReading = false) { let files = [], name = `${this.$route.query.researchProgramNo}_${this.$t('trials:imageSummary:downloadname:dicom')}_${Date.now()}.zip`; + if (IsExportReading) { + name = `${this.$route.query.researchProgramNo}_${this.$t('trials:imageSummary:downloadname:readingDicom')}_${Date.now()}.zip`; + } if (!IsKeyImage) { //中心ID/受试者ID/访视名/Study ID_Study Date_Modality/文件 row.VisitList.forEach(visit => { if (visit.StudyList && visit.StudyList.length > 0) { visit.StudyList.forEach(study => { + let arr = [] + study.SeriesList.forEach(item => { + if (!arr.includes(item.Modality)) { + arr.push(item.Modality) + } + }) + let str = arr.join('_') + let time = study.StudyTime.split(' ')[0] + if (study.StudyDIRPath && !study.dirHas) { + study.dirHas = true + let obj = { + name: `${visit.TrialSiteCode}/${visit.SubjectCode}/${visit.VisitName}/${study.StudyCode}_${time}_${str}/DICOMDIR`, + url: this.OSSclientConfig.basePath + study.StudyDIRPath, + } + files.push(obj) + } if (study.SeriesList && study.SeriesList.length > 0) { study.SeriesList.forEach(serie => { - if (serie.InstancePathList && serie.InstancePathList.length > 0) { - serie.InstancePathList.forEach(instance => { + + if (serie.InstanceList && serie.InstanceList.length > 0) { + serie.InstanceList.forEach(instance => { let instanceArr = instance.Path.split("/") - let fileName = instanceArr[instanceArr.length - 1] - let time = study.StudyTime.split(' ')[0] + let fileName = instance.FileName || instanceArr[instanceArr.length - 1] let obj = { - name: `${visit.TrialSiteCode}/${visit.SubjectCode}/${visit.VisitName}/${study.StudyCode}_${time}_${serie.Modality}/IMAGE/${fileName}`, + name: `${visit.TrialSiteCode}/${visit.SubjectCode}/${visit.VisitName}/${study.StudyCode}_${time}_${str}/IMAGE/${fileName}`, url: this.OSSclientConfig.basePath + instance.Path, + IsEncapsulated: instance.IsEncapsulated } files.push(obj) })