記事
· 2024年3月21日 7m read

開発者用の clinFHIR

この記事では、FHIR を理解し、FHIR アーティファクトを使用するアプリケーションを開発できるようにするために clinFHIR アプリケーションを使用する方法を説明しています。 FHIR の紹介を意図したものではなく、学習 / 開発の過程で clinFHIR がどのように役立てられるかを説明しています。 相応に概要レベルでの説明となっています。その他の情報は、特に私の個人ブログで提供しています。

FHIR を使用している方は、FHIR チャットに参加することをお勧めしています。ほとんどのエキスパートが参加しているため、FHIR コミュニティに質問するのに最適な手段です。 また、アプリ固有の質問には clinfhir ストリームもあります。

まずは、背景から少し説明します。

10 年前に初めて FHIR を開発していた頃、FHIR が一体何であるかを可視化できる必要性があることが明確になりました。 リソースとは何か、どのように使用して特定のユースケースを表現できるのか、用語はどのように機能するのかといったことです。 これは特に、臨床分野のオーディエンスにおいて必要であったため、「clinical FHIR」を短縮して「clinFHIR」という名前になりました。

それ以来、clinFHIR は FHIR の数々のバージョンを重ね、モジュールの追加や削除を繰り返し進化してきました。 つまり、ユーザーインターフェースはモジュール間で必ずしも一貫してはいませんが、それでも使いやすいことを願っています。

また、clinfhir は現在 SSL を使用していないことも指摘しておく必要があります。 ロードマップには上がっていますが、解決が必要な課題がいくつか残っています。 このため、ブラウザに「clinfhir.com」を入力すると、検索されない場合があり、 「http://clinfhir.com/」と入力しなければならないこともあります。 

先程述べたように、clinfhir には多数のモジュールがあります。 その内のいくつかを説明します。

  • 患者ビューアー: 個別の患者レコードを閲覧できます。
  • サーバークエリ: FHIR サーバーに対して RESTful API 呼び出しを行い、様々なフォーマットで表示します。
  • バンドルビジュアライザー: バンドルのコンテンツを表示します。
  • グラフビルダー: 連結されたリソースのグラフを作成できます。

初めて clinfhir を読み込むと、以下の読み込み画面が表示され、使用するモジュールを選択できます。

右側には、clinfhir がデフォルトでアクセスするサーバーが表示されます。 ほとんどのモジュールではサーバーを選択できるようになっていますが、一般に、これらはデフォルト値のままにしておくことが可能です。

最初のリンクは患者ビジュアライザーです。 それを選択すると、別のタブにモジュールが開きます。 上部のナビゲーションバーで「患者を選択」ボタンをクリックし、患者名(ここでは「hay」としました)を入力し、最後に表示されるリストから患者を選択します。 以下は、ここで選択した患者に関する情報です。

多数のタブがありますが、最初のタブが最も有用です。 左側に様々なリソースタイプをリスト表示するタブです。 タイプを選択すると中央にインスタンスが表示されるため、インスタンスを選択すると右側にインスタンスの様々なレンダリングが表示されます。

この画面には、選択されたリソースの参照が表示されており、このリソース間参照が FHIR の重要な側面です。

サーバークエリは実際のところ、POSTMan のような、FHIR 固有のバージョンの REST クライアントです。 サーバーが選択されると、CapabilityStatement がサーバーから取得され([host]/metadata クエリを使用)、サーバーがサポートする機能を使用してクエリを組み立てられる UI をレンダリングするためにこれが使用されます。 これにはチェーニングなどの機能が含まれます。 

検索パラメーターは仕様内のリソースごとに定義され、サーバーがサポートしている場合は UI に表示されます。 (検索パラメーターはオプションです)

以下のスクリーンショットでは、「name」クエリを使用して、name のいずれかの位置に「hay」を含むすべての患者を取得しています。

クエリを実行すると、一致する患者が返され、以下のスクリーンショットに示されるとおり、様々なフォーマットで表示することができます。

バンドルビジュアライザーは FHIR バンドルを取得してコンテンツを表示します。 使い方はたくさんありますが、最も簡単なのは、2 番目のタブにバンドル(JSON が好ましい)を貼り付けることです。 

以下のスクリーンショットはバンドルの例で、リソースの 1 つがそのバンドルで選択されています。 大きなグラフにはそれほど適していないことに注意してください。グラフビジュアライザーによるレンダリングにかなりの時間がかかる可能性があります。

グラフビルダーは、ある特定のシナリオを記述する際にどのリソースが必要であるかを決定する場合に特に役立ちます。 実際のところ非常に複雑なツールです。私のブログにはそれに関する多数の記事を掲載しています。

以下は、全体的なフローです。

  1. 新規プロジェクトを作成します。 ここでは FHIR バージョンを選択できますが、リソースをアップロードする場合は FHIR サーバーを選択できます。
  2. グラフにリソースを追加します。 患者から始めるのが最適です。以降のリソースは最適な患者に自動的にリンクされるためです。
  3. リソースにコンテンツを追加するには、グラフでそれをダブルクリックしてエディター画面を読み込みます。 
    1. エディターには 2 つのペインがあり、左側は値が追加されるリソース要素で、右側はリソースの対応する FSH 表現です。 
    2. FSH は直接編集することができます。左ペインの値が希望するものでない場合に編集することがあります。
    3. リソースを生成して検証するには、再読み込みアイコン(右上)を使用する必要があります。 これは、mitre が提供する「sushi」ツールを使用して、FSH からリソースをビルドします。
    4. 保存ボタンをクリックして変更を保存し、メイン画面に戻ります。
  4. プロジェクトを作成する際にサーバーを選択した場合(ステップ 1)は、サーバーにリソースをアップロードするオプションが与えられます。 2 段階のプロセスで、リソースが検証されてからアップロードされます。 

以下は、簡単なグラフの作成過程を示したスクリーンショットです。

プロジェクトの作成:

患者と 2 つのアレルギー情報の追加:

リソースはドラッグできます。 リソースを選択すると、右ペインに、仕様へのリンクなどの情報が表示されます。

アレルギー情報の編集:

注意:

  • 患者への参照は、アレルギー情報がグラフに追加されて患者にリンクされたときに自動的に追加されています。
  • コードの値は、左側で ‘code’ を選択し、用語サーバー検索を使用して SNOMED-CT 用語を取得して得られたものです。
  • 再読み込みリンクをクリックして、リソースを検証しました。 JSON と XML タブで表示できます。

サーバーへのアップロード:

注意:

  • ダイアログは、メイン画面の左上にある「サーバーに保存」リンクから呼び出されています。
  • 「保存の準備」リンクをクリックして、リソースを検証しました(実質的に、sushi API を使って FSH からすべてのリソースを作成し、過程で検証しています。 これは FHIR バリデーターほど完全ではありませんが、主な問題は検出されます)。
  • 緑色の「サーバーに送信」をクリックすると、リソースがサーバーにアップロードされます。 この例では行いませんでしたが、サーバー上で見つけやすくするために、患者に識別子を追加するのがほとんどの場合に推奨されます。
@David hayさんが書いた元の記事へ
ディスカッション (0)0
続けるにはログインするか新規登録を行ってください