最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

心急的小伙伴可以先看如下基于 原生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是一款開源的移動(dòng)端腳本框架,它可以完美的實(shí)現(xiàn)在移端開發(fā)的大多數(shù)事件,如:點(diǎn)擊、滑動(dòng)、拖動(dòng)、多點(diǎn)觸控等事件。這里用在pc端,也可以有很好的鼠標(biāo)拖動(dòng)等效果的實(shí)現(xiàn)。

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

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

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

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

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

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

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

2、這里就是一個(gè)用于將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、這里是對(duì)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)左鍵時(shí),可以實(shí)現(xiàn)拖動(dòng)改變色差的效果。

setToolActive():該方法用于激活并綁定某功能到某個(gè)操作鍵?! 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圖片地址。如果對(duì)node.js有了解的大佬,可以使用http-server本地服務(wù)器包,自己快速搭建本地服務(wù)器用于測試,但是需要注意跨域問題。可以使用: 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)文章

  • js實(shí)現(xiàn)固定顯示區(qū)域內(nèi)自動(dòng)縮放圖片的方法

    js實(shí)現(xiàn)固定顯示區(qū)域內(nèi)自動(dòng)縮放圖片的方法

    這篇文章主要介紹了js實(shí)現(xiàn)固定顯示區(qū)域內(nèi)自動(dòng)縮放圖片的方法,實(shí)例分析了javascript操作頁面元素及屬性的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • JavaScript動(dòng)態(tài)檢測密碼強(qiáng)度原理及實(shí)現(xiàn)方法詳解

    JavaScript動(dòng)態(tài)檢測密碼強(qiáng)度原理及實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了JavaScript動(dòng)態(tài)檢測密碼強(qiáng)度原理及實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式詳細(xì)分析了javascript針對(duì)輸入字符串密碼強(qiáng)度檢測的原理與相關(guān)判斷操作技巧,需要的朋友可以參考下
    2019-06-06
  • JavaScript手寫LRU算法的示例代碼

    JavaScript手寫LRU算法的示例代碼

    LRU是Least?Recently?Used的縮寫,即最近最少使用。作為一種經(jīng)典的緩存策略,它的基本思想是長期不被使用的數(shù)據(jù),在未來被用到的幾率也不大,所以當(dāng)新的數(shù)據(jù)進(jìn)來時(shí)我們可以優(yōu)先把這些數(shù)據(jù)替換掉。本文用JavaScript實(shí)現(xiàn)這一算法,需要的可以參考一下
    2022-09-09
  • xmlhttp緩存清除的2種解決方法

    xmlhttp緩存清除的2種解決方法

    這篇文章主要介紹了xmlhttp緩存清除的2種解決方法。需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2013-12-12
  • 發(fā)個(gè)自己寫的表格操作類(添加,刪除,排序,上移,下移)

    發(fā)個(gè)自己寫的表格操作類(添加,刪除,排序,上移,下移)

    發(fā)個(gè)自己寫的表格操作類(添加,刪除,排序,上移,下移)...
    2006-11-11
  • JS對(duì)象轉(zhuǎn)換為Jquery對(duì)象示例

    JS對(duì)象轉(zhuǎn)換為Jquery對(duì)象示例

    JS對(duì)象轉(zhuǎn)換為Jquery對(duì)象的方便在于可以使用jquery的一些方法,下面有個(gè)示例,大家可以參考下
    2014-01-01
  • JavaScript判斷頁面是否滾動(dòng)到底部的技巧

    JavaScript判斷頁面是否滾動(dòng)到底部的技巧

    在 JavaScript 中,我們可以通過一些技巧來判斷頁面是否滾動(dòng)到底部,本文將介紹一些常用的方法,幫助你在項(xiàng)目中實(shí)現(xiàn)這一功能,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Javascript的表單與驗(yàn)證-非空驗(yàn)證

    Javascript的表單與驗(yàn)證-非空驗(yàn)證

    JavaScript 可用來在數(shù)據(jù)被送往服務(wù)器前對(duì) HTML 表單中的這些輸入數(shù)據(jù)進(jìn)行驗(yàn)證。本文給大家介紹javascript的表單與驗(yàn)證-非空驗(yàn)證,對(duì)javascript表單驗(yàn)證相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-03-03
  • php的派發(fā)機(jī)制實(shí)現(xiàn)方法

    php的派發(fā)機(jī)制實(shí)現(xiàn)方法

    PHP是一種動(dòng)態(tài)類型的編程語言,它支持面向?qū)ο缶幊?在PHP中,派發(fā)指在運(yùn)行時(shí)確定要調(diào)用的方法或函數(shù)的過程,派發(fā)機(jī)制允許根據(jù)實(shí)際對(duì)象的類型來選擇要執(zhí)行的方法,這種靈活性使得PHP可以實(shí)現(xiàn)多態(tài)性,本文將給大家介紹php的派發(fā)機(jī)制是怎么實(shí)現(xiàn)的,需要的朋友可以參考下
    2023-10-10
  • jquery插件bootstrapValidator數(shù)據(jù)驗(yàn)證詳解

    jquery插件bootstrapValidator數(shù)據(jù)驗(yàn)證詳解

    這篇文章主要為大家詳細(xì)介紹了jquery插件bootstrapValidator數(shù)據(jù)驗(yàn)證使用教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11

最新評(píng)論

涞源县| 绥德县| 正宁县| 广州市| 汉沽区| 蒙城县| 容城县| 镇坪县| 伊吾县| 曲麻莱县| 荥阳市| 清丰县| 信阳市| 灌阳县| 垫江县| 沙洋县| 汾阳市| 丽江市| 广东省| 福建省| 青浦区| 库尔勒市| 焉耆| 休宁县| 额尔古纳市| 酉阳| 年辖:市辖区| 兰州市| 新乡县| 太和县| 蒙山县| 镇沅| 利川市| 托里县| 偃师市| 兴文县| 沙河市| 开封县| 呈贡县| 密山市| 池州市|