首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用基石加载角7项目中的dicom文件

如何使用基石加载角7项目中的dicom文件
EN

Stack Overflow用户
提问于 2019-11-25 11:28:32
回答 1查看 2.1K关注 0票数 4

我想加载一个我已经放在我的虚拟目录的IIS中的dicom文件,我使用的角膜-瓦多-图像加载器来实现同样的。但我的错误是:

"TypeError:未能在‘FileReader’上执行'readAsArrayBuffer‘:参数1的类型不是'Blob’。

在_global.(匿名函数).(匿名函数) as readAsArrayBuffer

http://localhost:4200/vendor.js:138552:35977

新ZoneAwarePromise (http://localhost:4200/polyfills.js:4111:29)

at Ie (http://localhost:4200/vendor.js:138552:35867)

在Object.load (http://localhost:4200/vendor.js:138552:31691)

at Ae (http://localhost:4200/vendor.js:138552:37680)

在loadImageFromImageLoader (http://localhost:4200/vendor.js:96174:25)

在Object.loadAndCacheImage (http://localhost:4200/vendor.js:96237:21)

在ViewImageComponent.ngAfterViewInit (http://localhost:4200/main.js:777:65)

在callProviderLifecycles (http://localhost:4200/vendor.js:66735:18)"“

我为之编写的代码是:

代码语言:javascript
复制
import {Component,OnInit,Input,ElementRef,ViewChild, AfterViewInit} from "@angular/core";
import cornerstone from "cornerstone-core";
import cornerstoneMath from "cornerstone-math";
import cornerstoneTools from "cornerstone-tools";
import Hammer from "hammerjs";
import cornerstoneWebImageLoader from "cornerstone-web-image-loader";
import cornerstoneWADOImageLoader from "cornerstone-wado-image-loader";
import { Router, ActivatedRoute } from "@angular/router";
import { switchMap, map } from "rxjs/operators";
import dicomParser from "dicom-parser";

var config = {
   maxWebWorkers: navigator.hardwareConcurrency || 1,
   startWebWorkersOnDemand: true,
};

cornerstoneWADOImageLoader.webWorkerManager.initialize(config);

@Component({
  selector: "app-view-image",
  templateUrl: "./view-image.component.html",
  styleUrls: ["./view-image.component.css"]
})
export class ViewImageComponent implements OnInit, AfterViewInit {

  constructor(private router: Router, private route: ActivatedRoute) {
  }

  ngOnInit() {
    cornerstoneWADOImageLoader.external.cornerstone = cornerstone;
    cornerstoneWADOImageLoader.external.dicomParser = dicomParser;
  }

  ngAfterViewInit() {

    const element = document.querySelector(".image-canvas");

    const DCMPath = "http://localhost/images/Abdomen.Dcm";
    cornerstone.enable(element);

    cornerstone.loadAndCacheImage("dicomfile:" + DCMPath).then(imageData => {
      console.log(imageData);
      cornerstone.displayImage(element, imageData);
    }).catch( error => { console.error(error) });

    cornerstoneWADOImageLoader.wadouri.fileManager.remove(imageID);
  }
 
}

我的package.json有以下版本的依赖项:

“基石-核心”:"^2.3.0",

“基石-数学”:"^0.1.8“

“基石-工具”:"^4.8.0",

“基石-瓦多-图像加载器”:"^2.2.4",

“基石-网页-图像载入器”:"^2.1.1",

“dicom-解析器”:"^1.8.3",

“文件系统”:"^2.2.2",

“锤子”:"^2.0.8“

"pako":"^1.0.10",

我试着用基石web图像加载器加载jpg/png图像,它工作得很好,但是当我更改为wado图像加载器时,我无法得到想要的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-04 15:50:33

我做了以下两项修改,以使它对我有用:

  1. 配置变量更改,错过了添加codecsPath和codecsPath

代码语言:javascript
复制
var config = {
    webWorkerPath: '/assets/cornerstone/webworkers/cornerstoneWADOImageLoaderWebWorker.js',
    taskConfiguration: {
        'decodeTask': {
            codecsPath: '/assets/cornerstone/codecs/cornerstoneWADOImageLoaderCodecs.js'
        }
    }
}

  1. 将加载程序从"dicomfile“更改为"wadouri"

代码语言:javascript
复制
cornerstone.loadAndCacheImage("wadouri:" + DCMPath).then(imageData => {
      console.log(imageData);
      cornerstone.displayImage(element, imageData);
    }).catch( error => { console.error(error) });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59030752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档