Melakukan streaming dan menyinkronkan resource FHIR dengan BigQuery


Tutorial ini menjelaskan skenario saat Anda dapat menggunakan streaming BigQuery untuk menyinkronkan penyimpanan FHIR dengan set data BigQuery secara hampir real-time.

Tujuan

Tutorial ini menunjukkan langkah-langkah berikut:

  1. Konfigurasi izin BigQuery.
  2. Buat penyimpanan FHIR dan tambahkan resource Pasien.
  3. Konfigurasi streaming BigQuery di penyimpanan FHIR.
  4. Verifikasi konfigurasi streaming ke BigQuery.
  5. Mengekspor resource FHIR yang ada ke BigQuery.
  6. Melakukan streaming resource dari beberapa penyimpanan FHIR ke set data BigQuery yang sama.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Healthcare API.

    Enable the API

  7. Install the Google Cloud CLI.

  8. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  9. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init

    Langkah 1: Mengonfigurasi izin BigQuery

    Untuk melakukan streaming perubahan resource FHIR ke BigQuery, Anda harus memberikan izin tambahan ke akun layanan Cloud Healthcare Service Agent. Untuk mengetahui informasi selengkapnya, lihat Izin BigQuery FHIR store.

    Langkah 2: Konfigurasi dan verifikasi streaming BigQuery

    Untuk mengaktifkan streaming ke BigQuery, ikuti petunjuk berikut:

    Buat penyimpanan FHIR dan tambahkan resource Pasien

    Untuk membuat FHIR store dan menambahkan dua resource Pasien, ikuti langkah-langkah berikut:

    1. Buat penyimpanan FHIR:

      REST

      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 FHIR store
      • FHIR_STORE_ID: ID untuk penyimpanan FHIR. ID FHIR store harus memiliki:
        • ID unik dalam set datanya
        • String Unicode 1-256 karakter yang terdiri dari:
          • Numbers
          • Surat
          • Garis bawah
          • Tanda Hubung
          • Menstruasi
      • FHIR_STORE_VERSION: versi FHIR dari FHIR store. Opsi yang tersedia adalah DSTU2, STU3, atau R4.

      Meminta isi JSON:

      {
        "version": "FHIR_STORE_VERSION"
      }
      

      Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

      curl

      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'
      {
        "version": "FHIR_STORE_VERSION"
      }
      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/fhirStores?fhirStoreId=FHIR_STORE_ID"

      PowerShell

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

      @'
      {
        "version": "FHIR_STORE_VERSION"
      }
      '@  | 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/fhirStores?fhirStoreId=FHIR_STORE_ID" | Select-Object -Expand Content

      APIs Explorer

      Salin isi permintaan dan buka halaman referensi metode. Panel APIs Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Tempelkan isi permintaan di alat ini, lengkapi kolom lainnya yang wajib diisi, lalu klik Jalankan.

      Anda akan melihat respons JSON seperti berikut:

    2. Buat resource Patient pertama di penyimpanan FHIR:

      REST

      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 FHIR store
      • FHIR_STORE_ID: ID FHIR store

      Meminta isi JSON:

      {
        "name": [
          {
            "use": "official",
            "family": "Smith",
            "given": [
              "Darcy"
            ]
          }
        ],
        "gender": "female",
        "birthDate": "1970-01-01",
        "resourceType": "Patient"
      }
      

      Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

      curl

      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'
      {
        "name": [
          {
            "use": "official",
            "family": "Smith",
            "given": [
              "Darcy"
            ]
          }
        ],
        "gender": "female",
        "birthDate": "1970-01-01",
        "resourceType": "Patient"
      }
      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/fhir+json" \
      -d @request.json \
      "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"

      PowerShell

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

      @'
      {
        "name": [
          {
            "use": "official",
            "family": "Smith",
            "given": [
              "Darcy"
            ]
          }
        ],
        "gender": "female",
        "birthDate": "1970-01-01",
        "resourceType": "Patient"
      }
      '@  | 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/fhir+json" `
      -InFile request.json `
      -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content

      Anda akan melihat respons JSON seperti berikut:

    3. Buat resource Pasien kedua di penyimpanan FHIR:

      REST

      Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

      • PROJECT_ID: Google Cloud project ID Anda
      • LOCATION: lokasi set data induk
      • DATASET_ID: set data induk FHIR store
      • FHIR_STORE_ID: ID FHIR store

      Meminta isi JSON:

      {
        "name": [
          {
            "use": "official",
            "family": "Zhang",
            "given": [
              "Michael"
            ]
          }
        ],
        "gender": "male",
        "birthDate": "1980-01-01",
        "resourceType": "Patient"
      }
      

      Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

      curl

      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'
      {
        "name": [
          {
            "use": "official",
            "family": "Zhang",
            "given": [
              "Michael"
            ]
          }
        ],
        "gender": "male",
        "birthDate": "1980-01-01",
        "resourceType": "Patient"
      }
      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/fhir+json" \
      -d @request.json \
      "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"

      PowerShell

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

      @'
      {
        "name": [
          {
            "use": "official",
            "family": "Zhang",
            "given": [
              "Michael"
            ]
          }
        ],
        "gender": "male",
        "birthDate": "1980-01-01",
        "resourceType": "Patient"
      }
      '@  | 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/fhir+json" `
      -InFile request.json `
      -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content

      Anda akan melihat respons JSON seperti berikut:

    4. Cari resource Pasien di penyimpanan FHIR dan verifikasi bahwa penyimpanan berisi dua resource Pasien:

      REST

      Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

      • PROJECT_ID: Google Cloud project ID Anda
      • LOCATION: lokasi set data induk
      • DATASET_ID: set data induk FHIR store
      • FHIR_STORE_ID: ID FHIR store

      Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

      curl

      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/fhirStores/FHIR_STORE_ID/fhir/Patient"

      PowerShell

      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/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content

      Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

    Mengonfigurasi streaming BigQuery di penyimpanan FHIR

    Perbarui penyimpanan FHIR untuk mengonfigurasi streaming BigQuery. Setelah mengonfigurasi streaming, Cloud Healthcare API akan melakukan streaming perubahan resource apa pun ke set data BigQuery.

    1. Perbarui penyimpanan FHIR yang ada untuk menambahkan lokasi set data BigQuery:

      REST

      Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

      • PROJECT_ID: Google Cloud project ID Anda
      • LOCATION: lokasi set data induk
      • DATASET_ID: set data induk FHIR store
      • FHIR_STORE_ID: ID penyimpanan FHIR Anda
      • BIGQUERY_PROJECT_ID: project Google Cloud yang berisi set data BigQuery untuk streaming perubahan resource FHIR
      • BIGQUERY_DATASET_ID: set data BigQuery tempat Anda melakukan streaming perubahan resource FHIR

      Meminta isi JSON:

      {
        "streamConfigs": [
          {
            "bigqueryDestination": {
              "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID",
              "schemaConfig": {
                "schemaType": "ANALYTICS_V2"
              }
            }
          }
        ]
      }
      

      Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

      curl

      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'
      {
        "streamConfigs": [
          {
            "bigqueryDestination": {
              "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID",
              "schemaConfig": {
                "schemaType": "ANALYTICS_V2"
              }
            }
          }
        ]
      }
      EOF

      Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

      curl -X PATCH \
      -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/fhirStores/FHIR_STORE_ID?updateMask=streamConfigs"

      PowerShell

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

      @'
      {
        "streamConfigs": [
          {
            "bigqueryDestination": {
              "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID",
              "schemaConfig": {
                "schemaType": "ANALYTICS_V2"
              }
            }
          }
        ]
      }
      '@  | 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 PATCH `
      -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/fhirStores/FHIR_STORE_ID?updateMask=streamConfigs" | Select-Object -Expand Content

      APIs Explorer

      Salin isi permintaan dan buka halaman referensi metode. Panel APIs Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Tempelkan isi permintaan di alat ini, lengkapi kolom lainnya yang wajib diisi, lalu klik Jalankan.

      Anda akan melihat respons JSON seperti berikut:

    Memverifikasi konfigurasi streaming ke BigQuery

    Pastikan streaming dikonfigurasi dengan benar dengan menyelesaikan langkah-langkah berikut:

    1. Buat resource Patient ketiga di penyimpanan FHIR:

      REST

      Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

      • PROJECT_ID: Google Cloud project ID Anda
      • LOCATION: lokasi set data induk
      • DATASET_ID: set data induk FHIR store
      • FHIR_STORE_ID: ID FHIR store

      Meminta isi JSON:

      {
        "name": [
          {
            "use": "official",
            "family": "Lee",
            "given": [
              "Alex"
            ]
          }
        ],
        "gender": "male",
        "birthDate": "1990-01-01",
        "resourceType": "Patient"
      }
      

      Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

      curl

      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'
      {
        "name": [
          {
            "use": "official",
            "family": "Lee",
            "given": [
              "Alex"
            ]
          }
        ],
        "gender": "male",
        "birthDate": "1990-01-01",
        "resourceType": "Patient"
      }
      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/fhir+json" \
      -d @request.json \
      "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"

      PowerShell

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

      @'
      {
        "name": [
          {
            "use": "official",
            "family": "Lee",
            "given": [
              "Alex"
            ]
          }
        ],
        "gender": "male",
        "birthDate": "1990-01-01",
        "resourceType": "Patient"
      }
      '@  | 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/fhir+json" `
      -InFile request.json `
      -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content

      Anda akan melihat respons JSON seperti berikut:

    2. Buat kueri tabel BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient dengan menjalankan bq query. BigQuery mengelola tabel menurut jenis resource FHIR. Sumber daya Pasien ketiga yang Anda buat ada di tabel Patient.

      bq query \
         --project_id=BIGQUERY_PROJECT_ID \
         --use_legacy_sql=false \
         'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`'

      Kueri menampilkan hasil berikut. Hasilnya menunjukkan bahwa ada satu catatan resource Pasien dalam tabel BigQuery, karena Anda menambahkan resource Pasien setelah mengonfigurasi streaming di penyimpanan FHIR.

      +-----+
      | f0_ |
      +-----+
      |   1 |
      +-----+
      

    Langkah 3: Mengekspor resource FHIR yang ada ke BigQuery

    Jika Anda memiliki penyimpanan FHIR yang berisi data yang ingin disinkronkan dengan set data BigQuery, Anda harus menyelesaikan langkah-langkah berikut untuk memastikan data yang ada berada di BigQuery:

    1. Konfigurasi streaming ke BigQuery.
    2. Ekspor data yang ada ke set data BigQuery.

    Untuk mengekspor dua resource Pasien yang ada di penyimpanan FHIR sebelum Anda mengonfigurasi streaming ke set data BigQuery, selesaikan langkah-langkah berikut:

    1. Untuk mengekspor resource di penyimpanan FHIR ke BigQuery, jalankan perintah gcloud healthcare fhir-stores export bq. Perintah ini menggunakan flag --write-disposition=write-append, yang menambahkan data ke tabel BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient yang ada.

      gcloud healthcare fhir-stores export bq FHIR_STORE_ID \
         --dataset=DATASET_ID \
         --location=LOCATION \
         --bq-dataset=bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET \
         --schema-type=analytics_v2 \
         --write-disposition=write-append
    2. Buat kueri tabel BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient untuk memverifikasi jumlah resource Pasien dalam set data BigQuery:

      bq query \
         --project_id=BIGQUERY_PROJECT_ID \
         --use_legacy_sql=false \
         'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`'

      Kueri menampilkan hasil berikut, yang menunjukkan bahwa ada 4 rekaman resource Pasien di tabel BigQuery:

      +-----+
      | f0_ |
      +-----+
      |   4 |
      +-----+
      

      Jumlah sebenarnya resource Pasien dalam tabel BigQuery adalah 3, tetapi kueri menampilkan 4. Ketidakkonsistenan dapat terjadi saat resource berisi duplikat dari operasi yang berbeda. Dalam hal ini, resource Pasien pertama ditambahkan ke tabel BigQuery dua kali ini:

      • Saat pembuatan resource Pasien di-streaming
      • Saat resource di penyimpanan FHIR diekspor ke BigQuery

      Tabel BigQuery juga berisi histori mutasi resource Pasien pertama. Misalnya, jika Anda menghapus resource Pasien menggunakan fhir.delete, tabel BigQuery memiliki kolom meta.tag.code dengan nilai DELETE.

    3. Untuk mendapatkan snapshot terbaru data di penyimpanan FHIR, buat kueri tampilan. Cloud Healthcare API membuat tampilan hanya dengan melihat versi terbaru setiap resource. Membuat kueri tampilan adalah cara paling akurat untuk menyinkronkan penyimpanan FHIR dan tabel BigQuery yang sesuai.

      Untuk membuat kueri tampilan, jalankan perintah berikut:

      bq query \
         --project_id=BIGQUERY_PROJECT_ID \
         --use_legacy_sql=false \
         'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.PatientView`'

      Kueri menampilkan hasil berikut, yang dengan benar menunjukkan bahwa ada 3 resource Pasien dalam tabel BigQuery:

      +-----+
      | f0_ |
      +-----+
      |   3 |
      +-----+
      

    Langkah 4: Lakukan streaming resource dari beberapa penyimpanan FHIR ke set data BigQuery yang sama

    Dalam beberapa kasus, Anda mungkin ingin melakukan streaming resource FHIR dari beberapa penyimpanan FHIR ke set data BigQuery yang sama untuk melakukan analisis pada resource FHIR gabungan dari penyimpanan FHIR.

    Pada langkah-langkah berikut, Anda akan membuat penyimpanan FHIR kedua di set data Cloud Healthcare API yang sama dengan penyimpanan FHIR pertama, tetapi Anda dapat menggunakan penyimpanan FHIR dari set data yang berbeda saat menggabungkan resource FHIR.

    1. Buat penyimpanan FHIR kedua dengan streaming BigQuery diaktifkan dan gunakan set data BigQuery yang sama dengan yang Anda gunakan di Mengonfigurasi streaming BigQuery di penyimpanan FHIR.

      REST

      Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

      • PROJECT_ID: Google Cloud project ID Anda
      • LOCATION: lokasi set data induk
      • DATASET_ID: set data induk FHIR store
      • SECOND_FHIR_STORE_ID: ID untuk FHIR store kedua. ID penyimpanan FHIR harus unik dalam set data. ID penyimpanan FHIR dapat berupa string Unicode apa pun dari 1 hingga 256 karakter yang terdiri dari angka, huruf, garis bawah, tanda hubung, dan titik.
      • FHIR_STORE_VERSION: versi penyimpanan FHIR: DSTU2, STU3, atau R4
      • BIGQUERY_PROJECT_ID: project Google Cloud yang berisi set data BigQuery untuk streaming perubahan resource FHIR
      • BIGQUERY_DATASET_ID: set data BigQuery tempat Anda melakukan streaming perubahan resource FHIR

      Meminta isi JSON:

      {
        "version": "FHIR_STORE_VERSION"
        "streamConfigs": [
          {
            "bigqueryDestination": {
              "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID",
              "schemaConfig": {
                "schemaType": "ANALYTICS"
              }
            }
          }
        ]
      }
      

      Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

      curl

      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'
      {
        "version": "FHIR_STORE_VERSION"
        "streamConfigs": [
          {
            "bigqueryDestination": {
              "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID",
              "schemaConfig": {
                "schemaType": "ANALYTICS"
              }
            }
          }
        ]
      }
      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/fhirStores?fhirStoreId=SECOND_FHIR_STORE_ID"

      PowerShell

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

      @'
      {
        "version": "FHIR_STORE_VERSION"
        "streamConfigs": [
          {
            "bigqueryDestination": {
              "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID",
              "schemaConfig": {
                "schemaType": "ANALYTICS"
              }
            }
          }
        ]
      }
      '@  | 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/fhirStores?fhirStoreId=SECOND_FHIR_STORE_ID" | Select-Object -Expand Content

      APIs Explorer

      Salin isi permintaan dan buka halaman referensi metode. Panel APIs Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Tempelkan isi permintaan di alat ini, lengkapi kolom lainnya yang wajib diisi, lalu klik Jalankan.

      Anda akan melihat respons JSON seperti berikut:

    2. Buat resource Patient di penyimpanan FHIR kedua:

      REST

      Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

      • PROJECT_ID: Google Cloud project ID Anda
      • LOCATION: lokasi set data induk
      • DATASET_ID: set data induk FHIR store
      • SECOND_FHIR_STORE_ID: ID FHIR store kedua

      Meminta isi JSON:

      {
        "name": [
          {
            "use": "official",
            "family": "Lee",
            "given": [
              "Alex"
            ]
          }
        ],
        "gender": "male",
        "birthDate": "1990-01-01",
        "resourceType": "Patient"
      }
      

      Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

      curl

      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'
      {
        "name": [
          {
            "use": "official",
            "family": "Lee",
            "given": [
              "Alex"
            ]
          }
        ],
        "gender": "male",
        "birthDate": "1990-01-01",
        "resourceType": "Patient"
      }
      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/fhir+json" \
      -d @request.json \
      "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/SECOND_FHIR_STORE_ID/fhir/Patient"

      PowerShell

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

      @'
      {
        "name": [
          {
            "use": "official",
            "family": "Lee",
            "given": [
              "Alex"
            ]
          }
        ],
        "gender": "male",
        "birthDate": "1990-01-01",
        "resourceType": "Patient"
      }
      '@  | 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/fhir+json" `
      -InFile request.json `
      -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/SECOND_FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content

      Anda akan melihat respons JSON seperti berikut:

    3. Buat kueri tabel BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient untuk memverifikasi jumlah resource Pasien dalam tabel BigQuery:

      bq query \
         --project_id=BIGQUERY_PROJECT_ID \
         --use_legacy_sql=false \
         'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`'

      Saat melakukan streaming data tentang resource Pasien baru, BigQuery menggunakan tabel Patient yang ada di set data BigQuery. Kueri menampilkan hasil berikut, yang menunjukkan bahwa ada 5 rekaman resource Pasien di tabel BigQuery. Lihat Mengekspor resource FHIR yang ada ke BigQuery untuk mengetahui penjelasan mengapa tabel berisi 5 resource, bukan 4.

      +-----+
      | f0_ |
      +-----+
      |   5 |
      +-----+
      
    4. Jalankan perintah berikut untuk membuat kueri tampilan:

      bq query \
         --project_id=BIGQUERY_PROJECT_ID \
         --use_legacy_sql=false \
         'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.PatientView`'

      Kueri menampilkan hasil berikut, yang menunjukkan bahwa ada 4 resource Pasien di gabungan penyimpanan FHIR pertama dan kedua serta di tabel BigQuery:

      +-----+
      | f0_ |
      +-----+
      |   4 |
      +-----+
      

    Pembersihan

    Jika Anda membuat project baru untuk tutorial ini, ikuti langkah-langkah di Menghapus project. Untuk menghapus sumber daya Cloud Healthcare API dan BigQuery saja, selesaikan langkah-langkah di Menghapus set data Cloud Healthcare API dan Menghapus set data BigQuery.

    Menghapus project

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    Menghapus set data Cloud Healthcare API

    Jika tidak lagi memerlukan set data Cloud Healthcare API yang dibuat dalam tutorial ini, Anda dapat menghapusnya. Menghapus set data akan menghapus set data tersebut dan semua penyimpanan FHIR yang ada di dalamnya secara permanen.

    1. Untuk menghapus set data, gunakan perintah gcloud healthcare datasets delete:

      gcloud healthcare datasets delete DATASET_ID \
      --location=LOCATION \
      --project=PROJECT_ID

      Ganti kode berikut:

      • DATASET_ID: set data Cloud Healthcare API
      • LOCATION: lokasi set data
      • PROJECT_ID: Google Cloud project ID Anda
    2. Untuk mengonfirmasi, ketik Y.

    Outputnya adalah sebagai berikut:

    Deleted dataset [DATASET_ID].
    

    Menghapus set data BigQuery

    Jika tidak lagi memerlukan set data BigQuery yang dibuat dalam tutorial ini, Anda dapat menghapusnya. Menghapus set data akan menghapus set data tersebut dan semua tabel yang ada di dalamnya secara permanen.

    1. Hapus BIGQUERY_PROJECT_ID.set data BIGQUERY_DATASET_ID dengan menjalankan perintah bq rm:

      bq rm --recursive=true BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID

      Flag --recursive akan menghapus semua tabel dalam set data, termasuk tabel Patient.

    2. Untuk mengonfirmasi, ketik Y.

    Langkah berikutnya