使用javascript提取/显示dicom图像数据

时间:2010-11-04 02:21:15

标签: javascript dicom

我希望使用JavaScript提取然后显示DICOM文件中的图像数据。我想知道是否有人知道任何框架或工具来帮助我这样做。提前谢谢。

5 个答案:

答案 0 :(得分:4)

一个dicom文件基本上是一个可以解析的二进制文件,只要我担心没有可用的框架可以做到这一点。但是,您可以使用一些HTML5功能和JQuery的

http://timc.idv.tw/html5-file-upload/

然后,您可以使用readAsBinaryString函数检索Dicom数据并使解析器解析它。然而,最后一部分可能有些麻烦,因为你必须实现整个dicom规范。

然后你可以获得PixelData(7FE0,0010)并在<canvas>上显示它们。这里唯一的问题可能是dicom文件的大小非常大。所以我不确定它会有多快。 正如Nico在评论中所述,您可能也需要对PixelData进行转换,因为浏览器并不总是理解其中的字节码(这肯定是您使用CT数据集的情况)

答案 1 :(得分:2)

我认为'HTML5'是最好的解决方案。 Canvas,FileAPI(readAsArrayBuffer),TypedArray可以精确显示DICOM图像。

在Javascript中尝试以下操作。  1.创建“FileReader”对象。  2.调用'readAsArrayBuffer'方法,该方法可以读取二进制数组。  3.创建“Uint8Array”对象并解析DICOM标头。  4.使用canvas方法'createImageData'创建图像数据对象以显示二进制图像。  5.将像素数据属性(7FE0,0010)设置为图像数据对象。  6.调用'putImageData',你可以在画布上显示DICOM Image。

对不起我的英语不好...... 祝你好运!

答案 2 :(得分:2)

对于图书馆,你可以使用这个: Management Plugin

答案 3 :(得分:1)

我也一直在研究这个问题。

解决方案(IMHO)将拥有一个可以从文件中提取单个数据项的库。 DICOM标准非常具体,关于如何定义每种类型的变量,以及在DICOM文件中的每个数据项中给出的信息。

因此,我建议(目前正在进行的)方法涉及:

1)readAsArrayBuffer

2)读入头字节(DICM)......

3)读入不同的标签(保留你想要的标签)

4)将像素数据(7FE0,0010)读入数组

5)创建一个颜色图(这样你可以很好地显示图像) - 想想CT窗口/水平

6)使用数组中不同像素值的颜色映射值生成图像。

7)在画布上绘制数组。

一个。

答案 4 :(得分:0)

如果要使用完全JavaScript的解决方案,请不要理会,但是您可以使用jQuery异步调用从服务器端的dicom工具包(dcmtk:https://dicom.offis.de/dcmtk.php.en)运行可执行文件。我使用了几种二进制文件将图像数据转换为.png文件,还使用它们将dicom文件转换为xml文件。从那里,仅显示图像或通过客户端的xml文件进行解析。