linux mint 19.3 に dcm4chee-2.17.3-mysql を設定します。
linux mint 19.3 にしたのは mysql をインストールすると 5.7 がデフォルトでインストールされるためです。
すべてオフラインでおこなうために、インストールすべきファイルをネット接続されているコンピュータで予めダウンロードしておく必要があります。
すべてを自動化します。
必要なもの
以下のようなファイルを用意します。

apache2, mysql, ssh にはダウンロードした *.deb ファイルが格納されています。
イメージ
実際の設定を動画にしてみました。(拡大して見て下さい)
4 枚の dcm ファイルを試験的にインポートしてみます。
クライアントから「http://192.168.56.101:8080/dcm4chee-web3/」などとすると、dcm4chee の画面にアクセスできます。
全プログラム
この中で open ssh やファイアウォール設定は必須ではありませんが、私の自作したプログラムを動かすために設定しました。
~/pacs/setup.sh
#!/bin/bash
# apache2
cd ~/pacs/apache2
sudo dpkg -i libapr1_1.6.3-2_amd64.deb
sudo dpkg -i apache2-data_2.4.29-1ubuntu4.25_all.deb
sudo dpkg -i libaprutil1_1.6.1-2_amd64.deb
sudo dpkg -i libaprutil1-ldap_1.6.1-2_amd64.deb
sudo dpkg -i libaprutil1-dbd-sqlite3_1.6.1-2_amd64.deb
sudo dpkg -i apache2-utils_2.4.29-1ubuntu4.25_amd64.deb
sudo dpkg -i apache2-bin_2.4.29-1ubuntu4.25_amd64.deb
sudo dpkg -i apache2_2.4.29-1ubuntu4.25_amd64.deb
# mysql
cd ~/pacs/mysql
sudo dpkg -i mysql-common_5.8+1.0.4_all.deb
sudo dpkg -i libevent-core-2.1-6_2.1.8-stable-4build1_amd64.deb
sudo dpkg -i libhtml-template-perl_2.97-1_all.deb
sudo dpkg -i libaio1_0.3.110-5ubuntu0.1_amd64.deb
sudo dpkg -i mysql-client-core-5.7_5.7.38-0ubuntu0.18.04.1_amd64.deb
sudo dpkg -i mysql-server-core-5.7_5.7.38-0ubuntu0.18.04.1_amd64.deb
sudo dpkg -i mysql-client-5.7_5.7.38-0ubuntu0.18.04.1_amd64.deb
sudo dpkg -i mysql-server-5.7_5.7.38-0ubuntu0.18.04.1_amd64.deb
sudo dpkg -i mysql-server_5.7.38-0ubuntu0.18.04.1_all.deb
# open ssh
cd ~/pacs/ssh
sudo dpkg -i ncurses-term_6.1-1ubuntu1.18.04_all.deb
sudo dpkg -i openssh-sftp-server_1%3a7.6p1-4ubuntu0.7_amd64.deb
sudo dpkg -i ssh-import-id_5.7-0ubuntu1.1_all.deb
sudo dpkg -i openssh-server_1%3a7.6p1-4ubuntu0.7_amd64.deb
# file copy
sudo cp -r ~/pacs/apps /var/www/html
sudo cp ~/pacs/myconf/mysqld.cnf /etc/mysql/mysql.conf.d/
sudo service mysql restart
# mysql, db create
sudo mysql < ~/pacs/other_file/setmysql1.ddl
mysql -upacs -ppacs pacsdb < /var/www/html/apps/dcm4chee-2.17.3-mysql/sql/create.mysql
mysql -uarr -parr arrdb < ~/pacs/other_file/dcm4chee-arr-mysql.dd
sudo mysql < ~/pacs/other_file/setmysql2.ddl
sudo service mysql restart
# java
sudo apt-get -y purge openjdk-\*
sudo mkdir /usr/local/java
sudo cp -r ~/pacs/jdk1.8.0_231 /usr/local/java
sudo cp ~/pacs/other_file/profile /etc
sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.8.0_231/bin/java 1
sudo update-alternatives --auto java
source /etc/profile
sudo update-alternatives --install "/usr/bin/java" "java" "$JAVA_HOME/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "$JAVA_HOME/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "$JAVA_HOME/bin/javaws" 1
sudo update-alternatives --set java $JAVA_HOME/bin/java
sudo update-alternatives --set javac $JAVA_HOME/bin/javac
sudo update-alternatives --set javaws $JAVA_HOME/bin/javaws
#ufw ファイアーウォール
sudo ufw enable
sudo ufw allow 3306
sudo ufw allow 8080
sudo ufw allow 22
sudo ufw reload
# dcm4chee 起動
sudo chmod -R 777 /var/www/html
cd /var/www/html/apps/dcm4chee-2.17.3-mysql/bin
./run.sh
apache2, mysql, open ssh の .deb を集める
すべてオフラインでインストールするので、それぞれの必要なファイルはネット接続されているコンピュータで予めダウンロードしておく必要があります。
wget を使う方法は、ダウンロードすべきファイルの正確な URL が必要になり、検索して設定するのは不可能ではないのですがとても面倒です。
最も簡単な方法は、「sudo apt-get install apache2」とすると「/var/cache/apt/archives」に必要なファイルがダウンロードされてくるので、それをかき集めることです。
サーバーを linux mint 19.3 にする以上、全く同じ環境でファイルを集めるべきです。
しかし、新しいコンピュータに linux mint 19.3 をクリーンインストールするのは抵抗があると思います。
なので、virtualbox に linux mint 19.3 をインストールして、アプライアンスのエクスポートをしてバックアップをとっておいて、virtualbox の linux mint 19.3 の中で何度も実験するのがおそらく最も簡単で安全です。
こうしておけば、不具合が生じたり再現性を確認する場合は、virtualbox 上の linux min 19.3 をすべて除去してアプライアンスをインポートしなおせばリセットできます。
アプライアンスのエクスポートはそれなりに時間がかかりますが、インポートは1分前後です。
apps と jdk1.8.0_231
apps の中には dcm4chee 本体と jboss が入っています。
私の作成したものですが、ここからダウンロードすることができます。
jdk1.8.0_231 はここからダウンロードできます。
ダウンロードしたら、それぞれ解凍しておきます。
mysqld.cnf
mysql の文字化けを防ぐためには mysqld.cnf の編集が必要です。
sed などを使えば編集ができるようですが、それよりも予め作ってある mysqld.cnf をコピーした方が安全で簡単です。
/etc/mysql/mysql.conf.d/ を以下のように編集して、mysqlconf フォルダの中に入れておきます。
~/pacs/myconf/mysqld.cnf
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
character-set-server = utf8
skip-character-set-client-handshake
.....
#bind-address = 127.0.0.1
編集部分は一番下の3行で、文字セットの設定と「bind-address」をコメントアウトしておきます。
「bind-address」のコメントアウトは、クライアントからサーバーの mysql に接続するために必要なものです。
これも dcm4chee には必ずしも必要ではありませんが、私の flask が動くためには必要です。
other_file
「~/pacs/other_file」中には、「dcm4chee-arr-mysql.ddl」・「profile」・「setmysql1.ddl」・「setmysql1.ddl」の4つのファイルがあります。
dcm4chee-arr-mysql.ddl は http://www.teleimage.jp/dcm4chee/install/dcm4chee-arr-mysql.ddl よりダウンロードできます。
profile は java の設定ファイルです。
これも、「/etc/profile」に以下の最後の2行を加えたものです。
......
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
export JAVA_HOME=/usr/local/java/jdk1.8.0_231
export PATH=$PATH:$JAVA_HOME/bin
シェルスクリプトから外部ファイルを読み込んで、mysql のデータベース操作を実行する便利な機能があります。
まず、以下のファイルを読み込んで実行します。
~/pacs/other_file/setmysql1.ddl
drop database if exists pacsdb;
create database pacsdb;
grant all on pacsdb.* to 'pacs'@'localhost' identified by 'pacs';
drop database if exists arrdb;
create database arrdb;
grant all on arrdb.* to 'arr'@'localhost' identified by 'arr';
そうしてダンプファイルをインポートした後で、dicom ファイルの保存先などを設定します。
このファイルでは「/var/www/html/DICOM」に保存する設定になっています。
変更する場合には適宜変更して下さい。
use pacsdb;
set foreign_key_checks = 0;
truncate filesystem;
INSERT INTO filesystem (pk, next_fk, dirpath, fs_group_id, retrieve_aet, availability, fs_status, user_info ) VALUES ( 1, NULL, '/var/www/html/DICOM', 'ONLINE_STORAGE', 'DCM4CHEE', 0, 0, NULL) ;
set foreign_key_checks = 1;
CREATE USER 'heno'@'192.168.56.1' IDENTIFIED BY 'moheno';
GRANT SELECT ON pacsdb.* TO 'heno'@'192.168.56.1';
最後の2行は dcm4chee の設定には必要ありませんが、私の自作の flask を動かせるためのものです。
この環境は virtualbox の中でおこなっており、ホストが「192.168.56.1」、ゲストが「192.168.56.101」という設定になっています。
つまり、ホストからゲストの mysql にアクセスするための設定です。
impot.sh
試験的に dicom ファイルをインポートするためのもので、dcm4chee 設定には直接必要なものでありません。
しかし、きちんと設定されているかどうかを確認するためには必要かと思います。
~/import.sh
#!/bin/bash
origin="/home/user/unitea"
for fl in `\find $origin -maxdepth 6 -type f`; do
a=`file -b $fl`
if [[ $a = "DICOM medical imaging data" ]];then
fn=`basename $fl`
echo $fl
/home/user/dcm4che-2.0.29/bin/dcmsnd DCM4CHEE@localhost:11112 $fl
fi
done
user とはコンピュータ名です。
つまり、ホームディレクトリにある unitea というディレクトリの中の dicom ファイルを読み込んで dcm4chee にインポートします。
IP アドレス固定
IP アドレスの固定は GUI で設定した方が安全で簡単です。
まず、画面左下のミントマークから「設定」→「ネットワーク」を選択。

「有線」を選択。

「IPv4」を選択。

アドレスを手動で設定します。

この場合は、ゲストOSのIPアドレスを設定してあります。
反映させるためにはコンピュータの再起動が必要です。