diff --git a/extensions/vtk/package.json b/extensions/vtk/package.json
index fa38bd846..d1c48239a 100644
--- a/extensions/vtk/package.json
+++ b/extensions/vtk/package.json
@@ -50,7 +50,7 @@
"dependencies": {
"@babel/runtime": "^7.5.5",
"lodash.throttle": "^4.1.1",
- "react-vtkjs-viewport": "^0.10.3"
+ "react-vtkjs-viewport": "^0.10.4"
},
"devDependencies": {
"@ohif/core": "^2.10.0",
diff --git a/extensions/vtk/src/LoadingIndicator.js b/extensions/vtk/src/LoadingIndicator.js
index 953c5e45f..0c24b3d6a 100644
--- a/extensions/vtk/src/LoadingIndicator.js
+++ b/extensions/vtk/src/LoadingIndicator.js
@@ -32,16 +32,16 @@ class LoadingIndicator extends PureComponent {
) : (
-
-
-
- {this.props.t('Loading...')}
-
- {percComplete}
-
-
+
+
+
+ {this.props.t('Loading...')}
+
+ {percComplete}
+
- )}
+
+ )}
);
}
diff --git a/extensions/vtk/src/OHIFVTKViewport.js b/extensions/vtk/src/OHIFVTKViewport.js
index d42b961c0..852dcf27f 100644
--- a/extensions/vtk/src/OHIFVTKViewport.js
+++ b/extensions/vtk/src/OHIFVTKViewport.js
@@ -50,22 +50,25 @@ class OHIFVTKViewport extends Component {
volumes: null,
paintFilterLabelMapImageData: null,
paintFilterBackgroundImageData: null,
+ percentComplete: 0,
+ isLoaded: false,
};
static propTypes = {
viewportData: PropTypes.shape({
- studies: PropTypes.array,
+ studies: PropTypes.array.isRequired,
displaySet: PropTypes.shape({
- StudyInstanceUID: PropTypes.string,
- displaySetInstanceUID: PropTypes.string,
+ StudyInstanceUID: PropTypes.string.isRequired,
+ displaySetInstanceUID: PropTypes.string.isRequired,
sopClassUIDs: PropTypes.arrayOf(PropTypes.string),
SOPInstanceUID: PropTypes.string,
frameIndex: PropTypes.number,
}),
}),
- viewportIndex: PropTypes.number,
+ viewportIndex: PropTypes.number.isRequired,
children: PropTypes.node,
onScroll: PropTypes.func,
+ servicesManager: PropTypes.object.isRequired,
};
static defaultProps = {
@@ -383,6 +386,24 @@ class OHIFVTKViewport extends Component {
}
};
+ const onPixelDataInsertedErrorCallback = error => {
+ const { UINotificationService } = this.props.servicesManager.services;
+
+ if (!this.hasError) {
+ if (this.props.viewportIndex === 0) {
+ // Only show the notification from one viewport 1 in MPR2D.
+ UINotificationService.show({
+ title: 'MPR Load Error',
+ message: error.message,
+ type: 'error',
+ autoClose: false,
+ });
+ }
+
+ this.hasError = true;
+ }
+ };
+
const onAllPixelDataInsertedCallback = () => {
this.setState({
isLoaded: true,
@@ -391,6 +412,7 @@ class OHIFVTKViewport extends Component {
imageDataObject.onPixelDataInserted(onPixelDataInsertedCallback);
imageDataObject.onAllPixelDataInserted(onAllPixelDataInsertedCallback);
+ imageDataObject.onPixelDataInsertedError(onPixelDataInsertedErrorCallback);
}
render() {
diff --git a/extensions/vtk/src/index.js b/extensions/vtk/src/index.js
index 4b0dee69e..6ee1d14e4 100644
--- a/extensions/vtk/src/index.js
+++ b/extensions/vtk/src/index.js
@@ -16,8 +16,10 @@ const vtkExtension = {
*/
id: 'vtk',
- getViewportModule({ commandsManager }) {
- const ExtendedVTKViewport = props =>
;
+ getViewportModule({ commandsManager, servicesManager }) {
+ const ExtendedVTKViewport = props => (
+
+ );
return withCommandsManager(ExtendedVTKViewport, commandsManager);
},
getToolbarModule() {
diff --git a/yarn.lock b/yarn.lock
index dfe177f07..7ccb61338 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -16047,10 +16047,10 @@ react-transition-group@^4.1.1:
loose-envify "^1.4.0"
prop-types "^15.6.2"
-react-vtkjs-viewport@^0.10.3:
- version "0.10.3"
- resolved "https://registry.yarnpkg.com/react-vtkjs-viewport/-/react-vtkjs-viewport-0.10.3.tgz#8eaa8bc558057215b648ad6ce17092d68cf5354b"
- integrity sha512-9aXuBrAlKa79Q1qPSWmPflSgpG2sm5jyKresdqUUvqYVJQJx83Xkkh4XfgOfLHY/nEwpTI8dr3FwtH2dzrBkoA==
+react-vtkjs-viewport@^0.10.4:
+ version "0.10.4"
+ resolved "https://registry.yarnpkg.com/react-vtkjs-viewport/-/react-vtkjs-viewport-0.10.4.tgz#eb038b0bf5c384bd3b45f2a0a57f52c682607fea"
+ integrity sha512-J1WxwHbjlttEWvdkM33DJx8QxHr3J7HR6wFSDVBDKY7McK2lwDAdRN8wSqy2BVNILlyurUUVwg2tK2txiJ+tuw==
dependencies:
date-fns "^2.2.1"
gl-matrix "^3.1.0"