⚠️ これは 非公式の翻訳サイトです。DCMTK / OFFIS とは無関係です。正確な情報は 原文(https://support.dcmtk.org/docs/dump2dcm.html) を参照してください。

dump2dcm: ASCIIダンプをDICOMファイルに変換する

書式

dump2dcm [options] dumpfile-in dcmfile-out

説明

dump2dcm は、ASCIIダンプファイルをDICOMファイルに変換するユーティリティです。ダンプファイルの形式は dcmdump の出力と同じであり、dcmdump の出力をいったんファイルに取り込んで一部の属性を書き換え、新しいDICOMファイルを作成するといった使い方ができます。

引数

dumpfile-in  dump input filename

dcmfile-out  DICOM output filename ("-" for stdout)

オプション

全般オプション

-h --help
このヘルプを表示して終了します
--version
バージョン情報を表示して終了します
--arguments
展開後のコマンドライン引数を表示します
-q --quiet
静粛モード。警告やエラーを表示しません
-v --verbose
詳細モード。処理の詳細を表示します
-d --debug
デバッグモード。デバッグ情報を表示します
-ll --log-level [l]evel: string constant
(fatal, error, warn, info, debug, trace) ロガーにレベル l を使用します
-lc --log-config [f]ilename: string
ロガーに設定ファイル f を使用します

入力オプション

+f --read-meta-info
メタ情報があれば読み込みます(既定値)
-f --ignore-meta-info
ファイルメタ情報を無視します。ファイル内容のバイト順:
+rl --read-file-little
OWデータをリトルエンディアンで読み込みます(既定値)
+rb --read-file-big
OWデータをビッグエンディアンでファイルから読み込みます。その他の入力オプション:
+l --line [m]ax-length: integer
最大行長 m(既定値: 4096)

処理オプション

+Ug --generate-new-uids
新しい Study/Series/SOP Instance UID を生成します
-Uo --dont-overwrite-uids
既存のUIDを上書きしません(既定値)
+Uo --overwrite-uids
既存のUIDを上書きします

出力オプション

+F --write-file
ファイル形式で書き出します(既定値)
-F --write-dataset
ファイルメタ情報なしでデータセットを書き出します
+Fu --update-meta-info
特定のファイルメタ情報を更新します。出力転送構文:
+t= --write-xfer-same
入力と同じTSで書き出します(既定値)
+te --write-xfer-little
明示的VRリトルエンディアンで書き出します
+tb --write-xfer-big
明示的VRビッグエンディアンTSで書き出します
+ti --write-xfer-implicit
暗黙的VRリトルエンディアンTSで書き出します
+td --write-xfer-deflated
deflate圧縮した明示的VRリトルエンディアンTSで書き出します。エラー処理:
-E --stop-on-error
ダンプが壊れている場合は書き出しません(既定値)
+E --ignore-errors
ダンプが壊れていても書き出しを試みます。1993年以降の値表現:
+u --enable-new-vr
新しいVR(UN/UT)のサポートを有効にします(既定値)
-u --disable-new-vr
新しいVRのサポートを無効にし、OBに変換します。グループ長エンコーディング:
+g= --group-length-recalc
グループ長が存在すれば再計算します(既定値)
+g --group-length-create
常にグループ長要素を付けて書き出します
-g --group-length-remove
常にグループ長要素を除いて書き出します。シーケンスおよびアイテムの長さエンコーディング:
+e --length-explicit
明示的な長さで書き出します(既定値)
-e --length-undefined
未定義の長さで書き出します。データセット末尾のパディング(--write-dataset とは併用不可):
-p= --padding-retain
パディングを変更しません(--write-dataset でない場合の既定値)
-p --padding-off
パディングなし(--write-dataset では暗黙的に適用)
+p --padding-create [f]ile-pad [i]tem-pad: integer
ファイルを f バイトの倍数、アイテムを i バイトの倍数に整列します。deflate圧縮レベル(--write-xfer-deflated と併用時のみ):
+cl --compression-level [l]evel: integer (default: 6)
0=無圧縮, 1=最速, 9=最高圧縮

注記

ダンプファイルの仕様

入力ファイルには dcmdump の出力(既定のインデント付き形式のみ)を使用できます。1つの要素(タグ、VR、値)は、任意個数のスペースまたはタブ文字で区切って1行に記述しなければなりません。'#' から行末まではコメントとして扱われます。空行は許容されます。

1行の各部分は次の構文に従います:

Tag:   (gggg,eeee)
       with gggg and eeee are 4 character hexadecimal values
       representing group and element tag.  Spaces and tabs can be
       anywhere in a tag specification.
VR:    Value Representation must be written as 2 characters as in
       Part 6 of the DICOM standard.  No spaces or tabs are allowed
       between the two characters.  If the VR can be determined from
       the tag, this part of a line is optional.
Value: There are several rules for writing values:
       1. US, SS, UL, SL, UV, SV, FD, FL, OD, OF, OL and OV are written
          as decimal strings that can be read by scanf().
       2. AT is written as '(gggg,eeee)' with additional spaces
          stripped off automatically and gggg and eeee being decimal
          strings that can be read by scanf().
       3. OB and OW values are written as byte or word hexadecimal
          values separated by '\' character.  Alternatively, OB or OW
          values can be read from a separate file by writing the
          filename prefixed by a '=' character (e.g. '=largepix.dat').
          The contents of the file will be read as is.  By default, OW
          data is expected to be little endian ordered and will be
          swapped if necessary.  No checks will be made to ensure that
          the amount of data is reasonable in terms of other attributes
          such as Rows or Columns.
          In case of compressed pixel data, the line should start with
          '(7fe0,0010) OB (PixelSequence' in order to distinguish from
          uncompressed pixel data.
       4. UI is written as '=Name' in data dictionary or as unique
          identifier string (see 6.), e.g. '[1.2.840.....]'.
       5. Strings without () <> [] spaces, tabs and # can be written
          directly.
       6. Other strings must be surrounded by '[' and ']'.  No bracket
          structure is passed.  The value ends at the last ']' in the
          line.  Anything after the ']' is interpreted as comment.
       7. '(' and '<' are interpreted special and may not be used when
          writing an input file by hand as beginning characters of a
          string.  Multiple Value are separated by '\'.  The lines
          need not be sorted into ascending tag order.  References in
          DICOM Directories are not supported.  Semantic errors are
          not detected.

次の行は、上で説明した構文の有効な例を示しています:

 (0008,0020) DA [19921012]            #  8, 1 StudyDate
 (0008,0016) UI =MRImageStorage       # 26, 1 SOPClassUID
 (0002,0012) UI [1.2.276.0.7230010.100.1.1]
 (0020,0032) DS [0.0\0.0]             #  8, 2 ImagePositionPatient
 (0028,0009) AT (3004,000c)           #  4, 1 FrameIncrementPointer
 (0028,0010) US 256                   #  4, 1 Rows
 (0002,0001) OB 01\00

制限事項

dump2dcm は現在のところ、DICOMDIRファイルを完全にはサポートしていない点に注意してください。具体的には、各種オフセットデータ要素の値はこのツールでは自動更新されません。

ロギング

各種コマンドラインツールおよび基盤ライブラリのロギング出力レベルは、ユーザーが指定できます。既定では、エラーと警告のみが標準エラー出力に書き出されます。–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 に用意されています)。

環境変数

dump2dcm ユーティリティは、環境変数 DCMDICTPATH で指定されたDICOMデータ辞書の読み込みを試みます。既定では、つまり DCMDICTPATH 環境変数が設定されていない場合は、データ辞書がアプリケーションに組み込まれていない限り(Windowsでは既定で組み込み)、ファイル < datadir>/dicom.dic が読み込まれます。

通常はこの既定の挙動が望ましく、DCMDICTPATH 環境変数は別のデータ辞書が必要な場合にのみ使用するべきです。DCMDICTPATH 環境変数の形式はUnixシェルの PATH 変数と同じで、エントリをコロン(":")で区切ります。Windowsシステムではセミコロン(";")を区切り文字に使います。データ辞書コードは、DCMDICTPATH 環境変数で指定された各ファイルの読み込みを試みます。データ辞書を1つも読み込めない場合はエラーとなります。

関連項目

dcmdump(1)

Copyright (C) 1996-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.