Ubuntu 18.04のDcm4chee-arc-lightをアップグレードする

##目的
いい加減Ubuntuを18.04LTSから20.04LTSに上げたいが、どうしよう。

###問題点
Dcm4chee-arc-lightがMySQL8.0で動くのかわからない。
Dcm4chee-arc-lightもバージョンが上がっているので追いついておきたい。

###解決方法
テスト環境を作って、試してみよう。

###使用ソフト
本番環境と揃えるためdcm4chee-arc-light-5.19を[Ubuntu 18.04にDcm4chee-arc-lightをインストールする](https://qiita.com/twunji/items/941dcaa2de937b948248) に準じてインストールした後、アップグレード作業を行った。Ubuntu18.04LTS。
<dl>
<dt>[dcm4chee-arc-5.19.0-mysql.zip](https://sourceforge.net/projects/dcm4che/files/dcm4chee-arc-light5/)</dt>

<dt>[dcm4chee-arc-5.22.5-mysql.zip](https://sourceforge.net/projects/dcm4che/files/dcm4chee-arc-light5/)</dt>
<dt>[wildfly-18.0.0.Final.zip](https://wildfly.org/downloads/)</dt>
<dt>[weasis_3.5.4-rc-1_amd64.deb](https://github.com/nroduit/Weasis/releases)</dt>

<dt>[weasis_3.6.2-1_amd64.deb](https://github.com/nroduit/Weasis/releases)</dt>
<dt>[weasis-pacs-connector.war(7.1.1)](https://sourceforge.net/projects/dcm4che/files/Weasis/weasis-pacs-connector/)</dt>

<dt>[weasis-pacs-connector.war(7.1.2)](https://sourceforge.net/projects/dcm4che/files/Weasis/weasis-pacs-connector/)</dt>
<dt>[ApacheDirectoryStudio-2.0.0.v20180908-M14-linux.gtk.x86_64.tar.gz](https://directory.apache.org/studio/downloads.html)</dt>
</dl>

###作業手順
実際には下記に従って進めるだけ。
[Upgrade DCM4CHEE Archive light](https://github.com/dcm4che/dcm4chee-arc-light/wiki/Upgrade#apache-ds-200)
[Embedding in dcm4chee](https://nroduit.github.io/en/getting-started/dcm4chee/)


####dcm4chee-arc-5.22.5の解凍
`cd /opt`
`sudo unzip ~/Downloads/dcm4chee-arc-5.22.5-mysql.zip`
`sudo chown -R HOGE:HOGE dcm4chee-arc-5.22.5-mysql`
`sudo systemctl stop wildfly.service`

`sudo rm /opt/dcm4chee/`
`sudo ln -s /opt/dcm4chee-arc-5.22.5-mysql /opt/dcm4chee`

####データベーススキーマのアップデート
`cd /opt/dcm4chee/sql`
`mysql -u pacs -pDBPassWord pacsdb < update-5.20-mysql.sql`
`mysql -u pacs -pDBPassWord pacsdb < update-5.21-mysql.sql`
`mysql -u pacs -pDBPassWord pacsdb < update-5.22-mysql.sql`

####LDAPスキーマのアップデート
`cd /opt/dcm4chee/ldap/slapd`
`sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f dcm4che-modify.ldif`
`sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f dcm4chee-archive-modify.ldif`
`sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f dcm4chee-archive-ui-modify.ldif`

####LDAPデータのアップデート
`cd /opt/dcm4chee/ldap`
`ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.20.0.ldif`
`ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.21.0.ldif`
`ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.22.0.ldif`
`ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.22.1.ldif`
`ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.22.2.ldif`
`ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.22.3.ldif`
`ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.22.4.ldif`
`ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f update-config-5.22.5.ldif`

####WildFlyのアップデート
`sudo chown -R HOGE:HOGE /opt/wildfly`
`cd /opt/wildfly/standalone/configuration`
`mkdir keystores`
`mv dcm4chee-arc/key.jks keystores`
`mv dcm4chee-arc/cacerts.jks keystores`
`cd /opt/wildfly`
`wget https://downloads.jboss.org/keycloak/11.0.2/adapters/keycloak-oidc/keycloak-wildfly-adapter-dist-11.0.2.zip`
`unzip keycloak-wildfly-adapter-dist-11.0.2.zip`
`cd /opt/wildfly/standalone/configuration/keystores`
`cp /opt/dcm4chee/configuration/keystores/* .`

`cd /opt/wildfly`
`rm -r modules/org/dcm4che`
`unzip /opt/dcm4chee/jboss-modules/dcm4che-jboss-modules-5.22.5.zip`
`rm -r modules/org/apache/jclouds`
`unzip /opt/dcm4chee/jboss-modules/jclouds-jboss-modules-2.2.1-noguava.zip`

別のターミナルで
`./bin/standalone.sh -c dcm4chee-arc.xml`
ここでは起動時にエラーが吐かれるはず。


`./bin/jboss-cli.sh -c `

```
[standalone@localhost:9990 /] undeploy dcm4chee-arc-ear-5.19.0-mysql.ear
[standalone@localhost:9990 /] deploy /opt/dcm4chee/deploy/dcm4chee-arc-ear-5.22.5-mysql.ear
```
deployがエラー無しで終了すれば、別のターミナルで立ち上げてあったwildflyをCtrl+cで終了させておく。



####WildFlyの再起動
`cd /opt`
`sudo chown -R wildfly:wildfly wildfly-18.0.0.Final`
`sudo chown -R wildfly:wildfly wildfly`
`sudo chown -R wildfly:wildfly dcm4chee-arc-5.22.5-mysql`
`sudo chown -R wildfly:wildfly dcm4chee`

別のターミナルでlogを観察し、起動時にエラーが出ないか確認する。
`tail -f /opt/wildfly/standalone/log/server.log`

`sudo systemctl start wildfly`


http://localhost:8080/dcm4chee-arc/ui2 で動作確認をしてみると、無事にデータも生きている。
uiが変わっているので少しまごつく。

####Weasisのアップグレード
http://localhost:9990/ のHAL Management Consoleから新しいweasis-pacs-connector.warをDeployする。

http://localhost:8080/dcm4chee-arc/ui2 の
Menu > Configuration > Devices > dcm4chee-arc > Extensions > Edit extension > Child Objects > Web Applications > DCM4CHEE のPropertyに以下の3行をaddする。
`IID_STUDY_URL=weasis://$dicom:rs --url "{{qidoBaseURL}}{{qidoBasePath}}" -r "studyUID={{studyUID}}" --query-ext "&includedefaults=false"`

`IID_PATIENT_URL=weasis://$dicom:rs --url "{{qidoBaseURL}}{{qidoBasePath}}" -r "patientID={{patientID}}" --query-ext "&includedefaults=false"`

`IID_URL_TARGET=_self`

各クライアントにweasis_3.6.2-1_amd64.debをインストールして終了、とはいかず、ここまでで目的の半分。
近日中にMySQLを8.0に上げてみることにしよう。


2020/10/16 追記
Ubuntu 20.04にMySQL 5.7をインストールすればいいんだっていうことに気づいた。

ということでおしまい。