1.简介

Cornerstone是一个开源的基于Web的医学成像平台,它提供了一个易于使用的界面,可以用于加载、显示和处理医学图像。Cornerstone可以用于许多医学图像处理应用程序,例如计算机断层扫描(CT)、磁共振成像(MRI)和超声成像(US)等。

Cornerstone的主要特点包括:

跨平台性: Cornerstone基于Web技术开发,可以在不同的操作系统和设备上运行,例如Windows、Linux、macOS和移动设备等。
灵活性: Cornerstone提供了一组灵活的API,可以让开发人员自定义和扩展功能。
高性能: Cornerstone使用WebGL和Canvas技术来加速图像渲染,可以处理大量的图像数据。
开源: Cornerstone是一个开源项目,使用MIT许可证发布,可以自由使用和分发。
在本文中,我们将介绍如何在Ubuntu操作系统上安装和部署Cornerstone。以下是安装和部署Cornerstone的步骤:

2. 安装Node.js和NPM

Cornerstone是一个基于Node.js和NPM的Web应用程序,因此需要先安装Node.js和NPM。

使用以下命令在Ubuntu上安装Node.js和NPM:

sudo apt update
sudo apt install nodejs npm

安装完成后,可以使用以下命令验证Node.js和NPM的版本:

node -v
npm -v

3. 下载Cornerstone

使用以下命令从Cornerstone的GitHub仓库下载源代码:

git clone https://github.com/cornerstonejs/cornerstone.git

4. 构建和启动Cornerstone

在下载源代码后,使用以下命令安装依赖项:

cd cornerstone
npm install

安装完成后,可以使用以下命令启动Cornerstone:

npm start

该命令将启动Cornerstone服务器,并在本地端口3000上提供服务。可以使用Web浏览器访问http://localhost:3000来查看Cornerstone的示例应用程序。

5. 使用Cornerstone

Cornerstone提供了一组丰富的API和插件,可以让开发人员轻松地加载、显示和处理医学图像。例如,以下代码片段演示了如何在Web页面中加载和显示DICOM格式的图像:

// 加载Cornerstone核心模块
import cornerstone from 'cornerstone-core';// 加载DICOM格式解码器
import dicomParser from 'dicom-parser';// 加载Cornerstone DICOM模块
import cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader';
import cornerstoneDICOM from 'cornerstone-dicom-loader';// 设置DICOM格式解码器
cornerstoneWADOImageLoader.external.cornerstone = cornerstone;
cornerstoneWADOImageLoader.external.dicomParser = dicomParser;// 加载DICOM文件
const file = 'https://example.com/path/to/dicom/file.dcm';
const imageId = cornerstoneWADOImageLoader.wadouri.fileManager.add(file);// 显示图像
const element = document.getElementById('image-container');
cornerstone.enable(element);
cornerstone.loadImage(imageId).then(image => {cornerstone.displayImage(element, image);
});

6. 实列代码Cornerstone

以下是一个完整的基于Web的医学成像平台Cornerstone的示例代码,包括加载DICOM格式的图像和测量工具的使用。代码中的注释提供了更详细的解释和说明。

<!DOCTYPE html>
<html>
<head><title>Cornerstone Example</title><!-- 引入Cornerstone库的CSS和JS文件 --><link rel="stylesheet" href="https://unpkg.com/cornerstone-core/dist/cornerstone.min.css" /><script src="https://unpkg.com/cornerstone-core/dist/cornerstone.min.js"></script><!-- 引入DICOM格式的解码器和加载器 --><script src="https://unpkg.com/cornerstone-wado-image-loader/dist/cornerstoneWADOImageLoader.min.js"></script><script src="https://unpkg.com/cornerstone-dicom-loader/dist/cornerstoneDICOMLoader.min.js"></script>
</head>
<body><div id="image-container"></div><!-- 加载和显示DICOM格式的图像 --><script>// 加载DICOM文件const file = 'https://example.com/path/to/dicom/file.dcm';const imageId = cornerstoneWADOImageLoader.wadouri.fileManager.add(file);// 显示图像const element = document.getElementById('image-container');cornerstone.enable(element);cornerstone.loadImage(imageId).then(image => {cornerstone.displayImage(element, image);});</script><!-- 添加测量工具 --><script>const mouseTool = cornerstoneTools.MouseButtonTool({// 工具名称name: 'Mouse',// 鼠标点击事件mouseDownCallback: function (e) {console.log('mouse down');},// 鼠标移动事件mouseMoveCallback: function (e) {console.log('mouse move');},// 鼠标松开事件mouseUpCallback: function (e) {console.log('mouse up');}});// 将测量工具添加到工具栏cornerstoneTools.addTool(mouseTool);cornerstoneTools.setToolActive('Mouse');</script>
</body>
</html>

在上面的代码中,我们引入了Cornerstone库的CSS和JS文件,以及DICOM格式的解码器和加载器。然后,我们使用cornerstoneWADOImageLoader.wadouri.fileManager.add方法加载DICOM文件,并使用cornerstone.enable方法启用Cornerstone在指定的DOM元素上显示图像。我们使用cornerstone.loadImage方法加载图像,并使用cornerstone.displayImage方法显示图像。

接下来,我们使用cornerstoneTools.MouseButtonTool方法创建一个测量工具,并将其添加到工具栏中。最后,我们使用cornerstoneTools.setToolActive方法激活该工具。

当用户使用该工具时,测量工具的回调函数将会被触发,例如当用户按下鼠标时,mouseDownCallback函数将会被调用。

Cornerstone完整的基于 Web 的医学成像平台(一)相关推荐

  1. [OHIF-Viewers]医疗数字阅片-医学影像-cornerstone-core-Cornerstone.js提供了一个完整的基于Web的医学成像平台。...

    [OHIF-Viewers]医疗数字阅片-医学影像-cornerstone-core-Cornerstone.js提供了一个完整的基于Web的医学成像平台. 还必须写中文,不然不让同步,蛋疼呀--- ...

  2. 基于WEB快速开发平台的轻量ERP

    传统的企业系统更多是以电脑软件端的应用形式运行,但是随着信息技术的发展进步以及企业对系统应用需求的提升,基于B/S的网页版的系统受到越来越多企业的青睐,那么Web网页版ERP软件系统相较于电脑端软件有 ...

  3. 基于Web的直播平台架构设计

    时常有人问起:"网络直播与视频会议有什么区别?".直播平台确实有很多,多得让人眼花缭乱.从功能上来讲,感觉都差不多,你有的我也有.它们的区别不在于功能上哪个更强,而是在于它们的&q ...

  4. 借道IIS搭建企业内部Web方式文件共享平台

    文件共享是企事业单位局域网应用的一个主要方面,基于此需要通常会搭建专门的共享服务器.其实,现在的企事业单位都有自己的Web服务器,如果采用的是基于Windows Server 2008的Web服务器平 ...

  5. 计算机虚拟网络毕业论文,计算机毕业论文——基于WEB的虚拟计算机网络实验平台.doc...

    PAGE Tianjin University of Technology and Education 毕 业 设 计 专 业: 计算机科学与技术 班级学号: 计0203班 – 11 学生姓名: 指导 ...

  6. 一个快速实现彩屏应用的跨平台快速原型开发工具平台,最重要的是还免费!8ms.xyz平台原以为是单片机版墨刀,今天上去玩了才知道平台厉害的很,基于WEB端免搭建开发环境,跑的还是C代码编译出来的程序!

    哈哈哈哈,最近发现一个好用的在线编译.下载.烧录的跨平台快速原型开发工具平台,名字好记–8ms,单看名字是真的不知道干嘛的,不知道为啥叫这个?不多想了,好用就得分享给大家,独乐乐不如众乐乐呀-- 好用 ...

  7. 基于Web SCADA平台构建数字化车间的MES系统

    数字化车间的MES系统与偏管理的信息化系统(如ERP.CRM.SRM等)最大的区别在于数据的"实时性",以传统的管理为主线的信息化系统因无法及时的将数据录入进系统,使得管理信息化中 ...

  8. 基于Web的校园互助平台设计与实现

     其他项目,点击作者主页   目录 1 系统简介 2 系统相关技术 3 需求分析 3.1系统概述 3.2系统业务流程分析 3.3系统各模块功能需求分析 3.3.1用户端功能需求分析 ​​​​​​​3. ...

  9. 基于web的可定制数据填报平台

    需求说明: 基于web的可定制数据填报平台的功能分析 一.表单设计 表项表  :用户创建的一个表,表项名通过用户创建表单时传递过来,User id表明是那个用户的表单 Id 表项名 User id(学 ...

最新文章

  1. mvcc原理_MySQL MVCC原理
  2. PHP预定义常量DIRECTORY_SEPARATOR
  3. 《自卑与超越》读书笔记(part3)--做梦就是在保护我们的生活模式不被现实和常识所威胁
  4. 使用扩展技术对SAP Fiori应用进行端到端的增强,一个实际案例介绍
  5. 从CLR GC到CoreCLR GC看.NET Core对云原生的支持
  6. 配置节处理程序时出错,未能加载文件或程序集
  7. C++:52---多重继承
  8. swagger core 和 swagger ui 如何关联【窥探】
  9. 汇编在嵌入式编程中的作用_如何在嵌入式Power BI报表中以编程方式传递凭据
  10. 零基础入门语义分割-Task6 分割模型模型集成
  11. 深入解构magnitude_spectrum()
  12. raid5通常需要几块盘_磁盘阵列是什么东西,为什么需要阵列?
  13. springboot 集成quartz带数据库持久化
  14. 怦然心动(Flipped)-5
  15. 详解Linux与Unix系统的区别与联系
  16. java web 表单提交_Java Web 表单(form)提交问题!
  17. ABAP 设置鼠标光标
  18. 贴片元件的封装中名字后缀的L、N、M的含义
  19. 联合线程(案例顾客买蛋糕 :使用join()方法)
  20. 【mybatis原理工作原理】

热门文章

  1. Python偏最小二乘回归(PLSR)测试
  2. jquery把页面<table>里的内容导出为后缀名为.xlsx的excel
  3. Qt Creator Colliding Mice碰撞老鼠例程解析【1.5W字数长文!详细!】
  4. 男人主张:我的“降”妻秘籍
  5. C语言实现状态机(一)
  6. lwIP TCP/IP 协议栈笔记之十八: Socket接口编程
  7. 电脑模拟收银机_收银台模拟器下载-收银台模拟器游戏手机版v0.2-幻想游戏网
  8. python中int占几个字节_python int占几个字节
  9. Android平台签名证书(.keystore)生成指南及高德地图配置
  10. 在mysql中创建一个自定义函数来计算两个数的和_Mysql创建自定义函数