使用医学影像开源库cornerstone.js解析Dicom图像显示到HTML中

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>DicomTest</title>
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/cornerstone.min.css">
    <script src="js/cornerstone.min.js"></script>
    <script src="js/dicomParser.min.js"></script>
    <script src="Imageloader/cornerstoneWADOImageLoaderCodecs.js"></script>
    <script src="imageloader/cornerstoneWADOImageLoaderWebWorker.js"></script>
    <script src="imageloader/cornerstoneWADOImageLoader.js"></script>
</head>
<body>
    <div class="container">
        <div class="row">
            <input class="col-sm-8" type="file" id="dcmfile">
            <button class="col-sm-3 btn" type="button" id="downloadAndView">加载到窗口中</button>
        </div>
        <div id="loadProgress">医疗影像Dicom解析加载</div>
        <div style="width:512px; height:512px; position:relative; color:white; display:inline-block; border-style:solid; border-color:black;"
            oncontextmenu="return false" class='disable-selection noIbar' unselectable='on'
            onselectstart='return false;' onmousedown='return false;'>
            <div id="dicomImage" style="width:512px;height:512px;top:0px;left:0px; position:absolute">
            </div>
        </div>
    </div>
    <script type="text/javascript">
        var loaded = false;
        cornerstoneWADOImageLoader.external.cornerstone = cornerstone;
        // 加载和显示图像
        function loadAndViewImage(imageId) {
            var element = document.getElementById('dicomImage');
            cornerstone.loadAndCacheImage(imageId).then(function (image) {
                var viewport = cornerstone.getDefaultViewportForImage(element, image);
                cornerstone.displayImage(element, image, viewport);
            }, function (err) {
                alert(err);
                console.log(err);
            });
        }
        var element = document.getElementById('dicomImage');
        cornerstone.enable(element);
        // 监听 downloadAndView 按钮 拼接url 调用 loadAndViewImage 函数
        document.getElementById('downloadAndView').addEventListener('click', function (e) {
            const file = document.getElementById('dcmfile').files[0];
            const imageId = cornerstoneWADOImageLoader.wadouri.fileManager.add(file);
            // 调用这个函数加载像,和激活工具
            loadAndViewImage(imageId);
        });
        // Dicom 加载 进度
        cornerstone.events.addEventListener('cornerstoneimageloadprogress', function (event) {
            const eventData = event.detail;
            const loadProgress = document.getElementById('loadProgress');
            loadProgress.textContent = `Image Load Progress: ${eventData.percentComplete}%`;
        });
    </script>
</body>

</html>

上面代码中需要 引入的JS库,均来自GitHub开源项目cornerstone.js
运行后,点击左上角按钮选择dcm文件进行load 可显示到div中

转载至:https://www.cnblogs.com/-NETer-P/p/14030015.html

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyTHP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值