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

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 クラスではなく、リアルタイム通信に使用されます。

現在のところ、必須属性と一部の任意属性のみがサポートされている点にご注意ください。

文字エンコーディング

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.