Dicom package: Difference between revisions

Jump to navigation Jump to search
1,079 bytes added ,  14 June 2019
Unified layout. Revisit links https.
(merged recent changes)
(Unified layout. Revisit links https.)
(18 intermediate revisions by 8 users not shown)
Line 1: Line 1:
At an early development stage. [http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/extra/dicom/ octave-forge svn]
The {{Forge|dicom}} package is part of the [[Octave Forge]] project.  The package is at an early development stage and it is maintained by Andy Buckle with contributions by Judd Storrs and Kris Thielemans.
*Maintainer: Andy Buckle [http://sourceforge.net/sendmessage.php?touser=1760416contact]
*Currently worked on by: Kris Thielemans


=== What is the aim of this package? ===
== What is the aim of this package? ==
Digital communications in medicine (DICOM) is an information standard. Originally created for image transfer, the standard now deals with an large range of medical data. See http://medical.nema.org/ for more info.
Digital communications in medicine (DICOM) is an information standard. Originally created for image transfer, the standard now deals with an large range of medical data. See http://medical.nema.org/ for more info.


Line 9: Line 7:
the dicom functions in the Matlab Image Processing Toolbox. In Octave they are separate: most image package users will not use dicom, and its dependency might be considered troublesome.
the dicom functions in the Matlab Image Processing Toolbox. In Octave they are separate: most image package users will not use dicom, and its dependency might be considered troublesome.


===Supporting library===
== Platforms ==
[http://sourceforge.net/apps/mediawiki/gdcm/index.php?title=Main_Page GCDM]. You can usually get this via your package manager, e.g. on Ubuntu
 
{{Warning|The information of this section needs be reviewed (June 2019).}}
*Linux. Tested on OpenSuSE 11.4 and Ubuntu. No known issues. GDCM is required: see below.
*mingw
**Ben Lindner's Octave 3.2.4 and the mingw build environment (gcc 4.4.0): dicom package 0.1.1 does not build against this older version of the Octave API.
**Tatsuro/Nitzan's Octave 3.4.3 and mingw build environment (gcc 4.5.2): gdcm and dicom package build OK. Get segfault in ntdll.dll when one of the dicom*.oct files calls something from a gdcm*.dll.
**mxe-octave: dicom and gdcm distributed as part of the installed package.
*Cygwin: Panic when oct file called (or maybe when oct file uses gdcm dll). Need to try rebaseall
 
==Supporting library==
[http://gdcm.sourceforge.net/wiki/index.php/Main_Page GDCM]. You can usually get this via your package manager, e.g. on Ubuntu


  sudo apt-get install libgdcm2.0
  sudo apt-get install libgdcm2.0


Alternatively, build it yourself. Get the source with subversion.
Alternatively, build it yourself. Get the source with git.


  svn co https://gdcm.svn.sourceforge.net/svnroot/gdcm/branches/gdcm-2-0
  git clone https://git.code.sf.net/p/gdcm/gdcm


cmake and g++ are required. create a gdcmbin directory parallel to the gdcm-2-0 directory. Change to gdcmbin and then run cmake (Linux/cygwin).
cmake and g++ are required. create a gdcmbin directory parallel to the gdcm-2-0 directory. Change to gdcmbin and then run cmake (Linux/cygwin).
Line 39: Line 47:
  mingw32-make all
  mingw32-make all


===Features===
On Cygwin gdcm 2.0.18 (and maybe some other versions) may have a problem with newer cmake. This kludge persuades cmake to define WIN32.
 
cmake -DGDCM_BUILD_SHARED_LIBS=ON -DCMAKE_CXX_COMPILER=g++.exe -DCMAKE_LEGACY_CYGWIN_WIN32=1 ../gdcm-2.0.18/
 
==Features==
All of these still need work, but they exist, and are usable to some extent.
All of these still need work, but they exist, and are usable to some extent.
*dicomdict (load different dict - file follows same format as Matlab's)
*dicomdict (load different dict - file follows same format as Matlab's)
Line 45: Line 57:
*dicomlookup (keyword <-> tag)
*dicomlookup (keyword <-> tag)
*dicomread (load pixel data, 2D or 3D int types. Does not yield colormaps, yet.)
*dicomread (load pixel data, 2D or 3D int types. Does not yield colormaps, yet.)
*dicomwrite (write pixel data to a DICOM format file)
*dicomuid (generate a DICOM unique id)
*isdicom (verify if a file is a DICOM formatted file)


===Todo===
==Todo==


*dicomanon
*dicomanon
*dicomuid
*dicomwrite
*isdicom


===Questions===
==Questions==
I don't have a Matlab license available. I would like to make this package compatible with the dicom functions in Matlab's image processing toolbox, as far as possible.
I don't have a Matlab license available. I would like to make this package compatible with the dicom functions in Matlab's image processing toolbox, as far as possible.


Line 68: Line 80:
**silently convert the metadata to match the pixel type?
**silently convert the metadata to match the pixel type?
**error and do nothing?  
**error and do nothing?  
*What does dicominfo do when a tag is not in its dictionary. Answer: assign to a field like Private_3243_0010 (as Matlab)
*dicominfo: Items in sequences are not necessarily the same, so are stored as nested structs like dcm.RTDoseROISequence?.Item_1.DoseUnits?(as Matlab)


[[Category:OctaveForge]]
== Answered ==
[[Category:Packages]]
*dicominfo: Items in sequences are not necessarily the same, so are stored as nested structs like dcm.RTDoseROISequence.Item_1.DoseUnits(as Matlab)
*What does dicominfo do when a tag is not in its dictionary? Answer: assign to a field like Private_3243_0010 (as Matlab)
 
== See also ==
* {{Forge|dicom}} at [[Octave Forge]].
* [https://sourceforge.net/projects/gdcm/ Grassroots DICOM].
 
[[Category:Octave Forge]]

Navigation menu