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 操作が実行された後、患者が他の患者へのリンクを持っている場合、操作は seealso
各 seealso
リンクで Patient-everything を実行します。 つまり、患者がタイプ seealso
リンクを持つ他の 5 人の患者にリンクしている場合、5 人の患者それぞれに対して Patient-everything を実行します。
注意
これは、1 つのレイヤーの深いリンクにのみ従って seealso
設定されます。 リンクのリンクはseealso
seealso
処理されません。
最終的なリンクの種類は によって置き換えられます。 この場合、元の患者リソースは使用されなくなり、 replaced-by
リンクは使用する必要がある患者を指します。 のこの実装 Patient-everything
には、既定では、バンドルの開始時に操作の結果が含まれます。この結果は、患者が無効であることを警告します。 これは、ヘッダーが にhandling=lenient
設定されている場合のPrefer
動作でもあります。
さらに、 ヘッダーを Prefer
に handling=strict
設定して、代わりにエラーをスローすることもできます。 この場合、エラー コード 301 MovedPermanently
の戻り値は、現在の患者が古くなったことを示し、リンクに含まれている正しい患者の ID を返します。 返されたエラーのヘッダーは ContentLocation
、正しい最新の要求を指します。
注意
リンクが replaced-by
存在し、 Prefer: handling=lenient
結果が複数のバンドルで非同期的に返される場合、操作の結果のみが 1 つのバンドルで返されます。
Patient-everything 応答の順序
Patient-everything 操作は、次のフェーズで結果を返します。
- フェーズ 1 では、
Patient
およびmanagingOrganization
リソース ir 参照にgeneralPractitioner
加えて、リソース自体が返されます。 - フェーズ 2 と 3 の両方が、患者コンパートメント内のリソースを返します。 開始または終了のクエリ パラメーターが指定されている場合、フェーズ 2 は臨床日でフィルター処理できるコンパートメントからリソースを返し、フェーズ 3 は臨床日でフィルター処理できないリソースをコンパートメントから返します。 これらのパラメーターのいずれも指定しない場合、フェーズ 2 はスキップされ、フェーズ 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 の許可を得て使用しています。