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