fix: IDC-2288: Update toolbar tabs after derived displayset loaded (#2307)
* Update toolbar tabs after derived displayset loaded * trigger CI Co-authored-by: Davide Punzo <punzodavide@hotmail.it>
This commit is contained in:
parent
a6a231c81e
commit
6e723ebced
@ -49,9 +49,7 @@ import studyMetadataManager from './studyMetadataManager';
|
|||||||
*/
|
*/
|
||||||
const loadAndCacheDerivedDisplaySets = (referencedDisplaySet, studies) => {
|
const loadAndCacheDerivedDisplaySets = (referencedDisplaySet, studies) => {
|
||||||
const { StudyInstanceUID, SeriesInstanceUID } = referencedDisplaySet;
|
const { StudyInstanceUID, SeriesInstanceUID } = referencedDisplaySet;
|
||||||
|
|
||||||
const promises = [];
|
const promises = [];
|
||||||
|
|
||||||
const studyMetadata = studyMetadataManager.get(StudyInstanceUID);
|
const studyMetadata = studyMetadataManager.get(StudyInstanceUID);
|
||||||
|
|
||||||
if (!studyMetadata) {
|
if (!studyMetadata) {
|
||||||
@ -112,6 +110,16 @@ const loadAndCacheDerivedDisplaySets = (referencedDisplaySet, studies) => {
|
|||||||
promises.push(recentDisplaySet.load(referencedDisplaySet, studies));
|
promises.push(recentDisplaySet.load(referencedDisplaySet, studies));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Promise.all(promises).then(() => {
|
||||||
|
/*
|
||||||
|
* TODO: Improve the way we notify parts of the app
|
||||||
|
* that depends on derived display sets to be loaded.
|
||||||
|
* (Implement pubsub for better tracking of derived display sets)
|
||||||
|
*/
|
||||||
|
const event = new CustomEvent('deriveddisplaysetsloadedandcached');
|
||||||
|
document.dispatchEvent(event);
|
||||||
|
});
|
||||||
|
|
||||||
return promises;
|
return promises;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -59,6 +59,9 @@ class ToolbarRow extends Component {
|
|||||||
this.seriesPerStudyCount = [];
|
this.seriesPerStudyCount = [];
|
||||||
|
|
||||||
this._handleBuiltIn = _handleBuiltIn.bind(this);
|
this._handleBuiltIn = _handleBuiltIn.bind(this);
|
||||||
|
this._onDerivedDisplaySetsLoadedAndCached = this._onDerivedDisplaySetsLoadedAndCached.bind(
|
||||||
|
this
|
||||||
|
);
|
||||||
|
|
||||||
this.updateButtonGroups();
|
this.updateButtonGroups();
|
||||||
}
|
}
|
||||||
@ -109,6 +112,32 @@ class ToolbarRow extends Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
/*
|
||||||
|
* TODO: Improve the way we notify parts of the app
|
||||||
|
* that depends on derived display sets to be loaded.
|
||||||
|
* (Implement pubsub for better tracking of derived display sets)
|
||||||
|
*/
|
||||||
|
document.addEventListener(
|
||||||
|
'deriveddisplaysetsloadedandcached',
|
||||||
|
this._onDerivedDisplaySetsLoadedAndCached
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
document.removeEventListener(
|
||||||
|
'deriveddisplaysetsloadedandcached',
|
||||||
|
this._onDerivedDisplaySetsLoadedAndCached
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_onDerivedDisplaySetsLoadedAndCached() {
|
||||||
|
this.updateButtonGroups();
|
||||||
|
this.setState({
|
||||||
|
toolbarButtons: _getVisibleToolbarButtons.call(this),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
componentDidUpdate(prevProps) {
|
componentDidUpdate(prevProps) {
|
||||||
const activeContextsChanged =
|
const activeContextsChanged =
|
||||||
prevProps.activeContexts !== this.props.activeContexts;
|
prevProps.activeContexts !== this.props.activeContexts;
|
||||||
|
|||||||
@ -271,6 +271,7 @@ class Viewer extends Component {
|
|||||||
activeViewport={
|
activeViewport={
|
||||||
this.props.viewports[this.props.activeViewportIndex]
|
this.props.viewports[this.props.activeViewportIndex]
|
||||||
}
|
}
|
||||||
|
isDerivedDisplaySetsLoaded={this.props.isDerivedDisplaySetsLoaded}
|
||||||
isLeftSidePanelOpen={this.state.isLeftSidePanelOpen}
|
isLeftSidePanelOpen={this.state.isLeftSidePanelOpen}
|
||||||
isRightSidePanelOpen={this.state.isRightSidePanelOpen}
|
isRightSidePanelOpen={this.state.isRightSidePanelOpen}
|
||||||
selectedLeftSidePanel={
|
selectedLeftSidePanel={
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user