dcm4chee で dicom ファイルをインポートすると、新たに作成される dicom ファイルには拡張子がありません。
なので、dcm4chee で構築されたファイルシステムを再度インポートして、ディレクトリ構造を再構築したい場合には少し面倒な思いをすることになります。
どうしてこういうことするんだろう?
file コマンドでファイル形式を確認
実際には dicom ファイルでありながら拡張子のないファイルを1つ選んで sample に rename し、以下のようにすると sample のファイル形式を確認できます。
file sample
sample: DICOM medical imaging data
ファイル形式は、「DICOM medical imaging data」であることがわかります。
sample というファイルから「DICOM medical imaging data」という文字列を抽出するには
a=`file -b sample`
「`」バッククォートは「囲った中身をコマンドとして実行しその結果を出力」します。
-b というオプションは brief の意味で、「出力行の最初にファイル名を表示しない」という意味です。
つまり、$a には「DICOM medical imaging data」という文字列が入っています。
ファイル形式が「DICOM medical imaging data」であるものを抽出
あるディレクトリを再帰的に検索して、ファイル形式が「DICOM medical imaging data」であるものを抽出して「.dcm」という拡張子を付けて、1つのディレクトリに移動するには、
#!/bin/bash
origin="/var/www/html/dcm"
destination="/var/www/html/dcmtotal/"
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 $fn
mv $fl $destination$fn".dcm"
fi
done
# まとめてインポート
cd /home/user/dcm4che-2.0.29/bin
./dcmsnd DCM4CHEE@localhost:11112 $destination*.dcm
if 文は二重括弧で囲まないと、うまく動きません。
シェルスクリプトって本当に難しい。