import { Name, SOPClassHandlerId } from './id'; import { utils, classes } from '@ohif/core'; const { ImageSet } = classes; const SOP_CLASS_UIDS = { ENCAPSULATED_PDF: '1.2.840.10008.5.1.4.1.1.104.1', }; const sopClassUids = Object.values(SOP_CLASS_UIDS); const _getDisplaySetsFromSeries = (instances, servicesManager, extensionManager) => { const dataSource = extensionManager.getActiveDataSource()[0]; return instances .map(instance => { const { Modality, SOPInstanceUID, EncapsulatedDocument } = instance; const { SeriesDescription = "PDF", MIMETypeOfEncapsulatedDocument, } = instance; const { SeriesNumber, SeriesDate, SeriesInstanceUID, StudyInstanceUID, } = instance; const pdfUrl = dataSource.retrieve.directURL({ instance, tag: 'EncapsulatedDocument', defaultType: MIMETypeOfEncapsulatedDocument || "application/pdf", singlepart: "pdf", }); const displaySet = { //plugin: id, Modality, displaySetInstanceUID: utils.guid(), SeriesDescription, SeriesNumber, SeriesDate, SOPInstanceUID, SeriesInstanceUID, StudyInstanceUID, SOPClassHandlerId, referencedImages: null, measurements: null, pdfUrl, others: [instance], thumbnailSrc: dataSource.retrieve.directURL({ instance, defaultPath: "/thumbnail", defaultType: "image/jpeg", tag: "Absent" }), isDerivedDisplaySet: true, isLoaded: false, sopClassUids, numImageFrames: 0, numInstances: 1, instance, }; return displaySet; }); }; export default function getSopClassHandlerModule({ servicesManager, extensionManager }) { const getDisplaySetsFromSeries = instances => { return _getDisplaySetsFromSeries( instances, servicesManager, extensionManager ); }; return [ { name: Name, sopClassUids, getDisplaySetsFromSeries, }, ]; }