サポートされる FHIR 相互作用とオペレーション
FHIR® サーバで提供されるリソース・リポジトリ・ストレージ・ストラテジを使用する場合、サーバは以下の相互作用とオペレーションをサポートします。カスタムの FHIR サーバがリソース・リポジトリを拡張する場合、これらの相互作用とオペレーションも既定でサポートされます。
相互作用
FHIR 相互作用Opens in a new tabは、FHIR クライアントがリソースで実行できる一連のアクションです。これらの相互作用は、インスタンス、タイプ、またはシステム全体のどれに対して作用するのかに応じて、グループ化されます。インスタンスとは、リソースの特定のインスタンスのことであり、例えば、Patient/1 は、id が 1 の Patient リソースのインスタンスを意味します。タイプは、Patient や Observation など、特定の FHIR リソースを表します。
以下の表は、リソース・リポジトリ、あるいは、リソース・リポジトリを拡張したカスタム FHIR サーバの FHIR 相互作用のサポート概要を示しています。相互作用をクリックすると、その相互作用が HL7 REST API でどのように定義されているかと、その使用方法を参照できます。
相互作用 | サポート・レベル |
---|---|
createOpens in a new tab | 条件付き作成を含め、完全にサポートされています。 |
readOpens in a new tab |
条件付き読み取りはサポートされていません。 |
vreadOpens in a new tab |
条件付き読み取りはサポートされていません。 |
updateOpens in a new tab | 条件付き更新を含め、完全にサポートされています。 |
patchOpens in a new tab | JSON パッチ・ドキュメントのみサポートされています。 |
deleteOpens in a new tab | 条件付き削除を含め、完全にサポートされています。 |
historyOpens in a new tab |
インスタンスの相互作用のみサポートされています。タイプやシステムはサポートされていません。例えば、GET [baseURL]/Patient/1/_history はサポートされていますが、GET [baseURL]/Patient/_history や GET [baseURL]/_history はサポートされていません。 _count および _at パラメータはサポートされていません。 ページングはサポートされていません。 |
batchOpens in a new tab | 完全にサポートされています。 |
transactionOpens in a new tab | バンドル内の循環参照はサポートされていません。 |
search | 一部制限付きでサポートされています。詳細は、"search 相互作用" を参照してください。 |
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があります。
パラメータのタイプ | サポート・レベル |
---|---|
numberOpens in a new tab | 完全にサポートされています。 |
dateOpens in a new tab | 完全にサポートされています。 |
stringOpens in a new tab | 完全にサポートされています。 |
tokenOpens in a new tab | 完全にサポートされています。 |
referenceOpens in a new tab | 完全にサポートされています。 |
compositeOpens in a new tab | サポート対象外です。 |
quantityOpens in a new tab | 完全にサポートされています。 |
uriOpens in a new tab | 完全にサポートされています。 |
パラメータ
以下に、リソース・リポジトリからリソースを取得する場合の、標準の検索パラメータOpens in a new tabに対する FHIR サーバのサポートの概要を示します。
パラメータ | サポート・レベル |
---|---|
_id | 正式な仕様Opens in a new tabの説明にあるとおり、完全にサポートされています。 |
_lastUpdated | 正式な仕様Opens in a new tabの説明にあるとおり、完全にサポートされています。 |
_tag | 正式な仕様Opens in a new tabの説明にあるとおり、完全にサポートされています。 |
_profile | 正式な仕様Opens in a new tabの説明にあるとおり、完全にサポートされています。 |
_security | 正式な仕様Opens in a new tabの説明にあるとおり、完全にサポートされています。 |
_text | サポート対象外です。 |
_content | サポート対象外です。 |
_list | サポート対象外です。 |
_source | 完全にサポートされています。 |
_has | 正式な仕様Opens in a new tabの説明にあるとおり、完全にサポートされています。 |
_type | サポート対象外です (オペレーション・クエリ・パラメータ _type は Patient および Encounter の $everything ではサポートされています)。 |
_filter | サポート対象外です。 |
_query | サポート対象外です。 |
修飾子
修飾子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 | サポート対象外です。 |
検索結果パラメータ
検索結果パラメータOpens in a new tabは、検索から返されるリソースの管理に役立ちます。
検索結果パラメータ | サポート・レベル |
---|---|
_sort | 正式な仕様Opens in a new tabの説明にあるとおり、完全にサポートされています。 |
_count | 正式な仕様Opens in a new tabの説明にあるとおり、完全にサポートされています。 |
_include | 正式な仕様Opens in a new tabの説明にあるとおり、完全にサポートされています。 |
_revinclude | 正式な仕様Opens in a new tabの説明にあるとおり、完全にサポートされています。 |
_summary | _summary=count のみサポートしています。詳細は、正式な仕様Opens in a new tabを参照してください。 |
_total | サポート対象外です。 |
_elements | 正式な仕様Opens in a new tabの説明にあるとおり、完全にサポートされています。 |
_contained | サポート対象外です。 |
_containedType | サポート対象外です。 |
オペレーション
既定のリソース・リポジトリを使用または拡張する 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 エンドポイントを選択して、移行を確認します。