このページでは、HL7v2 ストアから Cloud Storage に HL7v2 メッセージをエクスポートする方法について説明します。HL7v2 メッセージを Cloud Storage に一括エクスポートして、ダウンストリーム処理を行うことができます。
始める前に
Cloud Healthcare サービス エージェントのサービス アカウントに付与する必要があるロールについては、Cloud Storage から HL7v2 メッセージをエクスポートするをご覧ください。
HL7v2 メッセージを Cloud Storage にエクスポートする
Cloud Healthcare API は、各 HL7v2 メッセージを NDJSON .ndjson
ファイル内の行としてエクスポートします。HL7v2 メッセージは、sendTime
値で時系列に並べ替えられます。
多数の HL7v2 メッセージがある場合は Cloud Healthcare API により複数の NDJSON ファイルが作成される可能性があるため、オブジェクトではなく Cloud Storage バケットまたはフォルダにエクスポートします。
存在しない Cloud Storage フォルダにエクスポートすると、フォルダが作成されます。
Console
HL7v2 メッセージを Cloud Storage にエクスポートするには、次の手順を実施します。
Google Cloud コンソールで、[データセット] ページに移動します。
HL7v2 メッセージをエクスポートする HL7v2 ストアを含むデータセットをクリックします。
データストアのリストで、HL7v2 ストアの [アクション] リストから [エクスポート] を選択します。
[HL7v2 メッセージのエクスポート] ページが表示されます。
[プロジェクト] リストで、Cloud Storage プロジェクトを選択します。
[ロケーション] リストで、Cloud Storage バケットを選択します。
[エクスポート] をクリックして、Cloud Storage の定義された場所に HL7v2 インスタンスをエクスポートします。
- オペレーションのステータスを追跡するには、[オペレーション] タブをクリックします。オペレーションが完了すると、次の状況が表示されます。
- [長時間実行オペレーションのステータス] セクションでは、[OK] の見出しの下に、緑色のチェックマークが表示されます。
- [概要] セクションでは、オペレーション ID と同じ行に緑色のチェックマークと [OK] インジケーターが表示されます。
フィルタを使用して HL7v2 メッセージを Cloud Storage にエクスポートする
デフォルトでは、HL7v2 メッセージを Cloud Storage にエクスポートすると、HL7v2 ストア内のすべての HL7v2 メッセージと、各 Message
オブジェクト内のすべてのフィールドが含まれます。
エクスポートされた HL7v2 メッセージは、次のようにフィルタリングできます。
- フィルタを使用して、フィルタ条件に一致する HL7v2 メッセージのサブセットをエクスポートします。詳細については、フィルタを使用して HL7v2 メッセージのサブセットをエクスポートするをご覧ください。
MessageView
オブジェクトを使用して、エクスポートする各Message
のフィールドを選択します。詳細については、Message
フィールドによる HL7v2 メッセージをエクスポートするをご覧ください。
フィルタを使用して HL7v2 メッセージのサブセットをエクスポートする
フィルタ条件には次のフィールドを使用できます。
filter
フィールドで、次のフィルタ パラメータをフィルタ条件として指定できます。フィルタの構文とクエリの作成については、クエリ文字列をご覧ください。
message_type
: MSH.9.1 フィールドから。例:NOT message_type = "ADT"
send_date
: MSH.7 セグメントからメッセージが送信されたYYYY-MM-DD
日付(データセットのタイムゾーンで指定)。例:send_date < "2017-01-02"
send_time
: メッセージ送信時のタイムスタンプ。このパラメータは、メッセージの MSH.7 セグメントから取得されます。このパラメータでは、比較に RFC 3339 時間形式を使用します。例:send_time < "2017-01-02T00:00:00-05:00"
create_time
: Cloud Healthcare API でメッセージが作成されたときのタイムスタンプ(比較のためにRFC 3339 時間形式を使用)。例:create_time < "2017-01-02T00:00:00-05:00"
。send_facility
: MSH.4 セグメントからのメッセージの送信元であるケアセンター。例:send_facility = "ABC"
次のサンプルは、ADT
タイプの HL7v2 メッセージのみをエクスポートするようにフィルタを指定する方法を示しています。
REST
hl7V2Stores.export
メソッドを使用して HL7v2 メッセージをエクスポートします。リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクトの IDLOCATION
: データセットの場所DATASET_ID
: HL7v2 ストアの親データセットHL7V2_STORE_ID
: HL7v2 ストア IDCLOUD_STORAGE_LOCATION
: エクスポートされた HL7v2 メッセージを書き込む Cloud Storage バケットまたはフォルダの名前
リクエストの本文(JSON):
{ "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION" }, "filter": "message_type = \"ADT\"" }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を
request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。cat > request.json << 'EOF' { "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION" }, "filter": "message_type = \"ADT\"" } EOF
その後、次のコマンドを実行して REST リクエストを送信します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export"PowerShell
リクエスト本文を
request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。@' { "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION" }, "filter": "message_type = \"ADT\"" } '@ | Out-File -FilePath request.json -Encoding utf8
その後、次のコマンドを実行して REST リクエストを送信します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export" | Select-Object -Expand ContentOPERATION_ID
の値をメモします。この値は次の手順で必要になります。projects.locations.datasets.operations.get
メソッドを使用して、長時間実行オペレーションのステータスを取得します。リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクトの IDDATASET_ID
: データセット IDLOCATION
: データセットの場所OPERATION_ID
: 長時間実行オペレーションから返された ID。
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。
"done": true
が含まれている場合、長時間実行オペレーションは終了しています。
Message
フィールドによる HL7v2 メッセージをエクスポートする
Cloud Healthcare API では、HL7v2 メッセージは Message
リソースに保存されます。MessageView
列挙型を使用して、エクスポートされた各 HL7v2 メッセージに含まれる Message
リソースのフィールドを特定できます。
次のサンプルは、MessageView
で BASIC
値を使用して、エクスポートされた HL7v2 メッセージ内に name
フィールドのみを含める方法を示しています。
REST
hl7V2Stores.export
メソッドを使用して HL7v2 メッセージをエクスポートします。リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクトの IDLOCATION
: データセットの場所DATASET_ID
: HL7v2 ストアの親データセットHL7V2_STORE_ID
: HL7v2 ストア IDCLOUD_STORAGE_LOCATION
: エクスポートされた HL7v2 メッセージを書き込む Cloud Storage バケットまたはフォルダの名前
リクエストの本文(JSON):
{ "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION", "messageView": "BASIC" } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を
request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。cat > request.json << 'EOF' { "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION", "messageView": "BASIC" } } EOF
その後、次のコマンドを実行して REST リクエストを送信します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export"PowerShell
リクエスト本文を
request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。@' { "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION", "messageView": "BASIC" } } '@ | Out-File -FilePath request.json -Encoding utf8
その後、次のコマンドを実行して REST リクエストを送信します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export" | Select-Object -Expand ContentOPERATION_ID
の値をメモします。この値は次の手順で必要になります。projects.locations.datasets.operations.get
メソッドを使用して、長時間実行オペレーションのステータスを取得します。リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクトの IDDATASET_ID
: データセット IDLOCATION
: データセットの場所OPERATION_ID
: 長時間実行オペレーションから返された ID。
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。
"done": true
が含まれている場合、長時間実行オペレーションは終了しています。
HL7v2 エクスポート リクエストのトラブルシューティング
HL7v2 メッセージのエクスポート中にエラーが発生した場合、エラーは Cloud Logging に記録されます。詳細については、Cloud Logging でのエラーログの表示をご覧ください。
長時間実行オペレーションでエラーが返された場合は、長時間実行オペレーションのトラブルシューティングをご覧ください。