BigQuery 用の医療データの変換と調整

このドキュメントでは、BigQuery で分析用データレイクを作成することを必要とする研究者、データ サイエンティスト、IT チームが、Google Cloud で医療データの調整を行う際のプロセスと考慮事項について説明します。

データを調整することで、さまざまなファイル形式と規格のデータを集約し、詳細な分析に使用可能な、ひとまとまりの標準化されたデータセットに変換できます。データを調整するには、データソースを検証してから、構造変換、変換、ID 解決、匿名化によってデータを変更するための一連のパイプラインをビルドする必要があります。

ソースデータの検証

臨床データは未加工の形式では不正確で不完全な場合があるため、データ変換を行う前に受信データの品質を評価する必要があります。検証には、次のプロセスが含まれます。

  • 必要なデータ要素が存在することを確認します。
  • ソースシステムと取り込みデータレイクに存在するデータ数が同一であることを確認します。
  • コンピューティング リソースを投入する前に、値の範囲が妥当であることを確認します。

Google Cloud では、次の方法でソースデータを検証できます。

  • Cloud Data Fusion は、少数のデータ(1,000 行以下)を表示して調査できるようにデータを準備します。
  • BigQuery では SQL を使用してさまざまな検証を行うことができます。データに不一致がある場合は、認証または特定されたユーザーにアクセス権を付与するためのビューを作成するか、選択した行を Google スプレッドシートにエクスポートして、アノテーションの追加やチームとのコラボレーションを行います。
  • データ品質を自動的にチェックする場合は、Cloud Data Fusion を使用してユーザー定義のディレクティブ(UDD)を作成できます。UDD を使用すると、Cloud Data Fusion 内のカスタム処理、データチェック、関数を指定できます。UDD を作成すると、外れ値の自動フラグも有効になります。

データの変換とパイプラインのビルド

データ変換パイプラインをビルドするうえで構造変換は重要なステップです。この変換では、フィールドのマッピング、解析、データのフォーマットなども行います。

取り込み方法として Cloud Healthcare API を使用する場合、データの解析やインデックス登録は必要ありません。Cloud Healthcare API は、受信データ形式を柔軟に調整し、マルチラインの JSON 形式と改行区切りの JSON 形式の両方でリソースとバンドルを受け入れます。たとえば、Fast Healthcare Interoperability Resources(FHIR)データ型を扱う場合は、カスタム JSON パーサーを開発する必要はありません。代わりに、Cloud Healthcare API の組み込み機能を使用してデータを取り込むことができます。

HL7v2 データ型から FHIR データ型への変換や、FHIR データ型から FHIR スキーマの SQL への変換などの構造変換を行うこともできます。

Cloud Data Fusion には、データの解析、書式設定、圧縮、変換のためのさまざまなビルド済みプラグインが用意されています。Cloud Data Fusion には Wrangler も組み込まれています。これは、小さなデータセットのサンプル(1,000 行)に基づいて、データをインタラクティブにフィルタ、クレンジング、フォーマット、投影する可視化ツールです。変換を定義すると、Wrangler が自動的に Dataproc パイプラインを生成し、変更をデータセット全体に適用します。

高度な変換では、構成に基づくマッピング言語を使用して、構造マッピングの定義、管理を行い、ポータビリティを実現できます。

患者 ID の解決

データ変換における重要なステップは、対応する一意の患者 ID(UPI)とレコードを照合することです。レコードを照合することで、データの不一致と重複を識別するための長期的なレコードを作成できます。また、個別の患者レコード間で一貫したデータ変換を行うこともできます。患者レコードを照合するには、カスタム パイプラインまたはカスタムモデルを使用してマスター患者インデックス(MPI)を呼び出します。FHIR を介してデータを統合する場合は、患者 ID 検索パラメータを使用してレコードを結合することもできます。

用語の変換

臨床用語の環境は、コーディング システム、統治機関、組織のニーズによって頻繁に変化します。履歴レコードを新しく作成したリソースと組み合わせると、変更前の用語と現在の用語の間に矛盾が生じる可能性があります。臨床用語の変換と調整は、新旧の用語標準間の一貫性と継続性を確保するうえで有用です。

測定単位の変換

取り込み元、測定を行う組織、地理的な地域によって、測定単位が大きく異なる場合があります。たとえば、米国では新生児の体重はグラム単位で測定されることが多く、大人の体重はポンド単位で測定されるのが一般的です。測定単位を変換して調整することにより、分析ですべての測定単位をキャプチャし、すべての患者集団を対象に含めることができます。

データの匿名化

匿名化は、ID 解決と臨床エンティティの抽出に関連したデータ調整の機能に影響を与える可能性があるため、変換プロセスの最後に行います。パイプラインで匿名化を行う時期が早すぎると、調整に必要な ID 解決を正確に行えない可能性があります。Google Cloud には、カスタマイズなど、医療データの匿名化と仮名化に使用できる多くのオプションが用意されています。

非構造化テキストデータや、CSV などの従来の構造化データでは、機密データの保護を使用して、センシティブ データの要素を分類、秘匿化できます。機密データの保護では、マスキング、セキュア ハッシュ、トークン化、バケット化、フォーマット保持暗号化などの手法を使用し、セキュリティ要件とユースケースの両方を考慮して匿名化をカスタマイズすることもできます。

また、Cloud Healthcare API には、Digital Imaging and Communications in Medicine(DICOM)と FHIR データセットで使用できる API に組み込まれた匿名化機能も用意されています。このオプションは、初期データモデルを保持する必要がある場合に有用です。

FHIR 形式で時系列データを処理する場合は、UPI に基づいてリソースの順序を保持できます。つまり、日付シフト機能を使用すると、リソースの順序を保持できます。

中間ストレージの使用

各変換の結果を中間ストレージ(エフェメラル中間ストレージ)に保存し、障害復旧の必要性が生じた場合に問題のトラブルシューティングを行い、また、データを変換前の状態に戻せるようにしておくことをおすすめします。BigQuery で Cloud Storage への未加工のエクスポートを行うことにより、パイプラインが実行されるたびに中間ストレージを書き換えることができます。

パイプライン アーキテクチャについて

次の図は、データの変換と調整を行うためのパイプラインを示しています。

データの変換と調整を行うためのパイプライン。

上の図は、変換と調整に関連するすべてのステップを含むパイプラインでのデータ移動プロセス全体を示しています。データは最初に元データとして取り込まれ、構造変換パイプラインと ID 解決パイプラインを通過します。その後、データに追加の変換(用語の変換や匿名化など)が行われ、出力パイプラインから BigQuery に出力され、分析に使用可能な調整済みのデータとして保存されます。また、中間ストレージのメタデータは実行時に自動的に書き込まれ、BigQuery に来歴および系列データとして保存されます。

また、この図には中間ストレージに関連する 2 つのステップが示されています。これらのステップでは、パイプラインのステージ間でデータセットを保存することをおすすめします。

次のステップ