こんにちは。まーやです。最近寝ても覚めてもFHIR FHIR って感じで自分の中の情報がひっちゃかめっちゃかになってきたので、備忘録的に概要をまとめます。
今後下記も合わせて備忘録していく予定。
- Azure API for FHIR
- Azure IoT Connector for FHIR
- FHIR Server for Azure
- The Medical Imaging Server for DICOM
- FHIR Convertor(あ、名前違うかも。後で訂正する)
HL7 とは
HL7 とは、Health Level 7 の略で、医療情報あれこれのデータ送受信を標準化する(したい)ための国際標準規格です。7ってことはHL1とかHL4とかあったの?バージョン管理なの?と思いがちですが、これはOSI参照モデル(物理層・ネットワーク層とかのアレね。エンジニャーのみんなならわかるよね)にインスパイアされてつけられているだけのお名前なので特にバージョン的なレベルアップ的な数字ではありません。OSI参照モデルの第7層・アプリケーション層の規格だよ!というかんじです。
日本HL7協会とかあります。
http://www.hl7.jp/whatis/
過去、HL7では時代にあわせて色々な規格を提唱してきました。まさにその時代の流行りにちゃんと乗っかっていくスタイルです。あんまりよく調べてないので雑に。興味が湧いたら調べます。
- HL7 v2
- 1987年提唱
- テキストベース
- xx|yy|zz みたいなフォーマット
- HL7 v3
- 1996年提唱
- XMLフォーマット
- RIM (Reference Information Model)採用。
- HL7 CDA
- 2005年提唱
- Clinical Document Architectureの略
- XMLフォーマット
- v3の亜種というか改変版というか。HL7の中では現在もなお一番普及しているのではないだろうか・・・
で、もうXMLでメッセージングするの古いよね★最新型にしよ★と生まれてきたのがFHIRです。
FHIR とは
前項に出てきた通りの流れで生まれた、HL7の最新版です。
- 2012年提唱
- Fast Healthcare Interoperability Resources の略語。「ふぁいあー」と呼ばれていることが多いです
- WEB通信規格
- https://xxxxxx/ で通信して
- JSONで送ってね(他のフォーマットもドキュメント用意されてますがJSONで送受が多いです。みんなJSONにしよ)
ということで、長らく続いてきたメッセージング方式+XMLから一新されました。コンセプトも名前そのままで、
- 短期間の開発・導入
- 医療・製薬業界特化型フォーマット
- みんなで医療情報互換運用できるよ!(経済的!)
- リソースって概念でデータ取り扱っていくね!
です。
HL7 FHIR データフォーマット公式サイト
https://www.hl7.org/fhir/
2018年には「大手Technology企業さんは喧嘩したり独自フォーマット作ったりしないで仲良く世界中のヘルスケア関係者がFHIRでやり取りできるように尽力しなさいね!」という署名がなされたというのも割とインパクト大きかったりします。
https://techtarget.itmedia.co.jp/tt/news/1810/30/news03.html
このような働きかけもあり、かかりつけ医が国で指定されていたり、国主導で(有無を言わさず)ガツンと改革できる国からFHIRの広がりを見せました。アメリカ・イギリスなどがその例で、左記2国はすでに国内利用率100%に近い状態となっています。
FHIR データの通信方法
RESTful APIのルールにのっとります。
ORマッパーなどを使って直接データを投入したり、ファイルベースでデータをやり取りするのではなく、「FHIRデータ基盤」というサービスとしてデータのやり取りしてくださいね、の意だと解釈しています。
データの保存の仕方はそれぞれのシステムによって最適な方法が変わる世の中をOKとしてくれている。データ基盤の中身はRDBだろうとKVS(はちょっとどうかと思うが)だろうとテキストファイルをストレージに置くだけだろうとgraphDBだろうと好きなものをどうぞ!そのかわりデータ基盤へのアクセスでほしいデータに必ずアクセスできるようにしておいてね、ということかと。
なかなか時世をわかってますね、などと思っていたりします。
リクエストURLのフォーマットは下記の通りです。
https://【Server domain】/【FHIRの規格バージョン】/【リソース名】/【リソースID】
わかりやすい。(リソースについては後述)。
FHIR データフォーマット
FHIRではデータのカテゴリというか、データのまとまりのことを「リソース」と呼んでいます。これはHL7 CDAのころから脈々と使われているもの。Patientリソース、Observationリソースなど、公式サイトに行くと泣きたくなるくらいたくさんのリソースが規定されています。
エンジニアさんにわかりやすくイメージしてもらうにはRDBのテーブルでいいと思います。
これら無数のリソースは汎用性というか共通性に合わせて5つのカテゴリ(5つの層)に分類されています。
- level1 : Basic framework
- FHIRデータベース基盤を作るときの基本フレームワーク。基本仕様。JSON規格~とかそういうの。
- level2 : Supporting implementation and binding to external specifications
- 医療システムとして実装する際に必要な情報仕様。セキュリティとか。
- level3 : Linking to real world concepts in the healthcare system
- いわゆる「マスターデータ」。level1/2はコンセプトなのでリソースはあれど実際にCRUDするようなデータではないんですが、level3からは実データになってきます。患者情報、医者情報、ロケーション情報など。
- level4 : Record-keeping and Data Exchange for the healthcare process
- 日々蓄積されるデータ群。診察情報、投薬情報、お金のやり取り情報などなど。
- level5 : Providing the ability to reason about the healthcare process
- 推論データ。医療に関するレポート情報など。意思決定をするための参考資料として使えるものが主だったリソースです。
基本的にデータがバリバリ動くのはlevel4、立ち上げ時に必要なのがlevel3、慣れてきたらlevel5の活用、といったところかなと思います。
各リソースの項目詳細については、めちゃくちゃ長くなるので割愛します(すでにこのブログ長い)。
最近、アメリカ規格としてCovid-19用規格が誕生しています。
http://hl7.org/fhir/uv/saner/2021Jan/measure_group_hospital_acquired_covid19_patients.html
ワクチン陰性証明システムの標準規格を目指すCommonPass などで使用されている Smart Health Cards フレームワークの規格なんかもあります。
http://build.fhir.org/ig/dvci/vaccine-credential-ig/branches/main/index.html
また、FHIRには80%ルール的なものが存在しており、「80%くらい規格にしておくから、あと20%はまあみんなよしなに」というデータフォーマットとなっています。この20%のよしなにの部分をExtensionsと呼び、リソースの拡張データフォーマットですよ!と位置付けることができます。病院独自のデータとかね、国固有のデータとかね、そういうやつ入れられます。
リソース成熟度
HL7 FHIRはまだまだ時代と共にリソースについて議論・進化しています。この議論の成熟度(=リソースの成熟度)はこちらのページで確認することができます。
https://www.hl7.org/fhir/resourcelist.html
成熟度は0~5とNの7段階になっており、Nが付いていれば「もう標準として使えるよ!GA!GA!」の状態です。
- 0 : ドラフト段階
- 1 : 実装
- 2 : 試験中
- 3 : 品質管理中
- 4 : private preview
- 5 : public preview
- N : GA! 標準リソースとして掲載中
日本で導入における課題
現在日本で使用されている医療データフォーマット(SSMIX2 etc.) との置換ルールがまだ決まっていないことが一つ上げられるかなと思います。誠意医師会ワーキンググループの方々が動いてくださってるとは思うのですが。数も多いですし、日本独自のデータも数多くあるはずなのでその辺の兼ね合いで病院システムでの導入が左右されるかなと思います。
逆にPHR(Personal Health Record)系の新しいデータやベンチャー企業さんが作るような新しいシステムは導入しやすいはずなので、自社でどんどん導入してどんなところが課題になるのかなど失敗談や工夫点などをどんどん(私に)共有してほしい!
例えば名前のフリガナで悩むと思う。漢字だけだと読めない名前の人多いし、かなだけだとそれはそれで困っちゃうし。そういうリージョンあるあるってあると思うんですよ。そういうのって実際にやってみないと、わかんないこといっぱいあるよね。。。
ちなみに名前問題は先日イベントで話題にしてみたところ、「かなをnameスペースに、漢字名をExtensionsにいれればいいのでは」みたいなはなしはもらえました。なるほどな~。
最後に
私も調べ始めてそんなに日が長くないので、もし間違ってるところとか、こういう解釈もあるよ、とかなにかあればぜひコメントください。
次回はAzure API for FHIRあたりかくぞー
2021/05/19 追記
@kazumihirose さんから説明フォローアップいただきました。ありがとうございます。
FHIR誕生のデータ側からみた経緯としては、XMLの時の仕様がごっついので(EHR(Electronic Health Record)向け)なのでPHR(Personal Health Record)で多く見られる軽量データには向いてないね、ということで新しい形態へ移行していったとのことです。で、じゃーこの方式に合う通信規格は何かしら?という検討がされて、WEB規格・JSONフォーマットに決まっていったというかんじですかね。なるほどなるほど。