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