Alma9.4、Ubuntu24にインストールしたdcm4chee-arc-light 5.33の使いこなし

おのぶた

2024年11月09日 16:24

セッティングは過去のブログに記載したとおりです
ただ、このままでは問題点がいくつかあり実用に耐えません

1)画像の圧縮が指定されていない
 現在のデータ量は約350ギガバイトになっており、JPEG2000で圧縮しています。一般的なJPEG(ロスレス)の約3倍の圧縮率ですので、JPEGロスレスで保管した場合は約1テラバイト、無圧縮だと約2テラバイトになります。さすがに、でかすぎて困ります。

2)Linuxには、WindowsのようなCドライブとかDドライブとかの「ドライブを分ける」概念がなく、ルートの下にツリー構造のディレクトリを設けて、其の何処かのディレクトリに物理ディスクをマウントする、という形式を取ります(よくあるのは/nmtとか/mediaとか)。なので、このままではWildflyディレクトリの下の/data/fs1にデータが書き込まれていきます。これでは、トラブルに備えたディスク単位でのバックアップが困難です(出来ないわけではないが面倒)。クローンジラなどのユーティリティーが使いにくくなってしまう。

3)画像ビューワーWeasisを組み込むことも出来ますが、バージョンアップなどのときに組み込むと面倒なので組み込まない(デフォルトで組み込むわけではないので、問題点ではないのですけどね)。
これらの問題点を解決するには

1)圧縮方法を組み込む
LDAPファイルを作り、ApacheDirectoryStudioを使ってインポートする。
構成途中でインポートするときに以下のようなファイルを作って(compression.ldifとでも)読み込ませる
オリジナルのマニュアルはこちら
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Compression-of-received-images

dn: cn=JPEG 12-bit Lossy,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
objectClass: dcmArchiveCompressionRule
cn: JPEG 12-bit Lossy
dicomTransferSyntax: 1.2.840.10008.1.2.4.51
dcmImageWriteParam: compressionQuality=0.8
dcmImageWriteParam: maxPixelValueError=20.0
dcmImageWriteParam: avgPixelValueBlockSize=8.0
dcmProperty: BitsStored=9|10|11|12
dcmProperty: PhotometricInterpretation=MONOCHROME1|MONOCHROME2
dcmProperty: PixelRepresentation=0
dcmProperty: SendingApplicationEntityTitle=JPEG_LOSSY

dn: cn=JPEG LS Lossless,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
objectClass: dcmArchiveCompressionRule
cn: JPEG LS Lossless
dicomTransferSyntax: 1.2.840.10008.1.2.4.80
dcmImageWriteParam: maxPixelValueError=0.0
dcmProperty: SendingApplicationEntityTitle=JPEG_LS

dn: cn=JPEG 8-bit Lossy,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
objectClass: dcmArchiveCompressionRule
cn: JPEG 8-bit Lossy
dicomTransferSyntax: 1.2.840.10008.1.2.4.50
dcmImageWriteParam: compressionQuality=0.8
dcmImageWriteParam: maxPixelValueError=10.0
dcmImageWriteParam: avgPixelValueBlockSize=8.0
dcmProperty: BitsStored=8
dcmProperty: PhotometricInterpretation=MONOCHROME1|MONOCHROME2|RGB
dcmProperty: PixelRepresentation=0
dcmProperty: SendingApplicationEntityTitle=JPEG_LOSSY

dn: cn=JPEG Lossless,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
objectClass: dcmArchiveCompressionRule
cn: JPEG Lossless
dicomTransferSyntax: 1.2.840.10008.1.2.4.70
dcmImageWriteParam: maxPixelValueError=0.0
dcmProperty: SendingApplicationEntityTitle=JPEG_LOSSLESS

dn: cn=JPEG 2000 Lossless,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
objectClass: dcmArchiveCompressionRule
cn: JPEG 2000 Lossless
dicomTransferSyntax: 1.2.840.10008.1.2.4.90
dcmImageWriteParam: maxPixelValueError=0.0
dcmProperty: SendingApplicationEntityTitle=JPEG_2000


ブラウザでアクセスしたら
Menu->Configuration, then on「Devices」 page, Edit the 「dcm4chee-arc」 device. Go to 「Extensions」 and 「Edit extension of Device Extension」. Again go to its 「Extensions」 and 「Edit extension of Archive Device」.
Next go to the archive device extension's 「Child Objects」 and use + to add an 「Compression rule」. Enter values in fields Name and 「DICOM Transfer Syntax UID」 and any other optional fields and Save.
「DICOM Transfer Syntax UID」をクリックするとプルダウンメニューが現れるので、選択して、上の必須フィールドにはわかりやすい名前を入れて、右下の「Save」をクリックする。これで圧縮できるようになり、weasisで読み込んで画像を開けるようになります。

2)データを別の物理ディスクに書き込むようにする
 データの保存場所は
configration>Device>Dcm4Chee>Extension>ArchiveDrive>StorageDescriptor>StrageURI
file:///data/fs1
で見ることができます。fs1の部分を書き換える(削除も可能)ことで他の場所にもかけますが、いずれにしろ/Wildflyのツリーの中です。つまりは起動ディスクです。
 私の環境では/optにwildflyを解答したので
/opt/wildfly/standalone/data/
となっており、/data/にはすでに幾つかのフォルダが作られています。なので、ここにマウントするわけには行きません。画像の保管場所は/data/fs1がデフォルトですが、画像を入れて初めて/fs1が作られます。このままでは/fs1に物理ディスクをマウントできませんから、さきに/fs1を作ってしまい、そこをマウントポイントとして物理ディスクをマウントしましょう。
 手順としては、まずマウントしたいディスクをユーティリティーのディスクを用いてマウントします(mnt/NvSSD2Tとか)。ここが、いずれはfs1の中身になります。これをやっておくとnoutilusからかんたんにアクセスできるので便利です。その後、ルート権限でfstabファイルを書き換え、///data/fs1(フルパスで書くこと)てしまいます。邪道ですが、かんたんに/fs1の中身を見ることができるので便利です。デフォルトでは転送日でフォルダが作られるので、本日の検査が記録されているのかが簡単に確認できるようになります(ただし邪道なのでnautilusからは見るだけにしてください。書き込むと・・・・)
 これで、物理ディスク単位のバックアップがクローンジラなどのバックアップツールで簡単にバックアップできるようになり、また復旧も故障した物理ディスクを交換してユーティリティーで復旧すれば簡単です。ただし、データベースのデータは起動ディスクにありますから、毎日、データベースのバックアップをしておく必要があります。
ただ注意点としては/dataディレクトリには、すでに他のディレクトリ・データがありますから、データのバックアップは/detaディレクトリをコピーするようにしたほうが安全でしょう。
起動ディスクが壊れた場合
最初に起動ディスクを交換して再構築
データベースを復旧してから画像にアクセスすれば
データディスク(/dataディレクトリの内容と/data/fs1にマウントしたディスク)の内容と一致します

3)必要なAEを登録・変更
Menu > Configuration > AE List > Registaer new application entity (+ボタン)

dcm4chee-arc-lightではデフォルトでAEタイトルが「DCM4CHEE」となっていてDICOMネットワークでは同じAEタイトルの存在は許可されていません。これは主副サーバーを運用する上では不便です。(当院ではエコー装置から、Windows上のConquest1.5cとAlma上のDCM4CHEEに転送して、そのうえ、Conquest1.5Cから、Win、Ubuntu上の副サーバーに転送するようになってます。なのでubuntu上のAEタイトルを変更しないと共存できません。まあ、両PACSサーバーともに堅牢で10年以上運用してトラブルフリーですので、それぞれ主福サーバーの4台は必要ないんですけどね・・・あはは!!)。AEタイトルの変更方法はちょっと面倒ですがオリジナルのマニュアル(https://github.com/dcm4che/dcm4chee-arc-light/wiki/AE-Title%28s%29-of-the-Archive)には

To update an existing AE

Go to Menu -> Configuration page, Devices tab, use Edit device of dcm4chee-arc device.
Go to Child Objects -> Network AEs to view the list of available application entities of archive
Once the desired existing AE to be updated is known, select it and expand Attributes
Rename the AE Title and Save.
Optionally, any other configuration settings may be changed to suit application needs

と書いてあります。ただし、これだけでは、データの送受信でエラーが生じ、うまく行きません。こちらもやる必要があるようです。

in dcm4chee-arc ui go to:

Config->Devices->dcm4chee-arc->Child Objects-> Network AEs -> AETITLE to be edited->Attributes-> Change "AETITLE" Attribute and save.
Config->Devices ->dcm4chee-arc->Device Extension->Child Objects->Web Applications->DCM4CHEE->Change "Web Application name" AND "Web service path".
Config->Devices ->dcm4chee-arc ->Device Extension->Child Objects->Web Applications->DCM4CHEE-WADO->Change "Web Application name", to XXXX-WADO, and "WEB SERVICE PATH" to /dcm4chee-arc/aets/NEWAETITLE/wado, and check "AE TITLE" attribute (It normally will be changed alterady).



4)終了時に、データベースの内容のバックアップを取り、wildflyいかの/data以下のディレクトリのコピーを撮ってからシャットダウンするシェルスクリプトを書けば簡単です。



あなたにおススメの記事
関連記事