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