-
Notifications
You must be signed in to change notification settings - Fork 12
/
utils.js
127 lines (109 loc) · 2.77 KB
/
utils.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
var dcmjs = dcmjs || {};
dcmjs.utils = dcmjs.utils || {};
//
/// Emscripten Related
//
/*
Emscripten namespace
*/
var Module = Module || {};
/*
Convenience function loading dcmjs.js asynchronously
*/
dcmjs.utils.initialize = function() {
if (typeof Pace != 'undefined') {
Pace.on("done", function(){
$('#main_content').show(0);
});
}
$.getScript("../javascripts/libs/dcmjs.js");
}
//
/// Emscripten FS Related
//
// utility: check path in virtual fs
dcmjs.utils.fileExists = function(filePath) {
try {
FS.stat(filePath);
}
catch(e) {
if (e.code !== 'ENOENT') {
print(e);
}
return false;
}
return true;
};
// utility: remove files in a file list (if they exist)
dcmjs.utils.deleteFiles = function(filePaths) {
$.each(filePaths, function(index,filePath) {
try {
FS.unlink(filePath);
}
catch(e) {
if (e.code !== 'ENOENT') {
print(e);
}
}
});
};
//
/// DCMTK Related
//
/*
Execute DCMTK program
*/
dcmjs.utils.execute = function(prog, arguments) {
/*
return Module.callMain([prog].concat(arguments));
*/
var exit_orig = Module.exit;
var exitCode;
Module.exit = function(status) {
exitCode = status;
exit_orig(status);
}
Module.callMain([prog].concat(arguments));
Module.exit = exit_orig;
return exitCode;
}
/*
Read the file and invoke processor function
*/
dcmjs.utils.readFile = function(file, processor, filePath) {
var reader = new FileReader();
// Closure to capture the file information.
reader.onload = (function(file, filePath) {
return function(e) { processor(reader, file, filePath) };
})(file, filePath);
//var blob = new Blob([typedArray], {type: 'application/octet-binary'});
// Read in the image file
reader.readAsArrayBuffer(file);
}
//
/// Browser File Related
//
dcmjs.utils.displayFileProperties = function(files) {
// files is a FileList of File objects. List some properties.
var output = [];
$.each(files, function(index,file) {
output.push('<li><strong>', escape(file.name), '</strong> (', file.type || 'n/a', ') - ',
file.size, ' bytes, last modified: ',
file.lastModifiedDate ? file.lastModifiedDate.toLocaleDateString() : 'n/a',
'</li>');
})
$('#fileListProperties').innerHTML = '<ul>' + output.join('') + '</ul>';
}
$(function() {
/*
File management
http://www.html5rocks.com/en/tutorials/file/dndfiles/
*/
// Check for the various File API support.
if (window.File && window.FileReader && window.FileList && window.Blob) {
// Great success! All the File APIs are supported.
//console.log('The File APIs ARE fully supported in this browser.');
} else {
alert('The File APIs are not fully supported in this browser.');
}
})