Skip to main content

Image Loaders

ImageLoader 是一个 JavaScript 函数,负责接收一个 ImageId 并返回一个 Image Object。由于加载图像通常需要调用服务器,因此图像加载的 API 需要是异步的。Cornerstone 要求 Image Loaders 返回一个包含 Promise 的对象,Cornerstone 将使用该 Promise 异步接收图像对象,或者如果发生错误则返回错误。

图像加载器工作流程

  1. ImageLoaders 使用 registerImageLoader API 向 Cornerstone 注册自己,以加载特定的 ImageId URL 方案
  2. 应用程序通过 loadImage API 请求加载图像(用于堆栈)或通过 createAndCacheVolume API 请求加载体积图像
  3. Cornerstone 将加载图像的请求委托给已注册的 ImageLoader,该加载器根据图像 Id 的 URL 方案处理请求
  4. ImageLoader 将返回一个 Image Load Object,其中包含一个 Promise,当它获取到像素数据时会解析该 Promise 并返回相应的图像对象。获取像素数据可能需要通过 XMLHttpRequest 调用远程服务器,解压像素数据(例如,从 JPEG 2000 格式解压),并将像素数据转换为 Cornerstone 能够理解的格式(例如,RGB 与 YBR 颜色格式)
  5. 通过解析后的 Promise 返回的 Image Object 然后使用 renderingEngine API 进行显示

注册图像加载器

您可以使用 registerImageLoader 将外部图像加载器提供给 Cornerstone 库。此函数接受一个 scheme,图像加载器函数(第二个参数)应根据该方案进行处理。

可用的图像加载器

图像加载器用途
Cornerstone DICOM 图像加载器DICOM Part 10 图像;支持 WADO-URI 和 WADO-RS;支持多帧 DICOM 实例;支持从 File 对象读取 DICOM 文件
Cornerstone Web 图像加载器PNG 和 JPEG 图像
Cornerstone NIFTI 图像加载器NIFTI 图像

CornerstoneDICOMImageLoader

CornerstoneDICOMImageLoader 是一个 Cornerstone 图像加载器,负责从 WADO 兼容的服务器加载 DICOM 图像。您可以通过以下代码安装并初始化它。在内部,CornerstoneDICOMImageLoader 将其 wado-rswado-uri 图像加载器注册到 Cornerstone3D,并使用 dicomParser 解析元数据和像素数据。

import { init } from '@cornerstonejs/dicom-image-loader';  

init({
maxWebWorkers: navigator.hardwareConcurrency || 1,
});

初始化 CornerstoneDICOMImageLoader 后,任何使用 wado-uri 方案的 ImageId 都将通过 CornerstoneDICOMImageLoaderwado-uri 图像加载器和元数据提供程序进行加载(例如,imageId = 'wado-uri: https://exampleServer.com/wadoURIEndPoint?requestType=WADO&studyUID=1.2.3&seriesUID=4.5.6&objectUID=7.8.9&contentType=application%2Fdicom')。同样,`wado-rs` 图像 Id 也将使用 CornerstoneDICOMImageLoaderwado-rs 图像加载器和元数据提供程序进行加载(例如,imageId = 'wado-rs: https://exampleServer.com/wadoRSEndPoint/studies/1.2.3/series/4.5.6/instances/7.8.9/frames/1')。

CornerstoneWebImageLoader

您可以在 这里 查看我们为 CornerstoneWebImageLoader 提供的示例代码 。