次の方法で共有


FHIR データをエクスポートする

FHIR® サービスで一括 $export 操作を使用すると、 HL7 FHIR 一括データ アクセスの仕様で説明されているようにデータをエクスポートできます。

$exportを使用する前に、FHIR サービスが Azure Data Lake Storage Gen2 アカウントに接続するように構成されていることを確認してください。 エクスポート設定を構成し、Data Lake Storage Gen2 アカウントを作成するには、「エクスポートの設定を構成する」を参照してください。

$export エンドポイントを呼び出す

Data Lake Storage Gen2 アカウントに接続するように FHIR サービスを設定したら、 $export エンドポイントを呼び出すことができます。FHIR サービスは、ストレージ アカウント内の Azure Blob Storage コンテナーにデータをエクスポートします。 次の要求例では、名前 ({{containerName}}) で指定されているコンテナーにすべてのリソースをエクスポートします。 注: 要求で {{containerName}} を指定する場合は、事前に Data Lake Storage Gen2 アカウントにコンテナーを作成する必要があります。

GET {{fhirurl}}/$export?_container={{containerName}}

要求にコンテナー名を指定しない場合 (たとえば、 GET {{fhirurl}}/$exportを呼び出すことによって)、エクスポートされたデータに自動生成された名前を持つ新しいコンテナーが作成されます。

FHIR $export API 仕様の一般的な情報については、 HL7 FHIR エクスポート要求フロー ドキュメントを参照してください。

FHIR サービスは、次のレベルで $export をサポートしています。

  • システム: GET {{fhirurl}}/$export
  • 患者: GET {{fhirurl}}/Patient/$export
  • 患者のグループ*: GET {{fhirurl}}/Group/[ID]/$export
    *FHIR サービスは、参照されているすべてのリソースをエクスポートしますが、グループ リソース自体の特性はエクスポートしません。

データは複数のファイルにエクスポートされます。 各ファイルには、1 つの種類のリソースのみが含まれています。 個々のファイル内のリソースの数は次の値です。 リソースの最大数は、システムのパフォーマンスに基づいています。 現在 5,000 に設定されていますが、変更される可能性があります。 その結果、リソースの種類に対して複数のファイルが取得される可能性があります。 ファイル名は <resourceName>-<number>-<number>.ndjsonの形式に従います。 ファイルの順序は、データベース内のリソースの順序に対応するとは限りません。

Note

Patient/$export リソースが複数のグループまたは複数のリソースのコンパートメントにある場合、 Group/[ID]/$export は重複するリソースをエクスポートできます。

ストレージ アカウントにエクスポートされたファイルが存在することを確認するだけでなく、FHIR サービス応答で返される Content-Location ヘッダーの URL を使用して、$export操作の状態を確認できます。 詳細については、HL7 の Bulk Data Status Request ドキュメントを参照してください。

FHIR データを Data Lake Storage Gen2 にエクスポートする

現在、FHIR サービスでは Data Lake Storage Gen2 アカウントへの $export がサポートされています。次の制限があります。

  • Data Lake Storage Gen2 は 階層型名前空間を提供しますがコンテナー内の特定のサブディレクトリに $export 操作をターゲットにする方法はありません。 FHIR サービスでは、エクスポートの宛先コンテナーのみを指定できます。ここで、各 $export 操作の新しいフォルダーが作成されます。
  • $export操作が完了し、すべてのデータがフォルダー内に書き込まれた後、FHIR サービスはそのフォルダーに何も再度エクスポートしません。 同じコンテナーへの後続のエクスポートは、新しく作成されたフォルダー内に格納されます。

ファイアウォールの背後にあるストレージ アカウントにデータをエクスポートするには、「 エクスポートの構成設定を参照してください。

設定とパラメーター

ヘッダー

$export ジョブには、2 つの必須ヘッダー パラメーターを設定する必要があります。 値は、現在の HL7 $export仕様に従って設定されます

  • Accept: application/fhir+json
  • Prefer: respond-async

クエリ パラメーター

FHIR サービスでは、エクスポートされたデータをフィルター処理するための次のクエリ パラメーターがサポートされています。 これらのパラメーターはすべて省略可能です。

Query parameter (クエリ パラメーター) FHIR 仕様で定義されていますか? 説明
_outputFormat はい 現在、FHIR 仕様に合わせて 3 つの値 ( application/fhir+ndjsonapplication/ndjson、または単に ndjson) がサポートされています。 すべてのエクスポート ジョブは .ndjson ファイルを返し、渡された値はコードの動作に影響しません。
_since はい 指定した時刻以降に変更されたリソースのみをエクスポートできます。
_type はい 含めるリソースの種類を指定できます。 たとえば、 _type=Patient は患者のリソースのみを返します。
_typeFilter はい きめ細かいフィルター処理を要求するには、_type パラメーターと共に_typeFilterを使用できます。 _typeFilter パラメーターの値は、結果をさらに制限する FHIR クエリのコンマ区切りのリストです。
_container いいえ データをエクスポートする構成済みのストレージ アカウント内のコンテナーの名前を指定します。 コンテナーが指定されている場合、データはそのコンテナー内のフォルダーにエクスポートされます。 コンテナーが指定されていない場合、自動生成された名前を持つ新しいコンテナーにデータがエクスポートされます。
_till いいえ 指定した時刻まで変更されたリソースをエクスポートできます。 このパラメーターは、システム レベルのエクスポートにのみ適用されます。 この場合、履歴バージョンが無効または消去されていない場合は、エクスポートによって真のスナップショット ビューが保証されます。
includeAssociatedData いいえ 履歴と論理的に削除されたリソースをエクスポートできます。 このフィルターは、'_typeFilter' クエリ パラメーターでは機能しません。 履歴/最新バージョン管理されていないリソースをエクスポートするには、値を "_history" として含めます。 論理的に削除されたリソースをエクスポートするには、値を "_deleted" として含めます。

Note

FHIR サービスと同じサブスクリプション内のストレージ アカウントのみが、 $export 操作の宛先として登録できます。

トラブルシューティング

次の情報は、FHIR データのエクスポートに関する問題の解決に役立ちます。

ジョブが正しくない状態でスタックした

状況によっては、FHIR サービスがデータのエクスポートを試みている間、ジョブが不適切な状態で停止する可能性があります。 これは、特に、Data Lake Storage Gen2 アカウントのアクセス許可が正しく設定されていない場合に発生する可能性があります。

$export操作の状態を確認する 1 つの方法は、ストレージ アカウントの storage ブラウザーに移動しエクスポート コンテナーに.ndjsonファイルが存在するかどうかを確認することです。 ファイルが存在せず、他の $export ジョブが実行されていない場合は、現在のジョブが正しくない状態でスタックしている可能性があります。 この場合は、Content-Location ヘッダーで指定された URL に DELETE 要求を送信して要求を取り消すことで、 $export ジョブを取り消すことができます。

Note

FHIR サービスでは、 $export 操作が無効な状態でアイドル状態になるまでの既定の時間は、サービスが操作を停止して新しいジョブに移動するまでの 10 分です。

次のステップ

この記事では、 $export 操作を使用して FHIR リソースをエクスポートする方法について説明しました。 エクスポートに他のオプションを設定して使用する方法については、以下を参照してください。

Note

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