OsiriXを用いたPACSバックアップシステム(2)
さて従来使ってきたConquestであるが、そもそもこれを採用した理由は複雑なDBを用いずに特定のディレクトリにデータを蓄積してくれるからである。これは1週間ごとにデータをまとめるのに都合がよい。データディレクトリのひな形を作っておいてこれをコピーしてやればすぐにデータが空の状態に戻る。つまり1週間ごとにデータディレクトリの名前の変更をOSレベルでおこなえばアプリケーションは切り替えのタイミングで一時停止するだけでよい。いつデータが転送されてくるかわからないPACSでは停止期間は可能な限り短くしなければいけないからだ。
OsiriXもローカルファイルでデータベース管理しているので全く同じ方法が使える。
受信データフォルダをDICOMとすると、
#!/bin/csh
cd /Volumes/DATA
# 全体のデータディレクトリ
#-----------------------
#rotate data directories
# 一番古いものを削除
if (-d DICOM5) rm -drf DICOM5
# Stop Osirix
set ospid=`ps axu | grep "/Applications/OsiriX.app/Contents/MacOS/OsiriX" | grep -v "grep" | awk '{print $2}' `
if ( ${ospid} != "") kill $ospid
#rename directories
if ( ! -d DICOM5) mv -f DICOM4 DICOM5
if ( ! -d DICOM4) mv -f DICOM3 DICOM4
if (! -d DICOM3 ) mv -f DICOM2 DICOM3
if (! -d DICOM2 ) mv -f DICOM DICOM2
#ひな形の空のデータディレクトリをコピー
if (! -d DICOM ) cp -R DICOM.org DICOM
#---------------------------
#restart Osirix
/Applications/OsiriX.app/Contents/MacOS/OsiriX &
これで先週はDICOM2、先々週はDICOM3… と週ごとのデータベースに分かれるのだ。あくまでこれはデータ送信のタイミングに依存しているので厳密には検査日時と一致しない。後処理に時間がかかるものや持ち込みデータの登録などタイミングがずれるものもあり得る。したがってQ/Rの結果とは違うことを理解しておく必要がある。