* fix: 🐛 Set series into active viewport by clicking on thumbnail Users should be able to set the series for the active viewport by clicking it's thumbnail into Study browser Closes: #895 * fix: 🐛 Set series into active viewport by clicking on thumbnail Small refactor into onClick data callback and thumbnailClick function Closes: #895 * fix: 🐛 Refactor thumbnail click code changes * fix: 🐛 We must clear the sopInstanceUid if we don't update it together with the viewportSpecificData, preventing console warning. * fix: 🐛 Cleaning up a few more code changes
56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
import OHIF from '@ohif/core';
|
|
import { connect } from 'react-redux';
|
|
import { StudyBrowser } from '@ohif/ui';
|
|
import cloneDeep from 'lodash.clonedeep';
|
|
|
|
const { setActiveViewportSpecificData } = OHIF.redux.actions;
|
|
|
|
// TODO
|
|
// - Determine in which display set is active from Redux (activeViewportIndex and layout viewportData)
|
|
// - Pass in errors and stack loading progress from Redux
|
|
const mapStateToProps = (state, ownProps) => {
|
|
// If we know that the stack loading progress details have changed,
|
|
// we can try to update the component state so that the thumbnail
|
|
// progress bar is updated
|
|
const stackLoadingProgressMap = state.loading.progress;
|
|
const studiesWithLoadingData = cloneDeep(ownProps.studies);
|
|
|
|
studiesWithLoadingData.forEach(study => {
|
|
study.thumbnails.forEach(data => {
|
|
const { displaySetInstanceUid } = data;
|
|
const stackId = `StackProgress:${displaySetInstanceUid}`;
|
|
const stackProgressData = stackLoadingProgressMap[stackId];
|
|
|
|
let stackPercentComplete = 0;
|
|
if (stackProgressData) {
|
|
stackPercentComplete = stackProgressData.percentComplete;
|
|
}
|
|
|
|
data.stackPercentComplete = stackPercentComplete;
|
|
});
|
|
});
|
|
|
|
return {
|
|
studies: studiesWithLoadingData,
|
|
};
|
|
};
|
|
|
|
const mapDispatchToProps = dispatch => {
|
|
return {
|
|
onThumbnailClick: displaySetInstanceUid => {
|
|
dispatch(
|
|
setActiveViewportSpecificData({
|
|
displaySetInstanceUid,
|
|
})
|
|
);
|
|
},
|
|
};
|
|
};
|
|
|
|
const ConnectedStudyBrowser = connect(
|
|
mapStateToProps,
|
|
mapDispatchToProps
|
|
)(StudyBrowser);
|
|
|
|
export default ConnectedStudyBrowser;
|