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 ringkasan Healthcare Natural Language API, lihat dokumentasi konseptual Healthcare Natural Language API.

Healthcare Natural Language API mengurai teks medis yang tidak terstruktur seperti rekam medis atau klaim asuransi. Alat tersebut kemudian menghasilkan representasi data terstruktur dari entity pengetahuan medis yang disimpan dalam sumber data ini untuk otomatisasi dan analisis downstream. Misalnya, Anda dapat:

  • Mengekstrak informasi tentang konsep medis seperti penyakit, obat-obatan, perangkat medis, prosedur, dan atribut yang relevan secara klinis
  • Petakan konsep medis ke kosakata medis standar seperti RxNorm, ICD-10, MeSH, dan SNOMED CT (khusus pengguna AS)
  • 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, AS

Mengaktifkan Healthcare Natural Language API

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

Untuk mengaktifkan API, selesaikan langkah-langkah berikut:

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Buat akun layanan:

    1. Di konsol Google Cloud, buka halaman Buat akun layanan.

      Buka Create service account
    2. Pilih project Anda.
    3. Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan berdasarkan nama ini.

      Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Sebagai contoh, Service account for quickstart.

    4. Klik Buat dan lanjutkan.
    5. Berikan peran Project > Owner ke akun layanan.

      Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih Project > Owner.

    6. Klik Lanjutkan.
    7. Klik Selesai untuk menyelesaikan pembuatan akun layanan.

      Jangan tutup jendela browser Anda. Anda akan menggunakannya pada langkah berikutnya.

  5. Membuat kunci akun layanan:

    1. Di konsol Google Cloud, klik alamat email untuk akun layanan yang telah dibuat.
    2. Klik Kunci.
    3. Klik Tambahkan kunci, lalu klik Buat kunci baru.
    4. Klik Create. File kunci JSON akan didownload ke komputer Anda.
    5. Klik Close.
  6. Tetapkan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS ke jalur file JSON yang berisi kredensial Anda. Variabel ini hanya berlaku untuk sesi shell Anda saat ini. Jadi, jika Anda membuka sesi baru, tetapkan variabel kembali.

  7. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  8. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  9. Buat akun layanan:

    1. Di konsol Google Cloud, buka halaman Buat akun layanan.

      Buka Create service account
    2. Pilih project Anda.
    3. Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan berdasarkan nama ini.

      Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Sebagai contoh, Service account for quickstart.

    4. Klik Buat dan lanjutkan.
    5. Berikan peran Project > Owner ke akun layanan.

      Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih Project > Owner.

    6. Klik Lanjutkan.
    7. Klik Selesai untuk menyelesaikan pembuatan akun layanan.

      Jangan tutup jendela browser Anda. Anda akan menggunakannya pada langkah berikutnya.

  10. Membuat kunci akun layanan:

    1. Di konsol Google Cloud, klik alamat email untuk akun layanan yang telah dibuat.
    2. Klik Kunci.
    3. Klik Tambahkan kunci, lalu klik Buat kunci baru.
    4. Klik Create. File kunci JSON akan didownload ke komputer Anda.
    5. Klik Close.
  11. Tetapkan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS ke jalur file JSON yang berisi kredensial Anda. Variabel ini hanya berlaku untuk sesi shell Anda saat ini. Jadi, jika Anda membuka sesi baru, tetapkan variabel kembali.

  12. Aktifkan Cloud Healthcare API.

    Mengaktifkan API

  13. Menginstal Google Cloud CLI.
  14. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init

Siapkan izin

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

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 kontekstual untuk mengekstrak entity medis, hubungan, dan atribut kontekstual. 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 penyebutan 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 "Rejimen insulin 5 unit IV akan diberikan untuk diabetes".

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID project Google Cloud 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 menyertakan informasi berikut:

  • Entitas pengetahuan medis yang diakui
  • Fitur fungsional
  • Hubungan antara entitas yang diakui
  • Atribut kontekstual
  • Pemetaan entitas pengetahuan medis ke dalam istilah standar

Untuk mengetahui daftar entity, atribut, dan jenis 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 tersebut juga mencakup skor keyakinan yang ditetapkan untuk respons. Untuk mengetahui informasi selengkapnya tentang kolom respons, lihat dokumentasi analyzeEntities.

Sertakan kosakata berlisensi

Secara default, respons Healthcare Natural Language API mencakup kosa kata medis yang didukung.

Anda dapat menyertakan kosakata Persyaratan Klinis SNOMED, Versi AS (SNOMEDCT_US) dalam respons jika permintaan Anda memenuhi persyaratan berikut:

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

Jika Anda tidak memerlukan kosakata SNOMED CT, maka tidak satu pun pembatasan ini yang berlaku.

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

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID project Google Cloud 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 kosa kata berlisensi SNOMEDCT_US dan ICD10CM. Output-nya 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 entity, penyebutan entity, dan hubungan dalam format JSON. Misalnya, Healthcare Natural Language API memetakan entity dasar PROBLEM ke resource R4 Condition FHIR dan entity PROBLEM.ANATOMICAL_STRUCTURE ke elemen FHIR Condition.bodySite. Untuk daftar pemetaan lain, lihat output Healthcare Natural Language API sebagai paket FHIR.

Contoh berikut menunjukkan cara mengekstrak insight medis dari teks medis "Rejimen 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 project Google Cloud 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:
  • Entity yang dikenali menyebutkan entity dan hubungannya dalam format yang mirip dengan output di Mengekstrak entity, relasi, dan atribut kontekstual.
  • Kunci fhirBundle yang berisi resource Paket FHIR berformat string. Paket FHIR mencakup semua entity, yang disebutkan oleh entity, dan hubungan dalam format JSON.