Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PostgreSQL 8.1+
MySQL 4.1+
Oracle 9i+
SQL Server 2000+
DB2 8.1+
Firebird 2.1+
Hypersonic SQL (Embedded in JBoss AS) - not suitable for production use!

Security Notes

See how to limit the server access.

Compression Notes

For image compression/decompression, dcm4chee utilizes Sun's Java Advanced Imaging Image I/O Tools 1.1.

  • The binary distribution packages of dcm4chee already includes necessary JARs and native libraries for Windows and Linux i586.
  • For Linux-amd64, and Solaris, you have to download the SW package from Sun here yourself and replace the Linux version of libclib here is the latest Linux binaries (download it and rename to libclib_jiio.so) and replace the old libclib_jiio.so in dcm4chee-2.17.1-xxx/bin/native from the JAI Image IO package for Linux-amd64 or Solaris.
  • If you have already installed (or are installing) the JAI Image IO distribution from http://download.java.net/media/jai-imageio/builds/release/1.1/ separate from dcm4chee in a standalone or classpath fashion, you should remove the following files, or potentially suffer from version conflicts:
    • $DCM4CHEE_HOME/server/default/lib/jai_imageio.jar
    • $DCM4CHEE_HOME/server/default/lib/clibwrapper_jiio.jar
    • $DCM4CHEE_HOME/bin/native/clib_jiio.dll
    • $DCM4CHEE_HOME/bin/native/clib_jiio_sse2.dll
    • $DCM4CHEE_HOME/bin/native/clib_jiio_util.dll
    • $DCM4CHEE_HOME/bin/native/libclib_jiio.so
  • For Mac OSX and 64 bit Java on Windows there is no free, native Image I/O implementation available. Because of the missing implementations you have to change a file in dcm4chee if you want to have the WADO service running. Please have a look at step 8 to see how to change the file (or modify the settings via the JMX console). See also:You can run on 64-bit Windows, you just need to use the 32-bit JDK
  • FYI - You can run on 64-bit Windows, you just need to use the 32-bit JDK! In that case you do not need to do the above steps of changing the WADO service.
Additional notes from Nicolas Roduit:

I want to clarify the big misunderstanding about the Java imageio library included in dcm4chee and Weasis. I understand that the compression issue with imageio is confusing.

The imageio lib is used for reading and writing the different image formats (image compression). It contains a pure java part (jai_imageio.jar) and a native part (set in $DCM4CHEE_HOME/bin/native/). The native part only exist for the following operating systems:

  • Windows 32-bit
  • Linux x86 32 and 64-bit
  • Solaris (all processors)

Thanks to Sun and Oracle for this limitation, but that's not all, some encoders and decoders are exclusively available in the native part. That means NOT available in the pure java part. Here are these TSUIDs:

  • 1.2.840.10008.1.2.4.51 JPEG Extended (Process 2 & 4): Default Transfer Syntax for Lossy JPEG 12 Bit Image Compression (Process 4 only)
  • 1.2.840.10008.1.2.4.57 JPEG Lossless, Non-Hierarchical (Process 14)
  • 1.2.840.10008.1.2.4.70 JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 Selection Value 1): Default Transfer Syntax for Lossless JPEG Image Compression
  • 1.2.840.10008.1.2.4.80 JPEG-LS Lossless Image Compression
  • 1.2.840.10008.1.2.4.81 JPEG-LS Lossy (Near-Lossless) Image Compression

And some codecs exist in the pure Java library but have a different implementation in the native library (the native implementation is used by default when available):

  • 1.2.840.10008.1.2.4.50 JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression
  • 1.2.840.10008.1.2.4.90 JPEG 2000 Image Compression (Lossless Only)
  • 1.2.840.10008.1.2.4.91 JPEG 2000 Image Compression

About dcm4chee
That's why it is recommended to install dcm4chee on Linux, Solaris or Windows (also with windows 64-bit but only with a 32-bit Java Runtime). Otherwise, the dcm4chee services won't be able to compress or uncompress some DICOM files. One of the mandatory requirement (WADO spec) of a WADO service is to uncompress any DICOM file. The latter requirement cannot be totally fulfilled if you install dcm4chee on OS X.
We provide on the Osirix website this document which recommends to install dcm4chee on Linux and to use the jpeg2000 compression (if you want to compress all the images stored in dcm4chee).

About Weasis
In the table of Platform Compatibility of DICOM Transfer Syntax you can see the compatibility related to the list above. This compatibility is true ONLY when Weasis loads files from a local storage (not WADO). When downloading images with the WADO service of dcm4chee that contain native imageio library, ALL the images can be read on ALL operating systems, because Weasis (in recent version) is able to request the WADO server for an uncompressed syntax (see WEA-73) when the syntax is not supported by the operating system running Weasis.

Installation Procedure:

1. Download and extract the binary distribution package of dcm4chee:

Download the latest version of dcm4chee that is relevant to the database of your choice from the dcm4che Sourceforge site . Extract the package (e.g. dcm4chee-2.17.1-psql.zip for the PostgreSQL version). When extracting, avoid using a directory that has a name that contains spaces in order to avoid issues with running command line applications with spaces in the path name.

...

Go to the dcm4chee-2.17.1-xxx/bin directory and execute the install_jboss.bat or install_jboss.sh script, as appropriate for your operating system, with the path of your JBoss AS installation directory as a parameter.

For example:

No Format

C:\apps\dcm4chee-2.17.1-psql\bin>install_jboss.bat c:\apps\jboss-4.2.3.GA

...

For example, in Windows see the file dcm4chee-2.17.1-xxx/bin/run.bat:

No Format

rem Sun JVM memory allocation pool parameters. Modify as appropriate.
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -XX:MaxPermSize=128m

Linux/Unix/OSX: dcm4chee-2.17.1-xxx/bin/run.conf

No Format

# Specify options to pass to the Java VM.
if [ "x$JAVA_OPTS" = "x" ]; then
JAVA_OPTS="-Xms128m -Xmx512m -XX:MaxPermSize=128m ..
fi

...

Change com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageWriter to
com.sun.image.codec.jpeg.JPEGImageEncoder for the ImageWriterClass:

No Format

$DCM4CHEE_HOME/server/default/conf/xmdesc/dcm4chee-wado-xmbean.xml:
@@ -122,7 +122,7 @@
<name>ImageWriterClass</name>
<type>java.lang.String</type>
<descriptors>
- <value value="com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageWriter" />
+ <value value="com.sun.image.codec.jpeg.JPEGImageEncoder" />
</descriptors>
</attribute>

...

To test your installation, go to the dcm4chee-2.17.1-xxx/bin directory and execute the run.bat or run.sh script, as appropriate for your operating system. Your output should look like the following and contain no error or exception messages:

No Format

=========================================================================

JBoss Bootstrap Environment

JBOSS_HOME: /home/gunter/dcm4chee-2.17.1-psql

JAVA: /usr/lib/j2sdk1.5-sun/bin/java

JAVA_OPTS: -Dprogram.name=run.sh -server -Xms128m -Xmx512m
-Dsun.rmi.dgc.client.gcInterval=3600000
-Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.awt.headless=true
-Dapp.name=dcm4chee -Djava.net.preferIPv4Stack=true
-Djava.library.path=/home/gunter/dcm4chee-2.17.1-psql/bin/native

CLASSPATH: /home/gunter/dcm4chee-2.17.1-psql/bin/run.jar:
/usr/lib/j2sdk1.5-sun/lib/tools.jar

=========================================================================

23:17:52,373 INFO [Server] Starting JBoss (MX MicroKernel)...
23:17:52,374 INFO [Server] Release ID: JBoss [Trinity] 4.2.3.GA (build:
SVNTag=JBoss_4_2_3_GA date=200807181439)
:
23:19:49,580 INFO [AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009
23:19:49,632 INFO [Server] JBoss (MX MicroKernel) [4.2.3.GA (build:
SVNTag=JBoss_4_2_3_GA date=200807181439)] Started in 1m:57s:103ms

...

Send some object/images to the archive's Storage SCP, e.g. by using the send utility of the dcm4che 2.x (dicom toolkit) core package available at Sourceforge here. E.g:

No Format

> dcm4che-2.0.23/bin/dcmsnd DCM4CHEE@localhost:11112 ~/mesa/storage/modality/MR

...

To test object retrieval, you need an external Storage SCP acting as Move Destination, e.g. by using the receiver utility of the dcm4che 2.x DICOM toolkit:

No Format

> dcm4che-2.0.23/bin/dcmrcv 11113
13:55:14,782 INFO - Start listening on 0.0.0.0/0.0.0.0:11113
Start Server listening on port 11113

...