From 0c74a9bbcdc4ea45c86cf77a13f49d0468243b08 Mon Sep 17 00:00:00 2001 From: Erik Ziegler Date: Thu, 14 May 2020 16:28:45 +0200 Subject: [PATCH] Fixes for display sets, prep for tracking / grid stuff --- extensions/default/src/getPanelModule.js | 48 ++++++++++++++----- .../default/src/getSopClassHandlerModule.js | 18 ++++--- 2 files changed, 46 insertions(+), 20 deletions(-) diff --git a/extensions/default/src/getPanelModule.js b/extensions/default/src/getPanelModule.js index 6ab1226ce..d0068aa44 100644 --- a/extensions/default/src/getPanelModule.js +++ b/extensions/default/src/getPanelModule.js @@ -3,26 +3,40 @@ import { StudyBrowser } from '@ohif/ui'; import { useViewModel, displaySetManager } from '@ohif/core'; -function displaySetsToStudyPanelInfo(displaySets) { +function displaySetsToStudyPanelInfo( + displaySets, + viewportData = [], + seriesTracking = {} +) { console.log(displaySets); const studies = {}; displaySets.forEach(displaySet => { - // TODO - displaySet.componentType = 'thumbnailTracked'; - displaySet.viewportIdentificator = 'A'; - displaySet.isTracked = true; - displaySet.seriesNumber = displaySet.SeriesNumber; - displaySet.numInstances = displaySet.numImageFrames; - displaySet.description = displaySet.SeriesDescription; + const displaySetViewportData = viewportData.find( + a => a.displaySetInstanceUid === displaySet.displaySetInstanceUid + ); + + if (displaySetViewportData) { + displaySet.viewportIdentificator = displaySetViewportData.identifier; + } + + const trackingInfo = seriesTracking[displaySet.SeriesInstanceUID]; + if (trackingInfo) { + displaySet.viewportIdentificator = trackingInfo.isTracked; + + displaySet.componentType = trackingInfo.isTracked + ? 'thumbnailTracked' + : 'thumbnail'; + } if (!Object.keys(studies).includes(displaySet.StudyInstanceUID)) { studies[displaySet.StudyInstanceUID] = { - date: displaySet.StudyDate, - description: 'TEST', - modalities: 'TEST---TEST', - date: '01-Jan-1999', + date: displaySet.SeriesDate, + description: displaySet.SeriesDescription, + seriesNumber: displaySet.SeriesNumber, + modalities: displaySet.modalities, displaySets: [], + numInstances: 0, }; } @@ -92,6 +106,10 @@ function displaySetsToStudyPanelInfo(displaySets) { function StudyBrowserPanel({}) { const viewModel = useViewModel(); + // TODO + const viewportData = []; //useViewportGrid(); + const seriesTracking = {}; //useSeriesTracking(); + console.log(viewModel); const displaySets = viewModel.displaySetInstanceUids.map( @@ -101,7 +119,11 @@ function StudyBrowserPanel({}) { let tabs; if (displaySets.length) { - tabs = displaySetsToStudyPanelInfo(displaySets); + tabs = displaySetsToStudyPanelInfo( + displaySets, + viewportData, + seriesTracking + ); } else { tabs = [ { diff --git a/extensions/default/src/getSopClassHandlerModule.js b/extensions/default/src/getSopClassHandlerModule.js index a2125cff8..cc08f6d47 100644 --- a/extensions/default/src/getSopClassHandlerModule.js +++ b/extensions/default/src/getSopClassHandlerModule.js @@ -13,16 +13,24 @@ const makeDisplaySet = instances => { const instance = instances[0]; const imageSet = new ImageSet(instances); + const modalities = new Set(); + instances.forEach(i => { + modalities.add(i.Modality); + }); + + const modalitiesInDisplaySet = Array.from(modalities).join(', '); + // set appropriate attributes to image set... imageSet.setAttributes({ displaySetInstanceUid: imageSet.uid, // create a local alias for the imageSet UID SeriesDate: instance.SeriesDate, SeriesTime: instance.SeriesTime, - SeriesInstanceUid: instance.SeriesInstanceUID, + SeriesInstanceUID: instance.SeriesInstanceUID, + StudyInstanceUID: instance.StudyInstanceUID, SeriesNumber: instance.SeriesNumber, - SeriesDescription: instance.SeriesDescription, FrameRate: instance.FrameTime, - Modality: instance.Modality, + SeriesDescription: instance.SeriesDescription, + modalities: modalitiesInDisplaySet, isMultiFrame: isMultiFrame(instance), numImageFrames: instances.length, SOPClassHandlerId: `${id}.sopClassHandlerModule.${sopClassHandlerName}`, @@ -109,8 +117,6 @@ function getDisplaySetsFromSeries(instances) { displaySet.setAttributes({ sopClassUids, isClip: true, - seriesInstanceUid: instance.SeriesInstanceUID, - studyInstanceUid: instance.StudyInstanceUID, numImageFrames: instance.NumberOfFrames, instanceNumber: instance.InstanceNumber, acquisitionDatetime: instance.AcquisitionDateTime, @@ -120,8 +126,6 @@ function getDisplaySetsFromSeries(instances) { displaySet = makeDisplaySet([instance]); displaySet.setAttributes({ sopClassUids, - studyInstanceUid: instance.StudyInstanceUID, - seriesInstanceUid: instance.SeriesInstanceUID, instanceNumber: instance.InstanceNumber, acquisitionDatetime: instance.AcquisitionDateTime, });