欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于cornerstone.js的dicom醫(yī)學(xué)影像查看瀏覽功能

 更新時間:2022年07月25日 10:23:49   作者:莫頎  
這篇文章主要介紹了基于cornerstone.js的dicom醫(yī)學(xué)影像查看瀏覽功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

最近由于項目需求,需要醫(yī)學(xué)影像.dcm文件的預(yù)覽功能,功能完成后,基于原生Demo做一個開源分享。

心急的小伙伴可以先看如下基于 原生js 的全部代碼:

一、全部代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/hammerjs@2.0.8/hammer.js"></script>
    <script src="https://unpkg.com/cornerstone-core@2.6.1/dist/cornerstone.js"></script>
    <script src="https://unpkg.com/cornerstone-math@0.1.10/dist/cornerstoneMath.min.js"></script>
    <script src="https://unpkg.com/cornerstone-wado-image-loader@4.1.3/dist/cornerstoneWADOImageLoader.bundle.min.js"></script>
    <script src="https://unpkg.com/cornerstone-web-image-loader@2.1.1/dist/cornerstoneWebImageLoader.min.js"></script>
    <script src="https://unpkg.com/cornerstone-tools@6.0.7/dist/cornerstoneTools.js"></script>
    <script src="https://unpkg.com/dicom-parser@1.8.13/dist/dicomParser.min.js"></script>
</head>
<body>
    <!-- 用于加載圖片的div區(qū)域 -->
    <div id="dicomImage" style="width: 512px;height: 512px;"></div>
</body>
<script>
    // 注冊并掛載cornerstone及其cornerstoneTools,固定操作
    cornerstoneTools.external.cornerstone = cornerstone;
    cornerstoneTools.external.cornerstoneMath = cornerstoneMath;
    cornerstoneTools.external.Hammer = Hammer;
    cornerstoneWADOImageLoader.external.dicomParser = dicomParser;
    cornerstoneWADOImageLoader.external.cornerstone = cornerstone;
    // imageId就是cornerstone要求的.dcm圖片地址,例如:var imageId = "wadouri:http://127.0.0.1:6699/ctdcm1.dcm";
    var imageId = "wadouri: http://http://127.0.0.1:6699/media/dicm/0a291d1b12b86213d813e3796f14b329_haAJH2K.dcm";
    // 初始化cornerstoneTools工具
    cornerstoneTools.init();
    // 獲取要用于加載圖片的div區(qū)域
    var element = document.getElementById('dicomImage');
    //激活獲取到的用于圖片加載的區(qū)域
    cornerstone.enable(element);
    // 從cornerstoneTools庫中獲取窗寬,窗高工具
    const WwwcTool = cornerstoneTools.WwwcTool;
    //添加獲取到的窗寬,窗高工具
    cornerstoneTools.addTool(WwwcTool);
    // 綁定工具操作功能到鼠標(biāo)左鍵
    cornerstoneTools.setToolActive('Wwwc', {
        mouseButtonMask: 1
    })
    //使用loadAndCacheImage()方法加載并緩存圖片,然后使用displayImage()方法顯示圖片。
    cornerstone.loadAndCacheImage(imageId).then(function (image) {
        cornerstone.displayImage(element, image);
    })
</script>
</html>

二、基于源碼片段的解釋

1、基于以上源碼片段,做一下分段介紹。如下:

<script src="https://unpkg.com/hammerjs@2.0.8/hammer.js"></script>
    <script src="https://unpkg.com/cornerstone-core@2.6.1/dist/cornerstone.js"></script>
    <script src="https://unpkg.com/cornerstone-math@0.1.10/dist/cornerstoneMath.min.js"></script>
    <script src="https://unpkg.com/cornerstone-wado-image-loader@4.1.3/dist/cornerstoneWADOImageLoader.bundle.min.js"></script>
    <script src="https://unpkg.com/cornerstone-web-image-loader@2.1.1/dist/cornerstoneWebImageLoader.min.js"></script>
    <script src="https://unpkg.com/cornerstone-tools@6.0.7/dist/cornerstoneTools.js"></script>
    <script src="https://unpkg.com/dicom-parser@1.8.13/dist/dicomParser.min.js"></script>

如上代碼主要為引入所需js庫代碼:

第一行中引入hammer.js庫,hammer.js是一款開源的移動端腳本框架,它可以完美的實現(xiàn)在移端開發(fā)的大多數(shù)事件,如:點擊、滑動、拖動、多點觸控等事件。這里用在pc端,也可以有很好的鼠標(biāo)拖動等效果的實現(xiàn)。

第二行中引入cornerstone.js庫,Corenerstone 是一個旨在搭建一個完全基于web的醫(yī)學(xué)影像平臺的開源項目。Cornerstone Core組件是一個在支持HTML5 canvas元素的現(xiàn)代瀏覽器上顯示醫(yī)學(xué)影像的輕量級的JavaScript庫。

第三行引入cornerstoneMath.min.js庫,該庫主要包含對醫(yī)學(xué)影像文件的一些操作的技術(shù),例如使用cornerstone工具庫中的測量工具時,就需要該庫文件提供數(shù)學(xué)計算支持。

第四行中引入cornerstoneWADOImageLoader.bundle.min.js庫,主要用于對DICOM醫(yī)學(xué)影像文件的支持。

第五行引入cornerstoneWebImageLoader.min.js主要用于對于非DICOM醫(yī)學(xué)影像文件的網(wǎng)絡(luò)圖片的支持。

第六行引入cornerstoneTools.js庫,該庫時基于cornerstone的工具庫,具備畫線測距,測量夾角,改變色差,拖動影像等醫(yī)學(xué)影像基礎(chǔ)常用功能。

第七行引入dicomParser.min.js庫,該庫主要用于對DICOM醫(yī)學(xué)影像文件圖片及圖片信息進(jìn)行解析。

 <!-- 用于加載圖片的div區(qū)域 -->
    <div id="dicomImage" style="width: 512px;height: 512px;"></div>

2、這里就是一個用于將DICOM醫(yī)學(xué)文件在頁面展示的區(qū)域。

// 注冊并掛載cornerstone及其cornerstoneTools,固定操作
    cornerstoneTools.external.cornerstone = cornerstone;
    cornerstoneTools.external.cornerstoneMath = cornerstoneMath;
    cornerstoneTools.external.Hammer = Hammer;
    cornerstoneWADOImageLoader.external.dicomParser = dicomParser;
    cornerstoneWADOImageLoader.external.cornerstone = cornerstone;

3、這里是對cornerstone庫及dicom文件渲染其相關(guān)庫文件的注冊掛載,固定格式,不要更改。

// imageId就是cornerstone要求的.dcm圖片地址,例如:var imageId = "wadouri:http://127.0.0.1:6699/ctdcm1.dcm";
    var imageId = "wadouri: http://http://127.0.0.1:6699/media/dicm/0a291d1b12b86213d813e3796f14b329_haAJH2K.dcm";
    // 初始化cornerstoneTools工具
    cornerstoneTools.init();
    // 獲取要用于加載圖片的div區(qū)域
    var element = document.getElementById('dicomImage');
    //激活獲取到的用于圖片加載的區(qū)域
    cornerstone.enable(element);
    // 從cornerstoneTools庫中獲取窗寬,窗高工具
    const WwwcTool = cornerstoneTools.WwwcTool;
    //添加獲取到的窗寬,窗高工具
    cornerstoneTools.addTool(WwwcTool);

4、這里就是注釋中說的那樣,就是一些固定步驟。

imageId:官方文檔規(guī)定的.dcm圖片地址,也就是需要展示的DICOM醫(yī)學(xué)影像文件的網(wǎng)絡(luò)地址。
dicomImage:這里就是在html代碼中自己定義的用于將DICOM醫(yī)學(xué)文件在頁面展示的區(qū)域。

其他的就是一些固定操作。

// 綁定工具操作功能到鼠標(biāo)左鍵
    cornerstoneTools.setToolActive('Wwwc', {
        mouseButtonMask: 1
    })
    //使用loadAndCacheImage()方法加載并緩存圖片,然后使用displayImage()方法顯示圖片。
    cornerstone.loadAndCacheImage(imageId).then(function (image) {
        cornerstone.displayImage(element, image);
    })

5、這是最后的兩步。1~4行代碼,用于將前面寫的‘獲取窗寬,窗高工具’功能綁定到鼠標(biāo)的左鍵,用于在圖片上按住鼠標(biāo)左鍵時,可以實現(xiàn)拖動改變色差的效果。

setToolActive():該方法用于激活并綁定某功能到某個操作鍵?! ouseButtonMask: 1:該含義為綁定到鼠標(biāo)左鍵。
  loadAndCacheImage():該方法用于加載并緩存DICOM圖片及圖片的數(shù)據(jù)。最大緩存為1GB
  displayImage(element, image):該方法用于在我們設(shè)定的網(wǎng)頁區(qū)域展示解析后的DICOM圖片

6、至此,我們已經(jīng)完成了所以代碼。

注意:(1)由于我們用的是在線Js庫文件,所以需要等待后在能看到圖片效果.

(2)imageId 是博主自己設(shè)置的本地服務(wù)器的dcm圖片地址,請?zhí)鎿Q為你自己服務(wù)器的dcm圖片地址。如果對node.js有了解的大佬,可以使用http-server本地服務(wù)器包,自己快速搭建本地服務(wù)器用于測試,但是需要注意跨域問題??梢允褂茫?a href="http://www.dbjr.com.cn/article/256661.htm" target="_blank"> http-server --cors 命令替代“http-server”命令解決跨域問題。

到此這篇關(guān)于基于cornerstone.js的dicom醫(yī)學(xué)影像查看瀏覽功能的文章就介紹到這了,更多相關(guān)cornerstone.js dicom醫(yī)學(xué)影像查看瀏覽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論