HL7v2 メッセージを Cloud Storage にエクスポートする

このページでは、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 にエクスポートするには、次の手順を実施します。

  1. Google Cloud コンソールで、[データセット] ページに移動します。

    [データセット] に移動

  2. HL7v2 メッセージのエクスポート元の HL7v2 ストアを含むデータセットをクリックします。

  3. データストアのリストで、HL7v2 ストアの [アクション] リストから [エクスポート] を選択します。

    [HL7v2 メッセージのエクスポート] ページが表示されます。

  4. [プロジェクト] リストで、Cloud Storage プロジェクトを選択します。

  5. [ロケーション] リストで、Cloud Storage バケットを選択します。

  6. [エクスポート] をクリックして、Cloud Storage の定義された場所に HL7v2 インスタンスをエクスポートします。

  7. オペレーションのステータスを追跡するには、[オペレーション] タブをクリックします。オペレーションが完了すると、次の状況が表示されます。
    • [長時間実行オペレーションのステータス] セクションでは、[OK] の見出しの下に、緑色のチェックマークが表示されます。
    • [概要] セクションでは、オペレーション ID と同じ行に緑色のチェックマークと [OK] インジケーターが表示されます。
    エラーが発生した場合は、[アクション] をクリックしてから、[Cloud Logging で詳細を表示] をクリックします。

フィルタを使用して HL7v2 メッセージを Cloud Storage にエクスポートする

デフォルトでは、HL7v2 メッセージを Cloud Storage にエクスポートすると、HL7v2 ストア内のすべての HL7v2 メッセージと各 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

  1. hl7V2Stores.export メソッドを使用して、HL7v2 メッセージをエクスポートします。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: HL7v2 ストアの親データセット
    • HL7V2_STORE_ID: HL7v2 ストア ID
    • CLOUD_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 Content
    次のとおり出力されます。レスポンスには、長時間実行オペレーション(LRO)の識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでに時間がかかる場合に返されます。OPERATION_IDの値をメモします。この値は次の手順で必要になります。

  2. projects.locations.datasets.operations.get メソッドを使用して、長時間実行オペレーションのステータスを取得します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • DATASET_ID: データセット ID
    • LOCATION: データセットの場所
    • 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 Content

    API Explorer

    メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。

    次のとおり出力されます。レスポンスに "done": true が含まれている場合、長時間実行オペレーションは終了しています。

Message フィールドによる HL7v2 メッセージをエクスポートする

Cloud Healthcare API では、HL7v2 メッセージは Message リソースに保存されます。MessageView 列挙型を使用すると、エクスポートされた各 HL7v2 メッセージに Message リソースのどのフィールドを含めるかを決定できます。

次のサンプルは、MessageViewBASIC 値を使用して、エクスポートされた HL7v2 メッセージ内に name フィールドのみを含める方法を示しています。

REST

  1. hl7V2Stores.export メソッドを使用して、HL7v2 メッセージをエクスポートします。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: HL7v2 ストアの親データセット
    • HL7V2_STORE_ID: HL7v2 ストア ID
    • CLOUD_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 Content
    次のとおり出力されます。レスポンスには、長時間実行オペレーション(LRO)の識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでに時間がかかる場合に返されます。OPERATION_IDの値をメモします。この値は次の手順で必要になります。

  2. projects.locations.datasets.operations.get メソッドを使用して、長時間実行オペレーションのステータスを取得します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • DATASET_ID: データセット ID
    • LOCATION: データセットの場所
    • 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 Content

    API Explorer

    メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。

    次のとおり出力されます。レスポンスに "done": true が含まれている場合、長時間実行オペレーションは終了しています。

HL7v2 エクスポート リクエストのトラブルシューティング

HL7v2 メッセージのエクスポート中にエラーが発生した場合、エラーは Cloud Logging に記録されます。詳細については、Cloud Logging でのエラーログの表示をご覧ください。

長時間実行オペレーションでエラーが返された場合は、長時間実行オペレーションのトラブルシューティングをご覧ください。