fix(layout): Fix the issues with displaying vtkjs viewports (#500)

* fix(dependencies): Bump react-cornerstone-viewport to 0.1.29

* fix(dependencies): Bump ohif-cornerstone-extension to 0.0.32

* fix(layout): Get missing display set fields in viewport specific data from the original display set

* fix(layout): Cache the viewport data to be used for the replaced viewport when it is empty since viewportSpecificData is cleaned when viewport is changed
This commit is contained in:
Evren Ozkan authored and GitHub committed 2019-05-28 19:02:33 -04:00
1 parent f1f2981415
commit 6b8d1a695b
5 files changed
+40 -20

No files matched your search

+24 -4
View File
@@ -28,6 +28,8 @@ class ViewerMain extends Component {
this.state = {
displaySets: [],
}
this.cachedViewportData = {}
}
getDisplaySets(studies) {
@@ -81,8 +83,25 @@ class ViewerMain extends Component {
) {
let displaySet = viewportSpecificData[viewportIndex]
// If the viewport is empty, get one available in study
if (!displaySet || !displaySet.displaySetInstanceUid) {
// Use the cached display set in viewport if the new one is empty
if (displaySet && !displaySet.displaySetInstanceUid) {
displaySet = this.cachedViewportData[viewportIndex]
}
if (
displaySet &&
displaySet.studyInstanceUid &&
displaySet.displaySetInstanceUid
) {
// Get missing fields from original display set
const originalDisplaySet = this.findDisplaySet(
this.props.studies,
displaySet.studyInstanceUid,
displaySet.displaySetInstanceUid
)
viewportData.push(Object.assign({}, originalDisplaySet, displaySet))
} else {
// If the viewport is empty, get one available in study
const { displaySets } = this.state
displaySet = displaySets.find(
ds =>
@@ -90,11 +109,12 @@ class ViewerMain extends Component {
v => v.displaySetInstanceUid === ds.displaySetInstanceUid
)
)
viewportData.push(Object.assign({}, displaySet))
}
viewportData.push(displaySet)
}
this.cachedViewportData = viewportData
return viewportData
}