投稿者

Sales Engineer at InterSystems Japan K.K.
記事 Tomo Okuyama · 1 hr 前 5m read

IRIS for Health FHIR R4 デモ環境の準備

最近あるお客様にIRIS for Healthをご紹介する機会があり、技術者の方向けのデモを交えた説明をするためにIRIS for Healthのデモ環境の準備をしました。

元ネタは @Mihoko Iijima がポストした以下の投稿です。

FHIR R4 リソースリポジトリを簡単にお試しいただける開発環境テンプレートのご紹介

非常にわかりやすい動画での説明もあるのでご覧ください。

これから試す方向けに、新しいバージョン(2025.3)でお試しいただけるよう若干の修正をしましたので、紹介します。

https://github.com/TomoOkuyama/iris4h-demo

主な修正点は以下です。

  • IRIS for Health 2025.3 に対応 — ベースイメージを最新バージョンに更新
  • JsonAdvSQL ストレージ戦略を採用 — 2024.1 で導入された新しい FHIR サーバーのデフォルトストレージ戦略です。従来の JSON ストレージ戦略と比べ、FHIR REST API の検索性能・標準準拠性・スケーラビリティが大幅に向上しています。FHIR データを SQL で分析する場合は、公式にサポートされた FHIR SQL Builder(2023.1 以降正式サポート)の利用が推奨されます。
  • 電子カルテ UI を今風にアップデート — FHIR API だけで動作する患者サマリ画面に刷新しました。患者一覧・バイタル・検査結果・病名・アレルギーの表示に加え、SpO2 を入力して HL7 自動変換をトリガーする操作も UI 上で行えます
  • 日本語デモデータの自動投入 — 患者20名分のダミーデータ(バイタル・検査・病名・アレルギー)を、臨床的な整合性を持たせた形でスクリプト1本で投入できるようにしました
  • 実務的な SQL クエリ集を追加 — 「外来受付での患者検索」「病棟での異常値アラート」「糖尿病外来での HbA1c 管理」など、8つの業務シチュエーションに対応した22本の SQL クエリを同梱しています
  • HL7 出力の日本語対応 — HL7 v2 の日本語標準である ISO-2022-JP エンコーディングに対応
  • オフライン動作 — Bootstrap 等のライブラリをローカルに同梱し、インターネット接続なしで動作するようにしました
  • 通常版・Community版の両方に対応 — 製品版(ライセンスキー要)と Community Edition(ライセンスキー不要)それぞれの docker-compose ファイルを用意しています

JsonAdvSQL について

今回の修正で最も大きなポイントは JsonAdvSQL ストレージ戦略の採用です。

元テンプレートでは従来の HS.FHIRServer.Storage.Json を使用していましたが、今回は 2024.1 で導入された HS.FHIRServer.Storage.JsonAdvSQL を使用しています。この戦略は、FHIR REST API の検索性能・標準準拠性・スケーラビリティを大幅に向上させた新しいストレージ戦略です。

なお、FHIR リソースを POST すると以下のような内部テーブルが生成されます。

HSFHIR_X0001_S.Patient           ← メインテーブル(1患者=1行)
HSFHIR_X0001_S_Patient.family    ← 姓の検索用サブテーブル
HSFHIR_X0001_S_Patient.address   ← 住所の検索用サブテーブル
HSFHIR_X0001_S_Patient.identifier ← 識別子のサブテーブル

これらのテーブルに対する直接 SQL クエリは技術的には可能ですが、InterSystems 社として公式にサポートされておらず、予告なく構造が変更される可能性があります。FHIR データを SQL で分析する場合は、2023.1 以降で正式サポートされた FHIR SQL Builder の使用が公式に推奨されています。

電子カルテ UI

電子カルテ風の Web UI も今風にアップデートしました。FHIR R4 API を直接呼び出して動作します。

電子カルテ UI

Bootstrap と jQuery を使った HTML 1ファイルの構成で、サーバーサイドのフレームワークやビルドツールは不要です。ライブラリはすべてローカルに同梱しているため、インターネット接続なしで動作します。

患者一覧から患者を選択すると、FHIR API 経由でリアルタイムにデータを取得し、バイタルサイン・検査結果・病名・アレルギーを一画面で確認できます。SpO2 の値が低かったり、体温が高かったりすると、異常値としてハイライト表示やアラートバッジが表示されます。

SpO2 入力タブからは、スライダーで値を設定して「SpO2を記録する」ボタンを押すと FHIR Bundle が POST され、IRIS の Interoperability プロダクションが SpO2 < 90% を検知して HL7 メッセージを自動生成する一連のフローを体験できます。

セットアップ

セットアップは非常にシンプルです。

git clone https://github.com/TomoOkuyama/iris4h-demo.git
cd iris4h-demo
docker compose up -d --build
bash demo/01_load_patients.sh

これだけで FHIR リポジトリ・電子カルテ UI・Interoperability プロダクションが動作します。

製品版を使う場合は dockerfiles/iris/iris.key にライセンスキーファイルを配置してください。Community Edition で試す場合は、ライセンスキー不要で以下のコマンドで起動できます。

docker compose -f docker-compose.community.yml up -d --build
bash demo/01_load_patients.sh

詳細は README をご覧ください。

その他

このリポジトリは、予告せずにアップデート(修正やデモシナリオの追加など)していく予定ですので、このままの状態を残しておきたい方は、自分のGitHubアカウントにフォークするなどしておいてください。

電子カルテUIには、この電子カルテを利用する利用者名として右上に奥山 医療情報技師とハードコードしていますが、気に入らない方はソースコードを修正してください😆。