From 2a842fd2f89efb91bbed823de1f81b32ede6fde3 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Tue, 21 Apr 2026 13:15:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=BD=B1=E5=83=8F=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uploadDicomAndNonedicom/dicomFile.vue | 16 +++++++++++++- .../components/uploadDicomFiles2.vue | 21 ++++++++++++++++--- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/components/uploadDicomAndNonedicom/dicomFile.vue b/src/components/uploadDicomAndNonedicom/dicomFile.vue index 02efe95e..d8538d15 100644 --- a/src/components/uploadDicomAndNonedicom/dicomFile.vue +++ b/src/components/uploadDicomAndNonedicom/dicomFile.vue @@ -335,6 +335,7 @@ cornerstoneWADOImageLoader.external.cornerstone = cornerstone import { convertBytes } from '@/utils/dicom-character-set' import { parseDicom } from '@/utils/parseDicom.js' import { dcmUpload } from '@/utils/dcmUpload/dcmUpload' +import dcmjs from '@/utils/dcmUpload/dcmjs' import store from '@/store' import { getToken } from '@/utils/auth' export default { @@ -809,6 +810,15 @@ export default { }, }) } + if (!scope.uploadQueues[studyIndex].dicomInfo.RadionuclideTotalDose) { + let dataset = dcmjs.data.DicomMessage.readFile(e.target.result) + let RadionuclideTotalDose = dataset.dict['00540016'].Value[0]['00181074'].Value[0] + let RadionuclideHalfLife = dataset.dict['00540016'].Value[0]['00181075'].Value[0] + let RadiopharmaceuticalStartTime = dataset.dict['00540016'].Value[0]['00181072'].Value[0] + scope.uploadQueues[studyIndex].dicomInfo.RadionuclideTotalDose = RadionuclideTotalDose + scope.uploadQueues[studyIndex].dicomInfo.RadionuclideHalfLife = RadionuclideHalfLife + scope.uploadQueues[studyIndex].dicomInfo.RadiopharmaceuticalStartTime = RadiopharmaceuticalStartTime + } var modality = scope.uploadQueues[studyIndex].dicomInfo.modality var currentModality = data.string('x00080060') if (!(modality.indexOf(currentModality) > -1)) { @@ -1144,6 +1154,10 @@ export default { failedFileCount: 0, RecordPath: null, study: { + RadionuclideTotalDose: dicomInfo.RadionuclideTotalDose, + RadionuclideHalfLife: dicomInfo.RadionuclideHalfLife, + RadiopharmaceuticalStartTime: dicomInfo.RadiopharmaceuticalStartTime, + studyId: dicomInfo.studyId, studyInstanceUid: dicomInfo.studyUid, studyTime: dicomInfo.studyTime, @@ -1452,7 +1466,7 @@ export default { let OSSclient = scope.OSSclient try { let seriesRes = await OSSclient.put( - thumbnailPath, + thumbnailPath, blob, { fileName: `${v.seriesUid}.jpg`, 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 e18b8eab..62d0f61f 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 @@ -576,6 +576,7 @@ import { getToken } from '@/utils/auth' import { readEntry } from '@/utils/index' import { dcmUpload } from '@/utils/dcmUpload/dcmUpload' import { convertBytes } from '@/utils/dicom-character-set' +import dcmjs from '@/utils/dcmUpload/dcmjs' import moment from 'moment' import store from '@/store' import uploadDicomPacs from './uploadDiocmPacs.vue' @@ -1015,6 +1016,15 @@ export default { }, }) } + if (!scope.uploadQueues[studyIndex].dicomInfo.RadionuclideTotalDose) { + let dataset = dcmjs.data.DicomMessage.readFile(e.target.result) + let RadionuclideTotalDose = dataset.dict['00540016'].Value[0]['00181074'].Value[0] + let RadionuclideHalfLife = dataset.dict['00540016'].Value[0]['00181075'].Value[0] + let RadiopharmaceuticalStartTime = dataset.dict['00540016'].Value[0]['00181072'].Value[0] + scope.uploadQueues[studyIndex].dicomInfo.RadionuclideTotalDose = RadionuclideTotalDose + scope.uploadQueues[studyIndex].dicomInfo.RadionuclideHalfLife = RadionuclideHalfLife + scope.uploadQueues[studyIndex].dicomInfo.RadiopharmaceuticalStartTime = RadiopharmaceuticalStartTime + } var modality = scope.uploadQueues[studyIndex].dicomInfo.modality var currentModality = data.string('x00080060') if (!(modality.indexOf(currentModality) > -1)) { @@ -1490,6 +1500,11 @@ export default { failedFileCount: 0, RecordPath: null, study: { + RadionuclideTotalDose: dicomInfo.RadionuclideTotalDose, + RadionuclideHalfLife: dicomInfo.RadionuclideHalfLife, + RadiopharmaceuticalStartTime: dicomInfo.RadiopharmaceuticalStartTime, + + studyId: dicomInfo.studyId, studyInstanceUid: dicomInfo.studyUid, studyTime: dicomInfo.studyTime, @@ -1635,7 +1650,7 @@ export default { o.imageColumns, o.imageRows ) - + let thumbnailPath = `/${params.trialId}/Image/${params.subjectId}/${params.subjectVisitId}/${dicomInfo.studyUid}/${v.seriesUid}.jpg` let OSSclient = scope.OSSclient let seriesRes = await OSSclient.put( @@ -1786,7 +1801,7 @@ export default { let OSSclient = scope.OSSclient try { let seriesRes = await OSSclient.put( - thumbnailPath, + thumbnailPath, blob, { fileName: `${v.seriesUid}.jpg`, @@ -1811,7 +1826,7 @@ export default { params.study.instanceCount = dicomInfo.failedFileCount params.RecordPath = scope.$getObjectName(logRes.url) if (scope.isClose) return false - + params.UploadBatchId = uploadBatchId addOrUpdateArchiveStudy(params) .then((res) => {