Skip to content
This repository was archived by the owner on Jun 23, 2023. It is now read-only.

Commit aa2a290

Browse files
fix(text)
Allow for no study description; set up volume view to Anterior in simple case.
1 parent ea3c16b commit aa2a290

File tree

2 files changed

+44
-4
lines changed

2 files changed

+44
-4
lines changed

multiplanarReformatting/main.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,10 @@ var MultiplanarReformattingPlugin = class MultiplanarReformattingPlugin extends
5858
let topRightParent = document.querySelector('#'+viewDirection+"TopRight");
5959

6060
const topRightMap = new Map();
61-
let studyDescription = displaySet.images[0]._study.studyDescription.replace(/\^/g, " ");
61+
let studyDescription = "";
62+
if (displaySet.images[0]._study.studyDescription){
63+
studyDescription = displaySet.images[0]._study.studyDescription.replace(/\^/g, " ");
64+
}
6265
let studyDate = displaySet.images[0]._study.studyDate;
6366

6467
let seriesYear = parseInt(studyDate.substr(0,4),10);
@@ -88,7 +91,7 @@ var MultiplanarReformattingPlugin = class MultiplanarReformattingPlugin extends
8891

8992
}
9093

91-
setBottomRightText(viewDirection,displaySet,window,level){
94+
static setBottomRightText(viewDirection,displaySet,window,level){
9295
let botRightParent = document.querySelector('#'+viewDirection+"BotRight");
9396
const botRightMap = new Map();
9497
let compStr = displaySet.images[0]._data.lossyImageCompression === undefined ? "Lossless / Uncompressed" : ds.images[0]._data.lossyImageCompression;
@@ -104,18 +107,19 @@ var MultiplanarReformattingPlugin = class MultiplanarReformattingPlugin extends
104107
* @param eventData
105108
*/
106109
updateViewportText(eventData){
110+
debugger;
107111
MultiplanarReformattingPlugin.setBottomLeftText(eventData.viewDirection, eventData.displaySet,eventData.sliceIndex,eventData.sliceCount);
108112
MultiplanarReformattingPlugin.setTopLeftText(eventData.viewDirection,eventData.displaySet);
109113
MultiplanarReformattingPlugin.setTopRightText(eventData.viewDirection,eventData.displaySet);
110-
this.setBottomRightText(eventData.viewDirection,eventData.displaySet,eventData.window,eventData.level);
114+
MultiplanarReformattingPlugin.setBottomRightText(eventData.viewDirection,eventData.displaySet,eventData.window,eventData.level);
111115
}
112116

113117
/**
114118
* Updates the window level text.
115119
* @param eventData
116120
*/
117121
updateWindowLevelText(eventData){
118-
this.setBottomRightText(eventData.viewDirection,eventData.displaySet,eventData.window,eventData.level);
122+
MultiplanarReformattingPlugin.setBottomRightText(eventData.viewDirection,eventData.displaySet,eventData.window,eventData.level);
119123
}
120124

121125

@@ -218,13 +222,18 @@ var MultiplanarReformattingPlugin = class MultiplanarReformattingPlugin extends
218222
* @param displaySet
219223
*/
220224
setupViewport(div, viewportData, displaySet) {
225+
221226
const divParentElement = div.parentElement;
222227
const { viewportIndex } = viewportData;
223228
let { viewDirection } = viewportData.pluginData;
224229

225230
if (!displaySet) {
226231
displaySet = OHIF.plugins.ViewportPlugin.getDisplaySet(viewportIndex);
227232
}
233+
// Reject image sets that are less than 20 images.
234+
if (displaySet.images.length < 20){
235+
throw new Error("Series has too few images for this plugin.");
236+
}
228237

229238
const { VTKUtils } = window;
230239
const genericRenderWindow = vtk.Rendering.Misc.vtkGenericRenderWindow.newInstance({

volumeRendering/main.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,27 @@ var VolumeRenderingPlugin = class VolumeRenderingPlugin extends OHIF.plugins.Vie
150150
}
151151

152152

153+
orientCamera(camera,orientation){
154+
switch (orientation){
155+
case 'I':
156+
break;
157+
case 'S':
158+
camera.elevation(-89.99); // TODO camera signularuty at -90???????
159+
break;
160+
case 'A':
161+
break;
162+
case 'P':
163+
break;
164+
case 'L':
165+
break;
166+
case 'R':
167+
break;
168+
default:
169+
console.assert("unknown orientation");
170+
break;
171+
}
172+
}
173+
153174
/**
154175
* Overriden from base class. Sets up the viewport based on the viewportData and the displaySet.
155176
* @param div
@@ -181,9 +202,15 @@ var VolumeRenderingPlugin = class VolumeRenderingPlugin extends OHIF.plugins.Vie
181202
displaySet = OHIF.plugins.ViewportPlugin.getDisplaySet(viewportIndex);
182203
}
183204

205+
// Reject image sets that are less than 20 images.
206+
if (displaySet.images.length < 20){
207+
div.innerHTML = "";
208+
throw new Error("Series has too few images for this plugin.");
209+
}
184210
viewportWrapper.style.position = "relative";
185211

186212
const { VTKUtils } = window;
213+
187214
const imageDataObject = VTKUtils.getImageData(displaySet);
188215

189216
if (imageDataObject === null){
@@ -227,6 +254,10 @@ var VolumeRenderingPlugin = class VolumeRenderingPlugin extends OHIF.plugins.Vie
227254

228255
self.setupViewportText(viewportWrapper, viewDirection, displaySet);
229256
self.updateViewportText(viewDirection, displaySet);
257+
258+
self.orientCamera(genericRenderWindow.getRenderer().getActiveCamera(),imageDataObject.orientation);
259+
genericRenderWindow.getRenderWindow().render();
260+
230261
}
231262

232263
// Don't load data until the viewports etc are set up (above).

0 commit comments

Comments
 (0)