Skip to content
Vrinda edited this page Dec 20, 2019 · 118 revisions

Upgrade DCM4CHEE Archive light

Content

Update Database Schema

SQL scripts for updating the database schema from previous versions can be found in directory $DCM4CHEE_ARC/sql. A change in the DB schema is reflected by an incremented second component of the version number (e.g. from 5.19.x to 5.20.y). So one does not need to update the database schema for upgrading from a version which only differs in the third component of the version number (e.g. from 5.19.0 to 5.19.1). For upgrading from an older version which second component of the version number in not the previous number, one has to first update the data base schema to the previous version - by applying update scripts for previous versions in the right order - before applying the update script for the current version.

H2

One has to start Wildfly before updating the tables using the H2 console. Access the console at http://localhost:8080/h2console, login and update the database scheme by:

    RUNSCRIPT  FROM '$DCM4CHEE_ARC/sql/update-5.20-h2.sql'

PostgreSQL

    > psql -h localhost <database-name> <user-name> < $DCM4CHEE_ARC/sql/update-5.20-psql.sql

MySQL and MariaDB

    > mysql -u <user-name> -p<user-password> <database-name> < $DCM4CHEE_ARC/sql/update-5.20-mysql.sql

Firebird

    > isql-fb
    Use CONNECT or CREATE DATABASE to specify a database
    SQL> connect 'localhost:<database-name>'
    CON> user '<user-name>' password '<user-password>';
    SQL> in DCM4CHEE_ARC/sql/update-5.20-firebird.sql;
    SQL> exit;

DB2

    > su <user-name>
    Password: <user-password>
    > db2 connect to <database-name>
    > db2 -t < $DCM4CHEE_ARC/sql/update-5.20-db2.sql
    > db2 terminate

Oracle

    $ sqlplus <user-name>/<user-password>
    SQL> @$DCM4CHEE_ARC/sql/update-5.20-oracle.sql

MS SQL Server

Not yet tested

Update LDAP Schema

OpenLDAP

OpenLDAP with slapd.conf configuration file

  1. Replace previous schema files in OpenLDAP schema configuration directory by new versions from DCM4CHEE Archive distribution:

    > cp $DCM4CHEE_ARC/ldap/schema/* /etc/openldap/schema/ [UNIX]
    > copy %DCM4CHEE_ARC%\ldap\schema\* \Program Files\OpenLDAP\schema\ [Windows]
    
  2. Restart slapd:

    > sudo service slapd restart [UNIX]
    

OpenLDAP with dynamic runtime configuration

Update LDAP schemas in OpenLDAP runtime configuration by applying provided LDIF files using OpenLDAP CL utility ldapmodify:

> sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f $DCM4CHEE_ARC/ldap/slapd/dcm4che-modify.ldif
> sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f $DCM4CHEE_ARC/ldap/slapd/dcm4chee-archive-modify.ldif
> sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f $DCM4CHEE_ARC/ldap/slapd/dcm4chee-archive-ui-modify.ldif

OpenDJ

  1. Replace previous schema files in OpenDJ schema configuration directory by new versions from DCM4CHEE Archive distribution:

    > cp $DCM4CHEE_ARC/ldap/opendj/* $OPENDJ_HOME/config/schema/ [UNIX]
    > copy %DCM4CHEE_ARC%\ldap\opendj\* %OPENDJ_HOME%\config\schema\ [Windows]
    
  2. Restart OpenDJ by

    > $OPENDJ_HOME/bin/stop-ds
    > $OPENDJ_HOME/bin/start-ds
    

Apache DS 2.0.0

  1. Delete the ou=objectclasses child entry from the schema entries

    ou=schema
    + cn=dcm4chee-archive-ui
      + ou=objectclasses
    + cn=dcm4chee-archive
      + ou=objectclasses
    + cn=dcm4che
      + ou=objectclasses
    

    before deleting the schema entries itself, using the Delete Entry function of Apache Directory Studio LDAP Browser.

  2. Import new LDAP schema files for Apache DS:

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

Update LDAP Data

  • If one made structural changes - e.g. by adding/removing Network Application Entities or by configuring multiple Archive devices - to the provided default configuration, one has to adjust the provided update-config-VERSION.ldif files in $DCM4CHEE_ARC/ldap according to one's changes, before applying them, using the LDIF import function of Apache Directory Studio LDAP Browser or using LDAP CLI utility ldapmodify of OpenLDAP. To update from an older version than the most-recent previous version, e.g. from 5.16.0 to 5.19.1, one has to apply the update scripts for the previous versions, e.g.:
> $ cd $DCM4CHEE_ARC/ldap
> $ ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.16.1.ldif
> $ ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.16.2.ldif
> $ ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.17.0.ldif
> $ ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.17.1.ldif
> $ ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.18.0.ldif
> $ ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.18.1.ldif
> $ ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.19.0.ldif
> $ ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.19.1.ldif

before one can update the LDAP configuration for the current version by:

> $ ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.20.0.ldif
Enter LDAP Password:
modifying entry "dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org"
:
  • Before v5.10.4, any configuration change of the archive using the UI prevents further emission of Audit messages caused by the insert of an universal Audit Suppress Criteria to existing Audit Loggers of the Archive Device. You may either remove that Audit Suppress Criteria from the Audit Logger(s)

    • using the UI in v5.10.4+, or
    • remove the Audit Logger child node directly in LDAP by applying
      dn: cn=cn,cn=Audit Logger,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
      changetype: delete
      
  • In v5.10.2, the configuration which Storage System is used by a particular Archive AE changed: The LDAP attribute which reference the Storage ID for object storage used by the AE changed from dcmStorageID to dcmObjectStorageID, and it's no longer possible to configure a default Storage ID used for object storage on Device level. The corresponding lines in update-config-5.10.2.ldif are

    dn: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
    changetype: modify
    delete: dcmStorageID
    -
    
    dn: dicomAETitle=DCM4CHEE,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
    changetype: modify
    add: dcmObjectStorageID
    dcmObjectStorageID: fs1
    -
    

    If one changed the default Storage ID fs1, one may either adjust update-config-5.10.2.ldif before applying it oneself, or apply one's change afterwards again - either directly in LDAP or using the UI.

  • In v5.19.1, following configurations for the Invoke Image Display URLs have changed :

    • Attribute Coercions (used either on Archive Device or Archive Network AE level) : The LDAP attribute which referenced the AE Title (dcmAETitle) and Hostname (dcmHostname) have been now removed and no longer supported. These can now be specified using Conditions (dcmProperty) field dependent on their DICOM Transfer Role (dicomTransferRole).

      Restriction SCU SCP
      AE Title SendingApplicationEntityTitle={ae-title} ReceivingApplicationEntityTitle={ae-title}
      Hostname SendingHostname={hostname} ReceivingHostname={hostname}
    • Invoke Image Display URLs : The LDAP attribute which referenced the Invoke Image Display Patient URL (dcmInvokeImageDisplayPatientURL) and Invoke Image Display Study URL (dcmInvokeImageDisplayStudyURL) used either on Archive Device or Archive Network AE level have been now removed and no longer supported. This has been now moved on Web Application level, where it can be set using Property (dcmProperty) in the format <name>=<value>.

      Replace any existing configuration

      Name (LDAP Attribute) Configured on Level Value (example)
      Invoke Image Display Patient URL (dcmInvokeImageDisplayPatientURL) Archive Device or Archive Network AE http(s)://:/IHEInvokeImageDisplay?requestType=PATIENT&patientID={}
      Invoke Image Display Study URL (dcmInvokeImageDisplayStudyURL) Archive Device or Archive Network AE http(s)://:/IHEInvokeImageDisplay?requestType=STUDY&studyUID={}

      By

      Name (LDAP Attribute) Configure on Level Value (example)
      Property (dcmProperty) Web Application IID_PATIENT_URL=http(s)://:/IHEInvokeImageDisplay?requestType=PATIENT&patientID={}
      Property (dcmProperty) Web Application IID_STUDY_URL=http(s)://:/IHEInvokeImageDisplay?requestType=STUDY&studyUID={}
  • 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.

If upgrading secured version of archive, then also refer Secured Archive LDAP Upgrade

Update WildFly Deployment

Latest version of DCM4CHEE Archive available is 5.20.0

If upgrading from a version older than 5.16.1, it requires complete new setup of Wildfly (version 14 onwards). QueryDSL is no longer supported with DCM4CHEE Archive version 5.16.1 onwards.

  1. Update DCM4CHE dcm4chee-arc-light libraries as JBoss modules:

     > cd  $WILDFLY_HOME
     > rm -r modules/org/dcm4che
     > unzip $DCM4CHEE_ARC/jboss-modules/dcm4che-jboss-modules-dcm4chee-arc-light-5.x.x.zip
    
  2. If upgrading to version 5.19.1 or newer, update jclouds libraries to 2.2.0 as JBoss modules:

     > cd  $WILDFLY_HOME
     > rm -r modules/org/apache/jclouds
     > unzip $DCM4CHEE_ARC/jboss-modules/jclouds-jboss-modules-2.2.0-noguava.zip
    
  3. Only if upgrading archive upto versions 5.16.0 : Update querydsl libraries to 4.2.1 as JBoss modules (if upgrading to version 5.13.2 upto 5.16.0)

     > cd  $WILDFLY_HOME
     > rm -r modules/com/apache/querydsl
     > unzip $DCM4CHEE_ARC/jboss-modules/querydsl-jboss-modules-4.2.1-noguava.zip
    
  4. (Re-)Start WildFly in standalone mode with the correct configuration file:

     > $WILDFLY_HOME/bin/standalone.sh -c dcm4chee-arc.xml [UNIX]
     > %WILDFLY_HOME%\bin\standalone.bat -c dcm4chee-arc.xml [Windows]
    
  5. If upgrading from version 5.5.x or older, create JMS Queue HL7Send using JBoss CLI:

     > $WILDFLY_HOME/bin/jboss-cli.sh -c [UNIX]
     > %WILDFLY_HOME%\bin\jboss-cli.bat -c [Windows]
     [standalone@localhost:9990 /] jms-queue add --queue-address=HL7Send --entries=java:/jms/queue/HL7Send
    
  6. If upgrading from version 5.6.x or older, create JMS Queue StgCmtSCU using JBoss CLI:

     > $WILDFLY_HOME/bin/jboss-cli.sh -c [UNIX]
     > %WILDFLY_HOME%\bin\jboss-cli.bat -c [Windows]
     [standalone@localhost:9990 /] jms-queue add --queue-address=StgCmtSCU --entries=java:/jms/queue/StgCmtSCU
    
  7. If upgrading from version 5.7.0 or older, install ecs-object-client 3.0.0 libraries as JBoss modules:

    > cd  $WILDFLY_HOME
    > unzip $DCM4CHEE_ARC/jboss-modules/ecs-object-client-jboss-modules-3.0.0.zip
    
  8. If upgrading from version 5.7.2 or older, create JMS Queue RSClient using JBoss CLI:

     > $WILDFLY_HOME/bin/jboss-cli.sh -c [UNIX]
     > %WILDFLY_HOME%\bin\jboss-cli.bat -c [Windows]
     [standalone@localhost:9990 /] jms-queue add --queue-address=RSClient--entries=java:/jms/queue/RSClient
    
  9. If upgrading from version 5.10.4 or older, create JMS queue CMoveSCU using JBoss CLI:

     > $WILDFLY_HOME/bin/jboss-cli.sh -c [UNIX]
     > %WILDFLY_HOME%\bin\jboss-cli.bat -c [Windows]
     [standalone@localhost:9990 /] jms-queue add --queue-address=CMoveSCU --entries=java:/jms/queue/CMoveSCU
    
  10. If upgrading from version 5.12.0 or older, create JMS queue DiffTasks using JBoss CLI:

    > $WILDFLY_HOME/bin/jboss-cli.sh -c [UNIX]
    > %WILDFLY_HOME%\bin\jboss-cli.bat -c [Windows]
    [standalone@localhost:9990 /] jms-queue add --queue-address=DiffTasks --entries=java:/jms/queue/DiffTasks
    
  11. If upgrading from version 5.13.0 or older, create JMS queue Export4 and Export5 using JBoss CLI:

    > $WILDFLY_HOME/bin/jboss-cli.sh -c [UNIX]
    > %WILDFLY_HOME%\bin\jboss-cli.bat -c [Windows]
    [standalone@localhost:9990 /] jms-queue add --queue-address=Export4 --entries=java:/jms/queue/Export4
    [standalone@localhost:9990 /] jms-queue add --queue-address=Export5 --entries=java:/jms/queue/Export5
    
  12. If upgrading to version 5.14.1 or newer, create JMS Queue StgVerTasks using JBoss CLI:

    > $WILDFLY_HOME/bin/jboss-cli.sh -c [UNIX]
    > %WILDFLY_HOME%\bin\jboss-cli.bat -c [Windows]
    [standalone@localhost:9990 /] jms-queue add --queue-address=StgVerTasks --entries=java:/jms/queue/StgVerTasks
    
  13. If upgrading from version 5.14.1 or older, create additional JMS queues Export6, Export7, Export8, Export9 and Export10by default to enable greater configurability for processing tasks from various exporters using JBoss CLI:

    > $WILDFLY_HOME/bin/jboss-cli.sh -c [UNIX]
    > %WILDFLY_HOME%\bin\jboss-cli.bat -c [Windows]
    [standalone@localhost:9990 /] jms-queue add --queue-address=Export6 --entries=java:/jms/queue/Export6
    [standalone@localhost:9990 /] jms-queue add --queue-address=Export7 --entries=java:/jms/queue/Export7
    [standalone@localhost:9990 /] jms-queue add --queue-address=Export8 --entries=java:/jms/queue/Export8
    [standalone@localhost:9990 /] jms-queue add --queue-address=Export9 --entries=java:/jms/queue/Export9
    [standalone@localhost:9990 /] jms-queue add --queue-address=Export10 --entries=java:/jms/queue/Export10
    
  14. If upgrading from version 5.15.1 or older, create JMS Queue Rejection using JBoss CLI:

    > $WILDFLY_HOME/bin/jboss-cli.sh -c [UNIX]
    > %WILDFLY_HOME%\bin\jboss-cli.bat -c [Windows]
    [standalone@localhost:9990 /] jms-queue add --queue-address=Rejection --entries=java:/jms/queue/Rejection
    
  15. If upgrading to 5.16.2 or newer, remove the CMoveSCU queue and create new JMS queues for Retrieve

    > $WILDFLY_HOME/bin/jboss-cli.sh -c [UNIX]
    > %WILDFLY_HOME%\bin\jboss-cli.bat -c [Windows]
    [standalone@localhost:9990 /] jms-queue remove --queue-address=CMoveSCU
    [standalone@localhost:9990 /] jms-queue add --queue-address=Retrieve1 --entries=java:/jms/queue/Retrieve1
    [standalone@localhost:9990 /] jms-queue add --queue-address=Retrieve2 --entries=java:/jms/queue/Retrieve2
    [standalone@localhost:9990 /] jms-queue add --queue-address=Retrieve3 --entries=java:/jms/queue/Retrieve3
    [standalone@localhost:9990 /] jms-queue add --queue-address=Retrieve4 --entries=java:/jms/queue/Retrieve4
    [standalone@localhost:9990 /] jms-queue add --queue-address=Retrieve5 --entries=java:/jms/queue/Retrieve5
    [standalone@localhost:9990 /] jms-queue add --queue-address=Retrieve6 --entries=java:/jms/queue/Retrieve6
    [standalone@localhost:9990 /] jms-queue add --queue-address=Retrieve7 --entries=java:/jms/queue/Retrieve7
    [standalone@localhost:9990 /] jms-queue add --queue-address=Retrieve8 --entries=java:/jms/queue/Retrieve8
    [standalone@localhost:9990 /] jms-queue add --queue-address=Retrieve9 --entries=java:/jms/queue/Retrieve9
    [standalone@localhost:9990 /] jms-queue add --queue-address=Retrieve10 --entries=java:/jms/queue/Retrieve10
    [standalone@localhost:9990 /] jms-queue add --queue-address=Retrieve11 --entries=java:/jms/queue/Retrieve11
    [standalone@localhost:9990 /] jms-queue add --queue-address=Retrieve12 --entries=java:/jms/queue/Retrieve12
    [standalone@localhost:9990 /] jms-queue add --queue-address=Retrieve13 --entries=java:/jms/queue/Retrieve13
    
  16. Undeploy old DCM4CHEE Archive 5.x.x (replace 5.x.x with version number to be undeployed) using JBoss CLI, e.g.:

    > $WILDFLY_HOME/bin/jboss-cli.sh -c [UNIX]
    > %WILDFLY_HOME%\bin\jboss-cli.bat -c [Windows]
    [standalone@localhost:9990 /] undeploy dcm4chee-arc-ear-5.x.x-psql.ear
    
  17. Deploy new DCM4CHEE Archive 5.x.x (replace 5.x.x by the version number you are deploying) using JBoss CLI, e.g.:

    [standalone@localhost:9990 /] deploy $DCM4CHEE_ARC/deploy/dcm4chee-arc-ear-5.x.new-psql.ear
    
  18. If upgrading secured version of archive, then also refer Secured Archive Wildfly Upgrade

Clone this wiki locally