dcm4chee-arc-light 5.29.2 のデプロイ

前回の記事で、ビルドが完了したので、WildFly 26 へデプロイ。

公式の教えはここ

少々ダルいが、手順通りやっていくか・・・などと言ってましたが、これがとにかく長い。

ポイントのみにします。

Initialize Database

ここはそんなに面倒でもない。

今回は postgreSQL を使用。

pgAdmin が使えるなら、コマンドを叩くより速いので、そうした方がええかも。

ユーザー dcm4che さんを作成し、このユーザーをオーナーとするデータベース dcm4che を作成。

データベースのスキーマの一覧およびスクリプトは、(PostgreSQL に限らず)ここにある。

今回は、

create-psql.sql, create-fk-index.sql, create-case-insensitive-index.sql

が必要ですが、ソースコードの dcm4chee-arc-light -> src -> resources 以下にあります。

sourceforge からバイナリ落としてきた人は解凍すればわかるので説明は割愛。ソースコード落としてきた人は、上の位置にスクリプトはあるので、それを使いましょう。(どっちでやっても同一の内容です)

これも pgAdmin から操作した方が楽。

これで、テーブルが作成されます。

DICOM 仕様書で規定されている patient – study – series の構造がこのテーブル構成からも窺えます。

Setup LDAP Server

LDAP というのは、Lightweight Directory Access Protocol の略で、MS の Active Directory の上位概念みたいなやつです。

Mac では、他の Unix マシン同様、既に入ってます。
各種設定ファイルは、/etc/openldap を参照。

GitLab でソースが公開されていますが、GitHub にもそのミラーサイトがあります。(ちなみに C。もはや Java でもなんでもない…)

wiki の解説にもあるように、この考え方自体は興味深いんですが、いかんせん、後に出てくる諸々のプロジェクトがメンテされてなさすぎ。

ところで、OpenLDAP の設定をするのに

・slapd.conf にschma などをセットする

・dynamic runtime configuration を使う

の二通りの方法が書かれていますが、後者の方が簡単でしょう。

なのですが、後者を使う場合、ldap-utils が必要です。が、この MacOS バージョンはありません。とすると、前者の方法論を取るしかないと思うのですが、これがなかなか大変。検討中です。

Ubuntu にデプロイする場合は『Ubuntu 18.04にDcm4chee-arc-lightをインストールする』がまとまってますので、参考にするといいかと思います。

(前者の方法論は、後日、まとめる予定。以下はメモ的なもの)

OpenDJ のリポジトリ

Apache Directory のソースコード
org.apache.directory.checkstyle-configuration.version のバージョンを 2.0.1 に変更。

Setup WildFly

今回ビルドしたバージョンは 5.29.2 で、5.16.1 onwards (5.16.1 以降)なのでインストラクション通り進めれば OK な(はず)。

と思ってましたが、ここもそこそこ長い。

ポイントだけ書いておくと

・動かすだけでよければ、WildFly の細かなチューニングは後回しにして、まず module などを整備しましょう。

・5.29.2 では、WildFly の full バージョンではなく、web profile を使うので、standalone.xml を dcm4chee-arc.xml とリネームして、ここでポンポンポンと各種設定を行う。

のがいいんではないでしょうか。

一応、デプロイまでできると

フロントの ui を通じて各種操作を行うことができます。

 

JakartaEE と DolphORCA

おかげさまでネット上では『OpenDolphin -wikipedia 風解説-』がなぜか支持されているようだ。

元々は、ドルフィンのソースコードを眺めていた時に、(従来は)開発者認定されていない人の署名を見つけて、ちょっとびっくりしてそこらへんのことをまとめておいただけの記事だった。
が、その後も報告が断続的に集まり続け、その都度書き足していったら、現在の形態になったという経緯だ。

こういう斜めから入ったような記事でも、それなりに読まれたりするものなのですね。

意外な気もするが、納得できるところもある。

ところで、OpenDolphin の件で若い人から言われて印象に残っているのは、

現在の Java や JakartaEE の各仕様を使えば数行で処理できるところを、何でその十倍くらいのコードで(しかも)不自然に処理しているんですか?

という指摘だ。

正直、きっつ。。

まあ、一言で言えば、データ構造修正とコストとの兼ね合いの問題ですね(汗)。

データ構造の限界やその処理方法の古さは、われわれも認識はしていたが、ひとたび、データ構造に手を入れ始めると、それを内部的に処理している部分も変更せねばならず、そのコストが(修正した)利益に見合わないとみていた、というのが答えといえば答えになるでしょうか。

なんか、うまい説明になってないか。。。

ここら辺で興味深かったのは、某先生の判断と立ち回りだ。

ギリギリまで OpenDolphin 2.7 のデータ構造は維持し続け、変え時と見たら一気に変えてしまった。
(ここら辺の流れは、ここあたりから始まる一連のツィートを参照。)

この「変えて」しまったものが DolphORCA なんだが、設計の基本コンセプトからしてドルフィンとは大きく異なっている。

DolphORCA で採用された三層クラサバ構成に関しては『DolphORCA と三層クライアントサーバシステム』が良い案内になっている。

また、(直接、DolphORCA には触れられていないが)電子カルテ系と画像系のデータ構造の相性の悪さに関して

なぜ、全国統一カルテは無理筋なのか?
-カルテ系と画像系のデータ構造の本質的な相性の悪さ-
(EHR-DICOM data structure mismatch)』

という記事にかなりわかりやすく書かれている。
DolphORCA のデータ構造は、これらの考察を踏まえてかなりシンプルで使いやすいものになっている。
ここら辺の分野に興味のある方はぜひ一読をすすめる。

 

 

M1 Mac に M1(Arm) 対応の JDK をインストールする

この記事でも書いたのだが、Azul というところから M1(Arm アーキテクチャ CPU。apple silicon ) 対応の JDK(Java Development Kit) がリリースされている。

どの程度高速化されるのかは不明だが、可能なら Java も M1 ネイティブで動かしたい。

開発元の zulu は、マイクロソフトと共同で windows arm OS 向けの JDK を作成していたところ。

信用してもいいでしょう。

ということで、インストール&基本設定の仕方から。

JDK のインスコ

まず、Azul のダウンロードページに飛ぶ。


今回は、Java 15 の .dmg を選びました。(2022年春時点での長期サポート版は 17 ですが、17 へのアップグレードは後述)
たぶん、dmg がもっとも導入が楽です。
ダウンロード後、dmg ファイルを「開く」。インストーラーが立ち上がるので、後は指示に従って答えていけば OK です。
この画面でのダブルクリックも忘れずに。

一応、これだけでも、所定の位置(/Library/Java/JavaVirtualMachines/ 以下)に JDK は入ります。

JAVA_HOME を設定し、PATH を通す

現在 BigSur デフォルトの shell は zsh なので、~/.zprofile などに以下の2行を加える。

JAVA_HOME='/Library/Java/JavaVirtualMachines/zulu-15.jdk/Contents/Home'
PATH=$JAVA_HOME/bin:$PATH

これで、Java でのコンパイルなどが可能となります。

何はなくても Hello, World!

動作確認のために定番「こんにちは、世界」します。

public class HelloWorld{
   public static void main(String[] args){
     System.out.println("Hello World!");
   }
}

上のコードをエディタで HelloWorld.java として保存。
あとは端末からコンパイル&実行。

%javac HelloWorld.java
%java HelloWorld
Hello World!

どこまで M1 の恩恵を受けているかまではわかりませんが、無事、M1 Mac でも Java コードが動いてるのが確認できました。

15 → 17 へのアップグレード

現在(2022春)の長期サポート版は Java 17 です。
ですので JDK も15 → 17 へのアップグレードを試みましょう。
15 の時と同様に Azule のダウンロードページに行って、M1 対応の JDK をダウンロードしましょう。


今回も .dmg で大丈夫です。
指示に従ってインストールを進めると所定の場所に JDK の実体が配置されます(15 が消えるわけではない)。

以降はこちらのバージョンを使いたいので、JAVA_HOME を以下のように書き換えましょう。

JAVA_HOME='/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home'
PATH=$JAVA_HOME/bin:$PATH

以上でアップグレードは完了です。

 

猪股弘明
HorliX 開発者
OpenDolphin-2.7m 開発者

 

(追記)ここでは JavaFX に関しては一切触れていませんが、これがかなり微妙な感じで・・・んー、ごにょごにょ。興味のある方は『JavaFX on M1 Mac』をどうぞ。