Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

FHIR 要求と FHIR 応答

この章では、FHIR® サーバおよび FHIR 相互運用アダプタで使用される要求と応答について説明します。

インターシステムズの FHIR クライアントで使用される要求と応答の詳細は、"FHIR クライアント" を参照してください。

プロダクション以外の要求/応答

相互運用プロダクションを使用しない FHIR サーバの場合は、以下のようになります。

FHIR ペイロードへのアクセス

既定では、REST ハンドラで FHIR 要求を受信すると、FHIR ペイロードが Request オブジェクト (HS.FHIRServer.API.Data.Request) の Json プロパティに保存されます。これにより、JSON 構造がダイナミック・オブジェクトに自動的に取り込まれます。XML が含まれる FHIR 要求は、JSON に変換された後に、Json プロパティのダイナミック・オブジェクトとして表されます。FHIR サーバからの応答 (HS.FHIRServer.API.Data.Response) にも FHIR データの Json プロパティは含まれます。

FHIR データを操作するには、まず、要求または応答の Json プロパティにアクセスします。FHIR ペイロードを入手したら、それをダイナミック・オブジェクトとして操作できます。例については、"FHIR データ" を参照してください。

相互運用の要求/応答

相互運用プロダクションを活用する FHIR サーバ、FHIR 相互運用アダプタ、または FHIR クライアントの場合は、以下のようになります。

これらのクラスには、FHIR ペイロードを指す QuickStreamId プロパティが含まれます。

FHIR ペイロードへのアクセス

FHIR の実装で相互運用プロダクションが使用されている場合は、プロダクションが使用されていない実装とは異なり、メッセージ・オブジェクトの FHIR ペイロードにアクセスします。プロダクションベースの実装では、要求および応答メッセージ (HS.FHIRServer.Interop.RequestOpens in a new tab および HS.FHIRServer.Interop.ResponseOpens in a new tab) には、FHIR ペイロードを含む QuickStream オブジェクトへのアクセスに使用される QuickStreamId が含まれています。相互運用要求メッセージには、HS.FHIRServer.API.Data.Request タイプの Request プロパティも含まれますが、この Request プロパティを FHIR ペイロードへのアクセスに使用することはできません。これは、その Json プロパティが一時的であるためです (相互運用応答についても、これは当てはまります)。その結果、FHIR ペイロードにアクセスする必要のあるプロダクションのビジネス・ホストは、QuickStreamID を使用して、ペイロードを取得する必要があります。

ペイロードが JSON 形式である場合、ビジネス・ホストは、ペイロードを変更するため、そのペイロードにアクセスしてダイナミック・オブジェクトに変換できます。例えば、BPL ビジネス・プロセスでは、以下のコードを使用して、JSON 形式の要求メッセージの FHIR ペイロードにアクセスし、変更することができます。

//Identify payload as a Patient resource and convert to dynamic object
if ((request.Request.RequestMethod="POST") & (request.Request.RequestPath="Patient")){
  set stream = ##class(HS.SDA3.QuickStream).%OpenId(request.QuickStreamId)
  set myPatient = ##class(%DynamicObject).%FromJSON(stream)

  // Modify Patient resource
  do myPatient.%Set("active", 0, "boolean")

  //Update payload with modified Patient resource
  do myPatient.%ToJSON(stream)
  do stream.%Save()
}

FHIR データをダイナミック・オブジェクトとして操作するその他の例は、"FHIR データ" を参照してください。

ObjectScript アプリケーション

ObjectScript アプリケーションがリソース・リポジトリからリソースを取得する必要がある場合は、プロダクション以外の要求オブジェクト (HS.FHIRServer.API.Data.Request) を構築してから、それをエンドポイントのサービスにディスパッチできます。アプリケーションでデータを取得する場合は、データはプロダクション以外の応答オブジェクト (HS.FHIRServer.API.Data.Response) として返されます。詳細は、"DispatchRequest の直接呼び出し" を参照してください。

FeedbackOpens in a new tab