日本語入りのDataset-XMLをOpenCDISCでバリデートする

カテゴリー: CDISCラボ

日本語データが含まれたDataset-XMLをOpenCDISCでバリデートする実験

OpenCDISC version 1.5がリリースされた(http://www.opencdisc.org/)。このバージョンでは、Dataset-XMLを対象にバリデーションを実施できる。

20140430a.jpg

Dataset-XMLをバリデーションする場合、Define.XMLが対象ファイルと同じディレクトリに存在しなければならない。ファイル名は「Define.XML」に固定される。他の名称だと、エラーが出て動作が停止する(たとえ、ファイルの内容が正しいdefine.XMLであっても)。

20140430b.jpg

条件が整っていれば、OpenCDISCはDataset-XMLをバリデートする。実のところ、日本語データを含んだDataset-XMLをチェックする場合、特殊な操作は一切必要とされない。通常の操作をすれば、OpenCDISCは正常に動作する。例えば、こんなDataset-XMLがあったとして…

20140430c.jpg

OpenCDISCはきちんとチェックを実施してくれる。

20140430d.jpg

この場合、程度のデータが「重度」という日本語文字列のため、Terminologyのエラーが報告される。ここで、OpenCDISCが参照するTerminologyの辞書ファイルを書き換えると、日本語を"正式な用語"とみなしてチェックを実施できる(※1 2 3)。

※1:Terminologyを追加することで『完全なSDTM』のスペックを逸脱するかもしれない。この手法が正当である保証はない
※2: Terminologyの辞書ファイルの場所はOpenCDISCの説明書に記載されている
※3:生半可な知識で、これより先の実験を真似するべきではない。実力のある方だけどうぞ



辞書ファイルは単なるテキストファイルである。「日本語の用語」を追加したいなら、このファイルに追記すればいい。OpenCDISCは辞書ファイルを読み込む際に、実行システムの環境を利用する。日本語環境であればほぼShift JIS。辞書ファイルはShift JISでエンコードされたファイルとしてOpenCDISCで読み込まれる。

しかし、辞書ファイルはUTF-8でエンコードされている。したがって、辞書ファイルを編集したときの保存が重要になる。UTF-8でエンコードされたファイルをShift JISとして読み込むと、日本語部分は正常に処理されない。結果として、『辞書ファイルに日本語用語を追記したのに、Terminologyエラーが出続ける』ことになる。

この問題を回避する方法は2つある。
 ・辞書ファイルに日本語を追加し、エンコードをShift JISに変更して保存する
 ・常に「UTF-8」形式で辞書ファイルを読み込むようにOpenCDISCを改造する

どちらを選択しても同じ結果が得られるはずだ。下の方法は少々厄介である。簡易的に同じ動作を得たいなら、起動オプションに -Dfile.encoding=UTF-8を追加する。以下に例を示す。

START /B javaw -Xms256m -Xmx1024m -Dfile.encoding=UTF-8 -jar lib/validator-gui-1.5.jar


情報提供・調査協力:CJUG SDTMチーム内 有志のみなさま
ライティング:TKD+SMZ
前ページ | | 次ページ

mokjpn

URL | [ 編集 ] 2014/05/02(金) 23:44:19

改造する場合はこんな改造になります。

http://www.opencdisc.org/forum/patch-enable-specifying-text-encoding-controlled-terminology-files











管理者にだけ表示を許可する
http://doubledealer989.blog74.fc2.com/tb.php/1462-fd672506