A cornerstone Image Loader for DICOM P10 instances over HTTP. This can be used to integrate cornerstone with WADO-URI servers or any other HTTP based server that returns DICOM P10 instances (e.g. Orthanc or custom servers)
Click here for a live example of this library in use!
You can also see it in action with the cornerstoneDemo application.
Get a packaged source file:
or from bower:
bower install cornerstoneWADOImageLoader
The cornerstoneWADOImageLoader depends on the following external libraries:
All of these libraries should be loaded before the cornerstoneWADOImageLoader.js. See the source code for the example.
The image loader prefix is 'wadouri' (note that the prefix dicomweb is also supported but is deprecated and will eventually be removed). Here are some example imageId's:
absolute url:
wadouri:http://cornerstonetech.org/images/ClearCanvas/USEcho/IM00001
relative url:
wadouri:/images/ClearCanvas/USEcho/IM00001
WADO-URI url:
wadouri:http://localhost:3333/wado?requestType=WADO&studyUID=1.3.6.1.4.1.25403.166563008443.5076.20120418075541.1&seriesUID=1.3.6.1.4.1.25403.166563008443.5076.20120418075541.2&objectUID=1.3.6.1.4.1.25403.166563008443.5076.20120418075557.1&contentType=application%2Fdicom&transferSyntax=1.2.840.10008.1.2.1
Orthanc file endpoint URL:
wadouri:http://localhost:8042/instances/8cce70aa-576ad738-b76cb63f-caedb3c7-2b213aae/file
Note that the web server must support Cross origin resource sharing or the image will fail to load. If you are unable to get CORS enabled on the web server that you are loading DICOM P10 instances from, you can use a reverse proxy. Here is a simple Node.js based http-proxy that adds CORS headers that you might find useful.
- Implements a cornerstone ImageLoader for DICOM P10 Instances via a HTTP get request.
- Can be used with a WADO server
- Can be used with Orthanc's file endpoint
- Can be used with any server that returns DICOM P10 instances via HTTP GET
- Supports many popular transfer syntaxes and photometric interpretations see full list
This project uses grunt to build the software.
NodeJs - click to visit web site for installation instructions.
grunt-cli
npm install -g grunt-cli
bower
npm install -g bower
Update dependencies (after each pull):
npm install
bower install
Running the build:
grunt
Automatically running the build and unit tests after each source change:
grunt watch
- Support images with Pixel Padding?
- Mask out burned in overlays?
- Better cache management for multiframe (may require enhancement in cornerstone)
- Add support for additional transfer syntaxes
- JPEG-LS
- rii-mango for the JPEGLossless decoder
- gSquared for the JPEG lossy decoder, RLE and PALETTE_COLOR support
- jpambrun and pdf.js for the JPEG 2000 decoder
Why is this a separate library from cornerstone?
Mainly to avoid adding a dependency to cornerstone for the DICOM parsing library. While cornerstone is intended to be used to display medical images that are stored in DICOM, cornerstone aims to simplify the use of medical imaging and therefore tries to hide some of the complexity that exists within DICOM. It is also desirable to support display of non DICOM images so a DICOM independent image model makes sense.
Copyright 2015 Chris Hafey [email protected]