cornerstoneTools拾遗补漏(一)

1,301 阅读2分钟

最近做PACS的web项目,做过web pacs的朋友可能都知道必须用到的cornerstone全家桶吧。使用cornerstone全家桶可以对符合DICOM标准的医学影像进行快速显示,编辑,二次开发,因此,在开发web pacs的时候,对cornerstone全家桶进行一次全面且深入的了解是非常有必要的。那么,接下来,我会把在项目中遇到问题及总结的经验,整理出来,便于自己及其它使用cornerstone的朋友参考。

(一)开始

先贴网址cornerstoneTools 这个网站是cornerstoneTools中文教程网站

先看引用的库:

1.hammerjs:这老熟人了,管理浏览器鼠标手势事件的,cornerstonetools支持触屏操作,所以引入了hammerjs(但是我记得cornerstonetools在工具里面绑定鼠标事件的时候好像是直接用的HTMLElement.addEventListener,并没有使用hammer,可能只是在触屏操作时使用了吧)。

2.cornerstone-math:这个要介绍一下,cornerstone的数学库,大体上来说都是一个高中平面立体几何计算,和一些矩阵计算,三维向量计算之类的内容。

3.cornerstone-core:这个是cornerstone图像头文件解析及图像数据绘制的核心库。

4.cornerstone-web-image-loader:其实还有一个cornerstoneWadoImageLoader,都是用来针对不同的编码协议来解析dicom图像二进制数据流的。

5.cornerstone-tools:这个就是针对dicom图像开发的工具管理库,里面封装了几十个不同种类的图像调整、测量、标注和对比工具。

那么一开始,先引入这几个库,这样我们需要的工具就都有了。

然后先建立一个图像区,简单的写一个div就可以

<div id='container' style='width:500px;height:500px;'></div>


<script>
    let container = document.getElementById('container');
    // cornerstone初始化你的阅片区,会在container里新建一个充满的canvas,并在内存里
    // 记录你的element
    cornerstone.enable(container);
    // 初始化cornerstoneTools
    cornerstoneTools.init();
    // 拿出cornerstoneTools内置的例子工具
    const LengthTool = cornerstoneTools.LengthTool;
    // 为所有enable过的element都添加工具
    cornerstoneTools.addTool(LengthTool);
    // 或者为指定的element添加工具
    cornerstoneTools.addToolForElement(element, LengthTool);
    // 当然,如果没加载图像的话,工具是不可用的。
</script>

工具添加完毕,下期说说怎么新建自己的工具。