Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Note
titleThis is an Outdated Version of DCM4CHEE!

The following instructions are only applicable for dcm4chee version 2.11 and prior. See here for the latest version.

Minimum System Requirements and Supporting Software

dcm4chee is a Java-based application for the management of digital clinical objects. As such, it should be run under the best hardware available for production systems. The minimal system configuration is as follows:

...

DCM4CHEE 2.13.x Installation Instructions

You will find the same documentation in the doc directory of your dcm4chee distribution (version 2.12 and above).

Minimum System Requirements

JDK 5 or higher
512 MB RAM
200 MB hard disk space (

...

additional to archive storage disk space

...

)
400 MHz CPU

...

dcm4chee requires a database to store transient and permanent information from the clinical workflow and objects. The authors of dcm4chee realize that database expertise varies from site to site, and has included support for several different databases for deployment with the archive. The list of supported databases is:

...

Supported Databases:

PostgreSQL 8.1+
MySQL 4.1

...

+
Oracle 9i/10g
SQL Server
DB2 8.1+

Additional Software Notes

dcm4chee is a Java-based application. It requires the installation of the Java Development Kit (JDK) version 1.4.2 or higher. JDK version 5 or 6 is recommended for the best performance and stability. Hypersonic SQL (Embedded in JBoss AS) - not suitable for production use!

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_jiio.so in

...

  • dcm4chee-xxx-2.13.x/bin/

...

  • native from the

...

  • JAI Image IO

...

dcm4chee depends heavily on the JBoss (http://www.jboss.org) application server for its infrastructure. It is not necessary to download JBoss (as dcm4chee is pre-packaged with JBoss), but for those wishing to peek under the covers, viewing the online (or downloaded) JBoss documentation will assist you in learning the dcm4chee directory structure, and how the product operates under the covers. JBoss services such as XMBeans (JMX), JBossMQ (JMS), and EJB (Session and Entity beans) are utilized by dcm4chee. JBoss is LGPL licensed open source software.

Installation Steps

Installing dcm4chee is fairly easy:

...

For example, with PostgreSQL you can check the pg_hba.conf file for your database:

No Format

$PGDATA/pg_hba.conf:
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust

...

No Format

C:\>netstat -b -p TCP
Active Connections
  TCP    localhost:1284               host.domain.com:1521     ESTABLISHED     1788
  [ORACLE.EXE]

  TCP    localhost:1521               host.domain.com:1284     ESTABLISHED     1816
  [TNSLSNR.exe]

...

For example, with PostgreSQL on a Unix-based system:

No Format

> export PGUSER=postgres
> createdb pacsdb
> psql pacsdb \-f DCM4CHEE_DIST/sql/create.psql

To initialize a MySQL database on a Unix-based system:

No Format

> mysql \-uroot
mysql> create database pacsdb;
mysql> grant all on pacsdb.\* to 'pacs'@'localhost' identified by 'pacs';
mysql> \q
> mysql \-upacs \-ppacs < DCM4CHEE_DIST/sql/create.mysql
Tip
titleDDL Tuning

If you wish to take advantage of specific features of your RDBMS such as tablespaces, partitioning, etc. you will need to implement them on your own. This can sometimes be done with the tools that come with the database, or by modifying the DDL script before running it. If you make changes to the DDL script that you think might be useful to the wider audience, please submit them to the dcm4che-users listserv.

...

No Format

<\!\--example of how to specify class that determines if exception means connection should be destroyed-\->
<\!\--exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyExceptionSorter</exception-sorter-class-name-\->

<\!-\- this will be run before a managed connection is removed from the pool for use by a client-->
<\!--<check-valid-connection-sql>select * from something</check-valid-connection-sql> \-->

<\!-\- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use \-->
<min-pool-size>5</min-pool-size>

<\!-\- The maximum connections in a pool/sub-pool \-->
<max-pool-size>20</max-pool-size>

<\!-\- The time before an unused connection is destroyed \-->
<\!-\- NOTE: This is the check period. It will be destroyed somewhere between 1x and 2x this timeout after last use \-->
<idle-timeout-minutes>0</idle-timeout-minutes>

<\!-\- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
 \-->

<\!-\- sql to call on an existing pooled connection when it is obtained from pool
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
\-->

<\!-\- example of how to specify a class that determines a connection is valid before it is handed out from the pool
<valid-connection-checker-class-name>fully qualified name of class to use</valid-connection-checker-class-name>
\-->

<\!-\- Whether to check all statements are closed when the connection is returned to the pool,
 this is a debugging feature that should be turned off in production
<track-statements/>
\-->

...

Windows: DCM4CHEE_DIST/bin/run.bat:

No Format

rem Sun JVM memory allocation pool parameters. Modify as appropriate.
set JAVA_OPTS=%JAVA_OPTS% \-Xms128m \-Xmx512m

Linux/Unix: DCM4CHEE_DIST/bin/run.conf

No Format

# Specify options to pass to the Java VM.
JAVA_OPTS="-server \-Xms64m \-Xmx200m \-Djava.awt.headless=true ..

Keep in mind the available RAM and memory requirements of other processes running on the hardware. For example, if only 512 MB RAM is available on the machine, you should decrease the default value from -Xmx512m (on Windows to) -Xmx300.

...

For example, on GNU Linux:

No Format

> find DCM4CHEE_DIST/server/default/conf/xmdesc \-exec \ sed \-i s/DCM4CHEE/YOUR_AET/g '{}' ';'

...

  • Stop the application (type ctrl-c in the console window).
  • Windows: install dcm4chee as a Windows service executing DCM4CHEE_DIST/bin/install_service.bat.
  • Redhat Linux:
    • Copy the init script DCM4CHEE_DIST/bin/dcm4chee_init_redhat.sh to /etc/init.d and adjust it according to the dcm4chee installation location, the JDK installation location, and which user the dcm4chee should run under. For convenience you can rename it to dcm4chee.
    • Add it to services by issuing chkconfig --add dcm4chee. now you can start and stop the server by service dcm4chee start and service dcm4chee stop (note that service dcm4chee restart will not work, because the starting will occur before the stopping is finished and thus there will be conflicts on ports etc.)
    • If you want dcm4chee to be started automatically on system startup, add it to appropriate runlevels (345) by chkconfig --level 345 dcm4chee on.

Verify the Installation

Navigate to the DCM4CHEE_DIST/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: C:\apps\dcm4chee-standalone-psql-2.8.2\bin
\\
..
.
 JAVA: C:\jdk1.5.0_06\bin\java
.
 JAVA_OPTS:  \-Dprogram.name=run.bat \-Xms128m \-Xmx512m
.
 CLASSPATH: C:\jdk1.5.0_06\lib\tools.jar;
 C:\apps\dcm4chee-standalone-psql-2.8.2\bin
\\
run.jar
.
===============================================================================
.
14:46:16,046 INFO [Server] Starting JBoss (MX MicroKernel)...
14:46:16,046 INFO [Server] Release ID: JBoss [Zion] 4.0.3SP1 (build:
 CVSTag=JBoss_4_0_3_SP1 date=200510231054)
...
...
...
14:46:50,626 INFO  \-> [JkMain] Jk running ID=0 time=0/60  config=null
14:46:50,636 INFO  \-> [Server] JBoss (MX MicroKernel) \[4.0.3SP1 (build:
 CVSTag=JBoss_4_0_3_SP1 date=200510231054)\] Started in 34s:580ms
  1. Connect to the Web-based User Interface (default URL is 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 the default Administrator account admin, with password admin.
  2. Connect to the JBoss JMX Console (default URL is http://localhost:8080/jmx-console/) and login in using the default Administrator account admin, with password admin.
    Follow the link service=FileSystemMgt to the File System Management service configuration page under the dcm4chee.archive heading.
    Invoke the operation addOnlineFileSystem(), with a directory path argument specifying where the archive shall store received objects/images.
    Tip
    titleDefault Storage

    If no Storage File System is configured, the archive will auto-configure DCM4CHEE_DIST/server/default/archive as the Storage File System when the the first object/image is received.

  3. Optional: In the default configuration, received images are stored 'as is' - meaning that no compression is performed. Lossless (or other types of) compression of received uncompressed images can be activated by the CompressionRules attribute in the Storage SCP Service (service=StoreScp) configuration page. For example, set it to JLSL, to compress all types of images received from any Storage SCU with JPEG-LS Lossless codec.  See the CODEC section of the dcm4che14 wiki space for more info on available compression options.
  4. Optional: The directory used for caching generated JPEG representations of archived images requested by Web Access to DICOM Persistent Objects (WADO)can be specified by the CacheRoot attribute in the the WADO Service (service=WADOService) configuration page. Default: DCM4CHEE_DIST/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 with the CacheRoot attribute in the RID Service (service=RIDService) configuration page. Default: DCM4CHEE_DIST/server/default/ihe_rid_cache.
  5. Send some objects/images to the archive's Storage SCP, using the send utility of the dcm4che14 package, the dcm4che2 package, or another Storage SCU of your choice.
    Refresh the Web Interface (http://localhost:8080/dcm4chee-web/), which should now show the the list of received studies.
    Expand a 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 an HTTP WADO request for a JPEG presentation of this image which will be displayed in a separate browser window.
  6. To test object retrieval, you will need an external Storage SCP acting as the Destination using the DICOM Receiver utility of the dcm4che14 package, the dcm4che2 package, or another Storage SCP of your choice.
    Before initiating the retrieve, you will need to configure an additional Application Entity (AE) Title identifying your Move Destination using the "AE Management" function of the Web User Interface. For example:
    No Format
    
    AE Title: DCMRCV
    Hostname: localhost
    Port:     11113
    
  7. Switch back to the Study List (the Folder view) and mark studies to retrieve using the check box on the right. Select "DCMRCV" as the send destination in the combo box above and click on the send button left from it.
    Alternatively, you could initiate a C-MOVE with the utility of your choice with DCMRCV as the destination AE Title.

...

  • package for Linux-amd64 or Solaris.
  • If you have already installed (or are installing) the JAI Image IO distribution from https://jai-imageio.dev.java.net/binary-builds.html 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

Installation Procedure:

1. Extract the binary distribution package of dcm4chee:

Use the database of your choice. Avoid using a directory that has a name that contains spaces as installation directory.

2. Download the binary distribution package of JBoss Application Server 4.2.2.GA:

You can download from here and extract it into a different directory.

3. Copy files from jboss to dcm4chee:

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.

4.(4.-6. are not necessary with Hypersonic SQL) Install the Database SW:

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:

  1. IPv4 local connections:
    host all all 127.0.0.1/32 trust
5. Initiate the archive database instance:

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

6. Adjust the Database connection configuration:

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.

7. Set environment variable JAVA_HOME to JDK location.
8. Adjust maximum allocation of heap memory:

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

No Format

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:

No Format

$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

No Format

$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>
9. Test the installation:

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:

Code Block

=========================================================================

  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
10. Login into web interface:

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'.

11. Login to JMX Console:

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.

12. (Optional) Change the default AE Title

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:

  • update the retrieve AET of file systems, associated to the current retrieve AET of this node
  • update retrieveAETs of all instances, series and studies that have files on these filesystems
  • update the entry for the retrieve AE in the AE Configuration
  • update all service attributes listed by attribute OtherServiceAETitleAttributesToUpdate
13. (Optional) Configure image compression:

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.

14. (Optional) Cache directories:

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.

15. (Optional) Allow remote access:

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

18. Testing DICOM:

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.

19. Test object retrieval:

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.

20. Install as a service:

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.

Deploy DCM4CHEE Audi Record Repository 3.x with DCM4CHEE Archive:

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:

1. Download and extract the binary distribution package of dcm4chee-arr-3.0.x

for the database of your choice for storage of audit records. - It may differ
from the database used for dcm4chee archive.

2. Copy dcm4chee-arr-xxx-3.0.x.ear and arr-xxx-ds.xml

from directory dcm4chee-arr-xxx-3.0.x/server/default/deploy/ to dcm4chee-xxx-2.12.x/server/default/deploy/.

3a. 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.x/sql/dcm4chee-arr-xxx.ddl. Otherwise, the database will be initialized automatically at first startup of the application.

3b. If the Audit Record Repository shall share the database instance already used by the archive

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.

4. Uncomment the dependency declaration

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

Migrate Audit Records received by DCM4CHEE Audit Record Repository 2.x to 3.x:

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':

1. Connect to JBoss's JMX Console

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.

2. Determine the number of Audit Records to migrate by (e.g.) executing

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)

3. Invoke the operation emitAuditRecords():

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.).