echoscu: DICOM 検証(C-ECHO)SCU
書式
echoscu [options] peer port
説明
echoscu は Verification SOP Class に対する Service Class User(SCU)を実装したアプリケーションです。DICOM の C-ECHO メッセージを Service Class Provider(SCP)へ送信し、その応答を待ちます。基本的な DICOM 接続性の確認に利用できます。
引数
peer hostname of DICOM peer
port tcp/ip port number of peer
オプション
全般オプション
-h --help- このヘルプを表示して終了します
--version- バージョン情報を表示して終了します
--arguments- 展開後のコマンドライン引数を表示します
-q --quiet- quiet モード。警告やエラーを表示しません
-v --verbose- verbose モード。処理の詳細を表示します
-d --debug- debug モード。デバッグ情報を表示します
-ll --log-level [l]evel: string constant- (fatal, error, warn, info, debug, trace) ロガーにレベル l を使用します
-lc --log-config [f]ilename: string- ロガーに設定ファイル f を使用します
ネットワークオプション
-i4 --ipv4- IPv4 のみを使用します(既定値)
-i6 --ipv6- IPv6 のみを使用します
-i0 --ip-auto- DNS ルックアップで IP プロトコルを判定します application entity titles:
-aet --aetitle [a]etitle: string- 自分の calling AE title を設定します(既定値: ECHOSCU)
-aec --call [a]etitle: string- 相手の called AE title を設定します(既定値: ANY-SCP) association negotiation debugging:
-pts --propose-ts [n]umber: integer (1..53)- n 個の転送構文を提案します
-ppc --propose-pc [n]umber: integer (1..128)- n 個の presentation context を提案します other network options:
-to --timeout [s]econds: integer (default: unlimited)- 接続要求のタイムアウト
-ts --socket-timeout [s]econds: integer (default: 60)- ネットワークソケットのタイムアウト(0 で無効)
-ta --acse-timeout [s]econds: integer (default: 30)- ACSE メッセージのタイムアウト
-td --dimse-timeout [s]econds: integer (default: unlimited)- DIMSE メッセージのタイムアウト
-pdu --max-pdu [n]umber of bytes: integer (4096..131072)- 受信 PDU の最大サイズを n バイトに設定します(既定値: 16384)
--repeat [n]umber: integer- n 回繰り返します
--abort- アソシエーションを解放せずに中断します
トランスポート層セキュリティ(TLS)オプション
-tls --disable-tls- 通常の TCP/IP 接続を使用します(既定値)
+tls --enable-tls [p]rivate key file, [c]ertificate file: string- 認証付きのセキュアな TLS 接続を使用します
+tla --anonymous-tls- 証明書なしでセキュアな TLS 接続を使用します private key password (only with --enable-tls):
+ps --std-passwd- パスワードを標準入力から入力するよう促します(既定値)
+pw --use-passwd [p]assword: string- 指定したパスワードを使用します
-pw --null-passwd- パスワードに空文字列を使用します key and certificate file format:
-pem --pem-keys- 鍵と証明書を PEM ファイルとして読み込みます(既定値)
-der --der-keys- 鍵と証明書を DER ファイルとして読み込みます certification authority:
+cf --add-cert-file [f]ilename: string- 証明書ファイルを証明書リストに追加します
+cd --add-cert-dir [d]irectory: string- d 内の証明書を証明書リストに追加します
+crl --add-crl-file [f]ilename: string- 証明書失効リストファイルを追加します(--enable-crl-vfy を含意します)
+crv --enable-crl-vfy- リーフ証明書の CRL 検証を有効にします
+cra --enable-crl-all- チェーン全体の CRL 検証を有効にします security profile:
+ph --list-profiles- 対応する TLS プロファイルを一覧表示して終了します
+pg --profile-8996- BCP 195 RFC 8996 TLS Profile(既定値)
+pm --profile-8996-mod- Modified BCP 195 RFC 8996 TLS Profile # only available if underlying TLS library supports # all TLS features required for this profile
+py --profile-bcp195-nd- Non-downgrading BCP 195 TLS Profile(廃止)
+px --profile-bcp195- BCP 195 TLS Profile(廃止)
+pz --profile-bcp195-ex- Extended BCP 195 TLS Profile(廃止)
+pb --profile-basic- Basic TLS Secure Transport Connection Profile(廃止) # only available if underlying TLS library supports 3DES
+pa --profile-aes- AES TLS Secure Transport Connection Profile(廃止)
+pn --profile-null- 認証付き非暗号化通信(廃止。IHE ATNA で使用されていました) ciphersuite:
+cc --list-ciphers- 対応する TLS 暗号スイートを一覧表示して終了します
+cs --cipher [c]iphersuite name: string- 暗号スイートをネゴシエーション対象のリストに追加します server name indication:
--no-sni- SNI を使用しません(既定値)
--request-sni [s]erver name: string- サーバ名 s を要求します pseudo random generator:
+rs --seed [f]ilename: string- f の内容で乱数生成器をシードします
+ws --write-seed- 変更後のシードを書き戻します(--seed 指定時のみ)
+wf --write-seed-file [f]ilename: string (only with --seed)- 変更後のシードをファイル f へ書き出します peer authentication:
-rc --require-peer-cert- 相手の証明書を検証し、なければ失敗とします(既定値)
-ic --ignore-peer-cert- 相手の証明書を検証しません offline certificate verification:
+vc --verify-cert [f]ilename: string- CA 設定に対して証明書を検証します # Load a client certificate and check whether it would be accepted # when received during a TLS handshake. Print result and exit.
+rc --is-root-cert [f]ilename: string- 証明書が自己署名のルート CA かどうかを確認します # Load a client certificate and check whether it is a valid, # self-signed root CA certificate. Print result and exit.
注記
DICOM 適合性
echoscu は SCU として次の SOP Class に対応しています。
VerificationSOPClass 1.2.840.10008.1.1
既定では、echoscu は次の転送構文のみを提案します。
LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
–propose-ts オプションを使用した場合、このオプションに渡す数値「n」に応じて、次の転送構文も追加で提案されます。
LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
JPEGProcess1TransferSyntax 1.2.840.10008.1.2.4.50
JPEGProcess2_4TransferSyntax 1.2.840.10008.1.2.4.51
JPEGProcess3_5TransferSyntax 1.2.840.10008.1.2.4.52
JPEGProcess6_8TransferSyntax 1.2.840.10008.1.2.4.53
JPEGProcess7_9TransferSyntax 1.2.840.10008.1.2.4.54
JPEGProcess10_12TransferSyntax 1.2.840.10008.1.2.4.55
JPEGProcess11_13TransferSyntax 1.2.840.10008.1.2.4.56
JPEGProcess14TransferSyntax 1.2.840.10008.1.2.4.57
JPEGProcess15TransferSyntax 1.2.840.10008.1.2.4.58
JPEGProcess16_18TransferSyntax 1.2.840.10008.1.2.4.59
JPEGProcess17_19TransferSyntax 1.2.840.10008.1.2.4.60
JPEGProcess20_22TransferSyntax 1.2.840.10008.1.2.4.61
JPEGProcess21_23TransferSyntax 1.2.840.10008.1.2.4.62
JPEGProcess24_26TransferSyntax 1.2.840.10008.1.2.4.63
JPEGProcess25_27TransferSyntax 1.2.840.10008.1.2.4.64
JPEGProcess28TransferSyntax 1.2.840.10008.1.2.4.65
JPEGProcess29TransferSyntax 1.2.840.10008.1.2.4.66
JPEGProcess14SV1TransferSyntax 1.2.840.10008.1.2.4.70
RLELosslessTransferSyntax 1.2.840.10008.1.2.5
DeflatedExplicitVRLittleEndianTransferSyntax 1.2.840.10008.1.2.1.99
JPEGLSLosslessTransferSyntax 1.2.840.10008.1.2.4.80
JPEGLSLossyTransferSyntax 1.2.840.10008.1.2.4.81
JPEG2000LosslessOnlyTransferSyntax 1.2.840.10008.1.2.4.90
JPEG2000TransferSyntax 1.2.840.10008.1.2.4.91
JPEG2000Part2MulticomponentImageComp.LosslessOnlyT. 1.2.840.10008.1.2.4.92
JPEG2000Part2MulticomponentImageComp.TransferSyntax 1.2.804.10008.1.2.4.93
MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100
MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101
MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102
MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103
MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104
MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105
MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106
HEVCMainProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.107
HEVCMain10ProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.108
FragmentableMPEG2MainProfileMainLevelTransferSyntax 1.2.840.10008.1.2.4.100.1
FragmentableMPEG2MainProfileHighLevelTransferSyntax 1.2.840.10008.1.2.4.101.1
FragmentableMPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102.1
FragmentableMPEG4BDcompatibleHighProfileLevel4_1Tr. 1.2.840.10008.1.2.4.103.1
FragmentableMPEG4HighProfileLevel4_2_For2DVideoTr.S 1.2.840.10008.1.2.4.104.1
FragmentableMPEG4HighProfileLevel4_2_For3DVideoTr.S 1.2.840.10008.1.2.4.105.1
FragmentableMPEG4StereoHighProfileLevel4_2TransferS 1.2.840.10008.1.2.4.106.1
HighThroughputJPEG2000ImageCompressionLossless.Tr.S 1.2.840.10008.1.2.4.201
HighThroughputJPEG2000RPCLImageCompressionLoss.Tr.S 1.2.840.10008.1.2.4.202
HighThroughputJPEG2000ImageCompressionTransferSynt. 1.2.840.10008.1.2.4.203
ロギング
各コマンドラインツールおよびその基盤ライブラリのログ出力レベルは、ユーザーが指定できます。既定では、エラーと警告のみが標準エラー出力へ書き出されます。–verbose オプションを使うと、処理の詳細などの情報メッセージも出力されます。–debug オプションを使うと、デバッグなどの目的で内部動作の詳細をさらに得られます。その他のログレベルは –log-level オプションで選択できます。–quiet モードでは致命的エラーのみが報告されます。このような極めて重大なエラーが発生した場合、アプリケーションは通常そのまま終了します。各ログレベルの詳細については、モジュール「oflog」のドキュメントを参照してください。
ログ出力をファイルへ書き出したい場合(任意でログファイルのローテーションを伴う)、あるいは syslog(Unix)やイベントログ(Windows)へ出力したい場合は、–log-config オプションを使用できます。この設定ファイルでは、特定のメッセージのみを特定の出力ストリームへ振り分けたり、メッセージを生成したモジュールやアプリケーションに基づいて特定のメッセージをフィルタリングしたりすることもできます。設定ファイルの例は < etcdir>/logger.cfg に用意されています。
コマンドライン
すべてのコマンドラインツールは、引数に次の記法を用います。角括弧は省略可能な値(0〜1個)を囲みます。末尾の3点リーダーは複数の値が許されること(1〜n個)を示します。両者の組み合わせは0〜n個の値を意味します。
コマンドラインオプションは、先頭の '+' または '-' 記号によって引数と区別されます。通常、コマンドラインオプションの順序や位置は任意であり、どこに現れてもかまいません。ただし、相互排他のオプションについては、最も右に現れたものが採用されます。この挙動は、一般的な Unix シェルの標準的な評価規則に従っています。
さらに、ファイル名の前に '@' 記号を付けることで、1つ以上のコマンドファイルを指定できます(例: @command.txt)。このようなコマンド引数は、以降の評価に先立って、対応するテキストファイルの内容に置き換えられます(連続する空白は、引用符で囲まれていない限り単一の区切りとして扱われます)。なお、コマンドファイルの中に別のコマンドファイルを含めることはできません。この単純ながら効果的な仕組みにより、よく使うオプションや引数の組み合わせをまとめ、長くて分かりにくいコマンドラインを避けられます(例は < datadir>/dumppat.txt に用意されています)。
終了コード
echoscu は終了時に次の終了コードを使用します。これにより、アプリケーションが終了した理由をユーザーが確認できます。
全般
EXITCODE_NO_ERROR 0
EXITCODE_COMMANDLINE_SYNTAX_ERROR 1
入力ファイルエラー
EXITCODE_CANNOT_READ_INPUT_FILE 20 (*)
EXITCODE_INVALID_INPUT_FILE 22
出力ファイルエラー
EXITCODE_CANNOT_WRITE_OUTPUT_FILE 40 (*)
ネットワークエラー
EXITCODE_CANNOT_INITIALIZE_NETWORK 60 (*)
EXITCODE_ASSOCIATION_ABORTED 70
() これらのコードは現在のところ echoscu* では実際には使用されていませんが、対応する終了コード群のプレースホルダーとして用意されています。
環境変数
echoscu は、DCMDICTPATH 環境変数で指定された DICOM データ辞書の読み込みを試みます。既定では、すなわち DCMDICTPATH 環境変数が設定されていない場合、データ辞書がアプリケーションに組み込まれていない限り(Windows では既定で組み込み)、ファイル < datadir>/dicom.dic が読み込まれます。
通常はこの既定の動作が望ましく、DCMDICTPATH 環境変数は別のデータ辞書が必要な場合にのみ使用すべきです。DCMDICTPATH 環境変数の形式は Unix シェルの PATH 変数と同じで、エントリをコロン(":")で区切ります。Windows システムでは区切りにセミコロン(";")を使います。データ辞書のコードは、DCMDICTPATH 環境変数で指定された各ファイルの読み込みを試みます。データ辞書を一つも読み込めない場合はエラーとなります。
著作権
Copyright (C) 1994-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.