Amazon Web Services ブログ

OHDSI を使用して健康分析のために AWS でデータ科学環境を作成する

ヘルスケアデータにテクノロジを適用することには、多くのエキサイティングで重要な成果をもたらす可能性があります。ヘルスケアデータから生成された分析は、医療従事者が自分達が提供するケアを向上させるためにより良い意思決定を行えるようにすることで、個人と集団の健康を改善するようにエンパワメントできます。

観察的なヘルスデータ科学と情報 (OHDSI、「オデッセイ」と発音する) プログラムとコミュニティは、観察的健康データを保存し、分析するためのデータ標準とオープンソースソリューションを生成することを目標にしています。OHDSI ツールを使用して、集団全体の健康を可視化することができます。患者のコホートを構築し、さまざまな状態の発生率を分析し、特定の状態の患者に対する治療の効果を推定することができます。また、機械学習アルゴリズムを使用して健康成果の予測をモデル化することもできます。

ビッグデータツールの操作をするときにしばしば直面する課題の一つは、ツールを実行するときに必要なインフラストラクチャが必要になることです。もう一つの課題は、これらのツールを実装して使い始めるための学習曲線です。アマゾン ウェブ サービスを使用すると、エンタープライズクラスのインフラストラクチャーとテクノロジーを手ごろな費用で伸縮自在で自動化された方法で使用可能にすることにより、従来の IT の多くの課題に対応できるようになります。この記事では、AWS テクノロジーにいくつかの OHDSI プロダクト (AtlasAchillesWebAPI、およびOMOP Common Data Model) を組み合わせる方法を示します。そうすることにより、ヘルスデータ科学と情報環境を迅速に、少ない費用で実装できます。

以下に示したものは、OHDSI ツールで可能な集団ヘルス分析の 1 つの例にすぎません。この可視化では、指定された集団の人の中で様々な医薬品の有病率を示します。この情報は、研究者や医療従事者が傾向を見出し、患者の健康状態について情報に基づく意思決定をより良く行うために役立ちます。

AWS における OHDSI アプリケーションアーキテクチャ

保護された健康情報 (PHI) または個人識別情報 (PII) の伝送、処理、または保存を行う AWS 上でアプリケーションをデプロイする前に、組織のコンプライアンスの懸念に対応してください。社内コンプライアンスと法務チームと協力して、組織を管轄する法規制を遵守するようにしてください。AWS サービスを全体的なコンプライアンス プログラムの一部として使用する方法を理解するためには、AWS HIPAA コンプライアンスホワイトペーパーを参照して下さい。それを使用して、当社はこのソリューションを設計する間、HIPAA コントロールセットに非常に注意を注ぎました。

このブログ記事は、サンプルデータをもつデータウェアハウスを含む完全な OHDSI アプリケーション環境を示します。以下の特長を備えています。

  • それは高い可用性をもつ隔絶された 3 層の Amazon Virtual Private Cloud (Amazon VPC)にデプロイされます。
  • それは、休止中および移動中の暗号化を含みます (証明書はウェブアプリケーションサーバーとロードバランサーに対して追加しなければなりません)
  • これは、AWS からの管理対象サービスを使用します。また、OS、ミドルウェア、およびデータベースパッチングとメンテナンスが大幅に自動化されます。
  • 運用および災害復旧のための自動化されたバックアップを作成します
  • 約 1 時間で自動的に構築されます
  • それは、AWS Solution Calculator に基づいたビジネスレベルのサポートによる正当な月次コストをもたらします

その後、AWS により提供されたサービスに QHDSI ツールをマッピングする方法を示すブロックダイアログラムを見ることができます。

Atlas は、分析を事項するために研究者がインターラクションするウェブ アプリケーションです。Atlas は WebAPI という名前のウェブサービスアプリケーションを通じて基礎のデータベースとインターラクションします。この例では、Atlas と WebAPI の両方が AWS Elastic Beanstalk によりデプロイされ、管理されます。Elastic Beanstalk は、ウェブアプリケーションをデプロイし、スケールするための容易に使用できるサービスです。Atlas と WebAPI コードを単純にアップロードすると、Elastic Beanstalk は自動的にデプロイを取り扱います。これは、容量のプロビジョニング。ロードバランシング、自動スケール、高可用性からアプリケーション健全性モニタリングまでのすべてを対象とします。ebextensions と呼ばれる Elastic Beanstalk の機能を使用して、Atlas と WebAPI サーバーはミドルウェアアプリケーションログのために暗号化されたストレージボリュームを使用するようにカスタマイズされます。

Atlas は観察的な健康データとは別の専用データベースで分析されるさまざまな患者コホートの状態を保存します。データベースは、PostgreSQL 互換の Amazon Aurora により提供します。

Amazon Aurora は、ハイエンドな商用データベースの速さや信頼性と、オープンソースデータベースのシンプルさと高い費用対効果とを組み合わせたリレーショナルデータベースエンジンです。ハードウェアのプロビジョニング、データベースのセットアップ、パッチ適用およびバックアップなどといった時間のかかる管理タスクを自動化する間に、コスト効率が良いサイズ変更可能な容量を提供します。それは、高い可用性に対して構成され、データベースとバックアップに対して休止中の暗号化と JDBC 接続の移動中の暗号化を使用します。

これを以下に示される AWS CloudFormation コードを通じて行います。

RDSCluster:
    Type: AWS::RDS::DBCluster
    Properties:
      Engine: aurora-postgresql
      StorageEncrypted: 'True'
...
RDSDBClusterParameterGroup:
    Type: AWS::RDS::DBClusterParameterGroup
    Properties:
      Parameters:
        rds.force_ssl: 1
...
RedshiftCluster: 
    Type: "AWS::Redshift::Cluster"
    Properties:
      Encrypted: "True"
      PubliclyAccessible: "False"
...
RedshiftClusterParameterGroup: 
    Type: "AWS::Redshift::ClusterParameterGroup"
    Properties: 
      Parameters: 
        - 
          ParameterName: "require_ssl"
          ParameterValue: "true"

観察的な健康データのすべては、OHDSI Observational Medical Outcomes Partnership Common Data Model (OMOP CDM) の中に保存されます。このもでるはまた、さまざまなデータソース (EHR システムとクレームデータなど) からの値の変換を支援する有用なボキャブラリテーブルも保存します。

OMOP CDM スキーマは、Amazon Redshift にデプロイされます。Amazon Redshift は、ペタバイトの構造化データに対して複雑な分析クエリを実行できる高速で完全管理されたデータハウスです。高度なクエリの最適化、ハイパフォーマンスのローカルディスクでのカラムナストレージ、大量のパラレルクエリの実行を使用します。また、変更される場合の要件として、Amazon Redshift クラスターをサイズ変更することもできます。

このブログ記事のソリューションでは、CMS 2008–2010 Data Entrepreneurs’ Synthetic Public Use File (DE-SynPUF) から 1000 人のサンプルデータの識別を解除して自動的にロードします。データにはLTS Computing LLCからの便利な書式があります。OHDSI Athena プロジェクトのボキャブラリデータはまた、OMOP CDM にもロードされ、結果セットは OHDSI Achilles により計算されます。

アプリケーションコンポーネント AWS のサービス ソースリンク
自動化 AWS CloudFormation https://github.com/awslabs/aws-ohdsi-automated-deployment
Atlas アプリケーション AWS Elastic Beanstalk https://github.com/OHDSI/Atlas
WebAPI ウェブサービス AWS Elastic Beanstalk https://github.com/OHDSI/WebAPI
WebAPI データベーススキーマ Amazon Relational Database Service (Amazon RDS) Aurora PostgreSQL http://www.ohdsi.org/web/wiki/doku.php?id=documentation:software:webapi:postgresql_installation_guide
OMOP CDM v5.2 データベーススキーマ Amazon Redshift https://github.com/OHDSI/CommonDataModel/tree/master/Redshift
CMS DE-SynPUF サンプルデータ Amazon Redshift https://www.cms.gov/Research-Statistics-Data-and-Systems/Downloadable-Public-Use-Files/SynPUFs/DE_Syn_PUF.html
Athena ボキャブラリデータ Amazon Redshift http://athena.ohdsi.org/
Achilles 結果の計算 Amazon Redshift https://github.com/OHDSI/Achilles

 

次の図は、デプロイされるアーキテクチャの構成を示す詳細なテクニカル図です。

AWS での OHDSI のデプロイ

ここに記載したばかりのすべてのものは、AWS CloudFormation テンプレートを使用して自動的にデプロイされます。このテンプレートを使用して、OHDSI プロジェクトで素早く開始することができます。このデプロイメントの CloudFormation テンプレートンおみならず、すべてのサポートするスクリプトとソースコードは、AWS Labs GitHub repo で見つけることができます。

AWS アカウントから、CloudFormation マネジメントコンソールを開き、[スタックの作成] を選択します。そこから、以下の URL をコピーして、[Amazon S3 テンプレート URL の指定] ボックスに貼り付け、[次へ] を選択します。

https://s3.amazonaws.com/aws-bigdata-blog/artifacts/aws-ohdsi-automated-deployment/OHDSI-master.yaml


次の画面では、スタック名 (任意のもの)と OHDSI 環境のその他のいくつかのパラメータを指定します。

DatabasePassword パラメータを使用して、 Amazon Redshift と Aurora databases のマスタユーザーアカウントのパスワードを設定します。

EBEndpoint 名を使用して、OHDSI 環境にアクセスするための固有の URL を生成します。それは、http://EBEndpoint.AWS-Region.elasticbeanstalk.com で、EBEndpoint.AWS-Region は、Elastic Beanstalk エンドポイントとAWS リージョンを示します。将来に変更する場合は、Elastic Beanstalk からこの URL を構成できます。

KPair オプションを使用して、既存のAmazon EC2 キーペアの 1 つを選択して、Elastic Beanstalk がデプロイするインスタンスを使用します。これを行うことにより、必要に応じて、将来にこれらのインスタンスに対する管理的なアクセスを取得することができます。Amazon EC2 キーペアがまだない場合は、無料でそれを生成できます。EC2 コンソールのキーペアセクションに進み、[キーペアの生成] を選択することで、これを行うことができます。

最後に、UserIPRange パラメータを使用して、OHDSI 環境にアクセスする CIDR IP アドレス範囲を指定します。デフォルトで、OHDSI 環境は、公共インターネットを通じてアクセスできます。UserIPRange を使用して、インターネットを通じたアクセスを単一 IP アドレスまたはアクセスしたいユーザーを表す IP アドレスの範囲に制限します。追加構成を通じて、OHDSI 環境を完全にプライベートにし、VPN またはAWS Direct Connectプライベート回路を通じてのみアクセス可能にすることもできます。

すべての パラメータを指定した場合は、[次へ] を選択します。


次の画面では、任意選択でタグのようなその他のオプション情報を指定するか、[次へ] を選択するだけでもかまいません。

次の画面では、デプロイされるものを見直すことができます。画面の一番下で、AWS CloudFormation がカスタム名で IAM リソースを作成することを承諾するためのチェックボックスがあります。これが正しいです。デプロイされるテンプレートは互いにコミュニケーションするための権限を関係する AWS サービスに与える 4 つのカスタムロールを作成します。これらの権限の詳細は、最初のステップで与えられた URL で参照されている CloudFormation テンプレートの中にあります。これを承諾する場合はボックスをオンにし、[次へ] を選択します。

CloudFormation は OHDSI アーキテクチャから構築されるのを見ることができます。CloudFormation デプロイメントは、スタックと呼ばれます。 親スタックは 2 個の子スタックを作成し、Atlas と WebAPI サーバーを使用して、VPS と IAM ロールを含むものと、Elastic Beanstalk により作成されたもう一つのものです。3 つすべてのスタックが、次のスクリーンショットで示されるように緑の CREATE_COMPLETE ステータスに達したとき、OHDSI アーキテクチャがデプロイされています。


しかし、背後では引き続き若干の作業が行われています。進捗を確認するには、AWS マネジメントコンソールの Amazon Redshift セクションを参照し、OHDSI アーキテクチャーに作成された Amazon Redshift クラスタを選択します。その後で、[ロード] と [クエリ] タブが観察されます。

最初に、[ロード] タブで、CMS De-SynPUF サンプルデータと Athena ボキャブラリデータが OMOP Common Data Model にロードされるのを確認できます。VOCABULARY テーブルが COMPLETED ステータス (以下に示す通り) になるのを確認した後で、サンプルとボキャブラリデータがロードされています。

データロードの後で、Achilles の計算が開始します。[クエリ] タブで、Achilles が結果スキーマを構築するために、データベースに対してクエリを実行するのを確認できます。Achilles が多数のクエリを実行すると、プロセス全体は時間がかかる場合があります (ロードしたサンプルデータに対しては約 20 分)。最終的に、新しいクエリは [クエリ] タブに表示され、そこで、Achilles 計算が完了するのが表示されます。CloudFormation テンプレートを実行した時から、Achilles 計算が完了するまでのプロセス全体や、通常、1 時間 15 分かかります。

この時点では、AWS マネジメントコンソールの Elastic Beanstalk セクションを参照できます。そこで、CloudFormation テンプレートによりデプロイされる OHDSI アプリケーションと環境 (緑のボックス) を選択できます。以下に示されるように、ダッシュボードの一番上で、URL へのリンクが表示されます。この URL は CloudFormation テンプレートの EBEndpoint パラメータに提供された名前と一致します。この URL を選択して、CMS DE-SynPUF サンプルデータを探索するために Atlas を使い始めることができます。

この環境をデプロイするコスト

費用のかかるデータウェアハウスアプライアンスと仮想化環境で、オンプレミスデータセンターでデプロイされたヘルスケアデータ分析環境を見ることは、一般的でした。クラウドの時代では、このタイプのデータの分析を行うために必要なインフラストラクチャの可用性を普及させ、その結果、今では小規模な組織でさえも手の届くものになっています。この環境では、ペタバイトの健康データを分析するように拡張し、必要なものだけを支払うことができます。AWS Solution Calculator で、デプロイされるとこの環境の月次コストコンポーネントの明細の予想 を参照てください。

この環境を常に実行する必要はないことにも注意してください。  分析を定期的に実行するだけであれば、作業が終了したら環境を終了し、作業を続行するときにデータベースバックアップから環境を復元することができます。  これにより、さらに運用コストを減らすことができます。

まとめ

これで、サンプルデータで完全に機能する OHDSI 環境ができましたので、これを使用して、ツールセットとその機能を探索し、学ぶことができます。サンプルデータを学習した後、組織の健康データを分析して洞察を得始めることができます。1 つ以上の健康データソースから抽出、変換、ロード (ETL) プロセスを使用してこれを行うことができます。

 


その他の参考資料

この記事が役立ちましたら、データ ETL を OMOP CDM に自動化する方法について、Amazon EMR、Amazon Redshift、AWS Lambda、および OMOP を使用したヘルスケアデータウェアハウスの構築 を参照してください。


著者について

James Wiggins は AWS のシニアヘルスケアソリューションアーキテクトです。 彼は組織が世界の医療にポジティブな影響を与えるようにテクノロジーを使用することに情熱をもっています。彼はまた、妻と3人の子供と余暇を楽しんでいます。