FHIR の要求、応答、およびペイロード
このトピックでは、プロダクションが使用されていない場合に FHIR サーバで使用される要求と応答について説明します。
-
プロダクションが使用されている場合の要求と応答の詳細は、"FHIR プロダクションの要求および応答" を参照してください。
-
InterSystems FHIR クライアントで使用される要求と応答の詳細は、"FHIR クライアント" を参照してください。
プロダクション以外の FHIR サーバの要求と応答
相互運用プロダクションを使用しない FHIR サーバの場合は、以下のようになります。
-
HL7® FHIR® 要求を渡すためにサーバ・アーキテクチャで使用されるメッセージ・クラスは、HS.FHIRServer.API.Data.RequestOpens in a new tab です。
-
サーバからの応答を要求元の FHIR クライアントに渡すために、サーバ・アーキテクチャで使用されるメッセージ・クラスは、HS.FHIRServer.API.Data.ResponseOpens in a new tab です。
FHIR ペイロードへのアクセス
既定では、REST ハンドラで FHIR 要求を受信すると、FHIR ペイロードが Request オブジェクト (HS.FHIRServer.API.Data.RequestOpens in a new tab) の Json プロパティに保存されます。これにより、JSON 構造がダイナミック・オブジェクトに自動的に取り込まれます。XML が含まれる FHIR 要求は、JSON に変換された後に、Json プロパティのダイナミック・オブジェクトとして表されます。FHIR サーバからの応答 (HS.FHIRServer.API.Data.ResponseOpens in a new tab) にも FHIR データの Json プロパティは含まれます。
FHIR データを操作するには、まず、要求または応答の Json プロパティにアクセスします。FHIR ペイロードを入手したら、それをダイナミック・オブジェクトとして操作できます。例については、"FHIR データ" を参照してください。
ObjectScript アプリケーションを使用した FHIR リソースの取得
ObjectScript アプリケーションがリソース・リポジトリからリソースを取得する必要がある場合は、プロダクション以外の要求オブジェクト (HS.FHIRServer.API.Data.RequestOpens in a new tab) を構築してから、それをエンドポイントのサービスにディスパッチできます。アプリケーションでデータを取得する場合は、データはプロダクション以外の応答オブジェクト (HS.FHIRServer.API.Data.ResponseOpens in a new tab) として返されます。詳細は、"DispatchRequest の直接呼び出し" を参照してください。
クライアントに見える URL の設定
場合によっては (特に要求がプロキシ経由で FHIR エンドポイントに転送される場合)、FHIR サーバが要求を受信した URL が、元々 REST クライアントによって要求された URL と異なることがあります。
そのような場合、FHIR サーバの REST ハンドラは、要求オブジェクトの FORWARDED または X-FORWARDED HTTP ヘッダのコンテンツから、クライアントに見えるベース URL を判断します。このロジックは、HS.FHIRServer.Util.BaseURLOpens in a new tab クラスの GetBaseURL()Opens in a new tab クラス・メソッドにより実装できます。
FHIR サーバでクライアントに見える URL を異なるロジックに従って構築する必要がある場合は、HS.Local.FHIRServer.Util.BaseURLOpens in a new tab クラスでカスタムの GetBaseURL() を定義します。このクラスに定義されたメソッドは、元のメソッドをオーバーライドします。