FHIR サーバのインストールと構成
管理ポータルには、新しい FHIR® サーバをインストールし、構成することができる [サーバ構成] ページが用意されています。または、プログラムによってサーバをインストールおよび構成することができます。
FHIR サーバは Foundation ネームスペースにインストールする必要があります。複数の FHIR サーバを同一の Foundation ネームスペースにインストールすることができます。
Important:
FHIR サーバをインストールする前に、カスタマイズを今するのか、後でするのかを検討する必要があります。多くの場合、エンドポイントを作成する前に InteractionsStrategy のサブクラスを作成しない限り、リソース・リポジトリを使用する FHIR サーバはカスタマイズできません。例えば、バンドルの処理方法の変更や検索結果の後処理を実行するには、リソース・リポジトリのサブクラスを作成する必要があります。FHIR サーバをインストールする前にこのようなカスタマイズを準備する方法の詳細は、"インストール前のサブクラスの作成" を参照してください。
新しい FHIR サーバを管理ポータルからインストールするには、以下の手順を実行します。
-
管理ポータルを開き、FHIR サーバをインストールする Foundation ネームスペースに切り替えます。Foundation ネームスペースがない場合は、[Health] に移動し、上部のメニュー・バーから [インストーラ・ウィザード] を選択します。[Foundation 構成] ボタンを使用すると、新しい Foundation ネームスペースを作成できます。作成後に、ネームスペースを必ず有効化してください。
-
[Health] > [MyNamespace] > [FHIR 構成] に移動します。 [FHIR 構成] メニューが表示されない場合は、Foundation ネームスペースを使用していることを確認します。
-
[サーバ構成] カードを選択します。
-
[エンドポイント] ペインで、[エンドポイントの追加] をクリックし、新しい FHIR エンドポイントを作成します。
-
コア FHIR パッケージを選択します。各パッケージは、エンドポイントでサポートしている FHIR 標準のバージョンに対応しています。したがって、例えば、FHIR R4 をサポートする FHIR エンドポイントを構成するには、hl7.fhir.r4.core@4.0.1 パッケージを選択します。
-
選択したコア FHIR パッケージに応じて自動生成されたエンドポイント URL を確認します。エンドポイントの URL は変更できますが、必ずスラッシュ (/) で始めてください。
-
エンドポイントで追加のパッケージをサポートする場合は、[追加パッケージ] ドロップダウン・リストから選択します。パッケージの詳細は、"FHIR のプロファイルと適応" を参照してください。
-
エンドポイントの InteractionsStrategy を選択します。既定の相互作用ストラテジは、リソース・リポジトリ (HS.FHIRServer.Storage.Json.InteractionsStrategy) です。これにより、FHIR データはダイナミック・オブジェクトに JSON データとして格納されます。カスタムの InteractionsStrategy を作成した場合は、リストからそれを選択します。
-
既定では、ネームスペース内の各エンドポイントのデータは 2 つの別個のデータベースに格納されます。別個のデータベースを維持したくない場合は、[FHIR リソース・ストレージに別個のデータベースを使用する] フィールドのチェックを外します。この場合、すべての FHIR データはネームスペースの共通のデータベース・ファイルに格納されます。別個のデータベースを使用する場合は、既定の場所を受け入れることも、独自に場所を指定することもできます。リソース履歴データベースには、以前のバージョンのリソースが含まれています。これらは頻繁にアクセスされないため、このデータベースをより低速で安価なディスクに置くことができます。
-
[追加] を選択します。
コマンド行インタフェースを使用して FHIR サーバをインストールする場合は、"コマンド行オプション" を参照してください。
FHIR エンドポイントの削除
既定では、管理ポータルを使用して FHIR サーバ・エンドポイントを削除すると、そのエンドポイントに関連付けられている FHIR データも削除されます。ただし、エンドポイントを削除しても、そのすべての FHIR データは保持したい場合は、コマンド行インタフェースを使用して、エンドポイントを削除するのではなくデコミッションします。コマンド行インタフェースを使用したエンドポイントのデコミッションの詳細は、"コマンド行オプション" を参照してください。
エンドポイントを削除するには、以下の手順を実行します。
-
[Health] > [MyNamespace] > [FHIR 構成] に移動します。FHIR サーバのネームスペースにいることを確認します。
-
[サーバ構成] カードを選択します。
-
削除するエンドポイントを選択します。
-
[ごみ箱] アイコンを選択します。
プログラムによるインストール
管理ポータルを使用する代わりにプログラムによって FHIR サーバをインストールする必要があるアプリケーションでは、最初にサーバをインストールしたうえで、構成を行う必要があります。
FHIR サーバは Foundation ネームスペースで実行する必要があるため、Foundation ネームスペースを作成することが FHIR サーバをインストールするための前提条件です。Foundation ネームスペースを作成したら、HS.FHIRServer.InstallerOpens in a new tab の以下のメソッドを順番に呼び出す必要があります。
pPackageList パラメータ
InstallInstance()Opens in a new tab メソッドの pPackageList パラメータは、システムにロードされた FHIR パッケージのリストを受け入れます。多くの場合、パッケージは特定の実装ガイドに相当しますが、あるバージョンの FHIR のコア・メタデータである場合もあります。パッケージのリストを InstallInstance に渡すことにより、1 つ以上のパッケージをサポートするようエンドポイントを構成できます。パッケージの詳細は、"FHIR のプロファイルと適応" を参照してください。
pPackageList パラメータに渡すことができるパッケージのリストを取得するには、HS.FHIRMeta.Storage.Package.GetAllPackages()Opens in a new tab メソッドを使用します。例えば、以下のコードは、使用可能なパッケージの識別子を表示します。
set packages = ##class(HS.FHIRMeta.Storage.Package).GetAllPackages()
for i=1:1:packages.Count()
{ write packages.GetAt(i).id,! }
結果は以下のようになります。
hl7.fhir.r4.core@4.0.1
hl7.fhir.us.core@3.3.0
hl7.fhir.uv.vhdir@0.2.0
次に、$lb を使用して、これらのパッケージの識別子の一部を引数として pPackageList パラメータに渡すことができます。以下に例を示します。
Do ##class(HS.FHIRServer.Installer).InstallInstance(myURL,
strategyClass,
$lb("hl7.fhir.r4.core@4.0.1","hl7.fhir.us.core@3.1.0")
FHIR パッケージの作成に使用する API の詳細は、"パッケージ API" を参照してください。
プログラムによるインストールの例
以下の ObjectScript コードの例では、2 つのパッケージをサポートし、既定のストレージ・ストラテジ (リソース・リポジトリ) を使用する FHIR サーバをインストールします。
Set appKey = "/myfhirserver/fhir/r4"
Set strategyClass = "HS.FHIRServer.Storage.Json.InteractionsStrategy"
Set metadataPackages = $lb("hl7.fhir.r4.core@4.0.1","hl7.fhir.us.core@3.1.0")
//Install a Foundation namespace and change to it
Do ##class(HS.HC.Util.Installer).InstallFoundation("FHIRNamespace")
Set $namespace = "FHIRNamespace"
// Install elements that are required for a FHIR-enabled namespace
Do ##class(HS.FHIRServer.Installer).InstallNamespace()
// Install an instance of a FHIR Service into the current namespace
Do ##class(HS.FHIRServer.Installer).InstallInstance(appKey, strategyClass, metadataPackages)
コマンド行オプション
管理ポータルよりもコマンド行インタフェースを好む開発者は、InterSystems ターミナルのコンソール設定を使用して、ユーザ・インタフェースで使用可能なアクションと同じアクションを数多く実行できます。コンソール設定を実行するには、InterSystems ターミナルを開いて以下を実行します。
do ##class(HS.FHIRServer.ConsoleSetup).Setup()
後続のセクションでは、コンソール設定で使用可能な各オプションについて説明します。
Create FHIRServer Endpoint
新しい FHIR サーバ・エンドポイントをインストールします。以下のプロンプトが表示されます。
-
Choose the Storage Strategy — Json がリソース・リポジトリです。
-
Choose the FHIR version for this endpoint — エンドポイントでサポートしているコア FHIR 仕様のバージョンを選択します。
-
Enter any package numbers — インポートされたパッケージが候補として表示されます。エンドポイントは複数のパッケージをサポートできます。複数のパッケージを指定するには、数字をコンマで区切って指定します。パッケージは後から追加できますが、待機する場合には、追加の手順を実行する必要がある場合があります。Upload a FHIR Metadata Package オプションを使用して、パッケージをリストに追加します。
-
Do you want to create the default repository endpoint — エンドポイントの既定の URL を受け入れる場合は、Enter キーを押します。エンドポイントに異なる URL を指定する場合は、N と指定し、URL を入力します (URL は必ずスラッシュ (/) で始めてください)。
-
Enter the OAuth Client Name for this Endpoint — OAuth 2.0 を使用してエンドポイントを保護する場合は、FHIR サーバのクライアント名を入力します。詳細は、"OAuth 2.0 承認" を参照してください。
-
Do you want to create separate database files for your FHIR data? — yes を指定すると、エンドポイントの FHIR データは、同じネームスペース内のその他のエンドポイントの FHIR データとは別に格納されます。no を指定すると、複数のエンドポイントがある場合でも、すべての FHIR データがネームスペースのデータベース・ファイルに格納されます。個別のデータベース・ファイルを作成している場合は、既定の場所を受け入れることも、別の場所を指定することもできます。バージョン・データベースには、リソースの以前のバージョンが含まれています。これらは頻繁にアクセスされないため、バージョン・データベースをより低速で安価なディスクに置くことができます。
Add a profile package to an endpoint
FHIR パッケージを既存のエンドポイントに追加して、パッケージのプロファイル、検索パラメータ、およびその他の Conformance リソースをサポートできるようにします。このオプションを使用する前に、Conformance リソースを含む FHIR パッケージ (NPM のようなパッケージ) をアップロードしておく必要があります。Upload a FHIR Metadata Package オプションを使用して、FHIR パッケージをインポートできます。US Core Implementation Guide などの一部の共通パッケージは、既に利用できます。
パッケージに新しい検索パラメータが含まれている場合は、完了時に、Index new SearchParameters for an Endpoint オプションを実行する必要があります。
Display a FHIRServer Endpoint Configuration
FHIR サーバの現在の構成オプションを表示します。これらの構成オプションを変更するには、Configure a FHIRServer Endpoint オプションを使用します。
Configure a FHIRServer Endpoint
各構成オプションに値を指定することにより、FHIR サーバのエンドポイントを構成できます。各構成項目の詳細は、"FHIR サーバの構成" を参照してください。
Decommission a FHIRServer Endpoint
FHIR サーバ・エンドポイントは削除されますが、エンドポイントが収集した FHIR データは保持されます。FHIR データを含む SQL テーブルが保持されます。エンドポイントおよびすべての FHIR データを削除する場合は、Delete a FHIRServer Endpoint オプションを使用します。
Delete a FHIRServer Endpoint
FHIR サーバ・エンドポイントを削除し、かつエンドポイントの FHIR データを削除します。エンドポイントを削除するものの、エンドポイントが収集した FHIR データは保持する場合は、Decommission a FHIRServer Endpoint オプションを使用します。
Update the CapabilityStatement Resource
FHIR サーバの機能宣言書を更新します。詳細は、"機能宣言書の変更" を参照してください。
Index new SearchParameters for an Endpoint
公開またはカスタムのパッケージを使用して、新しい検索パラメータを既存のエンドポイントに追加する場合、FHIR クライアントは、パッケージの適用後に、新しいパラメータを使用して、リポジトリに追加されたリソースを取得できます。ただし、新しい検索パラメータを追加する前に存在していたリソースは、エンドポイントのインデックスを再作成するまで、返されません。エンドポイントが大量の FHIR データを収集していた場合、このオプションは既存のすべてのリソースを再処理するため、実行に長い時間がかかる可能性があります。
Upload a FHIR metadata package
Conformance リソースを定義する JSON ファイルの FHIR パッケージのインポートに使用します。このオプションは、パッケージをエンドポイントに適用する前に使用しておく必要があります。カスタム FHIR パッケージのアップロード準備の詳細は、"カスタム・パッケージの作成" を参照してください。
Delete a FHIR metadata package
エンドポイントに適用可能なパッケージのリストからパッケージを削除します。これにより、FHIR パッケージの JSON ファイルがローカル・システムから削除されることはありません。エンドポイントに適用されているパッケージは削除できません。