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

xml2dsr: XML文書をDICOM SRファイルに変換する

書式

xml2dsr [options] xmlfile-in dsrfile-out

説明

xml2dsr ユーティリティは、XML(Extensible Markup Language)文書の内容を DICOM 構造化レポート(SR)形式(ファイル形式または生のデータセット)に変換します。XML スキーマ dsr2xml.xsd は今のところ標準的な形式に準拠していません。ただし、将来的には xml2dsr アプリケーションがこの点を強化する可能性があります(例: HL7/CDA - Clinical Document Architecture のサポート)。

適切な XML ファイルは dsr2xml ツールで作成できます(ルート要素に XML 名前空間宣言を追加するため、オプション +Xn の使用を推奨します)。

引数

xmlfile-in   XML input filename to be converted ("-" for stdin)

dsrfile-out  DICOM SR 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 を使用します

入力オプション

encoding:

  +Ee  --template-envelope
         template element encloses content items

処理オプション

+Vs --validate-schema
XML 文書をスキーマに対して検証します(--template-envelope とは併用不可) # libxml が XML スキーマサポート付きでコンパイルされている必要があります
+Vn --check-namespace
文書ルートの XML 名前空間を確認します unique identifiers:
+Ug --generate-new-uids
新しい Study/Series/SOP Instance UID を生成します
-Uo --dont-overwrite-uids
既存の UID を上書きしません(既定値)
+Uo --overwrite-uids
既存の UID を上書きします

出力オプション

+F --write-file
ファイル形式で書き出します(既定値)
-F --write-dataset
ファイルメタ情報なしでデータセットを書き出します output transfer syntax:
+t= --write-xfer-same
入力と同じ転送構文で書き出します(既定値)
+te --write-xfer-little
明示的 VR リトルエンディアン転送構文で書き出します
+tb --write-xfer-big
明示的 VR ビッグエンディアン転送構文で書き出します
+ti --write-xfer-implicit
暗黙的 VR リトルエンディアン転送構文で書き出します
+td --write-xfer-deflated
deflate 圧縮された明示的 VR リトルエンディアン転送構文で書き出します post-1993 value representations:
+u --enable-new-vr
新しい VR(UN/UT)のサポートを有効にします(既定値)
-u --disable-new-vr
新しい VR のサポートを無効にし、OB に変換します group length encoding:
+g= --group-length-recalc
グループ長が存在する場合は再計算します(既定値)
+g --group-length-create
常にグループ長要素を付けて書き出します
-g --group-length-remove
常にグループ長要素を付けずに書き出します length encoding in sequences and items:
+e --length-explicit
明示的な長さで書き出します(既定値)
-e --length-undefined
未定義の長さで書き出します data set trailing padding (not with --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 compression level (only with --write-xfer-deflated):
+cl --compression-level [l]evel: integer (default: 6)
0=無圧縮、1=最速、9=最高圧縮

注記

DICOM 適合性

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

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

文字エンコーディング

DICOM の文字エンコーディングは、タグ "0008,0005"(Specific Character Set)の要素が存在する場合、それに基づいて自動的に判定されます。現在サポートされている文字セットは次のとおりです(libxmliconv サポートを含んでいる必要があります。–version の出力を参照してください)。

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)

圧縮

libxml が zlib サポート付きでコンパイルされている場合、入力ファイル(xmlfile-in)を ZIP で圧縮することもでき、通常はファイルサイズが大幅に小さくなります。zlib サポートが利用可能かどうかは、オプション –version の出力で確認できます。

制限事項

XML スキーマ dsr2xml.xsd は、dsr2xml 出力形式のすべてのバリエーションをサポートしているわけではありません。ただし、既定の出力形式(とオプション –use-xml-namespace)であれば動作するはずです。

libxml はバージョンによって XML 要素値の最大長の上限が異なるようです。そのため、非常に長い要素値の使用は避けるべきです。libxml バージョン 2.7.3(以降)における典型的な上限は、単一要素値あたり 10 MB です。

ロギング

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

環境変数

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

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

ファイル

< datadir>/dsr2xml.xsd - XML スキーマファイル

関連項目

dsr2xml(1)

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