Amazon Web Services ブログ

Amazon HealthLake による公衆衛生アプリケーション — パート 1: Amazon QuickSight を使用した分析とモニタリング

この記事は、“Population health applications with Amazon HealthLake – Part 1: Analytics and monitoring using Amazon QuickSight” を翻訳したものです。

医療業界は最近、医療の相互運用性と機械学習 (ML)という2つの注目すべき革新によって変革を遂げました。医療の相互運用性とは、複数のシステムで医療情報を共有できることを指します。こうした変革を活用するために、HIPAA の対象となる新しいヘルスケアサービスである Amazon HealthLake を公開しました。 re: Invent 2020の発表では、HealthLake によって組織が 機械学習を適用して、構造化、タグ付け、インデックス化、クエリ、医療データを大規模に分析する方法について説明しました。この記事から始まる一連の投稿では、HealthLake を使用して高度な分析を使用して医療データに関する洞察を引き出したり、新しい質問をしたりする方法を紹介します。

医療データの主な情報源は、患者の電子医療記録(EHR)です。非営利の医療技術標準団体である Health Level 7 インターナショナル(HL7)は、Fast Healthcare Interoperability Resources(FHIR)と呼ばれる構造化された医療データを交換するための標準を発表しました。 FHIR は医療ソフトウェアベンダから広く支持されており、米国医療情報学協会の会議でも EHR ベンダによって支持されました。 FHIR 仕様により、構造化された医療データに臨床研究者や情報技術者が簡単にアクセスできるようになり、機械学習ツールでもこのデータを簡単に処理し、そこから貴重な情報を抽出できるようになります。たとえば、FHIRは、医師のノートや臨床検査レポートの要約などの文書をキャプチャするためのリソースを提供します。ただし、このデータを検索して分析する前に、このデータを抽出して変換する必要があります。

HealthLake は、FHIR形式の医療データを取り込む際に、医学用語を理解するためのトレーニングを受けた自然言語処理を使用して、(医薬品、状態、診断、処置などの)非構造化データを標準化されたラベルで充実させるため、これらすべての情報を正規化して簡単に検索できます。その一例として、FHIR DocumentReferenceリソース内の臨床説明を解析して、ICD-10-CMコードを含む医療エンティティを抽出、タグ付け、構造化することが挙げられます。この変換されたデータは患者の記録に追加され、患者のすべての属性(投薬、検査、処置、診断など)を完全に把握でき、検索や高度な分析の適用に最適化されます。この記事では、 AWS GlueAmazon AthenaAmazon QuickSight を使用して、この補完されたデータに基づいて公衆衛生ダッシュボードを作成するプロセスについて説明します。

公衆衛生ダッシュボードの構築

HealthLake が FHIR 形式のデータを抽出してタグ付けしたら、高度な分析と ML を正規化されたデータと組み合わせてすべてを理解できます。次に、QuickSight を使用して公衆衛生ダッシュボードを構築し、HealthLake のデータをすばやく分析する方法について説明します。次の図は、このソリューションのアーキテクチャを示しています。


この例では、うっ血性心不全 (CHF) と診断された患者向けのダッシュボードを作成します。これは、心臓が本来あるべきように血液を送り出せない慢性疾患です。MIMIC-III (Medical Information Mart for Intensive Care III)データを使用しています。これは、2001年から2012年の間にベス・イスラエル・ディーコネス医療センターの救命救急室に滞在した40,000人以上の患者に関する匿名化された健康関連データを含む、無料で利用できる大規模なデータベースです。[1]

データの処理やダッシュボードの作成に使用されるツールには、AWS Glue、Athena、QuickSight などがあります。 AWS Glue はサーバーレスのデータ前処理サービスで、データの抽出、変換、ロード (ETL) を簡単に行えます。これにより、データを後で分析処理したり、チャートやダッシュボードに表示したりするための準備ができます。AWS Glue クローラは、データのスキーマを決定し、データスキーマを記述するメタデータテーブルを AWS Glue データカタログに作成するプログラムです。AWS Glue ジョブは、データを読み込み、処理し、新しいスキーマに書き込むスクリプトをカプセル化します。最後に、データカタログのテーブルに対する標準 SQL クエリを使用して Amazon Simple Storage Service (Amazon S3) 内のデータをクエリできるインタラクティブなクエリサービスである Athena を使用します。

AthenaとHealthLakeをつなぐ

まず、MIMIC-IIIデータをFHIR形式に変換し、次にフォーマットされたデータをHealthLakeのデータストアにコピーします。(訳註:FHIRリソースの入手が難しい場合は、サンプルありのHealthLakeのデータストアを作成することで、結果は異なりますが、以降の手順をお試しいただけます。)これにより、医師のメモや退院時サマリなどのテキスト形式の説明から医療エンティティが抽出されます。診療ノートは DocumentReference リソースに保存され、抽出されたエンティティは、JSON オブジェクトに表示される FHIR 拡張フィールドを使用して DocumentReference の各患者のレコードにタグ付けされます。次のスクリーンショットは、拡張された DocumentReference がどのように見えるかの例です。


HealthLake でデータがインデックス化され、タグ付けされたので、正規化されたデータを S3 バケットにエクスポートします。エクスポートされたデータは NDJSON 形式で、リソースごとに 1 つのフォルダーがあります。


フォルダーごとに AWS Glue クローラが作成され、NDJSON ファイルをクロールしてデータカタログにテーブルが作成されます。既定の分類子は NDJSON ファイルを直接処理できるため、特別な分類子は必要ありません。FHIR リソースごとに 1 つのクローラーがあり、各クローラーは 1 つのテーブルを作成します。その後、これらのテーブルは Athena 内から直接クエリされます。ただし、一部のクエリでは AWS Glue ジョブを使用してデータを変換および分割し、クエリをよりシンプルかつ高速にします。

このプロジェクトでは、DocumentReferenceテーブルとConditionテーブルを変換するために 2 つの AWS Glue ジョブを作成します。どちらのジョブもデータを JSON から Apache Parquet に変換して、クエリのパフォーマンスを向上させ、データストレージとスキャンのコストを削減します。さらに、どちらのジョブも、最初に患者ごとにデータを分割し、次に個々のFHIRリソースのIDごとにデータを分割します。これにより、Athena を通じて発行される患者ベースおよびレコードベースのクエリのパフォーマンスが向上します。生成される Parquet ファイルの構造は表形式になり、検出されたエンティティや ICD-10 コードを直接参照でき、DocumentReference 拡張属性のネストされた FHIR 構造を操作する必要がなくなるため、クライアントから発行されるクエリも簡略化されます。これらのジョブで Amazon S3 に Parquet ファイルが作成されたら、クローラーを作成して実行し、テーブルスキーマをデータカタログに追加します。
最後に、QuickSight ダッシュボードによるキーワードベースの条件クエリをサポートするために、変換された DocumentReference テーブルのビューを作成します。このテーブルには、ICD-10-CM のテキストによる説明と対応する ICD-10-CM コードが含まれます。

QuickSight による公衆衛生ダッシュボードの構築

QuickSight はクラウドベースのビジネスインテリジェンス (BI) サービスで、クラウドでダッシュボードを簡単に構築できます。さまざまなソースからデータを取得できますが、今回のユースケースでは、Athena を使用して QuickSight ダッシュボード用のデータソースを作成します。前のステップから、HealthLake のデータを使用する Athena テーブルができました。次のステップとして、Athena のテーブルから QuickSight のデータセットを作成します。データの保存にはSPICE(超高速、並列、インメモリ計算エンジン)を使用しています。これにより、データを一度だけインポートして複数回使用することができます。
データセットを作成したら、ダッシュボードに多数の分析コンポーネントを作成します。これらのコンポーネントにより、データを集約し、患者レベルや集団レベルでチャートや時系列の視覚化を行うことができます。
作成したダッシュボードの最初のタブでは、全患者数と医療制度との関わりを把握できます(次のスクリーンショットを参照)。このダッシュボードの対象利用者は、医療従事者または介護者です。


ダッシュボードにはフィルターが含まれており、病院や日付別に結果をさらに詳しく調べることができます。患者数、人口分布、来院数、平均入院日数などが表示されます。
2つ目のタブは、病院での患者の病状との来院を組み合わせたものです。このビューには、紹介元の病院ごとの来院数が、来院の種別と年齢別に表示されます。また、主要な病状のワードクラウドを作成して、詳細を簡単に掘り下げて、これらの疾患が来院種別毎に全人口に及ぶ分布を把握できるようにしています。


3 番目のコンポーネントには、患者のタイムラインが含まれます。タイムラインはツリーテーブルの形をしています。最初の列は患者名です。2 列目には、来院の開始日が時系列で表示されます。3 番目の列には、その来院で診断されたランク付けされた状態のリストが表示されます。最後の列には、その来院中に実行された処置のリストが含まれています。


患者のタイムラインを作成するには、複数のテーブルを結合するビューを Athena に作成します。Condition、Patient、Encounter、Observationの各テーブルを結合して、前述のビューを作成します。EncounterテーブルにはConditionの配列が含まれているため、unnest コマンドを使用する必要があります。次のコードは、テーブルを結合するサンプル SQL クエリです。

SELECT o.code.text, o.effectivedatetime, o.valuequantity, p.name[1].family, e.hospitalization.dischargedisposition.coding[1].display as dischargeddisposition, e.period.start, e.period."end", e.hospitalization.admitsource.coding[1].display as admitsource, e.class.display as encounter_class, c.code.coding[1].display as condition
    FROM "healthai_mimic"."encounter" e, unnest(diagnosis) t(cond), condition c, patient p, observation o
    AND ("split"("cond"."condition"."reference", '/')[2] = "c"."id")
    AND ("split"("e"."subject"."reference", '/')[2] = "p"."id")
    AND ("split"("o"."subject"."reference", '/')[2] = "p"."id")
    AND ("split"("o"."encounter"."reference", '/')[2] = "e"."id")

最後ですが、おそらく最も興味深い部分は、構造化されたフィールドで見つかった患者データとテキストから解析されたデータを比較することです。前に説明したように、AWS Glue ジョブによって DocumentReference テーブルと Condition テーブルが変換され、変更された DocumentReference テーブルをクエリして解析された医療エンティティを取得できるようになりました。

次のスクリーンショットでは、コンディションテキストに [s] epsis という単語が含まれるすべての患者を検索しています。”condition equals“フィールドは、テキストに一致するすべての条件をフィルタリングできるフィルタです。その結果、209人の患者の構造化データに敗血症関連疾患があることが示されています。ただし、テキストのメモから解析すると、288人の患者が敗血症関連疾患を患っています。左側の表は構造化データに基づく患者のタイムラインを示し、右側の表は解析されたデータに基づく患者のタイムラインを示しています。


次のステップ

この記事では、複数のFHIR参考文献のデータを結合して、患者の全体像を作成しました。また、Athena を使用して 1 人の患者を検索しました。データ量が多い場合は、Amazon S3 内に年、月、日のパーティションを作成し、それらのパーティションに NDJSON ファイルを保存することをお勧めします。これにより、当月や当年などの限られた期間にダッシュボードを作成できるため、ダッシュボードをより迅速かつ費用対効果の高いものにすることができます。

まとめ

HealthLakeは、非構造化データから医療エンティティを抽出し、その上でダッシュボードをすばやく構築するという画期的な新しい可能性を生み出します。ダッシュボードは、診療医や医療管理者が情報に基づいた意思決定を行い、患者ケアを改善するのに役立ちます。また、非構造化データに隠されていた医療エンティティを組み込むことで、研究者が機械学習モデルのパフォーマンスを向上させるのにも役立ちます。未加工の FHIR データを Amazon S3 にインポートし、 AWS Glue クローラとデータカタログテーブルを作成し、QuickSight ダッシュボードを作成することで、ダッシュボードの作成を開始できます。

[1] MIMIC-III, a freely accessible critical care database. Johnson AEW, Pollard TJ, Shen L, Lehman L, Feng M, Ghassemi M, Moody B, Szolovits P, Celi LA, and Mark RG. Scientific Data (2016).


著者について

Mithil Shah はアマゾンウェブサービスの ML/AI スペシャリストです。現在は、AWS で機械学習ソリューションを構築することで、公共部門の顧客が市民の生活を改善できるよう支援しています。

 
 
 
 

Paul Saxman は AWS のプリンシパルソリューションアーキテクトで、診療医、研究者、経営幹部、学術医療センターのスタッフがクラウドテクノロジーを採用して活用できるよう支援しています。臨床情報学および生物医学情報学を専門とするPaulは、科学の医療業務への転用を支援することにより、医療の進歩と革新を加速させることに情熱を注いでいます。
 
 
 

翻訳は Solutions Architect 窪田寛之、片山洋平が担当しました。原文はこちらです。