DCM4CHEE Archive 2

From I Do Imaging
Jump to: navigation, search

Program page DCM4CHEE Archive 2


DCM4CHEE is a big, enterprise-grade image server running under the JBoss J2EE framework, and is intimidating in its complexity (and volume of error messages, in the inevitable event of missteps). But the default installation will run, if not out of the box, then out of several boxes you locate, modify, and assemble in a certain very specific way. Follow the instructions to the letter and you should be rewarded with a commercial-grade installation.


Carefully follow the instructions on dcm4che.org site. The following is a summary of the major steps.

  • Decide on your platform, which will affect which DICOM files you can serve.
    • DCM4CHEE requires the full Java JDK, not just the runtime JRE.
    • Note the points on the about the Java Advanced Imaging (JAI) tools. In short: you need them for many DICOM variants, and they are not available for Macs or 64 bit Windows.
    • If you install JAI, follow the section on removing java (*.jar) and native (*.dll, *.so) files supplied with DCM4CHEE, which may cause version conflicts.
  • Install a database such as MySQL or PostgreSQL.
  • Download the latest version of DCM4CHEE appropriate for your database.
    • Note that currently the link from the dcm4che.org site is to version 2.17.1, which is not the latest version. Look here for the latest version.
  • Download and install JBoss 4.2.3 GA (this exact version)
  • Run the install.jboss script from the dcm4chee/bin directory.
  • Create the necessary database tables by running the script appropriate for your database.
  • Check that your Java version is up to date and whether you have the #JRE_or_JDK|JRE or JDK.
  • Set your #JAVA_HOME|JAVA_HOME environment variable.
  • Run the server! From the dcm4chee/bin directory, execute run.sh or run.bat
    • JBoss is a big environment. Starting will take between 20 seconds and 2 minutes, depending on memory, core count, and disk speed.
    • Any error messages are significant, and may not give a clear indication of the cause. The log file is many hundreds of lines long, so it is easiest to redirect to a log file and search with an editor or grep.
  • Follow the instructions regarding accessing the server.


__Error messages in the output of dcm4che are significant__. Don't ignore them or let them scroll by; the JBoss server may continue to run even if the dcm4chee entity does not run, or runs with errors. Frequently, error messages occur early in the deployment, so it is worth logging the output to a file for analysis. Here's an example of the simple error of running the server with insufficient rights:

# (some lines of output...)
log4j:ERROR setFile(null,false) call failed.
java.io.FileNotFoundException: /usr/local/dcm4chee-2.17.3-mysql/server/default/log/boot.log (Permission denied)
# (100 lines later...)
Failed to boot JBoss:
org.jboss.deployment.DeploymentException: Failed to find META-INF/jboss-service.xml for archive jboss-service.xml

Attempting to debug the later error messages will be futile. The first error message tells the problem: running with insufficient rights.

__Many errors are caused by simple networking problems__. Ensure that the __hosts__ file is correctly updated for the name of the server as defined to DCM4CHEE. As an example, a misconfigured host name (containing an underscore character) produced a startup log file 10,100 lines long:

21:53:13,250 ERROR [JBossConnectionFactory] Failed to download and/or install client side AOP stack
        at org.jboss.jms.client.delegate.DelegateSupport.handleThrowable(DelegateSupport.java:240)
        at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:205)


  • Refer to the installation instructions for full details.
    • The JMX console is for configuring the server attributes, and is at your_url:8080/jmx-console
    • The web interface is for configuring the PACS attributes, and is at your_url:8080/dcm4chee-web3
  • Default configuration:
    • Port:11112
    • AE Title:DCM4CHEE
  • Configure Server AE Title: At the JMX Console, follow dcm4chee.archive -> service=AE. Invoke the updateAETitle method with the current and new AE titles as parameters.
  • Configure Server Port: At the JMX Console, follow dcm4chee.archive -> service=DcmServer. Enter the new port in TCPPort, Apply Changes and restart the server.

Configure Clients: Web interface -> Application Entities -> New AET. You need as minimum enter only the Title (AE Title), Type ('-'), Hostname, and Port.

  • Change Passwords: Once logged in (default account is admin/admin), you can create new users and change the default passwords.


Unable to delete patients through web interface
If you get the error message 'Deletion of selected entities could not be done, because action is not allowed for patients w/o Issuer of Patient ID.', set trustPatientIdWithoutIssuer to *true* in service=WebConfig in the JMX Console Forum question


EESiTV videos on YouTube: DCM4CHEE configuration