Fix context usage in ModeRoute

This commit is contained in:
Erik Ziegler 2020-05-12 09:50:41 +02:00 committed by James A. Petts
parent 17e2680da8
commit 3ce4b886ac
4 changed files with 26 additions and 34 deletions

View File

@ -352,8 +352,6 @@ function createDicomWebApi(dicomWebConfig) {
StudyInstanceUIDs = urlUtil.paramString.parseParam(StudyInstanceUIDs); StudyInstanceUIDs = urlUtil.paramString.parseParam(StudyInstanceUIDs);
debugger;
if (!StudyInstanceUIDs) { if (!StudyInstanceUIDs) {
throw new Error( throw new Error(
'Incomplete queryParams, missing StudyInstanceUIDs' 'Incomplete queryParams, missing StudyInstanceUIDs'

View File

@ -190,8 +190,6 @@ function viewerLayout({
}; };
}; };
debugger;
const leftPanelComponents = leftPanels.map(getPanelData); const leftPanelComponents = leftPanels.map(getPanelData);
const rightPanelComponents = rightPanels.map(getPanelData); const rightPanelComponents = rightPanels.map(getPanelData);

View File

@ -7,6 +7,8 @@ class DisplaySetManager {
this.extensionManager = extensionManager; this.extensionManager = extensionManager;
this.SOPClassHandlerIds = SOPClassHandlerIds; this.SOPClassHandlerIds = SOPClassHandlerIds;
debugger;
const { const {
displaySetInstanceUids, displaySetInstanceUids,
setDisplaySetInstanceUids, setDisplaySetInstanceUids,
@ -20,7 +22,6 @@ class DisplaySetManager {
} }
_addDisplaySets(displaySets) { _addDisplaySets(displaySets) {
debugger;
//const displayInstanceUids = [...this.displaySetInstanceUids]; //const displayInstanceUids = [...this.displaySetInstanceUids];
const addedDisplaySetUids = []; const addedDisplaySetUids = [];
@ -47,8 +48,6 @@ class DisplaySetManager {
const instance = instances[0]; const instance = instances[0];
debugger;
const existingDisplaySets = const existingDisplaySets =
this.getDisplaySetsForSeries(instance.SeriesInstanceUID) || []; this.getDisplaySetsForSeries(instance.SeriesInstanceUID) || [];
@ -76,9 +75,7 @@ class DisplaySetManager {
addedDisplaySetUids = this._addDisplaySets(displaySets); addedDisplaySetUids = this._addDisplaySets(displaySets);
} }
debugger; this.setDisplaySetInstanceUids([
setDisplaySetInstanceUids([
...addedDisplaySetUids, ...addedDisplaySetUids,
...this.displaySetInstanceUids, ...this.displaySetInstanceUids,
]); ]);

View File

@ -1,4 +1,4 @@
import React, { useContext } from 'react'; import React, { useContext, useEffect, useCallback } from 'react';
import { displaySetManager } from '@ohif/core'; import { displaySetManager } from '@ohif/core';
import ViewModelContext from './ViewModelContext'; import ViewModelContext from './ViewModelContext';
import Compose from './Compose'; import Compose from './Compose';
@ -16,32 +16,16 @@ export default function ModeRoute({
const dataSource = dataSources[0]; const dataSource = dataSources[0];
const viewModelContext = useContext(ViewModelContext); const { displaySetInstanceUids, setDisplaySetInstanceUids } = useContext(
ViewModelContext
console.log(viewModelContext);
const { displaySetInstanceUids } = viewModelContext;
// Deal with toolbar.
// Only handling one route per mode for now
// You can test via http://localhost:3000/example-mode/dicomweb
const layoutTemplateData = routes[0].layoutTemplate({ location });
const layoutTemplateModuleEntry = extensionManager.getModuleEntry(
layoutTemplateData.id
); );
const LayoutComponent = layoutTemplateModuleEntry.component; const createDisplaySets = useCallback(() => {
// Add SOPClassHandlers to a new SOPClassManager. // Add SOPClassHandlers to a new SOPClassManager.
displaySetManager.init(extensionManager, sopClassHandlers, {
debugger; displaySetInstanceUids,
setDisplaySetInstanceUids,
displaySetManager.init(extensionManager, sopClassHandlers, viewModelContext); });
// setInterval(() => {
// setDisplaySetInstanceUids(manager.displaySets);
// }, 5000);
const queryParams = location.search; const queryParams = location.search;
@ -50,6 +34,21 @@ export default function ModeRoute({
queryParams, queryParams,
displaySetManager.makeDisplaySets displaySetManager.makeDisplaySets
); );
}, [displaySetInstanceUids, location]);
useEffect(() => {
createDisplaySets();
}, [mode, dataSourceName, location]);
// Deal with toolbar.
// Only handling one route per mode for now
// You can test via http://localhost:3000/example-mode/dicomweb
const layoutTemplateData = routes[0].layoutTemplate({ location });
const layoutTemplateModuleEntry = extensionManager.getModuleEntry(
layoutTemplateData.id
);
const LayoutComponent = layoutTemplateModuleEntry.component;
// For each extension, look up their context modules // For each extension, look up their context modules
// TODO: move to extension manager. // TODO: move to extension manager.