From 304caba873358ef611b059cd7e2e4ac5ee795a16 Mon Sep 17 00:00:00 2001 From: Erik Ziegler Date: Fri, 15 May 2020 14:31:18 +0200 Subject: [PATCH] Start adding measurement table --- extensions/default/src/MeasurementTable.js | 73 ++++++++++++++++++++++ extensions/default/src/getPanelModule.js | 23 ++++--- 2 files changed, 86 insertions(+), 10 deletions(-) create mode 100644 extensions/default/src/MeasurementTable.js diff --git a/extensions/default/src/MeasurementTable.js b/extensions/default/src/MeasurementTable.js new file mode 100644 index 000000000..9915645ad --- /dev/null +++ b/extensions/default/src/MeasurementTable.js @@ -0,0 +1,73 @@ +import React from 'react'; +import { + MeasurementsPanel, + Button, + ButtonGroup, + Icon, + IconButton, +} from '@ohif/ui'; + +export default function MeasurementTable({ servicesManager, commandsManager }) { + console.warn(servicesManager); + + const { MeasurementService } = servicesManager.services; + + const actionButtons = ( + + alert('Export')}> + + + + + + + + ); + + const descriptionData = { + date: '07-Sep-2010', + modality: 'CT', + description: 'CHEST/ABD/PELVIS W CONTRAST', + }; + + const activeMeasurementItem = 0; + + const measurementTableData = { + title: 'Measurements', + amount: 10, + data: new Array(10).fill({}).map((el, i) => ({ + id: i + 1, + label: 'Label short description', + displayText: '24.0 x 24.0 mm (S:4, I:22)', + isActive: activeMeasurementItem === i + 1, + })), + onClick: id => setActiveMeasurementItem(s => (s === id ? null : id)), + onEdit: id => alert(`Edit: ${id}`), + }; + + return ( + + ); +} diff --git a/extensions/default/src/getPanelModule.js b/extensions/default/src/getPanelModule.js index 9051116f8..1881afe9a 100644 --- a/extensions/default/src/getPanelModule.js +++ b/extensions/default/src/getPanelModule.js @@ -1,19 +1,13 @@ import React, { useState, useEffect, useCallback } from 'react'; import { StudyBrowser } from '@ohif/ui'; - import { dicomMetadataStore, useViewModel, displaySetManager, } from '@ohif/core'; -// Create map in local state from displaySetInstanceUids to thumbnails -// Get thumbnail imageId from displaySet -// When displaySetInstanceUids change, initiate async render into canvas -// Get image data-uri from canvas offscreen -// Set image data-uri into state (NOTE: This will probably end up in the fucking browser cache, NEED to find a way to prevent that from happening) -// state triggers rerender -// +import MeasurementTable from './MeasurementTable.js'; + // TODO: // - No loading UI exists yet // - cancel promises when component is destroyed @@ -253,7 +247,7 @@ function StudyBrowserPanel({ getDataSources, commandsManager }) { return ; } -function getPanelModule({ getDataSources, commandsManager }) { +function getPanelModule({ getDataSources, commandsManager, servicesManager }) { const wrappedStudyBrowserPanel = () => { return ( { + return ( + + ); + }; + return [ { name: 'seriesList', @@ -276,7 +279,7 @@ function getPanelModule({ getDataSources, commandsManager }) { iconName: 'list-bullets', iconLabel: 'Measure', label: 'Measurements', - component: wrappedStudyBrowserPanel, + component: wrappedMeasurementPanel, }, ]; }