サポートされる FHIR 相互作用とオペレーション
FHIR® サーバで提供されるリソース・リポジトリ・ストレージ・ストラテジを使用する場合、サーバは以下の相互作用とオペレーションをサポートします。カスタムの FHIR サーバがリソース・リポジトリを拡張する場合、これらの相互作用とオペレーションも既定でサポートされます。
相互作用
FHIR 相互作用Opens in a new tabは、FHIR クライアントがリソースで実行できる一連のアクションです。これらの相互作用は、インスタンス、タイプ、またはシステム全体のどれに対して作用するのかに応じて、グループ化されます。インスタンスとは、リソースの特定のインスタンスのことであり、例えば、Patient/1 は、id が 1 の Patient リソースのインスタンスを意味します。タイプは、Patient や Observation など、特定の FHIR リソースを表します。
以下の表は、リソース・リポジトリ、あるいは、リソース・リポジトリを拡張したカスタム FHIR サーバの FHIR 相互作用のサポート概要を示しています。相互作用をクリックすると、その相互作用が HL7 REST API でどのように定義されているかと、その使用方法を参照できます。
search 相互作用
FHIR クライアントは、search 相互作用を使用して、リソース・リポジトリからリソースを取得します。search 相互作用の詳細は、FHIR 仕様Opens in a new tabを参照してください。このセクションでは、FHIR サーバがリソース・リポジトリを使用または拡張している場合の、search 相互作用に対する既定のサポートの概要を説明します。
一般的な制限
リソース・リポジトリを使用または拡張する FHIR サーバには、以下の制限があることに留意してください。
-
複数のリソース・タイプにまたがる検索はサポートされていません。例えば、GET [base]?_id=1 はサポートされていません。
-
コンパートメント内のすべてのリソース・タイプに対する検索は実行できません。例えば、[base]/Patient/10000001/?_id=008 の検索はできません。したがって、コンパートメントのコンテキスト内の検索では、そのコンパートメントのリソース・タイプを指定する必要があります。例えば、[base]/Patient/100000001/Observation を使用して特定の患者のコンパートメント内のすべての Observation を返したり、[base]/Patient/100000001/Observation?status=final を使用して、コンパートメント内で Observation サブセットを検索することができます。Patient のコンパートメント全体を取得する場合は、$everything オペレーション ([base]/Patient/100000001/$everything など) を使用します。
修飾子
修飾子Opens in a new tabをパラメータの末尾に追加して、検索結果に影響を及ぼすことができます。
修飾子 |
サポート・レベル |
:missing |
サポート対象外です。 |
:exact |
アクセント文字を除いた文字列をサポートしています。例えば、?given:exact=Nino は指定の名前 Niño を持つ Patient を返します。 |
:contains |
文字列でサポートされています。 |
:above |
URI でサポートされています。 |
:below |
URI でサポートされています。 |
:type |
参照でサポートされています。 |
:text |
サポート対象外です。 |
接頭語
タイプが number、date、quantity の検索パラメータを使用する場合は、接頭語Opens in a new tabをパラメータの値に追加して、検索に一致するリソースに影響を及ぼすことができます。例えば、[parameter]=le100 は 100 以下の値を返します。
接頭語 |
サポート・レベル |
eq |
完全にサポートされています。 |
ne |
完全にサポートされています。 |
gt |
完全にサポートされています。 |
lt |
完全にサポートされています。 |
ge |
完全にサポートされています。 |
le |
完全にサポートされています。 |
sa |
サポート対象外です。 |
eb |
サポート対象外です。 |
ap |
サポート対象外です。 |
オペレーション
既定のリソース・リポジトリを使用または拡張する FHIR サーバについては、以下のオペレーションがサポートされています。
オペレーション |
サポート・レベル |
$everything |
Patient および Encounter では完全にサポートされています。
Group および MedicinalProduct ではサポート対象外です。 |
$validate |
検証モード (create、update、delete) はサポートされます。
プロファイルによる検証はサポートされません。
FHIR $validate 要求にリソース・ペイロードが含まれる場合、リソースを Parameters リソース内に埋め込むことができます。 |
$lastn |
完全にサポートされています。 |
オペレーション・クエリ・パラメータ
特定のオペレーションでは、所定のオペレーション・クエリ・パラメータがサポートされています。
オペレーション |
クエリ・パラメータ |
$everything |
|
$lastn |
max がサポートされています。 |
$everything での _type オペレーション・クエリ・パラメータの再帰的動作
$everything オペレーションに対して _type クエリ・パラメータでリソース・タイプのリストが指定されている場合、コンパートメント検索は、リストされているタイプのリソースのみを返します。コンパートメントで再帰的にリソース参照を取得する場合、_types パラメータで指定されていないリソース・タイプへの参照はスキップされます。$everything の _type クエリ・パラメータが PatientOpens in a new tab コンパートメントに対してどのように動作するかについて、いくつか例を挙げて説明します。
-
/Patient/123/$everything?_type=DiagnosticReport,Observation — DiagnosticReport リソースと Observation リソースを返しますが、Patient リソースは返しません。
-
/Patient/123/$everything?_type=Observation — 参照する DiagnosticReport リソースが含まれなくても、患者の Observation リソースを返します。Observation は Patient コンパートメント内にもあるためです。
-
/Patient/123/$everything?_type=Practitioner — 何も返しません。Practitioner は Patient コンパートメント内になく、Practitioner を参照できる他のリソース・タイプが指定されていませんでした。
-
/Patient/123/$everything?_type=Patient,DiagnosticReport,Practitioner — Patient リソース、すべての DiagnosticReport リソース、および返される DiagnosticReport で直接参照されている Practitioner リソースのみを返します。
従来のリソース・リポジトリからの移行
InterSystems IRIS for Health 2019.4 以前を使用して開発された FHIR サーバでは、新しい FHIR サーバ・アーキテクチャを使用する前に、従来のリソース・リポジトリ内のデータを移行する必要があります。FHIR データを移行するには、以下の手順に従います。
-
管理ポータルで、従来の FHIR サーバのネームスペースに切り替え、STU3 エンドポイントを作成します。
-
InterSystems ターミナルを開いて、従来の FHIR サーバのネームスペースに移動します。
-
以下を実行します。
do ##class(HS.FHIRServer.ConsoleSetup).Migrate()
-
STU3 エンドポイントを選択して、移行を確認します。