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 | 34x 34x 2x 2x 2x 117x 34x 1x 1x 1x 2x 2x 2x 2x 2x 2x 2x 1x 34x 1x 1x 1x 1x 1x 1x 1x 1x | import { DisplaySetService, classes } from '@ohif/core'; const ImageSet = classes.ImageSet; const findInstance = (measurement, displaySetService: DisplaySetService) => { const { displaySetInstanceUID, ReferencedSOPInstanceUID: sopUid } = measurement; const referencedDisplaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID); Iif (!referencedDisplaySet.images) { return; } return referencedDisplaySet.images.find(it => it.SOPInstanceUID === sopUid); }; /** Finds references to display sets inside the measurements * contained within the provided display set. * @return an array of instances referenced. */ const findReferencedInstances = (displaySetService: DisplaySetService, displaySet) => { const instances = []; const instanceById = {}; for (const measurement of displaySet.measurements) { const { imageId } = measurement; Iif (!imageId) { continue; } Iif (instanceById[imageId]) { continue; } const instance = findInstance(measurement, displaySetService); Iif (!instance) { console.log('Measurement', measurement, 'had no instances found'); continue; } instanceById[imageId] = instance; instances.push(instance); } return instances; }; /** * Creates a new display set containing a single image instance for each * referenced image. * * @param displaySetService * @param displaySet - containing measurements referencing images. * @returns A new (registered/active) display set containing the referenced images */ const createReferencedImageDisplaySet = (displaySetService, displaySet) => { const instances = findReferencedInstances(displaySetService, displaySet); // This will be a member function of the created image set const updateInstances = function () { this.images.splice( 0, this.images.length, ...findReferencedInstances(displaySetService, displaySet) ); this.numImageFrames = this.images.length; }; const imageSet = new ImageSet(instances); const instance = instances[0]; Iif (!instance) { return; } imageSet.setAttributes({ displaySetInstanceUID: imageSet.uid, // create a local alias for the imageSet UID SeriesDate: instance.SeriesDate, SeriesTime: instance.SeriesTime, SeriesInstanceUID: imageSet.uid, StudyInstanceUID: instance.StudyInstanceUID, SeriesNumber: instance.SeriesNumber || 0, SOPClassUID: instance.SOPClassUID, SeriesDescription: `${displaySet.SeriesDescription} KO ${displaySet.instance.SeriesNumber}`, Modality: 'KO', isMultiFrame: false, numImageFrames: instances.length, SOPClassHandlerId: `@ohif/extension-default.sopClassHandlerModule.stack`, isReconstructable: false, // This object is made of multiple instances from other series isCompositeStack: true, madeInClient: true, excludeFromThumbnailBrowser: true, updateInstances, }); displaySetService.addDisplaySets(imageSet); return imageSet; }; export default createReferencedImageDisplaySet; |