forked from cornerstonejs/cornerstone
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexampleImageIdLoaderRaw.js
71 lines (55 loc) · 2 KB
/
exampleImageIdLoaderRaw.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
(function (cs) {
"use strict";
function getExampleImage(imageId) {
let testCase = imageId.split('//')[1];
return {
promise: new Promise((resolve) => {
getImagePixel(testCase).then((imagePixel) => {
getImageData(testCase).then((imageData) => {
imageData.getPixelData = () => { return imagePixel; };
resolve(imageData);
});
});
}),
cancelFn: undefined
};
function getImagePixel(imageId) {
let promise = new Promise((resolve) => {
var req = new XMLHttpRequest();
req.onreadystatechange = function () {
if (this.readyState == 4 && this.status === 200 ) {
let imageRaw = req.responseText;
let pixelData = Uint8Array.from(atob(imageRaw), c => c.charCodeAt(0));
resolve(pixelData);
}
}
req.open('GET', baseUrl + imageId + '.txt', true);
req.send();
});
return promise;
}
function getImageData(imageId) {
let promise = new Promise((resolve) => {
var req = new XMLHttpRequest();
req.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
let imageData = req.responseText;
try {
let image = JSON.parse(imageData);
resolve(image);
}
catch (err) {
console.error(err);
}
}
}
req.open('GET', baseUrl + imageId + '.json', true);
req.send();
});
return promise;
}
}
var baseUrl = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/')) + '/test-cases/';
// register our imageLoader plugin with cornerstone
cs.registerImageLoader('example', getExampleImage);
}(cornerstone));