从node.js

时间:2018-03-27 10:57:39

标签: node.js image dicom

我想从node.js中的.dcm文件(Dicom)生成缩略图。

到目前为止,我发现了一个名为dicom-parser的节点模块,它从dcm文件中提取元数据。

我的测试用例:

var dicom = require('dicom-parser');
var fs = require('fs');

var dicomFileAsBuffer = fs.readFileSync('./FullPano.dcm');

var dataSet = dicom.parseDicom(dicomFileAsBuffer);

var pixelData = new Uint8Array(dataSet.byteArray.buffer, 
                                dataSet.elements.x00880200.items[0].dataSet.elements.x7fe00010.dataOffset, 
                                dataSet.elements.x00880200.items[0].dataSet.elements.x7fe00010.length);

fs.writeFileSync('test5.jpg', pixelData); // <----- not working :'(

为了帮助您调试,这里是dataSet.elements.x00880200对象:

dataSet.elements.x00880200

但像素数据存储在标签x00880200中 - &gt; x7fe00010不是标准格式,jpeg,jpg,png ......这里的想法是直接从一个文件中获取dcm图像的缩略图,在运行中,在nodejs中服务器端。

dicom doc(见下文),标签0088,0200保存图标的数据,即缩略图。

  

图标图像序列

     

(0088,0200)

     

3

     

此图标图像代表图像。

     

此序列中只允许一个项目。

我来到cornerstone图书馆:cornerstone-jswado-image-loader。但是它们都没有在node.js环境中工作(创建了issue about that)。这些库可以生成&#34; main&#34; dcm的图像,但只有一个dcm文件加载到cliend端,在js中。我的要求是在nodejs中为图标/缩略图。

1 个答案:

答案 0 :(得分:2)

如果您尝试将图片图标另存为JPG,则可能是您的问题:

  

只能使用单色和调色板彩色图像。每像素样本(0028,0002)的值应为1,光度解释(0028,0004)的值应为MONOCHROME 1,MONOCHROME 2或PALETTE COLOR,平面配置(0028,0006)不得出现。< SUP> Over Clause

我不熟悉node.js,但Icon Image Sequence中的数据可能不适合该调用。

另请注意,您将获得图像的可选小缩略图,而不是实际图像数据,可在“像素数据”属性(7FE0,0010)中找到。