最近在用cornerstone开发一套标注系统,先开发的RectangleRoi Tool工具,根据公司自己的业务会延伸出来好多功能,这样基础功能不能满足就得就行二次开发或者对源码进行修改。之前也做过一点,但没完全了解,都是边做边研究的,所以可能也比较浅显,写下来只为自己记录一下。
源码的引入并修改:
1. 下载cornerstoneTools源码文件。找到package.json里看本项目里使用的cornerstone和cornerstoneTools使用的版本号,去github下载对应版本的项目源码到本地。找到RectangleRoiTool.js文件放到自己项目里(ctr+p全局搜索RectangleRoiTool文件名)。
2. 修改源码文件的引用路径。因为源码里引用的文件都是静态引用,所以要把文件改为引用本地依赖包的形式。注意,引用的文件路径都是基于源码里的src下的文件,有的找不到,可以把cornerstoneTools打印出来,看工具里抛出有哪些方法,例如getToolState就是直接在它下面,直接这样引用就行,const getToolState = cornerstoneTools.getToolState
3. 修改继承的方法。源码里继承BaseAnnotationTool改成继承cornerstoneTools.RectangleRoiTool。
4. 添加和启用引入的源码工具。
源码是这样的,我们把直接引用的依赖包里的矩形工具,改为我们自己本地改写过的工具
5. 激活矩形工具。在页面addTool后,画过的矩形就会展示出来,当点击按钮通过cornerstoneTools.setToolActive('RectangleRoi', { mouseButtonMask: 1 }) 激活工具,就可以画矩形了。
6.如何改源码。例如往文本框里塞数据。如给矩形框增加一个名字,找到画文本框的方法,给里面传值,然后塞数据。如果还有其他功能,看源码里是否有现成的方法,如果有找到对应方法进行改写,没有的话,只能自己写方法。