You will find the same documentation in the doc
directory of your dcm4chee distribution (version 2.12 and above).
JDK 5 or higher
512 MB RAM
200 MB hard disk space (additional to archive storage disk space)
400 MHz CPU
Supported Databases:
PostgreSQL 8.1+
MySQL 4.1+
Oracle 9i/10g
SQL Server
DB2 8.1+
Hypersonic SQL (Embedded in JBoss AS) - not suitable for production use!
$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
Use the database of your choice. Avoid using a directory that has a name that contains spaces as installation directory.
You can download from here and extract it into a different directory.
Move to the dcm4chee-xxx-2.13.x/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 parameter.
if not already done. You also have to copy an apropriate JDBC Driver for the Database to dcm4chee-xxx-2.13.x/server/default/lib/ - except for MySQL and PostgreSQL, which binary distribution packages of dcm4chee already contains a JDBC driver. Also ensure, that DB access via TCP/IP socket is enabled.
E.g. PostgresSQL:
$PGDATA/pg_hba.conf:
pacsdb using create DDL script
dcm4chee-xxx-2.12.x/sql/create.xxx.
E.g.: PostgreSQL
> export PGUSER=postgres
> createdb pacsdb
> psql pacsdb -f dcm4chee-psql-2.12.x/sql/create.psql
E.g.: MySQL
> mysql -uroot
mysql> create database pacsdb;
mysql> grant all on pacsdb.* to 'pacs'@'localhost' identified by 'pacs';
mysql> flush privileges;
mysql> \q
> mysql -upacs -ppacs pacsdb < dcm4chee-mysql-2.13.x/sql/create.mysql
Configure host, port, DB name, user and password of the archive:
dcm4chee-xxx-2.13.x/server/default/deploy/pacs-xxx-ds.xml
according your Database configuration.
For example, in Windows see the file dcm4chee-xxx-2.13.x/bin/run.bat:
rem Sun JVM memory allocation pool parameters. Modify as appropriate. set JAVA_OPTS=%JAVA_OPTS% \-Xms128m \-Xmx512m Linux/Unix: dcm4chee-xxx-2.12.x/bin/run.conf # Specify options to pass to the Java VM. if \[ "x$JAVA_OPTS" = "x" \]; then JAVA_OPTS="-Xms128m \-Xmx512m .. 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.
8a. Mac OSX and Windows x64 specific changes for RID/WADO service:
Please edit the following files and change
com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageWriter to
com.sun.image.codec.jpeg.JPEGImageEncoder for the ImageWriterClass
:
$DCM4CHEE_HOME/server/default/conf/xmdesc/dcm4chee-rid-xmbean.xml: @@ -124,7 +124,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> |
and
$DCM4CHEE_HOME/server/default/conf/xmdesc/dcm4chee-wado-xmbean.xml: @@ -128,7 +128,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 to the dcm4chee-xxx-2.13.x/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:
========================================================================= JBoss Bootstrap Environment JBOSS_HOME: /home/gunter/dcm4chee-psql-2.13.0 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 -Dapp.pid=8593 -Djava.net.preferIPv4Stack=true -Djava.library.path=/home/gunter/dcm4chee-psql-2.12.0/bin/native CLASSPATH: /home/gunter/dcm4chee-psql-2.13.0/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.1.GA (build: SVNTag=JBoss_4_2_1_GA date=200707131605) : 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.1.GA (build: SVNTag=JBoss_4_2_1_GA date=200707131605)] Started in 1m:57s:103ms |
Connect to the Web Interface at http://localhost:8080/dcm4chee-web/ 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 "service=FileSystemMgt" to the configuration page for File System Management service under the "dcm4chee.archive" heading.
Invoke the operation addOnlineFileSystem(), 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.12.x/server/default/archive as Storage File System, when receiving the first object/image.
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 "service=FileSystemMgt" to the configuration page for File System Management service under the "dcm4chee.archive" heading.
Invoke the operation updateRetrieveAETitle with the new AE Title as parameter.
This will update the following configurations:
At default configuration, received images are stored as received - in particular, no compression is performed. Lossless compression of received uncompressed images can be activated by attribute "CompressionRules" in the configuration page for the Storage SCP Service (service=StoreScp). E.g. set it to "JLSL", to compress all type of images received from any Storage SCU using JPEG-LS Lossless codec.
The directory used for caching generated JPEG representations of archived images requested by Web Access to DICOM Persistent Objects (WADO) can be specified by attribute "CacheRoot" in the configuration page for the WADO Service (service=WADOService).
Default: dcm4chee-xxx-2.12.x/server/default/wadocache.
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_cache.
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 core package available at Sourceforge here. E.g:
> dcm4che-2.0.11/bin/dcmsnd DCM4CHEE@localhost:11112 ~/mesa/storage/modality/MR
Refresh the Web Interface (http://localhost:8080/dcm4chee-web/), which shall now show the the list of received studies.
Expand one study row to show contained series. Expand one of these series to show contained instances. In the case of images, you can follow the image icon on the right, to invoke a http WADO request for a JPEG presentation of this image, which will be displayed in a separate browser window.
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 core:
> dcm4che-2.0.11/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
You also need to configure an additional Application Entity Title identifying this Move Destination using "AE Management" function of the Web Interface.
E.g. new AET
AE Title: DCMRCV
Hostname: localhost
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.
If that works, you may stop the archive by Ctrl+C in the console you have started it, and
Windows: install it as Windows service executing install_service.bat
or
Redhat Linux: copy the init script dcm4chee_init_redhat.sh to /etc/init.d/ and adjust it according your installation location of the archive and the JDK and under which user the archive application shall run.
Starting with dcm4chee-2.12.0, the binary distribution package of the archive application does NOT longer include dcm4chee Audit Record Repository 2.x (dcm4chee-arr-2.x).
There are now separate binary distribution packages for dcm4chee Audit Record Repository 3.0.x (dcm4chee-arr-3.0.x) available here.
You may deploy dcm4chee-arr-3.0.x in the same JBoss instance as dcm4chee archive:
for the database of your choice for storage of audit records. - It may differ
from the database used for dcm4chee archive.
from directory dcm4chee-arr-xxx-3.0.x/server/default/deploy/ to dcm4chee-xxx-2.12.x/server/default/deploy/.
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.x/sql/dcm4chee-arr-xxx.ddl. Otherwise, the database will be initialized automatically at first startup of the application.
you have to modify database 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.x/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 application.
<depends>dcm4chee.arr:service=UDPListener</depends>
in dcm4chee-xxx-2.12.x/server/default/deploy/dcm4chee-auditlog-service.xml
to ensure that archive services are started, AFTER the Audit Record Repository is ready to receive Audit Messages.
Audit Records received by dcm4chee-arr-2.x and stored in database table 'audit_record_old' can be migrated to dcm4chee-arr-3.x by re-emission to the new Audit Record Repository by service 'MigrateOldARR':
at http://localhost:8080/jmx-console/ and login using the Administrator account 'admin', with password 'admin'.
Follow the link "service=MigrateOldARR" under the "dcm4chee.archive" heading.
Invoke the operation emitAuditRecords(), with argument num=1, to test the
migration on the first Audit Record in table audit_record_old.
Check in the Audit Record Repository Web Application (http://localhost:8080/dcm4chee-arr) if the record is now stored by dcm4chee-arr-3.x.
SELECT count ( * ) FROM audit_record_old
using any SQL client of your database.
Estimate the migration time for all Audit Records by configured
EmissionInterval x count.
If the estimated time exeeds several hours, you may consider - to split the migration in chunks of records, and/or - decrease the configured EmissionInterval from default 100 ms (but which will increase the load for the Database during the task is running)
with argument num set to the maximal number of audit records to migrate/emit by this operation, until no further record will be migrated/emited (=value of attribute LastEmittedPk matches the last record received by dcm4chee-arr 2.x.).