Versions Compared

Key

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

DCM4CHEE 2.

...

17.

...

1 Installation Instructions

Version 2.1417.2 1 is the latest version of the archive. It is recommended that you install this version and not an older version because of improvements and bug fixes.

...

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-xxx-2.13.x/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 httpshttp://jai-imageio.devdownload.java.net/media/binaryjai-imageio/builds.html/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:

Installation Procedure:

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

...

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-psql-2.1417.21-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.

...

Download the binary distribution of JBoss 4.2.3.GA from their website and extract it into a different directory.
Don't use JBoss 5, because it is completely re-architected and is significantly different than the 4.2 line of JBoss!

Use neither JBoss 5 nor JBoss 6, because it is completely re-architected and is significantly different than the 4.2 line of JBoss!

If you want to use JDK 5, don't download JBoss for JDK 6 (jboss-4.2.3.GA-jdk6.zip) - use jboss-4.2.3.GA.zip!

dcm4chee requires Java Development Kit (JDK) and not just the Java Runtime Environment (JRE).

3. Copy files from JBoss to dcm4chee:

Dcm4chee consists of components that run within the JBoss application server platform. This step will copy the JBoss runtime files to the dcm4chee directory.

Move Go to the dcm4chee-xxx-2.1417.21-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-psql-2.1417.21-psql\bin>install_jboss.bat c:\apps\jboss-4.2.3.GA

...

5. Deploy the Audit Record

...

Repository (ARR)

Starting with dcm4chee-2.12.0, the binary distribution package of the archive application does NOT include the dcm4chee Audit Record Repository (ARR) anymore. The ARR maintains an audit log of all transactions within the archive. This is necessary for HIPAA and IHE. Some dcm4chee deployment scenarios call for the deployment of the ARR in a standalone fashion because it acts as an ARR for more than one dcm4chee instance, or multiple applications which can take advantage of an external ARR. Commonly though it is deployed within the dcm4chee archive itself. If you are not running the ARR in a standalone fashion, you must do the following:

...

the

...

dcm4chee archive itself. If you are not running the ARR in a standalone fashion, you must do the following:

  1. Download the dcm4chee Audit Record Repository 3.0.11 (dcm4chee-arr-3.0.11) available at
    http://sourceforge.net/projects/dcm4che/files/dcm4chee-arr/3.0.11/. Be sure to download the distribution package of dcm4chee-arr-3.0.7 installation directory as
    parameter.
  2. If the Audit Record Repository shall use a different database instance than the archive to store received Audit Records, create the audit record repository database instance: arrdb, and grant sufficient privileges to the DB user, configured in the datasource descriptor arr-xxx-ds.xml. Optionally, you may also initialize the database using create DDL script dcm4chee-arr-xxx-3.0.7/sql/dcm4chee-arr-xxx.ddl. Otherwise, the database will be initialized automatically at first startup of the application.
  3. If the Audit Record Repository shall share the database instance already used by the archive, you have to modify database name - but NOT the JNDI name! -, user and password in the datasource descriptor arr-xxx-ds.xml, to match with the values specified in the datasource descriptor pacs-xxx-ds.xml for the
    archive database. Optionally, you may update the database with dcm4chee-arr specific tables using modified create DDL script dcm4chee-arr-xxx-3.0.7/sql/dcm4chee-arr-xxx.ddl: you have to remove or comment out the creation of already exisiting 'code' table. But missing tables will be also initialized automatically at first startup of the application11 for the database of your choice (likely the same database that you are using for the archive, but it could differ if you wish to store audit records in a completely different database).
  4. Go to the dcm4chee-2.17.1-xxx/bin directory and execute the install_arr.bat or install_arr.sh script, as appropriate for your operating system, with the path of the dcm4chee-arr-3.0.11 installation directory as
    parameter.
    • Because of the growth factor of the audit database, it is recommended to store the records in it's own database. Create the audit record repository database instance: arrdb, and grant sufficient privileges to the DB user (see the datasource descriptor deploy/arr-xxx-ds.xml for user information, typically arr with pw of arr). Also see above links to DB-specific pages for tips.

6. Set environment variable JAVA_HOME to JDK location.

The dcm4chee startup/shutdown scripts depend on the JAVA_HOME environment variable in order to find the Java executables and libraries. For example, if your JDK is installed at "C:\Program Files\Java\jdk1.5.0_22" then that is the path to JAVA_HOME

If you're not sure what an environment variable is, check with your IT staff or review this wikipedia page and/or consult the documentation for your operating system.

...

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

No Format

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

Linux/Unix/OSX: dcm4chee-xxx-2.1217.x1-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

according available RAM and memory requirements of other processes on this node.
E.g.: if only 512 MB RAM are available, you should decrease the default value -Xmx512m to (e.g.) -Xmx300.

...

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, move go to the dcm4chee-xxx-2.1417.21-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-psql-2.1417.21-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-psql-2.1417.21-psql/bin/native

CLASSPATH: /home/gunter/dcm4chee-psql-2.1417.21-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

...

Connect to the Web Interface at http://localhost:8080/dcm4chee-webweb3/ of the archive using any Web Browser (most tested are Mozilla-Firefox and Microsoft Internet Explorer v6.x). You should get the User Login Screen. Login in using default Administrator account 'admin', with password 'admin'.

...

Connect to JBoss's JMX Console at http://localhost:8080/jmx-console/ and login using also the Administrator account 'admin', with password 'admin'.
Follow the link "group=ONLINE_STORAGE,service=FileSystemMgt" to the configuration page for File System Management service under the "dcm4chee.archive" heading.
Invoke the operation addOnlineFileSystemaddRWFileSystem(), with argument dirPath specifying the directory, where the archive shall store received objects/images.

If no Storage File System is configured, the archive will auto-configure dcm4chee-xxx-2.1217.x1-xxx/server/default/archive as Storage File System, when receiving the first object/image.

...

14. Optional: Modify web image cache directories:

The directory directories used for caching generated JPEG representations of archived images requested by Web Access to DICOM Persistent Objects (WADO) can be specified by attribute "CacheRootattributes "CacheDataRootDirectory" and "CacheJournalRootDirectory" in the configuration page for the WADO Service (service=WADOService).
Default Defaults: dcm4chee-2.17.1-xxx/server/default/wadocachedata and dcm4chee-2.1217.x1-xxx/server/default/wadocachewadocachejournal.

The directory used for caching generated PDF representations of archived Structured Report Documents requested by IHE Retrieve Information for Display (RID) Services can be specified by attribute "CacheRoot" in the configuration page for the RID Service (service=RIDService).
Default: dcm4chee-xxx-2.12.x/server/default/ihe_rid_cachemodifying BASE_DIR=docstore/rid/store in file conf/dcm4chee-docstore/dcm4chee-docstore-cfg.xml (this file will not exists before processing the first RID request).

15. Optional: Allow remote access:

Not necessary with version versions 2.1413.26 and newer!

By default, JBoss does not bind to anything except the local address. Use
run -b 0.0.0.0
to allow running generic access.

...

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

No Format

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

Refresh the Web Interface (http://localhost:8080/dcm4chee-webweb3/), which shall now show the the list of received studies. You may need to click the 'binocular' icon to initiate a search.

...

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.0 x DICOM toolkit:

No Format

> dcm4che-2.0.1423/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

...

Switch back to the Study List ("Folder"), mark studies to retrieve using the check box on the right, select "DCMRCV" as send destination in the combo box above and click on the send button left from it.

18. Install as a service:

...

. Install as a service:

Tip
title

If running as a service or daemon on any operating system, you should disable CONSOLE logging as noted here:http://forums.dcm4che.org/jiveforums/thread.jspa?messageID=4787&#4787

After verifying that the archive works, you may want to run it as a service so that it stays running even when you log out. If still running in the console window, you may stop the archive by Ctrl+C in the console you have started it, and

Windows:
  • install it as Windows service executing install it as Windows service executing install_service.bat (see Running dcm4chee PACS as a Windows service or daemon)
  • aditional notes:
    • to adjust maximum allocation of heap memory - you need to edit install_service.bat
    aditional notes:

...