@@ -204,7 +204,7 @@ let parseTextFiles = async function(filename,outprefix,debug,forceorient) {
204204
205205 let data = { } ;
206206 debug = debug || false ;
207-
207+
208208 data . originalfilename = filename ;
209209 data . forceorient = userPreferences . sanitizeOrientationOnLoad ( forceorient ) ;
210210
@@ -259,11 +259,20 @@ let parseTextFiles = async function(filename,outprefix,debug,forceorient) {
259259 if ( debug )
260260 console . log ( 'Now reading actual files' , numgood ) ;
261261
262+ let visu = 0 ;
263+ let usevisu = true ;
262264 if ( debug )
263265 console . log ( 'Reading Parameter File' , visuname ) ;
264- let visu = await readParameterFile ( visuname ) ;
265- if ( debug )
266- console . log ( 'Reading Parameter File' , methodname ) ;
266+ try {
267+ if ( debug )
268+ console . log ( 'Reading Parameter File' , methodname ) ;
269+ visu = await readParameterFile ( visuname ) ;
270+ } catch ( e ) {
271+ let visuname = bisgenericio . joinFilenames ( dirname , "../subject" ) ;
272+ visu = await readParameterFile ( visuname ) ;
273+ usevisu = false ;
274+ }
275+
267276 let method = await readParameterFile ( methodname ) ;
268277 let acqp = await readParameterFile ( acqpname ) ;
269278 data . orient = method [ 'PVM_SPackArrSliceOrient' ] || 'axial' ;
@@ -281,20 +290,26 @@ let parseTextFiles = async function(filename,outprefix,debug,forceorient) {
281290
282291 data . method = method [ 'Method' ] ;
283292 data . patientpos = acqp [ 'ACQ_patient_pos' ] ;
284- data . byteorder = visu [ 'VisuCoreByteOrder' ] ;
285- data . wordtype = visu [ 'VisuCoreWordType' ] ;
286- data . dims = visu [ 'VisuCoreSize' ] ;
287- data . fov = visu [ 'VisuCoreExtent' ] ;
288- data . names = visu [ 'VisuFGElemId' ] || [ ] ;
289- if ( data . names . length > 1 )
290- data . description = visu [ 'VisuFGElemComment' ] ;
291- else
292- data . names = [ 'Not set' ] ;
293- data . coreunits = visu [ 'VisuCoreUnits' ] ;
294- if ( data . coreunits [ 0 ] === "<mm>" )
293+ if ( usevisu ) {
294+ data . byteorder = visu [ 'VisuCoreByteOrder' ] ;
295+ data . wordtype = visu [ 'VisuCoreWordType' ] ;
296+ data . dims = visu [ 'VisuCoreSize' ] ;
297+ data . fov = visu [ 'VisuCoreExtent' ] ;
298+ data . names = visu [ 'VisuFGElemId' ] || [ ] ;
299+ if ( data . names . length > 1 )
300+ data . description = visu [ 'VisuFGElemComment' ] ;
301+ else
302+ data . names = [ 'Not set' ] ;
303+ data . coreunits = visu [ 'VisuCoreUnits' ] ;
304+ if ( data . coreunits [ 0 ] === "<mm>" )
305+ data . fovscale = 1.0 ;
306+ else
307+ data . fovscale = 10.0 ;
308+ } else {
309+ data . names = [ ] ;
295310 data . fovscale = 1.0 ;
296- else
297- data . fovscale = 10.0 ;
311+ }
312+
298313
299314 data . spa = [ ] ;
300315 data . twod = method [ 'PVM_SpatDimEnum' ] ;
@@ -342,8 +357,8 @@ let parseTextFiles = async function(filename,outprefix,debug,forceorient) {
342357 }
343358 }
344359
345- data . offset = visu [ 'VisuCoreDataOffs' ] ;
346- data . slopes = visu [ 'VisuCoreDataSlope' ] ;
360+ data . offset = visu [ 'VisuCoreDataOffs' ] || 0.0 ;
361+ data . slopes = visu [ 'VisuCoreDataSlope' ] || 1.0 ;
347362
348363 let index = data . method . indexOf ( ":" ) ;
349364 let index2 = data . method . indexOf ( ">" ) ;
0 commit comments