javascript - 如何在基石库中传递dicom文件的路径并显示它?
问题描述
我想显示我网站上的 Dicom 图像。所以我找到了基石库来做到这一点。
所以这是代码:
<!DOCTYPE HTML>
<html>
<head>
<!-- twitter bootstrap CSS stylesheet - included to make things pretty, not needed or used by cornerstone -->
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
<link href="cornerstone.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<br>
</div>
<div class="row">
<form class="form-horizontal">
<div class="form-group">
<input type="file" id="selectFile" >
</div>
</form>
</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>
</body>
<!-- jquery - currently a dependency and thus required for using cornerstoneWADOImageLoader -->
<script src="jquery.min.js"></script>
<!-- include the cornerstone library -->
<script src="cornerstone.min.js"></script>
<!-- include the dicomParser library as the WADO image loader depends on it -->
<script src="dicomParser.min.js"></script>
<!-- include the cornerstoneWADOImageLoader library -->
<script src="cornerstoneWADOImageLoader.min.js"></script>
<script src="../dist/cornerstoneFileImageLoader.js"></script>
<!-- jpeg 2000 codec -->
<script src="jpx.min.js"></script>
<script>
$(document).ready(function() {
var element = $('#dicomImage').get(0);
cornerstone.enable(element);
// Listen for the change event on our input element so we can get the
// file selected by the user
$('#selectFile').on('change', function(e) {
// Add the file to the cornerstoneFileImageLoader and get unique
// number for that file
var file = e.target.files[0];
alert("cambio il file");
var index = cornerstoneFileImageLoader.addFile(file);
// create an imageId for this image
var imageId = "dicomfile://" + index;
// load and display this image into the element
var element = $('#dicomImage').get(0);
cornerstone.loadImage(uriImageDesktop).then(function(image) {
cornerstone.displayImage(element, image);
});
});
});
</script>
</html>
使用此代码,我可以使用文件选择器显示单个 HTML 页面。有了这个组件,我可以导航到我的电脑,然后库加载一个 Dicom 图像。
现在我想从 URL 传递我的 Dicom 图像的路径。
所以我正在尝试这样做
var uriImageDesktop = "C:\Users\michele\Desktop\deflate_tests\image";
// load and display this image into the element
var element = $('#dicomImage').get(0);
cornerstone.loadImage(uriImageDesktop).then(function(image) {
cornerstone.displayImage(element, image);
});
目前我会写静态 dicom 图像,但没有找到。
所以问题是,我怎样才能从我的 dicom 文件中传递一个路径然后显示它?
解决方案
您在这里缺少图像加载器部分。Cornerstone 需要一个图像加载器来将您的链接转换为可供基石读取的图像对象。如果您查看基石的 github 存储库,您会发现两个图像加载器。WADO 图像加载器可用于读取 DICOM 文件。您必须构建一个后端来提供 DICOM 文件,因为浏览器将无法访问服务器文件。假设您有一个访问 DICOM 文件的 uri:
import * as cornerstone from "cornerstone-core"
import * as cornerstoneWADOImageLoader from "cornerstone-wado-image-loader"
cornerstoneWADOImageLoader.external.cornerstone = cornerstone
const uriServed = "http://xxx/deflate_tests/image"
const element = $('#dicomImage').get(0);
cornerstone.loadImage("wadouri:" + uriServed).then(image => {
cornerstone.displayImage(element, image);
});
注意:如果你没有 npm,只需链接到 .js 文件作为脚本而不是导入(或者你也可以在 ES6+ 中导入它们)
推荐阅读
- node.js - 使用 AWS s3 和 Lambda 将 pdf 页面转换为图像
- unit-testing - 方法抛出 'org.mockito.exceptions.misusing.InvalidUseOfMatchersException' 异常。
- neo4j - 如何根据节点标签或其他条件计算自定义度数?
- c# - 你如何确定 async / await 正在执行什么?
- rust - 共享弱特征对象引用
- azure - Azure AAD - 本地服务的应用程序代理
- python - Pandas - Pivot、Stack、Unstack?
- android - 约束布局嵌套居中视图
- amazon - 使用 Amazon Alexa Skill CLI 更新交互模型
- c# - 使用 NPOI C# 将单元格格式设置为百分比