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

FHIR サービスで一括$export操作を使用すると、HL7 FHIR Bulk Data Access 仕様の説明に従ってデータをエクスポートできます。

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

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

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

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 の 一括データ状態要求 に関するドキュメントを参照してください。

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

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

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

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

設定とパラメーター

ヘッダー

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

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

クエリ パラメーター

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

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

Note

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

トラブルシューティング

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

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

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

操作の$export状態をチェックする 1 つの方法は、ストレージ アカウントのストレージ ブラウザーに移動し、エクスポート コンテナーにファイルが存在するかどうかを.ndjson確認することです。 ファイルが存在せず、他 $export のジョブが実行されていない場合は、現在のジョブが無効な状態でスタックしている可能性があります。 この場合、要求で FHIR サービス API を呼び出すことによって、ジョブをDELETE取り消$exportすことができます。 後でジョブを再度キューに $export 入れ、やり直すことができます。

操作の取り消し$exportの詳細については、HL7 からの一括データ削除要求関するドキュメントを参照してください。

Note

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

次のステップ

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

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