HL7FHIRの歴史

はじめに

ALTURA X株式会社でLIFELOGおよびCHECKUPのCPOを努めている山下です。
今回は弊社のシステムで採用しているHL7FHIRの歴史について簡単にまとめてみました。

HL7とは

医療文書情報のデータ連携を標準化するための国際規格です。HL7はOSI第7層(アプリケーション層)での規約であり、データの型や要素、要素の構成やグループ、コードや用語、機密保持、管理規約などが定義されます。HL7にはV2、V3、CDA、FHIRの4種類があり、それぞれデータ構造を定義しています。
Web系システムのエンジニアの用語に例えるとHTML、SMTP、POPといった目的に応じたプロトコルに近いものと考えています。SMTPであれば、サーバと通信を開始したときにHELLOメッセージを送ることが必須であることや、メールのエンベロープ部分に宛先を記載すること、文字コードの規定などが定義されています。

HL7の各規格の登場時期と特徴

登場年代ごとにV2、V3、CDA、FHIRの4種類の特徴を説明します。

HL7v2

1987年に規格が公開され、その特徴は以下の通りです。
  • セパレータ(|)で区切ったテキストで表現
  • セグメント毎の配置ルールで構造を表現
  • 独自ルールのため専用のパーサが必要
以下のような例になります(参考
上記のようなセパレータで分けただけの文字列は処理を軽量化でき、規格公開が1987年と非常に古く、当時のコンピュータが現在に比べて非力であるため可読性より処理しやすい形式が採用されたものと思われます。また、シンプルな処理でパースできることはリッチなCPUを持たない医療機器でも処理しやすいことが想像されます。

HL7v3

1996年に公開された規格で、XML形式を採用しています。その特徴は以下の通りです。
  • XML形式
  • XMLという普及した形式を採用したことで公開されたライブラリの流用ができるようになった
  • 医療情報をRIM(Reference Information Model)で表現
XMLは現在も設定ファイルで使われていることがある形式でHTMLに近い構文で表現されます。また、RIMを使って医療情報をデータモデル化する作業を行っています。
 
HL7v3 RIM(Reference Information Model)
上記サイトで公開されているHL7v3で利用可能なデータ構造の一部です
HL7v3 RIM(引用:https://www.hl7.org/implement/standards/rim.cfm)
HL7v3 RIM(引用:https://www.hl7.org/implement/standards/rim.cfm
RIMによりすべての医療情報をデータモデル上に表現する作業が進められましたが、医療情報が膨大であることや日々追加されること、医療機関ごとの慣習の違いによる表現の差異を埋めることが非常に困難であったため作業が中断されています。
私は医師でも医療の専門家でも無いので初めてデータモデルの構築を断念したという話を聞いて、疑問を抱きました。しかし、健診システムの開発を進める中で医療情報の多様さに驚きを覚えるとともに、データモデルを完璧に構築することの難しさを少しだけですが理解できるような気がしています。
しかし、後の規格を構築するためにはHL7v3 RIM策定の努力は非常に重要であったのではないかと思います。

HL7 CDA

2005年に公開された規格です。HL7v3の経験を活かし、XML形式を採用しているものの文書の書き方までは定義していないため柔軟に使えることが特徴です。
  • XML形式
  • 情報構造、情報項目の表現ベースにR-MIM構造が採用
非常に柔軟に文書を記述できる一方で施設ごとに異なる文書の書き方が浸透してしまい、データ交換に支障がでました。

HL7 FHIR

2012年から規格が公開され、進化を続けています。
  • REST
  • リソースを定義し、バンドルできる
  • 拡張方式について定義
  • SOA原則に基づくサービスの構築
本規格は公開されており誰でも以下サイトで仕様を閲覧することができます。HL7v2、HL7v3, HL7 CDAにはメーカーや医療機関ごとの独自仕様が存在し、それらは非公開のため非常に参入しづらいのが欠点と言えると思います。一方でHL7FHIRは仕様が公開されており、誰でもHL7FHIRを使ったシステムの構築ができることは画期的と言えると思います。
 
リソース
HL7v3の経験を元にHL7FHIRでは以下の通りリソースを定義し、リソースがどういった属性を持っているのか定義ています。これらのリソースは単体で使うことができると同時にバンドルという方法で束ねることができます。また、リソースの属性を拡張することもできます。
HL7 FHIRリソース(引用:https://hl7.org/fhir/resourcelist.html)
HL7 FHIRリソース(引用:https://hl7.org/fhir/resourcelist.html
以下はObservationリソースの一部です。Observationリソースでは検査結果や問診結果を扱うことができます。
HL7 FHIR Observation Resource(引用:https://hl7.org/fhir/observation.html)
HL7 FHIR Observation Resource(引用:https://hl7.org/fhir/observation.html
 
バンドル
HL7 FHIRではバンドルという仕組みを使ってリソースをまとめることができます。実際の利用事例として健康診断結果報告書をHL7FHIRを使って表現する場合の規約であるeCheckupを例として以下に抜粋を記載します。eCheckupではBundleを使って健診結果報告書に含まれる検査結果や受診者情報、検査画像を示すリソースをまとめて健診結果報告書を構成しています。
eCheckup バンドル構成(引用:https://std.jpfhir.jp/stddoc/eCheckupFHIR_v1x.pdf)
eCheckup バンドル構成(引用:https://std.jpfhir.jp/stddoc/eCheckupFHIR_v1x.pdf
 
HL7 FHIRの学習
なお、これからHL7FHIRを触る方は最初から理解することは非常に困難なため、本ブログの執筆でも参考にさせて頂いたこちらのeラーニングを受講されることをおすすめします。

おわりに

HL7の歴史をまとめることを通して、如何に医療情報を取り扱うことが難しいか改めて認識させられました。
弊社のシステムを開発を始めた2022年の段階ではHL7FHIRのver4.3.0がリリースされており、インターネット経由で医療情報を扱うためのフレームワークが醸成されてきたときでした。ただし、このときは健康診断領域におけるHL7FHIRの拡張であるeCheckupがまだ正式リリース段階ではなくドラフト段階だったこともあり、システムにeCheckupの考え方を取り込むのに苦労した記憶があります。
現在はFHIRのバージョンがver5.0.0まで進んでいます。今後も進化し続けるFHIRをどのようにシステムに取り込むか検討を進めて行く必要があると常々感じています。

参考

  • 日本HL7協会様 HL7 e-Learning 第1部「FHIRを知る」