次の方法で共有


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

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

Patient-everything を使用する

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

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

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

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

  • 患者リソース
  • 患者リソースによって直接参照されるリソース
  • 他の患者への seealso リンク リファレンスがある場合、結果には、seealso にリストされた患者に対する Patient-everything 操作が含まれます。
  • 患者コンパートメント内のリソース。
  • 患者リソースを参照するデバイス リソース。

患者にリンクされている最初の 100 台までのデバイスが返されます。

Patient-everything のパラメーター

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

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

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

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

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

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

FHIR サービスの Patient-everything 操作は、患者の最も包括的なビューを提供するために、さまざまな方法で患者のリンクを処理します。

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

現在、replaces および refer リンクは、患者コンパートメント内でリンクされた患者の一部として Patient-everything 操作に含まれています。

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

これが設定されているのは、seealsoリンクを1層のみフォローするためです。 seealso リンクの seealso リンクは処理されません。

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

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

また、Prefer ヘッダーを handling=strict に設定することで、代わりにエラーを発生させることができます。 この場合、エラー コード 301 MovedPermanently の戻り値は、現在の患者が古くなっていることを示し、リンクに含まれている正しい患者の ID を返します。 返されたエラーの ContentLocation ヘッダーは、正しい up-to-date 要求を指します。

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

Patient-everything の応答順序

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

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

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

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

Patient-everything の例

Patient-everything 操作の使用例を次に示します。 これらの例に加えて、seealsoの動作のしくみを示すreplaced-byがあります。

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 の許可を得て使用しています。