Building dcm4chee

Build Requirements

In order to build the components of the dcm4chee archive application you will need to download and install:

In addition, you'll need the dcm4chee source code. In order to create the dcm4chee source directories, check out dcm4jboss-all from SVN:

svn co https://dcm4che.svn.sourceforge.net/svnroot/dcm4che/dcm4che14/trunk dcm4che14
svn co https://dcm4che.svn.sourceforge.net/svnroot/dcm4che/dcm4chee/dcm4chee-arr/trunk dcm4chee-arr
svn co https://dcm4che.svn.sourceforge.net/svnroot/dcm4che/dcm4chee/dcm4chee-audit/trunk dcm4chee-audit
svn co https://dcm4che.svn.sourceforge.net/svnroot/dcm4che/dcm4chee/dcm4chee-docstore/tags/DCM4CHEE_XDS_1_0_3 dcm4chee-docstore
svn co https://dcm4che.svn.sourceforge.net/svnroot/dcm4che/dcm4chee/dcm4chee-xds-infoset/tags/DCM4CHEE_XDS_1_0_3 dcm4chee-xds-infoset
svn co https://dcm4che.svn.sourceforge.net/svnroot/dcm4che/dcm4chee/dcm4chee-arc3-entities/trunk dcm4chee-arc3-entities
svn co https://dcm4che.svn.sourceforge.net/svnroot/dcm4che/dcm4chee/dcm4chee-icons/trunk dcm4chee-icons
svn co https://dcm4che.svn.sourceforge.net/svnroot/dcm4che/dcm4chee/dcm4chee-web-common/trunk dcm4chee-web-common
svn co https://dcm4che.svn.sourceforge.net/svnroot/dcm4che/dcm4chee/dcm4chee-dashboard/trunk dcm4chee-dashboard
svn co https://dcm4che.svn.sourceforge.net/svnroot/dcm4che/dcm4chee/dcm4chee-usr/trunk dcm4chee-usr
svn co https://dcm4che.svn.sourceforge.net/svnroot/dcm4che/dcm4chee/dcm4chee-cleanup/trunk dcm4chee-cleanup
svn co https://dcm4che.svn.sourceforge.net/svnroot/dcm4che/dcm4chee/dcm4chee-web/trunk dcm4chee-web
svn co https://dcm4che.svn.sourceforge.net/svnroot/dcm4che/dcm4chee/dcm4chee-arc/trunk dcm4jboss-all

Following instructions are for building binary distribution package for your appropriate database. Replace <database> string by your database name.
Supported <database> arguments:
db2, firebird, hsql, mssql, mysql, oracle, psql

Build Dcm4che14

cd to the dcm4che14 checkout directory
ant
Note: It works with Java 6 and lower only. It doesn't work with Java 7 - for details see http://www.dcm4che.org/jira/browse/DCMOLD-219.

Build Dcm4chee-arr

cd to the dcm4chee-arr checkout directory
mvn install -Ddb=<database>

Build Dcm4chee-audit

cd to the dcm4chee-audit checkout directory
mvn install

Build Dcm4chee-docstore

cd to the dcm4chee-docstore checkout directory
mvn install

Build Dcm4chee-xds-infoset

cd to the dcm4chee-xds-infoset checkout directory
mvn install

Build Dcm4chee-web

(You will need to have 5 following checked out projects at the same folder level like dcm4chee-web: dcm4chee-arc3-entities, dcm4chee-icons, dcm4chee-web-common, dcm4chee-dashboard, dcm4chee-usr.)

cd to the dcm4chee-web checkout directory
mvn -Pall -Ddb=<database> install

Build Instructions

Create an environment variable pointing to the Ant home directory (ANT_HOME) and add the $ANT_HOME/bin directory to your PATH.

The build scripts dcm4jboss-all/dcm4jboss-xxx/build.xml assumes following locations of XDoclet, JBoss, Apache FOP, Jakarta Cactus and dcm4che14 (but check for updated version numbers):

xdoclet.home=${user.home}/xdoclet-1.2.3

jboss.home=${user.home}/jboss-4.2.3.GA

fop.home=${user.home}/fop-0.95

cactus.home=${user.home}/cactus-1.8.1-bin

jsch.home=${user.home}/jsch-0.1.49

jcifs.home=${user.home}/jcifs-1.3.17

castor.home=${user.home}/castor-1.3.1

m2.repos=${user.home}/.m2/repository

dcm4che14.home=${user.home}/dcm4che14/build/dcm4che-1.4.31

docstore-version=1.0.3

infoset-version=1.0.3

3rd Party Dependency Paths

Each of the dcm4chee projects contains a file called build.properties.default in its root directory. These files contain the paths to dependencies to third party libraries that the projects need in order to compile. Copy each build.properties.default file to build.properties in the same directory. Edit these files and put in the necessary path information so that the compilation process can find the dependencies. The build scripts will automatically look for the build.properties files.

Alternatively, you may combine all of the build.properties entries into a single build.properties file in the root dcm4jboss-all directory in order to avoid editing so many files.

Castor is a commercial SDK that that is not readily downloadable. If you are not going to use the Castor HSM module, you will need to remove the code and deployment descriptors for that module before compiling.

TODO:  HSM plugins should be broken up into separate, optional modules. 

 
Change to the working build directory:

cd dcm4jboss-all/dcm4jboss-build

and invoke:

ant <database>-dist

to build all components and pack them in binary distribution package:

target/dcm4chee-%version%-<database>.zip