Menggunakan Healthcare Natural Language API

Halaman ini menjelaskan cara mengaktifkan Healthcare Natural Language API, mengonfigurasi izin, dan memanggil metode analyzeEntities untuk mengekstrak insight medis dari teks medis.

Ringkasan

Healthcare Natural Language API menyediakan solusi machine learning untuk mendapatkan insight dari teks medis. Healthcare Natural Language API adalah bagian dari Cloud Healthcare API. Untuk mengetahui ringkasan Healthcare Natural Language API, lihat dokumentasi konseptual Healthcare Natural Language API.

Healthcare Natural Language API mengurai teks medis tidak terstruktur seperti catatan medis atau klaim asuransi. Kemudian, alat ini menghasilkan representasi data terstruktur dari entitas pengetahuan medis yang disimpan dalam sumber data ini untuk analisis dan otomatisasi hilir. Misalnya, Anda dapat:

  • Mengekstrak informasi tentang konsep medis seperti penyakit, obat-obatan, perangkat medis, prosedur, dan atributnya yang relevan secara klinis
  • Memetakan konsep medis ke kosakata medis standar seperti RxNorm, ICD-10, MeSH, dan SNOMED CT (khusus pengguna di AS dan Inggris Raya)
  • Mendapatkan insight medis dari teks dan mengintegrasikannya dengan produk analisis data di Google Cloud

Lokasi yang tersedia

Healthcare Natural Language API tersedia di lokasi berikut:

Nama lokasi Deskripsi lokasi
asia-south1 Mumbai, India
australia-southeast1 Sydney, Australia
europe-west2 London, Inggris
europe-west4 Belanda
northamerica-northeast1 Montréal, Kanada
us-central1 Iowa, Amerika Serikat

Mengaktifkan Healthcare Natural Language API

Sebelum mulai menggunakan Healthcare Natural Language API, Anda harus mengaktifkan API untuk project Anda. Google Cloud Anda dapat menggunakan Healthcare Natural Language API tanpa mengaktifkan atau menggunakan fitur Cloud Healthcare API.

Untuk mengaktifkan API, selesaikan langkah-langkah berikut:

  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. Make sure that billing is enabled for your Google Cloud project.

  4. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the Project > Owner role to the service account.

      To grant the role, find the Select a role list, then select Project > Owner.

    6. Click Continue.
    7. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  5. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.
  6. Set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again.

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

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the Project > Owner role to the service account.

      To grant the role, find the Select a role list, then select Project > Owner.

    6. Click Continue.
    7. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  10. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.
  11. Set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again.

  12. Enable the Cloud Healthcare API.

    Enable the API

  13. Install the Google Cloud CLI.

  14. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  15. To initialize the gcloud CLI, run the following command:

    gcloud init
  16. Siapkan izin

    Untuk menggunakan fitur dalam panduan ini, Anda harus memiliki healthcare.nlpservice.analyzeEntities izin, yang disertakan dalam healthcare.nlpServiceViewer peran.

    Untuk menetapkan peran ini, jalankan perintah gcloud projects add-iam-policy-binding:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member serviceAccount:SERVICE_ACCOUNT_ID \
        --role roles/healthcare.nlpServiceViewer

    Mengekstrak entity, relasi, dan atribut kontekstual

    Healthcare Natural Language API menggunakan model yang sadar konteks untuk mengekstrak entity, relasi, dan atribut kontekstual medis. Setiap entitas teks diekstrak ke dalam entri kamus medis. Untuk mengekstrak insight medis tingkat ini dari teks medis, gunakan metode projects.locations.services.nlp.analyzeEntities.

    Untuk menyertakan kosakata berlisensi SNOMED CT dalam sebutan entitas Anda, lihat Menyertakan kosakata berlisensi.

    Untuk mengekstrak insight medis dari teks medis menggunakan Healthcare Natural Language API, buat permintaan POST dan tentukan teks target di kolom documentContent. Ukuran maksimum teks medis adalah 20.000 karakter Unicode.

    Contoh berikut menunjukkan cara menggunakan metode analyzeEntities untuk mengekstrak insight medis dari teks medis "Regimen insulin 5 unit IV akan diberikan untuk diabetes".

    REST

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID Google Cloud project Anda
    • LOCATION: lokasi set data

    Meminta isi JSON:

    {
      "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
    }
    

    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'
    {
      "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
    }
    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" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

    PowerShell

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

    @'
    {
      "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
    }
    '@  | 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" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content

    Jika permintaan berhasil, respons akan mencakup informasi berikut:

    • Entitas pengetahuan medis yang dikenali
    • Fitur fungsional
    • Hubungan antar-entitas yang dikenali
    • Atribut kontekstual
    • Pemetaan entitas pengetahuan medis ke dalam terminologi standar

    Untuk mengetahui daftar jenis entitas, atribut, dan relasi yang didukung, lihat Fitur Healthcare Natural Language API.

    Respons berikut mengidentifikasi Therapeutic Insulin, entitas dengan kode C581 dalam sistem terminologi NCI, sebagai obat. Respons juga mencakup skor keyakinan yang ditetapkan ke respons. Untuk mengetahui informasi selengkapnya tentang kolom respons, lihat dokumentasi analyzeEntities.

    Menyertakan kosakata berlisensi

    Secara default, respons Healthcare Natural Language API menyertakan kosakata medis yang didukung.

    Anda dapat menyertakan kosakata SNOMED Clinical Terms, US Version (SNOMEDCT_US) dalam respons jika permintaan Anda memenuhi persyaratan berikut:

    • Permintaan API berasal dari Amerika Serikat.
    • Kolom licensedVocabularies di isi permintaan memiliki nilai SNOMEDCT_US.

    Jika Anda tidak memerlukan kosakata SNOMED CT, maka tidak ada batasan yang berlaku.

    Contoh berikut menunjukkan cara menyertakan kosakata berlisensi SNOMED CT dalam objek LicensedVocabularies untuk mengekstrak insight medis dari teks medis "Regimen insulin 5 unit IV akan diberikan untuk diabetes".

    REST

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID Google Cloud project Anda
    • LOCATION: lokasi set data

    Meminta isi JSON:

    {
      "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
      "licensedVocabularies": [
        "SNOMEDCT_US",
        "ICD10CM"
      ]
    }
    

    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'
    {
      "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
      "licensedVocabularies": [
        "SNOMEDCT_US",
        "ICD10CM"
      ]
    }
    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" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

    PowerShell

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

    @'
    {
      "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
      "licensedVocabularies": [
        "SNOMEDCT_US",
        "ICD10CM"
      ]
    }
    '@  | 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" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content
    Jika permintaan berhasil, respons akan menyertakan kode kosakata dari kosakata berlisensi SNOMEDCT_US dan ICD10CM. Outputnya adalah sebagai berikut dan kode kosakata berlisensi yang diminta dicetak tebal:

    Mengekstrak output sebagai paket FHIR R4

    Anda dapat mengekstrak entity dari teks dan memetakannya ke resource dan elemen FHIR R4. Paket FHIR R4 yang dihasilkan mencakup semua entitas, sebutan entitas, dan hubungan dalam format JSON. Misalnya, Healthcare Natural Language API memetakan entitas dasar PROBLEM ke resource FHIR R4 Condition dan entitas PROBLEM.ANATOMICAL_STRUCTURE ke elemen FHIR Condition.bodySite. Untuk mengetahui daftar pemetaan lainnya, lihat Output Healthcare Natural Language API sebagai paket FHIR.

    Contoh berikut menunjukkan cara mengekstrak insight medis dari teks medis "Regimen insulin 5 unit IV akan diberikan untuk diabetes" dalam paket FHIR R4. Untuk mengetahui informasi selengkapnya, lihat objek AlternativeOutputFormat.

    REST

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID Google Cloud project Anda
    • LOCATION: lokasi set data

    Meminta isi JSON:

    {
      "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
      "alternativeOutputFormat": "FHIR_BUNDLE"
    }
    

    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'
    {
      "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
      "alternativeOutputFormat": "FHIR_BUNDLE"
    }
    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" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

    PowerShell

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

    @'
    {
      "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
      "alternativeOutputFormat": "FHIR_BUNDLE"
    }
    '@  | 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" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content
    Jika permintaan berhasil, respons akan berisi objek JSON dengan entri berikut:
    • Penyebutan entity yang dikenali dengan entity dan hubungannya dalam format yang mirip dengan output di Mengekstrak entity, relasi, dan atribut kontekstual.
    • Kunci fhirBundle yang berisi resource FHIR Bundle berformat string. Paket FHIR mencakup semua entity, sebutan entity, dan hubungan dalam format JSON.