ConquestDicomサーバをDHCPのK-Pacsかアクセスする検討

更新日2022-07-01 (金) 16:59:47
作成日:2022年6月30日

ConquestとDicom通信するPacsビューワはビューワのAET、IPアドレス、ポートをConquestに登録しておく必要がある。

Conquestの登録にAETやIPアドレスにワイルドカードが使用できそうなので実験してみた。

Conquest側の設定

Conquestに以下のように登録するとクライアントのIPアドレスは指定する必要がない。

  • Known DICOM providers
S*	*	104	un

クライアント(K-pacs)のAETにはアクセスするIPアドレスの行頭に「S」を追加すれば良いようだ。

K-PACSの設定

K-PACS(このPCのIP 192.168.0.214)がこの場合K-PACSのAETを以下のようにする

AET: S192.168.0.214

AETの行頭の文字(この例は「S」)はConquestと同じであればなんでもよさそう

ポート番号は「104」指定する。

Conquestのポート番号の指定個所に「*」を指定すればK-pacsのポートもなんでOKかもしれない。(未確認)

K-PACS AETの設定

K-pacsのPCはIPアドレスはDHCPで取得るため、起動ごとにIPアドレスが変わる可能性がある。
よって、K-pacsを起動するときに、PCのIPアドレスにAETを変えるScriptを実行すれば良い。

ScriptとK-pacs起動バッチ

作成準備

  • PCのIPの取得コマンドの確認
> netsh interface ipv4 show address

インターフェイスの構成 "ローカル エリア接続* 1"
    DHCP 有効:                         はい
    インターフェイス メトリック:                      25

インターフェイスの構成 "ローカル エリア接続* 2"
    DHCP 有効:                         はい
    インターフェイス メトリック:                      25

インターフェイスの構成 "Wi-Fi"
    DHCP 有効:                         はい
    IP アドレス:                           192.168.0.214   ←ここ
    サブネット プレフィックス:                        192.168.0.0/24 (マスク 255.255.255.0)
    デフォルト ゲートウェイ:              192.168.0.175
    ゲートウェイ メトリック:              0
    インターフェイス メトリック:                      55

インターフェイスの構成 "Loopback Pseudo-Interface 1"
    DHCP 有効:                         いいえ
    IP アドレス:                           127.0.0.1
    サブネット プレフィックス:                        127.0.0.0/8 (マスク 255.0.0.0)
    インターフェイス メトリック:                      75
  • IPの表示行の取り出し
>netsh interface ipv4 show address "Wi-Fi" | find "IP アドレス"
    IP アドレス:                           192.168.0.214

K-PacsサーバのIP指定は以下のファイルに記載があるので、取得したIPアドレスにAETを書き換える

C:\KPacs\K-Pacs-Server\KPServer.txt

gawkを使用して「KPServer.txt」のIPを書き換えるScriptを作成して、Script実行後 K-pacs起動するバッチを作成する。

IP書換えgawkScript

  • a.awk

フォルダ「\KPacs」に保存する
netshコマンドのパラメータは事前にコマンドを実行して設定する。

ファイルの文字コードはANSIにすること

BEGIN{
# コマンドでIPを表示する行を取得して、変数varに代入する
	"netsh interface ipv4 show address \"Wi-Fi\" | find \"IP アドレス\"" | getline var;
#	print var ;

# IPアドレスは「:」以降に表示しているの、「:」以降を取り出す
	ip = substr(var ,index(var, ":") + 1);
# 余分なスペースの削除 (正規表現 スペースをn文字削除)
	sub(/^[ ]*/, "", ip); #行頭
	sub(/[ ]*$/, "", ip); #行末
#	print ip;
} 
{
	if(substr($0, 1, 4) == "-aet"){
		printf("-aet = X%s\n", ip);
	}else{
		print $0;}
}
  • k-pacs起動バッチ

フォルダ「\KPacs」に保存する

@echo off
rem K-Pacsのパス
set spath=C:\KPacs\
rem gawkのパス
set awkpath=C:\Usr\gawk-mbcs-win32-20051223\

copy %spath%K-Pacs-Server\KPServer.txt %spath%K-Pacs-Server\KPServer.old
%awkpath%gawk -f %spath%a.awk %spath%K-Pacs-Server\KPServer.old > %spath%K-Pacs -Server\KPServer.txt
del %spath%K-Pacs-Server\KPServer.old

rem 非同期実行
start %spath%k-pacs.exe

基本動作確認はできた。エラー処理は別途検討する。

K-Pacsとファイアウォール

K-pacsをインストールして初めて起動するときは、ファイアウォールの許可を聞かれる。
この時設定しなと以後は聞かれないので、手動で設定する。

ファイアウォールはポートではなくK-pacs-serverの実行形式をしてする

ファイアウォールの画面の左ペインの「Windows Defenderファイアウォールを介したアプリまたは機能を許可」をクリックする

「別のアプリの許可」をクリック
(このボタンがグレーアウトしているときは「設定の変更」をクリックするとボタンがアクティブになる)

パスで以下の2つ、または一つを追加する

  • \KPacs\K-Pacs-server\kpserver.exe
  • \KPacs\K-Pacs-server\kpsrrveradmin.exe

どちらを追加した記憶にないの次回チャンスがあれば確認する。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-07-01 (金) 16:59:47