dcmdump: DICOM ファイルとデータセットのダンプ
書式
dcmdump [options] dcmfile-in...
説明
dcmdump は、DICOM ファイル(ファイル形式または生のデータセット)の内容をテキスト形式で stdout にダンプするユーティリティです。値フィールドが非常に大きい属性(ピクセルデータなど)は「(not loaded)」と表示されることがあります。文字列の値フィールドは角括弧([])で囲まれます。既知の UID は、このマッピングを明示的に無効化しない限り、等号を前置した名称(例: 「=MRImageStorage」)で表示されます。空の値フィールドは「(no value available)」と表示されます。
dcmdump が生のデータセット(ファイル形式のメタヘッダを持たない DICOM データ)を読み込む場合、ファイル先頭の数バイトを調べて転送構文を推測しようとします。転送構文を常に正しく推測できるとは限らないため、可能であれば(dcmconv ユーティリティを使って)データセットをファイル形式に変換しておくのが望ましいです。また、-f オプションと -t[ieb] オプションを使えば、dcmdump に特定の転送構文でデータセットを読み込ませることもできます。
引数
dcmfile-in DICOM input file or directory to be dumped ("-" for stdin)
オプション
全般オプション
-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 を使用します
入力オプション
+f --read-file- ファイル形式またはデータセットを読み込みます(既定値)
+fo --read-file-only- ファイル形式のみを読み込みます
-f --read-dataset- ファイルメタ情報なしでデータセットを読み込みます。入力の転送構文:
-t= --read-xfer-auto- 転送構文を自動認識します(既定値)
-td --read-xfer-detect- ファイルメタヘッダで指定された転送構文を無視します
-te --read-xfer-little- explicit VR リトルエンディアンの転送構文で読み込みます
-tb --read-xfer-big- explicit VR ビッグエンディアンの転送構文で読み込みます
-ti --read-xfer-implicit- implicit VR リトルエンディアンの転送構文で読み込みます。入力ファイル:
+sd --scan-directories- 入力ファイル(dcmfile-in)を求めてディレクトリを走査します
+sp --scan-pattern [p]attern: string (only with --scan-directories)- ファイル名照合のパターン(ワイルドカード) # システムによっては利用できない場合があります
-r --no-recurse- ディレクトリ内を再帰的に処理しません(既定値)
+r --recurse- 指定したディレクトリ内を再帰的に処理します。長いタグ値:
+M --load-all- 非常に長いタグ値も読み込みます(既定値)
-M --load-short- 非常に長い値(ピクセルデータなど)を読み込みません
+R --max-read-length [k]bytes: integer (4..4194302, default: 4)- 長い値とみなすしきい値を k キロバイトに設定します。ファイルメタ情報の解析:
+ml --use-meta-length- ファイルメタ情報のグループ長を使用します(既定値)
-ml --ignore-meta-length- ファイルメタ情報のグループ長を無視します。奇数長属性の解析:
+ao --accept-odd-length- 奇数長の属性を受け入れます(既定値)
+ae --assume-even-length- 実際の長さは 1 バイト大きいと仮定します。explicit VR の扱い:
+ev --use-explicit-vr- データセットの explicit VR を使用します(既定値)
-ev --ignore-explicit-vr- explicit VR を無視します(データ辞書を優先します)。非標準 VR の扱い:
+vr --treat-as-unknown- 非標準の VR を unknown として扱います(既定値)
-vr --assume-implicit- implicit VR リトルエンディアンの転送構文で読み込みを試みます。長さ未定義の UN 要素の扱い:
+ui --enable-cp246- 長さ未定義の UN を implicit VR として読み込みます(既定値)
-ui --disable-cp246- 長さ未定義の UN を explicit VR として読み込みます。長さ定義済みの UN 要素の扱い:
-uc --retain-un- 要素を UN のまま保持します(既定値)
+uc --convert-un- 既知であれば本来の VR に変換します。プライベートな最大長要素(implicit VR)の扱い:
-sq --maxlength-dict- 辞書の定義どおりに読み込みます(既定値)
+sq --maxlength-seq- 長さ未定義のシーケンスとして読み込みます。誤った区切りアイテムの扱い:
-rd --use-delim-items- データセットの区切りアイテムを使用します(既定値)
+rd --replace-wrong-delim- 誤ったシーケンス/アイテムの区切りアイテムを置き換えます。長さ未定義の不正な OB/OW 要素の扱い:
-oi --illegal-obow-rej- 不正な要素を含むデータセットを拒否します(既定値)
+oi --illegal-obow-conv- 長さ未定義の OB/OW 要素を SQ に変換します。OW VR かつ長さ明示の VOI LUT Sequence の扱い:
-vi --illegal-voi-rej- 不正な VOI LUT を含むデータセットを拒否します(既定値)
+vi --illegal-voi-conv- 不正な VOI LUT を SQ に変換します。カプセル化転送構文での長さ明示ピクセルデータの扱い:
-pe --abort-expl-pixdata- 長さ明示のピクセルデータがあれば中止します(既定値)
+pe --use-expl-pixdata- 長さ明示のピクセルデータを使用します。パーサエラーの全般的な扱い:
+Ep --ignore-parse-errors- パースエラーからの回復を試みます
-Ep --handle-parse-errors- パースエラーを処理して解析を停止します(既定値)。その他の解析オプション:
+st --stop-after-elem [t]ag: "gggg,eeee" or dictionary name- t で指定した要素の後で解析を停止します
+sb --stop-before-elem [t]ag: "gggg,eeee" or dictionary name- t で指定した要素の前で解析を停止します # メインデータセットレベルの要素のみを対象とし、 # 指定したタグがファイルに存在しない場合も動作します。自動データ補正:
+dc --enable-correction- 自動データ補正を有効にします(既定値)
-dc --disable-correction- 自動データ補正を無効にします。deflate 入力のビットストリーム形式:
+bd --bitstream-deflated- deflate ビットストリームを期待します(既定値)
+bz --bitstream-zlib- deflate zlib ビットストリームを期待します
処理オプション
specific character set:
+U8 --convert-to-utf8
convert all element values that are affected
by Specific Character Set (0008,0005) to UTF-8
# requires support from an underlying character encoding library
# (see output of --version on which one is available)
出力オプション
+L --print-all- 長いタグ値を完全に表示します
-L --print-short- 長いタグ値を短縮して表示します(既定値)
+T --print-tree- 階層構造を単純なツリーとして表示します
-T --print-indented- 階層構造をインデントして表示します(既定値)
+F --print-filename- 各入力ファイルについてファイル名付きのヘッダを表示します
+Fs --print-file-search- 検索対象タグのいずれかを含む入力ファイルについてのみ、ファイル名付きのヘッダを表示します。マッピング:
+Un --map-uid-names- よく知られた UID 番号を名称にマッピングします(既定値)
-Un --no-uid-names- よく知られた UID 番号を名称にマッピングしません。引用:
+Qn --quote-nonascii- 非 ASCII および制御文字を XML マークアップとして引用表記します
+Qo --quote-as-octal- 非 ASCII および制御文字を 8 進数で引用表記します
-Qn --print-nonascii- 非 ASCII および制御文字をそのまま表示します(既定値)。色:
+C --print-color- 色付き出力に ANSI エスケープコードを使用します
-C --no-color- ANSI エスケープコードを一切使用しません(既定値)。エラー処理:
-E --stop-on-error- ファイルが破損している場合は表示しません(既定値)
+E --ignore-errors- ファイルが破損していても表示を試みます。検索:
+P --search [t]ag: "gggg,eeee" or dictionary name- タグ t のテキストダンプを表示します。このオプションは複数回指定できます(既定では、ファイル全体が表示されます)
+s --search-all- 検索対象タグのすべてのインスタンスを表示します(既定値)
-s --search-first- 検索対象タグの最初のインスタンスのみを表示します
+p --prepend- 表示するタグの前にシーケンス階層を付加します。表記は次のとおりです: (gggg,eeee).(gggg,eeee).* (--search と併用した場合のみ)
-p --no-prepend- タグの前に階層を付加しません(既定値)。書き込み:
+W --write-pixel [d]irectory: string- ピクセルデータを d に格納した .raw ファイルへ書き出します(リトルエンディアン。ファイル名は自動生成されます)
注記
コマンドラインの引数にディレクトリを指定するのは、–scan-directories オプションも併せて指定する場合にのみ意味を持ちます。指定したディレクトリ内のファイルを特定の名前パターン(ワイルドカード照合など)で選別したい場合は、–scan-pattern オプションを使う必要があります。なお、このファイルパターンは走査対象ディレクトリ内のファイルにのみ適用されます。さらに別のファイルを選ぶ目的などで –scan-pattern オプション以外の場所にパターンをコマンドラインで指定しても、それらは指定したディレクトリには適用されません。
ロギング
各コマンドラインツールおよび基盤ライブラリのログ出力レベルは、ユーザーが指定できます。既定では、エラーと警告のみが標準エラー出力へ書き出されます。–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 に用意されています)。
環境変数
dcmdump ユーティリティは、DCMDICTPATH 環境変数で指定された DICOM データ辞書を読み込もうとします。既定では、つまり DCMDICTPATH 環境変数が設定されていない場合、データ辞書がアプリケーションに組み込まれている場合(Windows の既定)を除き、ファイル < datadir>/dicom.dic が読み込まれます。
通常はこの既定の動作が望ましく、DCMDICTPATH 環境変数は別のデータ辞書が必要な場合にのみ使うべきです。DCMDICTPATH 環境変数の形式は Unix シェルの PATH 変数と同じで、コロン(":")でエントリを区切ります。Windows システムではセミコロン(";")を区切りに使います。データ辞書のコードは、DCMDICTPATH 環境変数で指定された各ファイルを読み込もうとします。データ辞書を 1 つも読み込めない場合はエラーとなります。
指定されたコマンドラインオプションによっては、dcmdump ユーティリティは文字セットのマッピングテーブルを読み込もうとします。これは、DCMTK が oficonv ライブラリ(既定)とともにコンパイルされ、かつマッピングテーブルがライブラリに組み込まれていない場合(DCMTK が共有ライブラリを使う場合の既定)に起こります。
マッピングテーブルのファイルは DCMTK の < datadir> に置かれているものとされます。別の場所を指定するには DCMICONVPATH 環境変数を使えます。別の場所を指定した場合、それらのマッピングテーブルは組み込みのテーブルも置き換えます。
関連項目
dump2dcm(1), dcmconv(1)
著作権
Copyright (C) 1994-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.