# HG changeset patch # User Sebastien Jodogne # Date 1497378914 -7200 # Node ID af1e13dac7e6be5ab9314834942e3c3dd5930240 # Parent 5ffea09f47a32e6bcfd14b5c320c9112c39815ff raw dicom in matlab diff -r 5ffea09f47a3 -r af1e13dac7e6 Sphinx/source/faq/matlab.rst --- a/Sphinx/source/faq/matlab.rst Tue Jun 13 11:22:36 2017 +0200 +++ b/Sphinx/source/faq/matlab.rst Tue Jun 13 20:35:14 2017 +0200 @@ -40,3 +40,44 @@ # Annotate the graph with the patient name and ID tags = loadjson(urlread([ URL '/instances/' instance '/tags?simplify' ])); title([ 'This is a slice from patient ' tags.PatientID ' (' tags.PatientName ')' ]) + + +Opening the raw DICOM file +-------------------------- + +Here is another sample Matlab/Octave script explaining how to download +the raw DICOM file corresponding to one given instance stored in +Orthanc, then decode this DICOM file using Matlab/Octave:: + + SERIES = 'ae164c84-e5bd0366-ba937a6d-65414092-f294d6b6'; + URL = 'http://demo.orthanc-server.com/'; + + # Get information about the instances in this DICOM series + instances = loadjson(urlread([ URL '/series/' SERIES '/instances' ])); + + # Select one slice from the series + instance = instances{1}.ID + + # Download the raw DICOM file and store it as a file named "instance.dcm" + urlwrite([ URL '/instances/' instance '/file' ], 'instance.dcm'); + + if exist('OCTAVE_VERSION', 'builtin') ~= 0 + # If running Octave instead of Matlab, load the "dicom" package from Octave Forge + pkg load image + pkg load dicom + endif + + # Decode the downloaded DICOM file + im = dicomread('instance.dcm'); + imagesc(im) + +.. highlight:: bash + +**Note:** If running Octave, you will have to manually install the +`dicom package from Octave Forge +`__. Download the +source code of the package, make sure the ``libgdcm2-dev`` and +``octave-image`` packages are installed (for Ubuntu 16.04), then type +the following command to install the ``dicom`` package:: + + $ octave --no-gui --eval "pkg install ./dicom-0.2.0.tar.gz"