次の方法で共有


FHIR サービスでの Patient-everything の使用

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

Patient-everything を使用する

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

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

注意

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

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

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

注意

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

patient-everything のパラメーター

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

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

注意

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

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

FHIR 仕様には、さまざまな種類の 患者リンクの詳細な概要が記載されていますが、概要が含まれています。

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

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 の両方が、患者コンパートメント内のリソースを返します。 または end クエリ パラメーターがstart指定されている場合、フェーズ 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 の許可を得て使用しています。