最近做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>
工具添加完毕,下期说说怎么新建自己的工具。