我爱编程

ImageLoaders 加载图像

2018-08-09  本文已影响0人  tata_a79c

ImageLoader是一个Javascript插件,它负责获取图像的ImageId并将相应的图像像素数据返回给cornerstone。由于加载图像通常需要调用服务器,因此加载图像的API必须是异步的。Javascript处理异步操作的趋势是通过由许多库实现的 Promises/A+ 规范 。有关promise /A+库的信息,请参阅本页。因此,Cornerstone将假定,图像加载程序返回一个承诺,Cornerstone将使用该承诺异步接收像素数据,如果出现错误,则返回一个错误。Cornerstone不需要任何特定的promise库,它应该与任何符合Promises/A+ 规范的库(以及不能100%兼容的jQuery)一起工作。下面是一个图像加载器的例子,它使用XMLHttpRequest获取像素数据,并使用jQuery向cornerstone:

    function loadImage(imageId) {
        // create a deferred object
        var deferred = $.Deferred();

        // Make the request for the DICOM data
        var oReq = new XMLHttpRequest();
        oReq.open("get", imageId, true);
        oReq.responseType = "arraybuffer";
        oReq.onreadystatechange = function(oEvent) {
            if (oReq.readyState === 4)
            {
                if (oReq.status == 200) {
                    // request succeeded, create an image object and resolve the deferred
                    // Code to parse the response and return an image object omitted.....
                    var image = createImageObject(oReq.response);
                    // return the image object by resolving the deferred
                    deferred.resolve(image);
                }
                else {
                    // an error occurred, return an object describing the error by rejecting
                    // the deferred
                    deferred.reject({error: oReq.statusText});
                }
            }
        };
        oReq.send();

        // return the pending deferred object to cornerstone so it can setup callbacks to be 
        // invoked asynchronously for the success/resolve and failure/reject scenarios.
        return deferred;
    }

图像加载器负责在解析承诺时将与ImageId基石传递相对应的Image object 图像对象返回给它的loadImage函数。图像加载器使用registerImageLoader() API为给定的URL方案注册自己:

    // 用我们的loadImage函数注册url模式“myCustomLoader”
    cornerstone.registerImageLoader('myCustomLoader', loadImage);

一般流程:

可用考虑使用 cornerstone WADO 图像加载器cornerstone Web图像加载器。在不久的将来也有望提供一个WADO-RS图像加载器。

上一篇 下一篇

猜你喜欢

热点阅读