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 値で時系列に並べ替えられます。

多数の HL7v2 メッセージがある場合は Cloud Healthcare API により複数の NDJSON ファイルが作成される可能性があるため、オブジェクトではなく Cloud Storage バケットまたはフォルダにエクスポートします。

存在しない Cloud Storage フォルダにエクスポートすると、フォルダが作成されます。

Console

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 でのエラーログの表示をご覧ください。

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