FHIR の patient-everything

Patient-everything 操作は、患者に関連するすべてのリソースのビューを提供するために使用されます。 この操作は、患者のレコード全体へのアクセス権を患者に付与したり、プロバイダーや他のユーザーが患者に関連する一括データダウンロードを実行したりするのに役立ちます。 FHIR 仕様に従って、Patient-everything は、この操作が呼び出されるリソースまたはコンテキストで記述されている 1 人以上の患者に関連するすべての情報を返します。 Azure API for FHIR では、Patient-everything を使用して、特定の患者に関連するデータをプルできます。

Patient-everything を使用する

Patient-everything を呼び出すには、次のコマンドを使用します。

GET {FHIRURL}/Patient/{ID}/$everything

注意

特定の患者の ID を指定する必要があります。 すべての患者のすべてのデータが必要な場合は、「$export」を参照してください。

Azure API for FHIR により、指定した患者 ID に一致する患者を見つけることができるかどうかが検証されます。 結果が見つかった場合、応答は次の情報を含む型 searchset のバンドルになります。

  • 患者リソース
  • seealso ではないリンク参照、またはリンクが を参照している場合seealsoを除き、患者リソースによって直接参照RelatedPersonされるリソース。
  • 他の患者へのリンク参照がある seealso 場合、結果には、一覧表示されている患者に対する seealso Patient-everything 操作が含まれます。
  • 患者のコンパートメント内のリソース
  • 患者リソースを参照するデバイス リソース。

注意

患者に 100 台を超えるデバイスがリンクされている場合は、100 台のみが返されます。

patient-everything のパラメーター

Azure API for FHIR では、次のクエリ パラメーターがサポートされています。 これらのパラメーターはすべて省略可能です。

Query parameter (クエリ パラメーター) 説明
_type 応答にどの種類のリソースを含めるかを指定できます。 たとえば、_type=Encounter は患者に関連付けられているリソースのみを Encounter 返します。
_ので 指定された時間以降に変更されたリソースのみを返します。
start 開始日を指定すると、臨床日が指定した開始日よりも後であるリソースが取得されます。 開始日が指定されていない場合は、終了日より前のすべてのレコードがスコープ内にあります。
end 終了日を指定すると、臨床日が指定した終了日よりも前であるリソースが取得されます。 終了日が指定されていない場合は、開始日より後のすべてのレコードがスコープ内にあります。

注意

Patient-everything のこの実装では、_count パラメーターはサポートされていません。

患者リソースには、患者を他の患者や関連する人物にリンクする link という要素があります。 これらのリンクされた患者は、元の患者の全体像を提供するのに役立ちます。 リンク参照は、患者が別の患者を置き換える場合、または 2 つの患者リソースに補完的な情報がある場合に使用できます。 リンクのユース ケースの 1 つは、ADT 38 または 39 HL7v2 メッセージが表示される場合です。 ADT38/39 は、患者に対する更新を記述しています。 この更新プログラムは、リンク要素内の 2 人の患者間の参照として格納できます。

FHIR 仕様には、さまざまな種類の 患者リンクの詳細な概要がありますが、概要を次に示します。

  • replaces - Patient リソースは別の Patient を置き換えます。
  • 参照 - 患者は有効ですが、情報の主なソースとは見なされません。 別の患者を指して追加情報を取得します。
  • seealso - 患者には、同じように有効な別の患者へのリンクが含まれています。
  • replaced-by - Patient リソースは別の Patient を置き換えます。

Azure API for FHIR の Patient-everything 操作では、患者のリンクをさまざまな方法で処理して、患者の全体像を把握できます。

注意

リンクは、 を RelatedPerson参照することもできます。 現時点では、 RelatedPerson リソースは Patient-everything では処理されず、バンドルには返されません。

現在、 置換参照 リンクは Patient-everything 操作では無視され、リンクされた患者はバンドルで返されません。

説明されているように、 seealso リンクは、元の患者と同じように有効と見なされる別の患者を参照します。 Patient-everything 操作が実行された後、患者が他の患者へのリンクを持っている場合、操作は seealsoseealso リンクで Patient-everything を実行します。 つまり、患者がタイプ seealso リンクを持つ他の 5 人の患者にリンクしている場合、5 人の患者それぞれに対して Patient-everything を実行します。

注意

これは、1 つのレイヤーの深いリンクにのみ従って seealso 設定されます。 リンクのリンクはseealsoseealso処理されません。

フロー図も参照してください。

最終的なリンクの種類は によって置き換えられます。 この場合、元の患者リソースは使用されなくなり、 replaced-by リンクは使用する必要がある患者を指します。 のこの実装 Patient-everything には、既定では、バンドルの開始時に操作の結果が含まれます。この結果は、患者が無効であることを警告します。 これは、ヘッダーが にhandling=lenient設定されている場合のPrefer動作でもあります。

さらに、 ヘッダーを Preferhandling=strict 設定して、代わりにエラーをスローすることもできます。 この場合、エラー コード 301 MovedPermanently の戻り値は、現在の患者が古くなったことを示し、リンクに含まれている正しい患者の ID を返します。 返されたエラーのヘッダーは ContentLocation 、正しい最新の要求を指します。

注意

リンクが replaced-by 存在し、 Prefer: handling=lenient 結果が複数のバンドルで非同期的に返される場合、操作の結果のみが 1 つのバンドルで返されます。

Patient-everything 応答の順序

Patient-everything 操作は、次のフェーズで結果を返します。

  1. フェーズ 1 では、 Patient および managingOrganization リソース ir 参照にgeneralPractitioner加えて、リソース自体が返されます。
  2. フェーズ 2 と 3 の両方が、患者コンパートメント内のリソースを返します。 開始または終了のクエリ パラメーターが指定されている場合、フェーズ 2 は臨床日でフィルター処理できるコンパートメントからリソースを返し、フェーズ 3 は臨床日でフィルター処理できないリソースをコンパートメントから返します。 これらのパラメーターのいずれも指定しない場合、フェーズ 2 はスキップされ、フェーズ 3 はすべての患者コンパートメント リソースを返します。
  3. フェーズ 4 では、患者を参照するすべてのデバイスが返されます。

各フェーズでは、結果がバンドルで返されます。 結果が複数のページにまたがる場合、バンドル内の次のリンクは、そのフェーズの結果の次のページを指します。 フェーズのすべての結果が返されると、バンドル内の次のリンクが呼び出しを指して次のフェーズを開始します。

元の患者がリンクを seealso 持っている場合、フェーズ1〜4はそれらの患者ごとに繰り返されます。

Patient-everything の例

ここでは、Patient-everything 操作を使用する例をいくつか示します。 例に加えて、 と replaced-by の動作をseealso示すサンプル REST ファイルがあります。

Patient-everything を使用して 2010 年から 2020 年の間にクエリを実行するには、次の呼び出しを使用します。

GET {FHIRURL}/Patient/{ID}/$everything?start=2010&end=2020

$patient-everything を使用して、患者の観察と発生を照会するには、次の呼び出しを使用します。

GET {FHIRURL}/Patient/{ID}/$everything?_type=Observation,Encounter 

$patient-everything を使用して、2021-05-27T05:00:00Z 以降の患者の "すべて" を照会するには、次の呼び出しを使用します。

GET {FHIRURL}/Patient/{ID}/$everything?_since=2021-05-27T05:00:00Z 

これらの呼び出しごとに患者が見つかった場合は、対応するリソースの を含む Bundle 200 応答が返されます。

次のステップ

Patient-everything 操作の使用方法がわかったので、検索オプションについて学習できます。

FHIR® は HL7 の登録商標であり、HL7 の許可を得て使用しています。