dsr2xml: DICOM SR ファイルとデータセットを XML へ変換する
書式
dsr2xml [options] dsrfile-in [xmlfile-out]
説明
dsr2xml ユーティリティは、DICOM Structured Reporting (SR) ドキュメント(ファイル形式または生のデータセット)の内容を XML (Extensible Markup Language) へ変換します。XML スキーマ dsr2xml.xsd は今のところ標準的な形式には準拠していません。ただし、dsr2xml はこの点について将来的に拡張される可能性があります(例えば HL7/CDA - Clinical Document Architecture への対応など)。
dsr2xml がファイル形式のメタヘッダを持たない生のデータセット(DICOM データ)を読む場合、ファイル先頭の数バイトを調べて転送構文を推測しようとします。転送構文を常に正しく推測できるとは限らないため、可能な限り(dcmconv ユーティリティを使って)データセットをファイル形式へ変換しておくほうがよいでしょう。また、-f オプションと -t[ieb] オプションを使えば、特定の転送構文でデータセットを読むよう dsr2xml に強制することもできます。
引数
dsrfile-in DICOM SR input filename to be converted ("-" for stdin)
xmlfile-out XML output filename (default: stdout)
オプション
全般オプション
-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 little endian の転送構文で読みます
-tb --read-xfer-big- explicit VR big endian の転送構文で読みます
-ti --read-xfer-implicit- implicit VR little endian の転送構文で読みます
処理オプション
-Er --unknown-relationship- 不明または欠落した関連タイプを受け入れます
-Ev --invalid-item-value- 不正なコンテンツアイテム値を受け入れます(例: VR や VM の定義違反)
-Ec --ignore-constraints- 関連に関するコンテンツの制約を無視します
-Ee --ignore-item-errors- コンテンツアイテムのエラーで中断せず、警告のみ出します(例: 値タイプ固有の属性の欠落)
-Ei --skip-invalid-items- 不正なコンテンツアイテムをスキップします(サブツリーを含む)
-Dv --disable-vr-checker- 文字列値の VR 適合性チェックを無効にします。固有文字集合:
+Cr --charset-require- 拡張文字集合の宣言を必須とします(既定値)
+Ca --charset-assume [c]harset: string- 拡張文字集合が宣言されていない場合に文字集合 c を仮定します
+Cc --charset-check-all- 文字列値を持つすべてのデータ要素をチェックします(既定値: PN, LO, LT, SH, ST, UC, UT のみ)# このオプションは Specific Character Set (0008,0005) 属性が # 存在すべきかどうかの拡張チェックにのみ使われ、影響を受けません # 要素値の UTF-8 への変換(例: VR が CS の要素値)には使われません
+U8 --convert-to-utf8- Specific Character Set (0008,0005) の影響を受けるすべての要素値を UTF-8 へ変換します # 下層の文字エンコーディングライブラリのサポートが必要 # (利用可能なライブラリは --version の出力を参照)
出力オプション
+Ea --attr-all- すべてを XML 属性としてエンコードします(+Ec, +Er, +Ev, +Et のショートカット)
+Ec --attr-code- code value、coding scheme designator、coding scheme version を XML 属性としてエンコードします
+Er --attr-relationship- 関連タイプを XML 属性としてエンコードします
+Ev --attr-value-type- 値タイプを XML 属性としてエンコードします
+Et --attr-template-id- template id を XML 属性としてエンコードします
+Ee --template-envelope- template 要素でコンテンツアイテムを囲みます(+Wt が必要、+Et を含意する)XML 構造:
+Xs --add-schema-reference- XML スキーマ "dsr2xml.xsd" への参照を追加します(+Ea, +Ec, +Er, +Ev, +Et, +Ee, +We とは併用不可)
+Xn --use-xml-namespace- ルート要素に XML 名前空間宣言を追加します。書き出し:
+We --write-empty-tags- 値が空でもすべてのタグを書き出します
+Wi --write-item-id- アイテム識別子を常に書き出します
+Wt --write-template-id- template 識別情報を書き出します
注記
DICOM 適合性
dsr2xml ユーティリティは次の SOP クラスをサポートします:
SpectaclePrescriptionReportStorage 1.2.840.10008.5.1.4.1.1.78.6
MacularGridThicknessAndVolumeReportStorage 1.2.840.10008.5.1.4.1.1.79.1
BasicTextSRStorage 1.2.840.10008.5.1.4.1.1.88.11
EnhancedSRStorage 1.2.840.10008.5.1.4.1.1.88.22
ComprehensiveSRStorage 1.2.840.10008.5.1.4.1.1.88.33
Comprehensive3DSRStorage 1.2.840.10008.5.1.4.1.1.88.34
ProcedureLogStorage 1.2.840.10008.5.1.4.1.1.88.40
MammographyCADSRStorage 1.2.840.10008.5.1.4.1.1.88.50
KeyObjectSelectionDocumentStorage 1.2.840.10008.5.1.4.1.1.88.59
ChestCADSRStorage 1.2.840.10008.5.1.4.1.1.88.65
XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67
RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.68
ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69
ImplantationPlanSRStorage 1.2.840.10008.5.1.4.1.1.88.70
AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71
SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72
PatientRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.73
PlannedImagingAgentAdministrationSRStorage 1.2.840.10008.5.1.4.1.1.88.74
PerformedImagingAgentAdministrationSRStorage 1.2.840.10008.5.1.4.1.1.88.75
WaveformAnnotationSRStorage 1.2.840.10008.5.1.4.1.1.88.77
RenditionSelectionDocumentRealTimeCommunication 1.2.840.10008.10.4 (*)
(*) これは Storage SOP クラスではなく、Real-Time Communication に使われます。
現時点では必須属性と一部の任意属性のみがサポートされている点に注意してください。
文字エンコーディング
XML のエンコーディングは、DICOM 属性 (0008,0005) "Specific Character Set" から次の対応に従って自動的に決定されます:
ASCII (ISO_IR 6) => "UTF-8"
UTF-8 "ISO_IR 192" => "UTF-8"
ISO Latin 1 "ISO_IR 100" => "ISO-8859-1"
ISO Latin 2 "ISO_IR 101" => "ISO-8859-2"
ISO Latin 3 "ISO_IR 109" => "ISO-8859-3"
ISO Latin 4 "ISO_IR 110" => "ISO-8859-4"
ISO Latin 5 "ISO_IR 148" => "ISO-8859-9"
ISO Latin 9 "ISO_IR 203" => "ISO-8859-15"
Cyrillic "ISO_IR 144" => "ISO-8859-5"
Arabic "ISO_IR 127" => "ISO-8859-6"
Greek "ISO_IR 126" => "ISO-8859-7"
Hebrew "ISO_IR 138" => "ISO-8859-8"
Thai "ISO_IR 166" => "TIS-620"
Japanese "ISO 2022 IR 13\ISO 2022 IR 87" => "ISO-2022-JP"
Korean "ISO 2022 IR 6\ISO 2022 IR 149" => "ISO-2022-KR"
Chinese "ISO 2022 IR 6\ISO 2022 IR 58" => "ISO-2022-CN"
Chinese "GB18030" => "GB18030"
Chinese "GBK" => "GBK"
入力ファイルにこの DICOM 属性が無いが必要な場合、–charset-assume オプションを使って(DICOM 定義語のいずれかで)適切な文字集合を手動指定できます。本ツールの旧バージョンとの後方互換性のため、次の語も使用でき、対応する DICOM 定義語へ自動的にマッピングされます: latin-1, latin-2, latin-3, latin-4, latin-5, latin-9, cyrillic, arabic, greek, hebrew。
–convert-to-utf8 オプションを使うと、XML 形式への変換に先立って DICOM ファイルまたはデータセットを UTF-8 エンコーディングへ変換できます。
対応が定義されておらず –convert-to-utf8 オプションも使われていない場合、非 ASCII 文字および #32 未満の文字は "&#nnn;"("nnn" は数値文字コード)として格納されます。これにより不正な文字実体参照(例: ESC を表す "")が生じ、ほとんどの XML パーサがドキュメントを拒否する原因となりえます。
エラー処理
処理オプション –unknown-relationship、–invalid-item-value、–ignore-constraints、–ignore-item-errors、–skip-invalid-items は、DICOM SR 入力ファイルに対する特定の検証チェックを無効にするため、標準に適合しない出力を生じる可能性があります。扱いには注意してください。とはいえ、不正にエンコードされた SR ドキュメントを読み込んで処理するためなど、これらのオプションを使う理由がある場合もあります。
制限事項
XML スキーマ dsr2xml.xsd は dsr2xml の出力形式のすべてのバリエーションをサポートしているわけではありません。ただし、既定の出力形式(および –use-xml-namespace オプション)であれば問題なく動作するはずです。
ロギング
各種コマンドラインツールおよび下層ライブラリのロギング出力のレベルは、ユーザーが指定できます。既定では、エラーと警告のみが標準エラー出力へ書き出されます。–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 にある)。
環境変数
dsr2xml ユーティリティは、DCMDICTPATH 環境変数で指定された DICOM データ辞書を読み込もうとします。既定では、つまり DCMDICTPATH 環境変数が設定されていない場合、データ辞書がアプリケーションに組み込まれていない限り(Windows では既定で組み込み)、ファイル < datadir>/dicom.dic が読み込まれます。
既定の挙動が望ましく、DCMDICTPATH 環境変数は別のデータ辞書が必要な場合にのみ使うべきです。DCMDICTPATH 環境変数は Unix シェルの PATH 変数と同じ形式で、コロン (":") でエントリを区切ります。Windows システムではセミコロン (";") を区切りに使います。データ辞書のコードは、DCMDICTPATH 環境変数で指定された各ファイルを読み込もうとします。データ辞書が1つも読み込めない場合はエラーとなります。
指定したコマンドラインオプションによっては、dsr2xml ユーティリティは文字集合マッピングテーブルを読み込もうとします。これは DCMTK が oficonv ライブラリ付き(既定)でコンパイルされ、かつマッピングテーブルがライブラリに組み込まれていない(DCMTK が共有ライブラリを使う場合の既定)ときに起こります。
マッピングテーブルファイルは DCMTK の < datadir> に置かれていることが想定されます。DCMICONVPATH 環境変数を使えば別の場所を指定できます。別の場所を指定した場合、それらのマッピングテーブルは組み込みのテーブルも置き換えます。
ファイル
< datadir>/dsr2xml.xsd - XML スキーマファイル
関連項目
xml2dsr(1), dcmconv(1)
著作権
Copyright (C) 2000-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.