Как получить / преобразовать arrayBuffer из данных ответа в Meteor - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть маршрутизатор, как показано ниже:

Router.route("/public/dicom/:dataid/:filename", function () {
    var filePath = this.params.dataid + "/" + this.params.filename;

    var basePath = process.env.HOME;
    var filename = basePath + "/public/dicom/" + filePath;
    //        var filename = path.normalize(path.join(basePath, "public/dicom/" + filePath));
    //console.log("+==================", filename)
    var res = this.response;
    if (!fs.existsSync(filename) ||
        !fs.statSync(filename).isFile()) {
        //console.log("==========================ERROR")
        res.writeHead(404, { 'Content-Type': 'text/html' });
        res.end('404: no such asset: ' + this.params.filename);
        return;
    }
    var data = fs.readFileSync(filename);
    res.writeHead(200, { 'Content-Type': "application/octet-stream", "charset": "binary" });
    res.write(data);
    res.end();
}, { where: "server" });

Просто прочитайте содержимое файла DICOM и верните клиент. Ответ вроде как данные ответа

На сайте клиента я хочу использовать данные ответа в качестве данных arrayBuffer. Пожалуйста, помогите мне!

PS: Когда я пытаюсь использовать данные ответа, я получаю сообщение об ошибке, например Uncaught TypeError: Cannot read property 'byteLength' of null

 var dataOfPapaya = new Uint8Array(response.content);
 console.log('dataOfPapaya', dataOfPapaya.byteLength);
 var params = [];

 // Configuration
 params['binaryImages'] = [dataOfPapaya];
 params['kioskMode'] = true;
 params['showControls'] = false;
 params["showOrientation"] = true;
 params["radiological"] = true;

 papaya.Container.startPapaya();
 papaya.Container.resetViewer(0, params);

Я использую papayajs для просмотра файла DICOM: https://github.com/rii-mango/Papaya

1 Ответ

0 голосов
/ 11 мая 2018

Вам нужно использовать ArrayBuffer. Я могу воссоздать ошибку, которую вы видите при использовании Uint8Array.

 var dataOfPapaya = response.content;
 var params = [];
 params['binaryImages'] = [dataOfPapaya];

См. здесь для примера использования ArrayBuffer.

...