Mengekspor pesan HL7v2 ke Cloud Storage

Halaman ini menjelaskan cara mengekspor pesan HL7v2 dari penyimpanan HL7v2 ke Cloud Storage. Anda dapat mengekspor pesan HL7v2 secara massal ke Cloud Storage untuk pemrosesan downstream.

Sebelum memulai

Lihat Mengekspor pesan HL7v2 dari Cloud Storage untuk mengetahui peran yang harus Anda berikan ke akun layanan Cloud Healthcare Service Agent.

Mengekspor pesan HL7v2 ke Cloud Storage

Untuk melakukan tugas ini, Anda harus sudah diberi izin berikut atau peran Identity and Access Management (IAM) berikut:

Izin

  • healthcare.hl7V2Stores.export di penyimpanan HL7v2 yang diminta

Peran

Anda dapat meminta administrator untuk memberikan peran Identity and Access Management ini kepada Anda. Untuk mengetahui petunjuk tentang cara memberikan peran, lihat Mengelola akses atau Mengontrol akses ke resource Cloud Healthcare API. Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Cloud Healthcare API mengekspor setiap pesan HL7v2 sebagai baris dalam file .ndjson NDJSON. Pesan HL7v2 diurutkan secara kronologis berdasarkan nilai sendTime.

Mengekspor ke bucket atau folder Cloud Storage, bukan objek, karena Cloud Healthcare API dapat membuat beberapa file NDJSON saat ada banyak pesan HL7v2.

Jika Anda mengekspor ke folder Cloud Storage yang tidak ada, folder tersebut akan dibuat.

Konsol

Untuk mengekspor pesan HL7v2 ke Cloud Storage, selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Datasets.

    Buka Set Data

  2. Klik set data yang berisi penyimpanan HL7v2 tempat Anda mengekspor pesan HL7v2.

  3. Dalam daftar penyimpanan data, pilih Ekspor dari daftar Tindakan untuk penyimpanan HL7v2.

    Halaman Ekspor pesan HL7v2 akan muncul.

  4. Dalam daftar Project, pilih project Cloud Storage.

  5. Dalam daftar Location, pilih bucket Cloud Storage.

  6. Klik Export untuk mengekspor instance HL7v2 ke lokasi yang ditentukan di Cloud Storage.

  7. Untuk melacak status operasi, klik tab Operasi. Setelah operasi selesai, petunjuk berikut akan muncul:
    • Bagian Status operasi yang berjalan lama memiliki tanda centang hijau di bawah judul Oke.
    • Bagian Ringkasan memiliki tanda centang hijau dan indikator OK di baris yang sama dengan ID operasi.
    Jika Anda mengalami error, klik Actions, lalu klik View details in Cloud Logging.

Mengekspor pesan HL7v2 ke Cloud Storage menggunakan filter

Secara default, mengekspor pesan HL7v2 ke Cloud Storage akan menyertakan semua pesan HL7v2 di penyimpanan HL7v2 dan semua kolom di setiap objek Message.

Anda dapat memfilter pesan HL7v2 yang diekspor sebagai berikut:

Mengekspor sebagian pesan HL7v2 menggunakan filter

Anda dapat menggunakan kolom berikut dalam kriteria filter:

Anda dapat menentukan parameter filter berikut sebagai kriteria filter di kolom filter. Untuk mempelajari sintaksis filter dan membuat kueri, lihat String kueri.

  • message_type: dari kolom MSH.9.1. Contoh, NOT message_type = "ADT".
  • send_date: tanggal YYYY-MM-DD saat pesan dikirim dari segmen MSH.7, yang ditentukan dalam zona waktu set data. Misalnya, send_date < "2017-01-02".
  • send_time: stempel waktu saat pesan dikirim. Parameter ini berasal dari segmen MSH.7 pesan. Parameter ini menggunakan format waktu RFC 3339 untuk perbandingan. Misalnya, send_time < "2017-01-02T00:00:00-05:00".
  • create_time: stempel waktu saat pesan dibuat di Cloud Healthcare API, menggunakan format waktu RFC 3339 untuk perbandingan. Contoh: create_time < "2017-01-02T00:00:00-05:00".
  • send_facility: pusat perawatan tempat pesan berasal, dari segmen MSH.4. Contoh, send_facility = "ABC".

Contoh berikut menunjukkan cara menentukan filter untuk hanya mengekspor pesan HL7v2 berjenis ADT.

REST
  1. Gunakan metode hl7V2Stores.export untuk mengekspor pesan HL7v2:

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID Google Cloud project Anda
    • LOCATION: lokasi set data
    • DATASET_ID: set data induk penyimpanan HL7v2
    • HL7V2_STORE_ID: ID penyimpanan HL7v2
    • CLOUD_STORAGE_LOCATION: nama bucket atau folder Cloud Storage tempat pesan HL7v2 yang diekspor ditulis

    Meminta isi JSON:

    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION"
      },
      "filter": "message_type = \"ADT\""
    }
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

    cat > request.json << 'EOF'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION"
      },
      "filter": "message_type = \"ADT\""
    }
    EOF

    Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

    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"

    Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

    @'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION"
      },
      "filter": "message_type = \"ADT\""
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:

    $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
    Output-nya adalah sebagai berikut. Respons berisi ID untuk operasi yang berjalan lama (LRO). Operasi yang berjalan lama ditampilkan saat panggilan metode mungkin memerlukan waktu tambahan untuk diselesaikan. Perhatikan nilai OPERATION_ID. Anda memerlukan nilai ini di langkah berikutnya.
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
    }
    
    

  2. Gunakan metode projects.locations.datasets.operations.get untuk mendapatkan status operasi yang berjalan lama.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID Google Cloud project Anda
    • DATASET_ID: ID set data
    • LOCATION: lokasi set data
    • OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    Jalankan perintah berikut:

    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"

    Jalankan perintah berikut:

    $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

    Buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.

    Output-nya adalah sebagai berikut. Jika respons berisi "done": true, operasi yang berjalan lama telah selesai.
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
        "apiMethodName": "google.cloud.healthcare.v1.hl7v2.Hl7V2Service.ExportMessages",
        "createTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ",
        "endTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ",
        "logsUrl": "https://console.cloud.google.com/CLOUD_LOGGING_URL"
        "counter": {
          "success": "SUCCESS_COUNT",
          // If there were any failures, they display in the `failure` field.
          "failure": "FAILURE_COUNT"
        }
      },
      "done": true,
      // The `response` field only displays if there were no errors.
      "response": {
        "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ExportMessagesResponse",
        
      },
      // If there were any errors, an `error` field displays instead of a `response` field.
      // See Troubleshooting long-running operations for a list of response codes.
      "error": {
        "code": ERROR_CODE,
        "message": "DESCRIPTION",
        "details": [
          {
            "@type": "...",
            FIELD1: ...,
            ...
          }
        ]
      }
    }
    

Mengekspor pesan HL7v2 menurut kolom Message

Di Cloud Healthcare API, pesan HL7v2 disimpan di resource Message. Anda dapat menggunakan enum MessageView untuk menentukan kolom mana dalam resource Message yang disertakan dalam setiap pesan HL7v2 yang diekspor.

Contoh berikut menunjukkan cara menggunakan nilai BASIC di MessageView untuk hanya menyertakan kolom name dalam pesan HL7v2 yang diekspor.

REST
  1. Gunakan metode hl7V2Stores.export untuk mengekspor pesan HL7v2:

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID Google Cloud project Anda
    • LOCATION: lokasi set data
    • DATASET_ID: set data induk penyimpanan HL7v2
    • HL7V2_STORE_ID: ID penyimpanan HL7v2
    • CLOUD_STORAGE_LOCATION: nama bucket atau folder Cloud Storage tempat pesan HL7v2 yang diekspor ditulis

    Meminta isi JSON:

    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION",
        "messageView": "BASIC"
      }
    }
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

    cat > request.json << 'EOF'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION",
        "messageView": "BASIC"
      }
    }
    EOF

    Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

    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"

    Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

    @'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION",
        "messageView": "BASIC"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:

    $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
    Output-nya adalah sebagai berikut. Respons berisi ID untuk operasi yang berjalan lama (LRO). Operasi yang berjalan lama ditampilkan saat panggilan metode mungkin memerlukan waktu tambahan untuk diselesaikan. Perhatikan nilai OPERATION_ID. Anda memerlukan nilai ini di langkah berikutnya.
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
    }
    
    

  2. Gunakan metode projects.locations.datasets.operations.get untuk mendapatkan status operasi yang berjalan lama.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID Google Cloud project Anda
    • DATASET_ID: ID set data
    • LOCATION: lokasi set data
    • OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    Jalankan perintah berikut:

    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"

    Jalankan perintah berikut:

    $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

    Buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.

    Output-nya adalah sebagai berikut. Jika respons berisi "done": true, operasi yang berjalan lama telah selesai.
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
        "apiMethodName": "google.cloud.healthcare.v1.hl7v2.Hl7V2Service.ExportMessages",
        "createTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ",
        "endTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ",
        "logsUrl": "https://console.cloud.google.com/CLOUD_LOGGING_URL"
        "counter": {
          "success": "SUCCESS_COUNT",
          // If there were any failures, they display in the `failure` field.
          "failure": "FAILURE_COUNT"
        }
      },
      "done": true,
      // The `response` field only displays if there were no errors.
      "response": {
        "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ExportMessagesResponse",
        
      },
      // If there were any errors, an `error` field displays instead of a `response` field.
      // See Troubleshooting long-running operations for a list of response codes.
      "error": {
        "code": ERROR_CODE,
        "message": "DESCRIPTION",
        "details": [
          {
            "@type": "...",
            FIELD1: ...,
            ...
          }
        ]
      }
    }
    

Memecahkan masalah permintaan ekspor HL7v2

Jika error terjadi saat mengekspor pesan HL7v2, error tersebut akan dicatat ke log di Cloud Logging. Untuk mengetahui informasi selengkapnya, lihat artikel Melihat log error di Cloud Logging.

Jika operasi yang berjalan lama menampilkan error, lihat Memecahkan masalah operasi yang berjalan lama.