Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | 34x 94x 94x 94x 94x 94x 94x 94x 94x 94x 94x 94x 94x 94x | import OHIF from '@ohif/core'; import { InstanceMetadata, PhilipsPETPrivateGroup } from '@cornerstonejs/calculate-suv/src/types'; const metadataProvider = OHIF.classes.MetadataProvider; export default function getPTImageIdInstanceMetadata(imageId: string): InstanceMetadata { const dicomMetaData = metadataProvider.get('instance', imageId); Iif (!dicomMetaData) { throw new Error('dicom metadata are required'); } Iif ( dicomMetaData.SeriesDate === undefined || dicomMetaData.SeriesTime === undefined || dicomMetaData.CorrectedImage === undefined || dicomMetaData.Units === undefined || !dicomMetaData.RadiopharmaceuticalInformationSequence || dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideHalfLife === undefined || dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideTotalDose === undefined || dicomMetaData.DecayCorrection === undefined || dicomMetaData.AcquisitionDate === undefined || dicomMetaData.AcquisitionTime === undefined || (dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartDateTime === undefined && dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartTime === undefined) ) { throw new Error('required metadata are missing'); } Iif (dicomMetaData.PatientWeight === undefined) { console.warn('PatientWeight missing from PT instance metadata'); } const instanceMetadata: InstanceMetadata = { CorrectedImage: dicomMetaData.CorrectedImage, Units: dicomMetaData.Units, RadionuclideHalfLife: dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideHalfLife, RadionuclideTotalDose: dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideTotalDose, RadiopharmaceuticalStartDateTime: dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartDateTime, RadiopharmaceuticalStartTime: dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartTime, DecayCorrection: dicomMetaData.DecayCorrection, PatientWeight: dicomMetaData.PatientWeight, SeriesDate: dicomMetaData.SeriesDate, SeriesTime: dicomMetaData.SeriesTime, AcquisitionDate: dicomMetaData.AcquisitionDate, AcquisitionTime: dicomMetaData.AcquisitionTime, }; Iif ( dicomMetaData['70531000'] || dicomMetaData['70531000'] !== undefined || dicomMetaData['70531009'] || dicomMetaData['70531009'] !== undefined ) { const philipsPETPrivateGroup: PhilipsPETPrivateGroup = { SUVScaleFactor: dicomMetaData['70531000'], ActivityConcentrationScaleFactor: dicomMetaData['70531009'], }; instanceMetadata.PhilipsPETPrivateGroup = philipsPETPrivateGroup; } Iif (dicomMetaData['0009100d'] && dicomMetaData['0009100d'] !== undefined) { instanceMetadata.GEPrivatePostInjectionDateTime = dicomMetaData['0009100d']; } Iif (dicomMetaData.FrameReferenceTime && dicomMetaData.FrameReferenceTime !== undefined) { instanceMetadata.FrameReferenceTime = dicomMetaData.FrameReferenceTime; } if (dicomMetaData.ActualFrameDuration && dicomMetaData.ActualFrameDuration !== undefined) { instanceMetadata.ActualFrameDuration = dicomMetaData.ActualFrameDuration; } Iif (dicomMetaData.PatientSex && dicomMetaData.PatientSex !== undefined) { instanceMetadata.PatientSex = dicomMetaData.PatientSex; } Iif (dicomMetaData.PatientSize && dicomMetaData.PatientSize !== undefined) { instanceMetadata.PatientSize = dicomMetaData.PatientSize; } return instanceMetadata; } function convertInterfaceTimeToString(time): string { const hours = `${time.hours || '00'}`.padStart(2, '0'); const minutes = `${time.minutes || '00'}`.padStart(2, '0'); const seconds = `${time.seconds || '00'}`.padStart(2, '0'); const fractionalSeconds = `${time.fractionalSeconds || '000000'}`.padEnd(6, '0'); const timeString = `${hours}${minutes}${seconds}.${fractionalSeconds}`; return timeString; } function convertInterfaceDateToString(date): string { const month = `${date.month}`.padStart(2, '0'); const day = `${date.day}`.padStart(2, '0'); const dateString = `${date.year}${month}${day}`; return dateString; } export { getPTImageIdInstanceMetadata }; |