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

日本語データが含まれた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
2014-04-30(Wed)
 

コメントの投稿

非公開コメント

パッチはこちら

2014-05-02 23:44 | mokjpn | URL   [ 編集 ]

プロフィール

TKD + SMZ

Author:TKD + SMZ
ガレージキット組み立て中級者
子育て初心者

2007年に友人の薦めでガレージキット組み立てを開始。その面白さに目覚める(w

2011年にお付き合いのあった原型師さんに薦められて、原型製作を開始。ワンフェスに参加しています。2017年から、活動を一時休止しております

ブログの大まかな内容についてはカテゴリーの「総合案内」をご覧下さい

カウンタ
ブログ内検索
月別アーカイブ