Webinarのメモ

個人的メモ
Null Flavorを考える
Null Flavorは、不明データの表現方法。ISO 21090・HL7 R2 Data Typeに宣言されている。


階層構造と意味
Null Flavorには複数のTerminologyがあり、かつ階層構造が存在する。以下はSDTM IGからの引用である

20141101a.jpg

NI (No Information):情報がなく、その背景情報もない

INV (Invalid):不正な値が収集されたため、計画した情報がない。数値変数に対して文字値が提供された場合などがこれに当たる。不正な値の理由を詳細に特定できるなら、下位レベルの用語を用いる

UNC (Unencoded):情報はあるがコードできない。MedDRAやSNOMEDで適切なコードが見つけられないときなど。コード値を格納する箇所に対して利用する

DER (Derived):計算により算出される箇所が空欄になっている。例えば、算出せずにデータを提出する場合、計算元データが不足していて計算できない場合。どちらの場合にも、代替の情報として計算式を提示できるだろう

OTH (Other):UNC・DERのいずれでもない。データは存在するが、不正な値である。数値変数に対して文字値が与えられた場合など。無限小・無限大の適用も不適である

PINF (Positive infinity):無限大。数値変数にのみ適用できる

NINF (Negative infinity):無限小。数値変数のみに適用できる

UNK (Unknown):不明。少なくとも「分からない」ことが確認できている状態。

ASKU (Asked but unknown):質問したが、不明であった

NAV (Temporarily unavailable):質問しているが、現時点で情報がない。途中でデータを取りまとめた場合に発生する

NASK (Not asked):質問すらされていない

QS (Sufficient quantity):一定の量があるが、正確な量が不明。その量はゼロではなく、かつ測定可能である。数値変数のみに適用できる

TRC (Trace):定量できないほどの微量。しかし、ゼロではない。数値変数のみに適用できる

MSK (Masked):ブラインド状態にある。中間解析時にはこういう状態があるだろう

NA (Not Applicable):該当せず。情報がないのに十分妥当な理由がある。情報がないことが正しい状態


範囲を示すNull Flavor
白血球数が3000-4000の間…といった場合も、Null Flavorで表現できる。一般的に曖昧な範囲は以下の要素で記述できる。

 下限・上限・Open/Close End

上限・下限には、明確な数値が与えられるかもしれない。もしくは、無限大・無限小が与えられることもある。無限小を『最小値は0』と置き換えられる事例もあるだろう。Open/Close Endは、限界値を含むか、含まないかを示すフラグである。<4000ならOpen End、<=4000ならClose Endである。すなわち、『Closed=その値は範囲内』である。

例)白血球数3000~4000の間
 <ambiguous range>
  <Low value="3000" OpenEnd="False"/>
  <High value="4000" OpenEnd= "False"/>
 </ambiguous range>

例)測定結果 <0.05
 <ambiguous range>
  <Low value="NINF" />
  <High value="0.05" OpenEnd="True"/>
 </ambiguous range>

※これはSDTM IGに記載されていない


Null Flavorの実装
Null Flavorの概念は一般的なものである。SDTMの特定の変数と結びつくものではない。よくよく考えると、いくつかの実装方法がある。

1. TS DomainのTSVALNF変数
この変数はNull Flavor専用に設けられている。ここで使うのが最も明確で有名。利用したNull FlavorをTerminologyとして追加しておこう

2. --STAT変数
この変数もNull Flavorを取り使える。ただし、現在の実装ではNOT DONEを格納するお約束なので、純粋なNull Flavorに対応するには規格の変更が必要である

3. SUPPドメイン
状況を詳細に説明するためにNull FlavorをSUPPドメインに実装してもいいかもしれない(ただし、やりすぎかもしれない)。

4. 正規の変数で既に取り扱っている
例えば、次の例を考えてみよう。

(質問) 部位
 腕
 足
 その他(______)

ここで、その他を選択した場合、OTHERを--LOCに格納し、詳細をSUPPドメインに入れることができる。この時、--LOC変数はNull Flavorを正式な値の一つとして受け付けている。もし、Controlled TerminologyがNull Flavorを厳密に採用していれば、いくつかの変数で自然に実装できるはずだ

※--ORRES変数は文字型であるため、Null FlavorのTerminologyをそのまま受け入れられる

5. Dataset-XMLを拡張する
SUPPドメインへの格納は冗長。Dataset-XMLを拡張して手軽な実装方法を実現できる。
例えば、
 <value nullFlavor =“TRC” />
 <value nullFlavor=“DER” expression=“WEIGHT/(HEIGHT^2)”/>
 <value nullFlavor=“OTH” originalText=“Abnormal high”/>
などとAttributeを追加すればいい。現時点で、これは正式なDataset-XMLの仕様ではない。独自に拡張することになる。


将来の展開
Null FlavorのためにSDTMの変数を増やすのは現実的ではない。XMLのAttributeやRDFグラフを用いて実装するのが現実的である。Null Flavorは、やや冗長であるものの、Missing Data・Awkward Dataの理由・背景を説明する。この情報を用いて、データの取り扱いを決定できるかもしれない。現時点では、CDISC TerminologyはNull Flavorと整合性がない。もし、スポンサーが独自のTerminologyを追加するときに、Null Flavorを参照するなら、それは良いアイデアと言えるだろう。


Q&A
Q) --REASND変数はNull Flavorなのでしょうか?
A) --STAT変数は--ORRES変数が空欄のときにのみPopulateされる。その意味ではNull Flavor的といえる。Reason Not Doneは--STAT変数と合わせて利用される。

Q) 規制当局はNull Flavorに関心を示しているのでしょうか?
A) 関心がある。TSドメインにNull Flavorが導入されたのは、当局の関心があったから

Q) もっと多くのComplex Data TypeがBRIDGにはあるのですか?
A) はい。Null FlavorはBRIDGモデルの一部です。もっと多くのData Typeが存在します。日付型など

Q) 測定値がないときに--STAT変数をPopulateできますか?
A) 試験の目的に応じて判断するべき。測定値がないときに--STAT変数にNOT DONEをPopulateしても構わない。ただし、CRFできちんと「Missing」という情報を収集しているときに限られるだろう

Q) Null Flavorは既存のSDTM変数に対して使うのでしょうか?それとも新規の変数に対して使うのですか?
A) 利用方法は検討中であり、導入の具体的な計画はない。Null Flavorのための用語は14個宣言されている

Q) --STAT変数に割り当てられた用語をNull Flavorにしたらいいのではないでしょうか?
A) それは検討に値するアイデアです

Q) Null Flavorがあると、Reviewerの役に立つのでしょうか?
A) Impact Analysisの役には立つかもしれない。

Q) Null Flavorを正式に導入したら、既存のTerminologyも整理されるのでしょうか?
A) 未来の話なので、何とも言えない。合理的な判断の結果に応じて、処理されるでしょう。

Q) Null Flavorは、情報を積極的に収集した場合に利用するのですよね?
A) そうです
2014-11-24(Mon)
 

コメントの投稿

非公開コメント


プロフィール

TKD + SMZ

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

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

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

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

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