Medley Developer Blog

株式会社メドレーのエンジニア・デザイナーによるブログです

電子処方箋実証事業におけるFHIRの活用と標準化の展望

こんにちは。CLINICS事業部の児玉です。

今回は、メドレーが2018年12月に厚生労働省から受託した「電子処方箋の本格運用に向けた実証事業」で、医療情報標準規格のFHIRを基盤とした電子処方箋管理システムを構築しましたので、その内容についてご紹介します。

FHIRとは

FHIR(Fast Healthcare Interoperability Resources)とは、医療情報交換の国際標準規格であるHL7(Health Level 7)の中で最も新しい規格であり、インターネットテクノロジーをベースとした、シンプルで効率的にシステム間での情報共有を可能にする「次世代の医療情報標準規格」として世界各国で注目されています。

HL7は、世界に30以上の国際支部を有しており、日本では1998年に日本HL7協会が設立されました。そして、現在流通しているHL7規格には、データ交換に利用されるHL7v2と、医用文書の記述に利用されるCDA(Clinical Document Architecture)が存在します。

電子処方箋とは

電子処方箋とは、従来の紙に印刷された処方箋ではなく、医療機関調剤薬局が電子データを用いて処方内容をやりとりする仕組みです。単純にペーパーレス化することだけが目的ではなく、患者個人の服薬履歴を電子的に管理して、重複投薬の適正化を図るといった目的もあります。

実証事業の背景と概略

2016年3月の法令改正で、処方箋の電子的な交付が可能となり、運用ガイドラインも策定されました。しかし、法令改正から数年が経過した現在においても、実運用での課題が払拭できずに、電子処方箋の全国的な普及は進んでおりません。

f:id:medley_inc:20190328142501p:plain
ガイドラインに定められた運用フロー(電子処方せんの運用ガイドラインより転載)

元来、処方箋には医師の記名押印、または署名が必要であると医師法で定められています。現行のガイドラインは、この規則を踏襲して設計されていますので、紙の処方箋の代替としてCDAで記述された静的ファイルを必要とし、記名押印の代替としてHPKIを使用した電子署名が必要となります。

また、クライアント端末で生成された静的ファイルが、インターネットに流通するフローとなっていますので、改ざんの検知を可能とするために電子タイムスタンプを付与する必要があります。

このように複雑化された運用フローが、電子処方箋の普及を阻害する要因の1つであると考えられます。

こうした状況を踏まえ、現行のガイドラインに縛られず、円滑な運用ができる仕組みを検討するために、実際の医療機関調剤薬局を使用したフィールド実験を実施しました。


実証事業概略

  • 実施目的:電子処方箋の運用の仕組みの検討・実証・考察
  • 実施期間:2019年2月4日 - 2019年3月17日
  • 実証エリア:東京都港区
  • 協力施設:2医療機関 / 6薬局
  • 利用実績:64件

電子処方箋管理システムの概要

以下に示すのは、今回の実証事業で開発した評価システムです。本システムは「処方箋管理システム」「医療機関システム」「薬局システム」「PHRアプリ」の4つのシステムから構成されています。

f:id:medley_inc:20190328140004p:plain
システム概観


  • 処方箋管理システム

    医療機関システム、薬局システム及びPHRアプリから接続され、各システムからの処理要求を受けて、処方データと調剤データの返答、作成、編集、及び削除を行う。

  • 医療機関システム

    診療結果としての処方データを処方箋管理システムに登録し、その結果として返される処方箋アクセスコードを患者に共有する。処方箋アクセスコードはQRコードの活用を想定し、QRコードを印字した紙又は電子データを患者に共有する。

*「QRコード」は株式会社デンソーウェーブの登録商標です。
  • 薬局システム

    訪問してきた患者の本人確認を行った上で、処方箋アクセスコードを受け取り、処方箋管理システムにアクセスし処方データを参照する。処方後は調剤データを処方箋管理システムに格納する。

  • PHRアプリ

    患者がオンライン診療やお薬手帳の機能を利用するためのアプリ。処方箋管理システムへのアクセスが許可され、医療機関システムから受け取った処方箋アクセスコードを元に、調剤結果を参照することを可能にする。


医療機関システムは、メドレーのクラウド電子カルテ「CLINICSカルテ」を利用しましたが、システム連携に関わる部分については、他の電子カルテなどでも活用できるよう、疎に結合した設計を意識しました。

処方箋管理システムは、前述の通りFHIRインターフェイスを基盤として構築しました。これは現行のガイドラインには記載されていない新たな試みです。

HPKIを利用したSSO(Single Sign On)による本人資格確認と、FHIRインターフェイスを利用したクラウドベースでのデータフローを実現することが可能であれば、複雑化の要因となっている静的ファイル、電子署名、タイムスタンプは不要であると考えました。

データ設計

FHIRには「リソース」と呼ばれるデータセットが定められています。リソースは、Patient(患者)、Practitioner(施術者)、Organization(組織)といった粒度で設計されており、リソース単位でのデータ交換が可能です。

FHIRを利用するためには、その目的に応じたリソースの選定と、リソースの下位概念であるフィールドに設定する具体的な値を定義する必要があります。

例えば、日本では人名を記述する際に、漢字氏名とカナ氏名を併記することが一般的ですが、グローバル・スタンダードではありません。このような国の事情に応じて、ローカライズされた記述ルールを定める必要があります。

実証事業で使用したリソース

リソース 説明
Patient 患者
Practitioner 施術者(処方医/薬剤師)
PractitionerRole 施術者役割
Organization 組織(医療機関調剤薬局
MedicationRequest 投薬要求
MedicationDispense 調剤実施
Coverage 保険

FHIRを使用した所感

FHIRの改版はon-Goingで行われています。実証事業のための開発を始めた頃は、STU3(Standard for Trial Use 3)が公式バージョンでした。しかし、あるとき急にFHIRのホームページが接続不安定になり困っていたところ、翌日にはR4(Release 4)に更新されていたということもありました。

このように、日進月歩のFHIRをプロダクトに組み込むには、タイミングの見極めと、アップデートに追従する「覚悟」を決めることが大切だと思います。

f:id:medley_inc:20190328210514p:plain
2018年12月27日にR4がCurrent Versionになりました

FHIRの利点は、従来のHL7規格と比較した実装容易性にあると考えます。REST(REpresentational State Transfer)のように、Webサービスでは一般的に普及している概念を標準として取り込んでいるため、実装者は特別な知識を習得する必要がありません。また、FHIRを実装するためのオープンソースライブラリが豊富に提供されており、これらを活用することによって、本当に必要な処理に注力して開発することが可能となります。

臨床概念モデルとしての観点では、CDAのベースとなっているHL7v3-RIM(Reference Information Model)と比較すると、クラス、継承のようなオブジェクト指向の概念が廃止されています。あらゆる臨床概念をモデリング可能とすることを目指したRIMと比べると、さすがに表現可能な範囲は狭まると思われますが、網羅性は実用域のレベルには達しているのではないでしょうか。

また、1:1のシステム連携におけるデータ交換では、すでに稼働しているv2インターフェイスを、無理してFHIRに置き換える必要は無いと思います。用途に応じて、既存の規格と共存していくのが大切であると考えます。

実運用へ向けての課題

FHIRリソースは、臨床概念としてユニバーサルに利用可能なものを中心に構成されています。保険情報のような各国の医療制度に応じて異なるものや、調剤技法に対する「一包化」や「粉砕」などの細かな指示情報に関しては、ある程度アドホックマッピングするしかありませんでした。実装者によるマッピングのブレが生じないようにするためには、指標となるガイドラインの策定が必要になります。

また、リソースにマッピングする医薬品や用法のマスターコードについては、厚生労働省標準マスターの利用が望まれます。しかしながら、満遍なく普及しているとは言い難い状況ですので、標準マスター利用の推奨も併せてガイドラインに明記することが必要です。

ガイドラインは、メドレー1社で策定することが可能なものではなく、医療情報システムの開発に関わる多くの開発者にFHIRを利用していただき、実装方法についての議論を交わす必要があります。しかし、現時点での日本国内におけるFHIRの活用事例は、残念ながらほとんど見られません。

次にご紹介するのは、FHIRを使用した簡単なコードのサンプルと、ローカル環境でFHIR Serverを簡易的に動かす方法です。実装者の方がFHIRに触れるきっかけになればと思って書きましたので、ご参考にしていただけますと幸いです。

FHIRの実装サンプル

FHIRを理解するためには、実際にコードを書いて動かしてみるのが一番だと思います。ここでは、ローカル環境でFHIR Serverを起動して、リソースを登録する簡単なプログラムを書いてみました。(オープンソースの恩恵を最大限に享受しています。)

実行環境

FHIR Server

DockerコンテナでFHIR Serverを起動します。簡単に動かせるように、DockerHubに公開されているHAPI-FHIRのコンテナイメージを利用します。

HAPI-FHIRとは、カナダのトロントにある医療研究機関のUHN(University Health Network)が立ち上げたプロジェクトで、FHIRのオープンソースライブラリを提供することを目的に活動しています。

Dockerコンテナイメージの取得

$ docker pull petersonjared/hapi-fhir
$ docker run -d -p 8080:8080 --name=fhir petersonjared/hapi-fhir:dstu3
$ docker exec -it fhir /docker-entrypoint.sh java -jar /usr/local/jetty/start.jar

Dockerをインストールするのが面倒な人は、HAPI-FHIRがグローバルに公開しているテストサーバーを利用することも可能です。ただし、世界中の人がテストに利用しているサーバーですので、機微な個人情報は登録しないよう注意が必要です。

FHIR Client

FHIR Clientは、Rubyで動かします。以下のGemを利用します。

$ gem install fhir_client
$ gem install fhir_models

Rubyのコードです。Patientリソースを作成してFHIR Serverに登録します。

patient.rb

require 'fhir_client'

client = FHIR::Client.new("http://localhost:8080/baseDstu3")
FHIR::Model.client = client
    
patient = FHIR::Patient.new

# 患者ID
identifier = FHIR::Identifier.new
identifier.value = '12345678'
patient.identifier = identifier
    
# 患者氏名
human_name = FHIR::HumanName.new
human_name.family = 'Kodama'
human_name.given = 'Yoshinori'
patient.name.push(human_name)

# 性別
patient.gender = 'male'

patient.create
puts patient.id

上記のコードを実行すると、FHIR ServerにPatientリソースが登録されます。ここでリソースを一意に特定するリソースIDが採番されます。今回は 19953 が採番されました。(puts patient.idで確認)

このリソースIDを利用して、FHIR ServerにHTTPリクエストを送ります。

$ curl http://localhost:8080/baseDstu3/Patient/19953

そうすると、先ほど登録したリソースがJSON形式で取得できます。

{
  "resourceType": "Patient",
  "id": "19953",
  "meta": {
    "versionId": "1",
    "lastUpdated": "2019-03-21T09:12:44.660+00:00"
  },
  "text": {
    "status": "generated",
    "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><div class=\"hapiHeaderText\">Yoshinori <b>KODAMA </b></div><table class=\"hapiPropertyTable\"><tbody><tr><td>Identifier</td><td>12345678</td></tr></tbody></table></div>"
  },
  "identifier": [
    {
      "value": "12345678"
    }
  ],
  "name": [
    {
      "family": "Kodama",
      "given": [
        "Yoshinori"
      ]
    }
  ],
  "gender": "male"
}

もちろん、患者IDなど利用して検索することも可能です。

$ curl http://localhost:8080/baseDstu3/Patient?identifier=12345678

さいごに

今回の実証事業では、FHIRのインターフェイスを活用することにより、シンプルなアーキテクチャとシームレスなフローで、迅速に処方箋管理システムの構築ができ、電子処方箋の運用評価を行うことができました。本実証事業の最終成果報告書は厚生労働省のサイトに公開されていますので、詳細について興味のある方はこちらをご参照ください。

www.mhlw.go.jp

メドレーは、実証事業で得られた知見を可能な限りオープンにして電子処方箋の普及推進に取り組むことはもちろん、インターネットを活用したオープンな技術の普及活動に積極的に取り組み、医療機関と患者の双方にとってより良い医療の実現を目指してまいります。

お知らせ

今回の電子処方箋実証事業の成果と、システム開発に活用したFHIRについて共有するイベントを、以下のとおり4月23日(火)に開催します。お時間ある方はぜひご参加ください。

techplay.jp

また、メドレーでは医療業界に存在する課題にITを駆使して取り組んでいきたいメンバーを、デザイナー・エンジニアを中心に全職種絶賛募集中です。皆さまからのご応募お待ちしております。

www.medley.jp