電子データの管理

データの品質、確からしさ確保の要求は現代に限った話ではない。そろばんを弾いて紙の帳簿に記入していた時代にあっても、その記載の正しさを担保するために商人は神経をすり減らしていただろうし、万が一、事実とデータとの不一致があった際はケアレスミスだからと安易に許容されたとはちょっと思えない。医療行為等により生成される電子データをマネジメント(管理)するのは、帳簿の確認と本質的に違いはないだろう。ただし、紙を原資としたときと比べると、電子データの品質確保には特有かつ様々なスキルが要求される。

こうした職務を産業界では情報管理業、データ・マネジメント(DM)業務などと呼称しており、医療系であればClinical Data Management(CDM)業務ということになる。とは言ってもその職務範囲は曖昧で、例えば前回のコラムでとりあげたCSV(コンピュータ化システムバリデーション)は広義にはCDMの一部と言ってもいいのだろうが、狭義にはこれを含まない立場もある。

今回の話は体裁としては後者になるのだが、堅苦しく定義で切り分けたいという意図はなく、よりシンプルに「前回は“箱(入れ物)”の話、今回は“中身”の話」と受け止めていただけたらそれでいいと思う。さて、“中身”の品質管理に求められるスキルとはどういったものがあるのか。RDB、コード化、データ・バリデーションについて取り上げてみよう。

RDB(Relational Database<リレーショナルデータベース>)

よりIT専門的にいえば、CDMの要求スキルとして求めたいのは「データベースの構造学」ということになるだろうが、ITの専門職を目指していないのであれば多様なデータベース構造概念を幾つも理解するより、その代表選手であるRDBの基本だけ抑えておけば良いだろう。多くの人が利用しているMicrosoft Excelは「表計算ソフト」に分類されるが、1つのExcelファイルの中に複数のシートを含み、Excelの標準機能であるデータベース関数などを駆使すればそれなりのRDBを構築することも可能である。

例えば、1つめのシートには患者さんや研究被験者の背景情報となるカルテ番号、性別、年齢、身長などをリスト化し、2枚目には診断や病名情報、3枚目には治療や処方薬の情報、4枚目のシートに臨床検査の記録といった具合にしておけば、疾患別の男女や年代分布の円グラフ、臨床検査値の平均値推移、処方薬の投与期間分布表などが物理的には作れるはずである。「物理的には」と但し書きしているのは、複数のシートの関連性(Relational)を理解し適切につなげるといったRDBのスキル要求があるからで、これが全くないと人の手を借りなければグラフも表も正しく作ることができないからだ。

もちろん、Excelはあくまで表計算ソフトであるため必ずしもRDBの知識がなくても、センス次第ではグラフ化機能やピボットテーブル(集計機能の一種)等により望みのものを得ることができたりもするが、より本格的なDB化を考え、例えばMicrosoft社の汎用DBソフトとして有名なMicrosoft Accessを利用したいということになると、センスだけでこれを取り扱うのは難しい。

さて、RDBとは何だろうか。具体例として、1人の患者さん情報として複数発生し得る、診断、治療、検査といったデータをどのような形で残したら良いだろうかという課題を考えてみよう。RDBの知識がなくても、例えば先のExcelシートの例ではどうにかして1枚のシートに全ての項目を含んだデータの一覧が上手にできれば、それなりにデータベースだと言い張ることは可能であり、シート間の関連性(Relational)に関わるスキルは必要ない。

一方、1人の患者さん情報を1行で済ますのか、それとも10行くらい確保しておくかという、別の悩ましい問題が発生することになる。1行で済ますには「診断1」「診断2」「診断3」といった同じ趣旨の項目を横に3つほど用意するイメージであろうし、1例あたり10行確保する構造にするのであれば「診断」という項目について、当該患者の10行分を使って最大10回分の診断情報が入るイメージになる。どちらにしても想定する件数を超えたときにどうするのだ、という問題への対処が難しい。恐らくは「最新のものだけを残し、後は削除する」運用にせざるを得ず、これでは更新作業も繁雑になり、何より捨てなければならないデータが発生するのがもったいない。

RDBは複数のデータシート毎にデータ同士を関連づける複数のID(キーとなる番号や記号)を準備し、必要に応じて“合体”できるようにしたデータ構造である。例えば先のExcelの例では「患者ID」という項目を全てのシートに用意する。診断情報のシートには「患者ID」に加え、さらに「診断ID」といった項目を作り、1人の患者で通し番号になるような数字を入れておくイメージだ。治療情報のシートであれば「患者ID」「診断ID」に加え、当該診断の際に処方した薬剤を「処方薬ID」のようにして通し番号を付与しておけば、どの病気のときにどの治療薬を処方したのかもわかりやすくなる。

もちろん、データ構造の概念を理解したからといって、冒頭のような望みの円グラフや折れ線グラフを作れるようになるわけではなく、より自在に使えるようになるにはソフトウェアやRDBの入門書を理解し、練習や実践を繰り返しながら会得するより仕方がない。