@@ -9,11 +9,15 @@ const nv = new Niivue({
99// reference to the results list from dcm2niix for use later
1010let resultFileList = [ ]
1111let conversionTime = 0
12+ let downloadFile = null
1213
1314
1415const handleSaveButtonClick = ( ) => {
15- const name = nv . volumes [ 0 ] . name
16- nv . volumes [ 0 ] . saveToDisk ( name )
16+ let url = URL . createObjectURL ( downloadFile ) ;
17+ const downloadLink = document . createElement ( 'a' ) ;
18+ downloadLink . href = url ;
19+ downloadLink . download = downloadFile . name ;
20+ downloadLink . click ( )
1721}
1822
1923const showSaveButton = ( ) => {
@@ -66,14 +70,18 @@ const handleFileSelectChange = async (event) => {
6670 if ( selectedIndex === - 1 ) {
6771 return
6872 }
69- removeAllVolumes ( )
7073 const selectedFile = resultFileList [ selectedIndex ]
71- console . log ( selectedFile ) ;
72- const image = await NVImage . loadFromFile ( {
73- file : selectedFile ,
74- name : selectedFile . name
75- } )
76- await nv . addVolume ( image )
74+ downloadFile = selectedFile
75+ // only load the file in niivue if it is nifti
76+ if ( selectedFile . name . endsWith ( '.nii' ) ) {
77+ removeAllVolumes ( )
78+ console . log ( selectedFile ) ;
79+ const image = await NVImage . loadFromFile ( {
80+ file : selectedFile ,
81+ name : selectedFile . name
82+ } )
83+ await nv . addVolume ( image )
84+ }
7785 showSaveButton ( )
7886}
7987
@@ -116,7 +124,7 @@ const runDcm2niix = async (files) => {
116124 showText ( `Conversion time: ${ conversionTime } seconds` )
117125 // filter out files that are not nifti (.nii) so we don't show them
118126 // in the select dropdown
119- resultFileList = resultFileList . filter ( file => file . name . endsWith ( '.nii' ) )
127+ // resultFileList = resultFileList.filter(file => file.name.endsWith('.nii'))
120128 updateSelectItems ( resultFileList )
121129 console . log ( resultFileList ) ;
122130 hideLoadingCircle ( )
@@ -227,7 +235,7 @@ async function main() {
227235
228236 // handle drag and drop
229237 dropTarget . ondrop = handleDrop ;
230- dropTarget . ondragover = ( e ) => { e . preventDefault ( ) ; }
238+ dropTarget . ondragover = ( e ) => { e . preventDefault ( ) ; }
231239
232240 // when user clicks save
233241 saveButton . onclick = handleSaveButtonClick
0 commit comments