Skip to content

FHIR R4 リソースリポジトリの体験とFHIR サーバサイドアプリケーションを利用したデータの追跡を簡単に試せるテンプレート

License

Notifications You must be signed in to change notification settings

Intersystems-jp/IRIS-FHIR-Oximeter-Template

Repository files navigation

FHIR R4 リソースリポジトリと FHIR サーバサイドアプリケーションを利用したデータ追跡を簡単に試せる開発環境テンプレート

開発環境テンプレートは、コンテナで動作します。

コンテナのビルドによって、FHIR R4 リソースリポジトリの準備と、FHIR R4 リソースに対応したサンプル Web アプリケーションを準備します。

コンテナのビルド後の開始では、FHIRリソースデータは登録されていませんので、サンプル Web アプリケーションから登録したり、RESTクライアントを利用して登録したり、お好みの方法でお試しいただけます。

この他、コンテナビルド時に FHIR サーバーサイドアプリケーションサンプルとして、新生児につけたパルスオキシメーターの血中酸素飽和度が 90% 未満となる場合、HL7 の 2.5:SIU_S12 メッセージを作成しファイル出力するプロダクションサンプル(Interoperabilityメニュー)も一緒に準備しています。

詳細は後述します。

処理概要(イメージ図)

テンプレートで使用している FHIR R4 リポジトリ

InterSystems IRIS for Health コミュニティエディションを使用しています(コンテナビルド時に FHIR R4 リソースリポジトリ用の必要な設定を行っています)。

テンプレートを動かすための必要な環境

docker / docker-compose / git / VSCode がインストールされた環境をご準備ください。

VSCode では、ObjectScript エクステンションを使用します。インストール方法/接続先設定方法についてはこちらの記事をご参照ください。

コンテナ開始までの手順

Linux でお試しいただく場合は start.sh を実行してください。

Windowsでお試しいただく場合は start.batを実行してください。

コンテナ詳細は、docker-compose.yml をご参照ください。

Git展開後、./Out は コンテナ内 /ISC/Out ディレクトリをマウントしています。

また、IRIS for Health の管理ポータル起動に使用する Web サーバポートは 62773 が割り当てられています。

既に使用中ポートの場合は、docker-compose.yml9行目 を修正してご利用ください。

≪62773に割り当てる例≫ - "62773:52773"

コマンド実行例

  1. git clone
git clone https://github.com/Intersystems-jp/IRIS-FHIR-Oximeter-Template
  1. cloneしたディレクトリに移動
cd IRIS-FHIR-Oximeter-Template
  1. コンテナ開始の為、start.sh または start.bat を実行

Linux

$ ./start.sh

windows

> ./start.bat

コンテナを停止する方法

$ docker-compose stop

コンテナを破棄する方法(コンテナを消去します)

注意:コンテナを破棄するとコンテナ内に配置されたFHIRリソースリポジトリもコンテナと一緒に破棄されます

$ docker-compose down

サンプル Web アプリケーションについて

サンプル Web アプリケーションでは、新生児の患者基本情報登録/更新(Patient リソースの登録)とパルスオキシメーターで測定した血中酸素飽和度の登録(Observation リソースの登録)が行えます。

サンプルアプリケーション イメージ図

補足

コンテナビルド時、OpenExchange に公開されている iris-fhir-portal をインストールし(zpmコマンドを利用)、血中酸素飽和度チェック用プロダクション(Interoperabilityメニュー)のテーマに合わせ少しウェブアプリケーションの表示項目や動作に改良を加えています。

iris-fhir-portal について詳しくは、開発者のHenrique Goncalves Diasさんによる日本語による概要解説もあります。

ぜひご参照ください。

サンプル Web アプリケーションは以下URLで起動します。

http://localhost:62773/fhir/portal/patientlist.html

ホスト名:ポート番号は、ご利用環境に合わせてご変更ください。

サンプルデータは未登録です。アプリケーションを通して登録されるか、REST クライアントを利用して登録してください。

RESTクライアントからの登録については、後述の説明をご参照ください。

(1) Patient リソースの新規登録

Web アプリケーションの右画面の「診察券番号」~「住所」までの必須項目を記入し、「Insert」ボタンをクリックすると登録できます。

(2) Patient リソースの検索

Web アプリケーションの左画面の「患者検索」のテキストボックスに名前(姓、名、カナ姓、カナ名)で検索できます()。

検索結果一覧をクリックすると、右画面に詳細情報を表示します。

(3) Patient リソースの更新と、血中酸素飽和度の登録(Observation リソースの登録)

左画面の検索結果一覧クリック後、右画面の「血中酸素飽和度の選択」のスライドバーを利用して濃度を指定し、「Update」ボタンをクリックします。

Bundleリソースを利用して、FHIRリポジトリにPatientリソースの更新情報とObservationリソースの情報を登録します。 登録後、再度患者一覧から対象データをクリックすると、右画面の「Vital Signs」に登録した情報が表示されます。

REST クライアントを利用して FHIR リソースへのアクセスを試される場合

Postman などの REST クライアントをご用意ください。

(1) Patient リソースの POST

Patient リソース の新規登録を行う方法は以下の通りです。

URLに http://localhost:62773/csp/healthshare/r4fhirnamespace/fhir/r4/Patient を指定します。

※ ポート番号は環境に応じてご変更ください

ヘッダに以下の情報を登録してください。

Content-Typeapplication/fhir+json;charset=utf-8 を設定

Authorization に ユーザ名:_system パスワード:SYS を設定(Basic 認証を利用したいので RESTクライアントのユーザ名/パスワード入力欄が利用できると便利です)

BodySampleResourceフォルダにあるPatient新規登録用JSONの中身を貼り付けます。

HTTPステータスに201 Created が返れば成功です。

登録されたリソース ID を確認するため、GET要求でPatientリソースを取得します。

登録した「山田太郎」さんのリソース ID は、検索結果の Bundle リソースの entry の resource の id で確認できます。

(2) (1)で作成した Patient リソースと関連付けた Observation リソースの POST

Observation リソース の新規登録を行う方法は以下の通りです。

URLに http://localhost:62773/csp/healthshare/r4fhirnamespace/fhir/r4/Observation を指定します。

※ ポート番号は環境に応じてご変更ください

ヘッダに以下の情報を登録してください。

Content-Typeapplication/fhir+json;charset=utf-8 を設定

Authorization に ユーザ名:_system パスワード:SYS を設定(Basic 認証を利用したいので RESTクライアントのユーザ名/パスワード入力欄が利用できると便利です)

BodySampleResourceフォルダにある Observation 新規登録用JSONの中身を貼り付けます。

サンプルJSON の 56行目に、(1) の Patientリソース の POST 実行で付与されるリソース ID(例では 5)を Patient/5 のように設定しています。

POST実行後、HTTP ステータスに 201 Created が返れば成功です。

(3) Bundleの利用:Patient リソースの新規登録(POST)と Observation リソースの新規登録(POST)

Bundle リソース で更新する方法は以下の通りです。

ヘッダに以下の情報を登録してください。

Content-Typeapplication/fhir+json;charset=utf-8 を設定

Authorization に ユーザ名:_system パスワード:SYS を設定(Basic 認証を利用したいので RESTクライアントのユーザ名/パスワード入力欄が利用できると便利です)

BodySampleResourceフォルダにある Bundle用JSONの中身を貼り付けます。

サンプルでは、Patient リソースの新規登録(POST)と Observation リソースの新規登録(POST)を行うため、Bundle リソースを使用しています。

POST実行後、HTTP ステータスに 200 OK が返れば成功です。 また、応答メッセージを確認すると Patient/Observation それぞれの登録に対して、HTTP ステータス 201 が返送されていることが確認できます。

FHIR サーバサイドアプリケーション(血中酸素飽和度の追跡と HL7 メッセージの出力)について

開発環境テンプレートの FHIR R4 リソースリポジトリでは、InterSystems IRIS for Health コミュニティエディション(以降 IRIS for Health)を使用しています。

IRIS for Health では、FHIR R4 リソースリポジトリの提供の他に、FHIR サーバーサイドアプリケーションの開発も行えます。

このテンプレートには、新生児につけたパルスオキシメーターの血中酸素飽和度が 90% 未満となる場合に、HL7 の 2.5:SIU_S12 メッセージを作成しファイル出力するプロダクションサンプル(Interoperabilityメニュー以下で作成するサンプル)が含まれています。

IRIS for Health では、FHIR R4 リソースリポジトリを用意すると同時に REST のエンドポイントも作成します。

FHIR R4 リソースリポジトリのエンドポイントが提供されている環境に、以下の図のようなプロダクション定義が登録されていると、REST で依頼された FHIR R4 リソースリポジトリの処理は、プロダクションのビジネスサービスに送信されるようになります。

図:プロダクション定義

プロダクション処理概要や、プロダクション画面の開き方については、以下ビデオをご参照ください。

https://www.youtube.com/watch?v=2Yel7NWUui4&t=463s

プロダクションでは、入力された FHIR リソースを FHIR R4 リソースリポジトリに処理を依頼する他に、必要に応じて FHIR サーバーサイドアプリケーションを追加できます。

テンプレートの中では、パルスオキシメーターの血中酸素飽和度が 90% 未満となる場合、HL7 の 2.5:SIU_S12 メッセージを作成しファイル出力する流れを追加しています。

以下画面イメージは、測定値のチェックを行っているビジネスプロセスエディタの例と、90% 未満だった場合のデータ変換エディタの例です。

画面へのアクセス方法詳細は、以下ビデオをご参照ください。

https://youtu.be/2Yel7NWUui4?t=597

この流れは、サンプル Web アプリケーションを使用して簡単に確認できます。 画面の使い方やトレース画面の開き方については、以下ビデオをご参照ください。

https://www.youtube.com/watch?v=2Yel7NWUui4&t=780s

以下画面イメージは、適正値(血中酸素飽和度が 90% 以上)の場合のトレース例です。

以下の画面イメージは、適正値(血中酸素飽和度が 90% )を下回る場合 HL7 出力の流れを確認できるメッセージのトレース例です。

ご参考:FHIR サーバサイドアプリケーションの中で使用していた「プロダクション」について詳しくは、【はじめてのInterSystems IRIS】Interoperability(相互運用性)を使ってみよう!をご参照ください。

About

FHIR R4 リソースリポジトリの体験とFHIR サーバサイドアプリケーションを利用したデータの追跡を簡単に試せるテンプレート

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published