このページでは、HL7v2 ストアから Cloud Storage に HL7v2 メッセージをエクスポートする方法について説明します。ダウンストリーム処理のために、HL7v2 メッセージを Cloud Storage に一括エクスポートできます。
始める前に
Cloud Healthcare サービス エージェントのサービス アカウントに付与する必要があるロールについては、Cloud Storage から HL7v2 メッセージをエクスポートするをご覧ください。
HL7v2 メッセージを Cloud Storage にエクスポートする
Cloud Healthcare API では、各 HL7v2 メッセージが NDJSON .ndjson
ファイルの行としてエクスポートされます。HL7v2 メッセージは、sendTime
値によって時系列順に並べられます。
オブジェクトではなく Cloud Storage バケットまたはフォルダにエクスポートします。これは、HL7v2 メッセージが多数ある場合、Cloud Healthcare API により複数の NDJSON ファイルが作成される可能性があるためです。
存在しない Cloud Storage フォルダにエクスポートすると、フォルダが作成されます。
コンソール
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 でのエラーログの表示をご覧ください。
長時間実行オペレーションでエラーが返された場合は、長時間実行オペレーションのトラブルシューティングをご覧ください。