Installation Dcm4che - Dcm4chee-Arc-Light Wiki GitHub
Installation Dcm4che - Dcm4chee-Arc-Light Wiki GitHub
Installation Dcm4che - Dcm4chee-Arc-Light Wiki GitHub
Every project on GitHub comes with a version-controlled wiki to give your documentation the high level of care it deserves. It’s easy to
create well-maintained, Markdown or rich text documentation alongside your code.
Installation
Jump to bottom
Requirements
Download and extract binary distribution package
Initialize Database
H2
PostgreSQL
MySQL and MariaDB
Firebird
DB2
Oracle
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 1/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
MS SQL Server
Setup LDAP Server
OpenLDAP
OpenLDAP with slapd.conf configuration file
OpenLDAP with dynamic runtime configuration
OpenDJ
Apache DS 2.0.0
Import default configuration into LDAP Server
Setup WildFly
Requirements
Java SE 8 or later - tested with OpenJDK and Oracle JDK
Wildfly 18.0.0 - archive version (5.16.1 or higher) can be run with Wildfly version 14 onwards!
Supported SQL Database:
H2 embedded in Wildfly (Not for production use!)
PostgreSQL 10.4
MariaDB 10.0
MySQL 5.7.9
Firebird 2.5.4
Oracle 11g
DB2 10.5
MS SQL Server (not yet tested!)
Supported LDAP Servers:
OpenLDAP 2.4.45
OpenDJ 2.6.0
Apache DS 2.0.0-M20
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 2/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
For PostgreSQL, MySQL and Oracle, there are also versions provided, with Secure Archive UI and RESTful Services using
Keycloak.
Initialize Database
Note: DCM4CHEE Archive 5.x does not provide SQL scripts and utilities to migrate DCM4CHEE Archive 2.x data base schema to
DCM4CHEE Archive 5.x.
H2
There is no need to initialize the database before starting Wildfly. But one will need to create tables and indexes using H2
Console before deploying the archive.
PostgreSQL
1. Create user with permission to create databases:
2. Create database:
Firebird
1. Create user
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 4/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
<database-name> = <database-file-path>
> isql-fb
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database 'localhost:<database-name>' pagesize 16384
CON> user '<user-name>' password '<user-password>';
SQL> in DCM4CHEE_ARC/sql/create-firebird.sql;
SQL> exit;
DB2
1. Create database and grant authority to create tables to user (must match existing OS user)
> su <user-name>
Password: <user-password>
> db2 connect to <database-name>
> db2 -t < $DCM4CHEE_ARC/sql/create-db2.sql
> db2 -t < $DCM4CHEE_ARC/sql/create-fk-index.sql
> db2 terminate
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 5/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
Oracle
1. Connect to Oracle and create a new tablespace
$ sqlplus / as sysdba
SQL> create bigfile tablespace <tablespace-name> datafile '<data-file-location>' size <size>;
Tablespace created.
$ sqlplus / as sysdba
SQL> create user <user-name>
2 identified by <user-password>
3 default tabelspace <tablespace-name>
4 quota unlimited on <tablespace-name>
5 quota 50M on system;
User created.
$ sqlplus <user-name>/<user-password>
SQL> @$DCM4CHEE_ARC/sql/create-oracle.sql
SQL> @$DCM4CHEE_ARC/sql/create-fk-index.sql
SQL> @$DCM4CHEE_ARC/sql/create-case-insensitive-index.sql
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 6/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
MS SQL Server
Not yet tested
OpenLDAP
OpenLDAP binary distributions are available for most Linux distributions and for Windows.
1. Copy LDAP schema files for OpenLDAP from DCM4CHEE Archive distribution to OpenLDAP schema configuration directory:
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/dicom.schema
include /etc/openldap/schema/dcm4che.schema
include /etc/openldap/schema/dcm4chee-archive.schema
include /etc/openldap/schema/dcm4chee-archive-ui.schema
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 7/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
suffix "dc=nodomain"
rootdn "cn=admin,dc=nodomain"
rootpw secret
suffix "dc=dcm4che,dc=org"
rootdn "cn=admin,dc=dcm4che,dc=org"
rootpw secret
1. Import LDAP schema files for OpenLDAP runtime configuration, using OpenLDAP CL utility ldapadd, e.g.:
2. Directory Base DN and Root User DN can be modified by changing the values of attributes
olcSuffix: dc=nodomain
olcRootDN: cn=admin,dc=nodomain
olcRootPW
of object olcDatabase={1}hdb,cn=config by specifying the new values in a LDIF file (e.g. modify-baseDN.ldif )
dn: olcDatabase={1}hdb,cn=config
changetype: modify
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 8/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
replace: olcSuffix
olcSuffix: dc=dcm4che,dc=org
-
replace: olcRootDN
olcRootDN: cn=admin,dc=dcm4che,dc=org
-
replace: olcRootPW
olcRootPW: <{SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
-
Note: In order to execute the commands on CentOS7 use dn: olcDatabase={2}hdb,cn=config instead of dn: olcDatabase=
{1}hdb,cn=config.
After that you have to create the top element of the directory tree (dc=dcm4che,dc=org) and the object for the LDAP
administrator account (cn=admin,dc=dcm4che,dc=org).
dn: dc=dcm4che,dc=org
changetype: add
objectClass: top
objectClass: dcObject
objectClass: organization
o: Example Organisation name
dc: dcm4che
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 9/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
dn: cn=admin,dc=dcm4che,dc=org
changetype: add
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:
To create these objects, you have to use the databases root account and to enter your LDAP admin password as specified
during installation
OpenDJ
1. Copy LDAP schema files for OpenDJ from DCM4CHEE Archive distribution to OpenDJ schema configuration directory:
> $OPENDJ_HOME/setup
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 10/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
> $OPENDJ_HOME/bin/start-ds
> $OPENDJ_HOME/bin/stopt-ds
Apache DS 2.0.0
1. Install Apache DS 2.0.0-M20 on the system and start Apache DS.
2. Install Apache Directory Studio 2.0.0-M9 and create a new LDAP Connection with:
Network Parameter:
Hostname: localhost
Port: 10389
Authentication Parameter:
Bind DN or user: uid=admin,ou=system
Bind password: secret
$DCM4CHEE_ARC/ldap/apacheds/dicom.ldif
$DCM4CHEE_ARC/ldap/apacheds/dcm4che.ldif
$DCM4CHEE_ARC/ldap/apacheds/dcm4chee-archive.ldif
$DCM4CHEE_ARC/ldap/apacheds/dcm4chee-archive-ui.ldif
using the LDIF import function of Apache Directory Studio LDAP Browser.
4. One may modify the default Directory Base DN dc=example,dc=com by changing the value of attribute
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 11/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
ads-partitionsuffix: dc=dcm4che,dc=org`
of object
ou=config
+ ads-directoryServiceId=default
+ ou=partitions
ads-partitionId=example
to ads-partitionId=dcm4che
Note : One may need to restart the Apache DS service to effect the above changes.
Network Parameter:
Hostname: localhost
Port: 389
Authentication Parameter:
Bind DN or user: cn=admin,dc=dcm4che,dc=org
Bind password: secret
Browser Options:
Base DN: dc=dcm4che,dc=org
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 12/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
2. If one configured a different Directory Base DN than dc=dcm4che,dc=org , one has to replace all occurrences of
dc=dcm4che,dc=org in LDIF files
$DCM4CHEE_ARC/ldap/init-baseDN.ldif
$DCM4CHEE_ARC/ldap/init-config.ldif
$DCM4CHEE_ARC/ldap/default-config.ldif
$DCM4CHEE_ARC/ldap/default-ui-config.ldif
$DCM4CHEE_ARC/ldap/add-vendor-data.ldif
> cd $DCM4CHEE_ARC/ldap
> sed -i s/dc=dcm4che,dc=org/dc=my-domain,dc=com/ init-baseDN.ldif
> sed -i s/dc=dcm4che,dc=org/dc=my-domain,dc=com/ init-config.ldif
> sed -i s/dc=dcm4che,dc=org/dc=my-domain,dc=com/ default-config.ldif
> sed -i s/dc=dcm4che,dc=org/dc=my-domain,dc=com/ default-ui-config.ldif
> sed -i s/dc=dcm4che,dc=org/dc=my-domain,dc=com/ add-vendor-data.ldif
3. If there is not already a base entry in the directory data base, import $DCM4CHEE_ARC/ldap/init-baseDN.ldif using the LDIF
import function of Apache Directory Studio LDAP Browser.
4. If there are not already DICOM configuration root entries in the directory data base, import $DCM4CHEE_ARC/ldap/init-
config.ldif using the LDIF import function of Apache Directory Studio LDAP Browser.
5. Import
$DCM4CHEE_ARC/ldap/default-config.ldif
$DCM4CHEE_ARC/ldap/default-ui-config.ldif
using the LDIF import function of Apache Directory Studio LDAP Browser.
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 13/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
6. On dcm4chee-arc device level, one may add new attribute dicomVendorData using the New Attribute function (or
Ctrl+Shift++) of Apache Directory Studio and in its value one can load the data - $DCM4CHEE_ARC/ldap/add-vendor-
data.ldif which imports $DCM4CHEE_ARC/ldap/dcm4chee-arc-conf-data-<version>.zip . This zip file contains XSLT
stylesheets specifing attribute coercion in incoming or outgoing DICOM messages and mapping of HL7 fields in incoming
HL7 messages.
7. One may change the default AE Title(s) of the Archive: AS_RECEIVED , DCM4CHEE , IOCM_REGULAR_USE , IOCM_EXPIRED ,
IOCM_QUALITY , IOCM_PAT_SAFETY and IOCM_WRONG_MWL .
9. One may configure AE Title(s) of external DICOM Applications to which the Archive shall be able to connect.
10. One may change the default Web Application(s): AS_RECEIVED , AS_RECEIVED-WADO , DCM4CHEE , DCM4CHEE-WADO ,
IOCM_REGULAR_USE , IOCM_REGULAR_USE-WADO , IOCM_EXPIRED , IOCM_EXPIRED-WADO , IOCM_QUALITY , IOCM_QUALITY-WADO ,
IOCM_PAT_SAFETY , IOCM_PAT_SAFETY-WADO , IOCM_WRONG_MWL , IOCM_WRONG_MWL-WADO and dcm4chee-arc .
11. Version 5.19.1 onwards, the new Study page uses Web Applications also for querying the own archive. In default
configuration, the Web Applications uses http and https connection references which are configured with hostname as
localhost by default. If one is accessing the archive UI from a browser which is not on the same host as that of archive,
then one needs to change the hostname of these connections from localhost to actual hostname or IP address where the
archive is running.
Setup WildFly
NOTE : Below configurations for Widlfy can be done only with archive versions 5.16.1 onwards. QueryDSL JBoss module is no
longer supported.
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 14/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
Note: Beside LDAP Connection configuration dcm4chee-arc/ldap.properties , the private key dcm4chee-arc/key.jks used
in TLS connections are not stored in LDAP. Ensure that one's LDAP specific values are present in the file dcm4chee-
arc/ldap.properties .
2. The Jakarta Full Platform certified configuration can be used as base configuration. To preserve the original WildFly
configuration one may copy the original configuration file for Jakarta Full Platform Profile:
> cd $WILDFLY_HOME/standalone/configuration/
> cp standalone-full.xml dcm4chee-arc.xml
> cd $WILDFLY_HOME
> unzip $DCM4CHEE_ARC/jboss-modules/dcm4che-jboss-modules-5.x.x.zip
4. Install JAI Image IO 1.2 libraries as JBoss module (needed for compression/decompression, does not work on Windows 64
bit and Mac OS X caused by missing native components for these platforms):
> cd $WILDFLY_HOME
> unzip $DCM4CHEE_ARC/jboss-modules/jai_imageio-jboss-modules-1.2-pre-dr-b04.zip
> cd $WILDFLY_HOME
> unzip $DCM4CHEE_ARC/jboss-modules/jclouds-jboss-modules-2.2.0-noguava.zip
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 15/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
> cd $WILDFLY_HOME
> unzip $DCM4CHEE_ARC/jboss-modules/ecs-object-client-jboss-modules-3.0.0.zip
7. Except for H2, one has to install the JDBC Driver for the database.
For installation as a core module extract the corresponding ZIP file into $WILDFLY_HOME, e.g.:
> cd $WILDFLY_HOME
> unzip $DCM4CHEE_ARC/jboss-modules/jdbc-jboss-modules-mysql-8.0.18.zip
Installation as deployment is limited to JDBC 4-compliant driver consisting of one JAR. You may either take the JDBC driver
JAR from included core module ZIP, or download it from:
MySQL
PostgreSQL
Firebird
DB2
Oracle
Microsoft SQL Server
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 16/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
=========================================================================
JBOSS_HOME: /home/work/wildfly-18.0.0.Final
JAVA: java
=========================================================================
Running JBoss in domain mode should work, but was not yet tested.
9. If you installed the JDBC Driver as a core module in step 7, you have to add it into the server configuration using JBoss CLI
in a new console window:
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 17/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
One may choose any <driver-name> for the JDBC Driver, <module-name> must match the name defined in the module
definition file module.xml of the JDBC driver, e.g.:
[standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-
name=com.mysql)
10. Create and enable a new Data Source bound to JNDI name java:/PacsDS using JBoss CLI:
H2: jdbc:h2:<directory-path>/<database-name>
MySQL: jdbc:mysql://<host>:3306/<database-name>
PostgreSQL: jdbc:postgresql://<host>:5432/<database-name>
Firebird: jdbc:firebirdsql:<host>/3050:<database-name>
DB2: jdbc:db2://<host>:50000/<database-name>
Oracle: jdbc:oracle:thin:@<host>:1521:<database-name>
Microsoft SQL Server: jdbc:sqlserver://<host>:1433;databaseName=<database-name>
There is also a CLI script $DCM4CHEE_ARC/cli/add-data-source-<db>.cli provided, which just applies the command to add
the JDBC driver and creating the Data Source. Replace <host> , <database-name> , <user-name> and <user-password> by
their actual values before executing it:
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 18/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
11. If one is using H2 as database, create tables and indexes using the H2 Console:
iii. Access the console at http://localhost:8080/h2console and login with JDBC URL , User name und Password matching
the values passed to above data-source add --name=PacsDS .
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 19/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
There is also a CLI script $DCM4CHEE_ARC/cli/add-jms-queues.cli provided, containing these commands, which one may
just execute:
13. Enable property replacement in deployment descriptors by setting attribute spec-descriptor-property-replacement of the
ee subsystem to true , and adjust the managed-executor-services and the managed-scheduled-executor-service
configuration of the ee subsystem to avoid thread-pool related issues on long running tasks or heavy load using JBoss
CLI - you may configure a larger maximal number of threads than 100 according your needs:
[standalone@localhost:9990 /] /subsystem=ee:write-attribute(name=spec-descriptor-property-
replacement,value=true)
[standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:undefine-attribute(name=hung-task-
threshold)
[standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=long-running-
tasks,value=true)
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 20/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
[standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=core-
threads,value=2)
[standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=max-
threads,value=100)
[standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=queue-
length,value=0)
[standalone@localhost:9990 /] /subsystem=ee/managed-scheduled-executor-service=default:undefine-
attribute(name=hung-task-threshold)
[standalone@localhost:9990 /] /subsystem=ee/managed-scheduled-executor-service=default:write-
attribute(name=long-running-tasks,value=true)
There is also a CLI script $DCM4CHEE_ARC/cli/adjust-managed-executor.cli provided, containing these commands, which
one may execute:
You have to reload the configuration - or restart Wildfly - to make the changes effective:
[standalone@localhost:9990 /] :reload
14. At default, DCM4CHEE Archive 5.x will assume dcm4chee-arc as its Device Name, used to find its configuration in the LDAP
Server. One may specify a different Device Name by system property dcm4chee-arc.DeviceName using JBoss CLI:
[standalone@localhost:9990 /] /system-property=dcm4chee-arc.DeviceName:add(value=<device-name>)
15. At default, the Wildfly supports maximum size of POST requests only as 10MB, one may change this to a higher value as
shown below
[standalone@localhost:9990 /] /subsystem=undertow/server=default-server/http-listener=default:write-
attribute(name=max-post-size,value=10000000000)
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 21/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
[standalone@localhost:9990 /] /subsystem=undertow/server=default-server/https-listener=https:write-
attribute(name=max-post-size,value=10000000000)
You have to reload the configuration - or restart Wildfly - to make the changes effective:
[standalone@localhost:9990 /] :reload
Verify that DCM4CHEE Archive was deployed and started successfully, e.g.:
11:00:38,511 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0027: Starting deployment
of "dcm4chee-arc-ear-5.x-psql.ear" (runtime-name: "dcm4chee-arc-ear-5.x-psql.ear")
:
11:00:42,742 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-1) Start TCP
Listener on /0.0.0.0:11112
11:00:42,811 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-2) Start TCP
Listener on /0.0.0.0:2762
11:00:42,811 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-3) Start TCP
Listener on /0.0.0.0:2575
11:00:42,813 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-4) Start TCP
Listener on /0.0.0.0:12575
11:00:43,095 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 20) WFLYUT0021: Registered
web context: /dcm4chee-arc/xdsi
11:00:43,095 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 20) WFLYUT0021: Registered
web context: /dcm4chee-arc
11:00:43,095 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 23) WFLYUT0021: Registered
web context: /dcm4chee-arc/ui2
11:00:43,157 INFO [org.jboss.as.server] (management-handler-thread - 3) WFLYSRV0010: Deployed "dcm4chee-arc-
ear-5.x-SNAPSHOT-psql.ear" (runtime-name : "dcm4chee-arc-ear-5.x-SNAPSHOT-psql.ear")
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 22/24
1/19/2020 Installation · dcm4che/dcm4chee-arc-light Wiki · GitHub
One may undeploy DCM4CHEE Archive at any time using JBoss CLI, e.g.:
Pages 172
Find a Page…
Home
Access Control
Archive as SCP
Archive UI Testplan
Attribute Coercion
Audit Logger
https://github.com/dcm4che/dcm4chee-arc-light.wiki.git
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 24/24