Utilizzo dell'API Healthcare Natural Language

Questa pagina spiega come abilitare l'API Healthcare Natural Language, configurare le autorizzazioni e chiamare il metodo analyzeEntities per estrarre insight medici da testi medici.

Panoramica

L'API Healthcare Natural Language fornisce soluzioni di machine learning per ricavare insight da testi medici. L'API Healthcare Natural Language fa parte dell'API Cloud Healthcare. Per una panoramica dell'API Healthcare Natural Language, consulta la documentazione concettuale dell'API Healthcare Natural Language.

L'API Healthcare Natural Language analizza testi medici non strutturati come cartelle cliniche o richieste di risarcimento assicurativi. Genera quindi una rappresentazione dei dati strutturati delle entità delle conoscenze mediche archiviate in queste origini dati per l'analisi e l'automazione a valle. Ad esempio, puoi:

  • Estrae informazioni su concetti medici come malattie, farmaci, dispositivi medici, procedure e caratteristiche clinicamente pertinenti
  • Mappa i concetti medici a vocabolari medici standard come RxNorm, ICD-10, MeSH e SNOMED CT (solo utenti negli Stati Uniti)
  • Estrazione di insight medici dal testo e integrazione con i prodotti di analisi dei dati in Google Cloud

Paesi in cui è disponibile il servizio

L'API Healthcare Natural Language è disponibile nelle seguenti località:

Nome della sede Descrizione località
asia-south1 Mumbai, India
australia-southeast1 Sydney, Australia
europe-west2 Londra, Regno Unito
europe-west4 Paesi Bassi
northamerica-northeast1 Montréal, Canada
us-central1 Iowa, Stati Uniti

Abilita l'API Healthcare Natural Language

Prima di iniziare a utilizzare l'API Healthcare Natural Language, devi abilitare l'API per il tuo progetto Google Cloud. Puoi utilizzare l'API Healthcare Natural Language senza abilitare o utilizzare le funzionalità dell'API Cloud Healthcare.

Per abilitare l'API, completa i seguenti passaggi:

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Crea un account di servizio:

    1. Nella console Google Cloud, vai alla pagina Crea account di servizio.

      Vai a Crea account di servizio
    2. Seleziona il progetto.
    3. Nel campo Nome account di servizio, inserisci un nome. La console Google Cloud compila il campo ID account di servizio in base a questo nome.

      Nel campo Descrizione account di servizio, inserisci una descrizione. Ad esempio, Service account for quickstart.

    4. Fai clic su Crea e continua.
    5. Concedi il ruolo Project > Owner all'account di servizio.

      Per concedere il ruolo, trova l'elenco Seleziona un ruolo e scegli Project > Owner.

    6. Fai clic su Continua.
    7. Fai clic su Fine per completare la creazione dell'account di servizio.

      Non chiudere la finestra del browser. La utilizzerai nel passaggio successivo.

  5. Crea una chiave dell'account di servizio:

    1. Nella console Google Cloud, fai clic sull'indirizzo email dell'account di servizio che hai creato.
    2. Fai clic su Chiavi.
    3. Fai clic su Aggiungi chiave, quindi su Crea nuova chiave.
    4. Fai clic su Crea. Un file della chiave JSON viene scaricato sul computer.
    5. Fai clic su Chiudi.
  6. Imposta la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS sul percorso del file JSON che contiene le tue credenziali. Questa variabile si applica solo alla sessione di shell attuale. Pertanto, se apri una nuova sessione, imposta di nuovo la variabile.

  7. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  8. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  9. Crea un account di servizio:

    1. Nella console Google Cloud, vai alla pagina Crea account di servizio.

      Vai a Crea account di servizio
    2. Seleziona il progetto.
    3. Nel campo Nome account di servizio, inserisci un nome. La console Google Cloud compila il campo ID account di servizio in base a questo nome.

      Nel campo Descrizione account di servizio, inserisci una descrizione. Ad esempio, Service account for quickstart.

    4. Fai clic su Crea e continua.
    5. Concedi il ruolo Project > Owner all'account di servizio.

      Per concedere il ruolo, trova l'elenco Seleziona un ruolo e scegli Project > Owner.

    6. Fai clic su Continua.
    7. Fai clic su Fine per completare la creazione dell'account di servizio.

      Non chiudere la finestra del browser. La utilizzerai nel passaggio successivo.

  10. Crea una chiave dell'account di servizio:

    1. Nella console Google Cloud, fai clic sull'indirizzo email dell'account di servizio che hai creato.
    2. Fai clic su Chiavi.
    3. Fai clic su Aggiungi chiave, quindi su Crea nuova chiave.
    4. Fai clic su Crea. Un file della chiave JSON viene scaricato sul computer.
    5. Fai clic su Chiudi.
  11. Imposta la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS sul percorso del file JSON che contiene le tue credenziali. Questa variabile si applica solo alla sessione di shell attuale. Pertanto, se apri una nuova sessione, imposta di nuovo la variabile.

  12. Attiva Cloud Healthcare API.

    Abilita l'API

  13. Installa Google Cloud CLI.
  14. Per initialize gcloud CLI, esegui questo comando:

    gcloud init

Configurare le autorizzazioni

Per utilizzare le funzionalità in questa guida, devi disporre dell'autorizzazione healthcare.nlpservice.analyzeEntities, che è inclusa nel ruolo healthcare.nlpServiceViewer.

Per assegnare questo ruolo, esegui il comando gcloud projects add-iam-policy-binding:

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

Estrazione di entità, relazioni e attributi contestuali

L'API Healthcare Natural Language utilizza modelli sensibili al contesto per estrarre entità mediche, relazioni e attributi contestuali. Ogni entità di testo viene estratta in una voce del dizionario medico. Per estrarre questo livello di insight medici dal testo medico, utilizza il metodo projects.locations.services.nlp.analyzeEntities.

Per includere il vocabolario autorizzato di SNOMED CT nelle menzioni dell'entità, vedi Includi vocabolari autorizzati.

Per estrarre insight medici da testi medici utilizzando l'API Healthcare Natural Language, effettua una richiesta POST e specifica il testo di destinazione nel campo documentContent. La dimensione massima del testo medico è 20.000 caratteri Unicode.

I seguenti campioni mostrano come utilizzare il metodo analyzeEntities per estrarre approfondimenti medici dal testo medico "Regime di insulina 5 unità IV verranno somministrate per il diabete".

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • LOCATION: la posizione del set di dati

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

arricciatura

Salva il corpo della richiesta in un file denominato request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:

cat > request.json << 'EOF'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}
EOF

Quindi esegui questo comando per inviare la richiesta REST:

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

Salva il corpo della richiesta in un file denominato request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:

@'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}
'@  | Out-File -FilePath request.json -Encoding utf8

Quindi esegui questo comando per inviare la richiesta REST:

$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

Se la richiesta ha esito positivo, la risposta include le seguenti informazioni:

  • Entità della conoscenza medica riconosciute
  • Caratteristiche funzionali
  • Rapporti tra persone giuridiche riconosciute
  • Attributi contestuali
  • Mappature delle entità di conoscenza medica in terminologie standard

Per un elenco delle entità, degli attributi e dei tipi di relazioni supportati, consulta le funzionalità dell'API Healthcare Natural Language.

La seguente risposta identifica l'insulina terapeutica, l'entità con il codice C581 nel sistema terminologico NCI, come farmaco. La risposta include anche il punteggio di confidenza assegnato alla risposta. Per ulteriori informazioni sui campi di risposta, consulta la documentazione di analyzeEntities.

Includi vocabolari autorizzati

Per impostazione predefinita, le risposte dell'API Healthcare Natural Language includono i vocabolari medici supportati.

Puoi includere il vocabolario SNOMED Clinical Terms, US Version (SNOMEDCT_US) nella risposta se la richiesta soddisfa i seguenti requisiti:

  • La richiesta API ha origine negli Stati Uniti.
  • Il campo licensedVocabularies nel corpo della richiesta ha il valore SNOMEDCT_US.

Se non hai bisogno del vocabolario SNOMED CT, non si applica nessuna di queste restrizioni.

Il seguente esempio mostra come includere il vocabolario autorizzato di SNOMED CT nell'oggetto LicensedVocabularies per estrarre approfondimenti medici dal testo medico "Regime di insulina 5 unità IV verranno somministrate per il diabete".

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • LOCATION: la posizione del set di dati

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

arricciatura

Salva il corpo della richiesta in un file denominato request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:

cat > request.json << 'EOF'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "licensedVocabularies": [
    "SNOMEDCT_US",
    "ICD10CM"
  ]
}
EOF

Quindi esegui questo comando per inviare la richiesta REST:

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

Salva il corpo della richiesta in un file denominato request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:

@'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "licensedVocabularies": [
    "SNOMEDCT_US",
    "ICD10CM"
  ]
}
'@  | Out-File -FilePath request.json -Encoding utf8

Quindi esegui questo comando per inviare la richiesta REST:

$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
Se la richiesta ha esito positivo, la risposta include i codici del vocabolario dei vocabolari autorizzati SNOMEDCT_US e ICD10CM. L'output è il seguente e i codici del vocabolario autorizzati richiesti sono in grassetto:

Estrai l'output come bundle FHIR R4

Puoi estrarre entità dal testo e mapparle a risorse ed elementi FHIR R4. Il bundle FHIR R4 risultante include tutte le entità, le menzioni di entità e le relazioni in formato JSON. Ad esempio, l'API Healthcare Natural Language mappa l'entità di base PROBLEM alla risorsa R4 FHIR Condition e l'entità PROBLEM.ANATOMICAL_STRUCTURE all'elemento FHIR Condition.bodySite. Per un elenco di altre mappature, consulta Output dell'API Healthcare Natural Language come bundle FHIR.

I seguenti campioni mostrano come estrarre informazioni mediche dal testo medico "Regime di insulina 5 unità IV verranno somministrate per il diabete". in un bundle FHIR R4. Per maggiori informazioni, consulta l'oggetto AlternativeOutputFormat.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • LOCATION: la posizione del set di dati

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

arricciatura

Salva il corpo della richiesta in un file denominato request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:

cat > request.json << 'EOF'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "alternativeOutputFormat": "FHIR_BUNDLE"
}
EOF

Quindi esegui questo comando per inviare la richiesta REST:

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

Salva il corpo della richiesta in un file denominato request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:

@'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "alternativeOutputFormat": "FHIR_BUNDLE"
}
'@  | Out-File -FilePath request.json -Encoding utf8

Quindi esegui questo comando per inviare la richiesta REST:

$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
Se la richiesta ha esito positivo, la risposta contiene un oggetto JSON con le seguenti voci:
  • L'entità riconosciuta le menziona con le entità e le loro relazioni in un formato simile a quello dell'output in Estrai entità, relazioni e attributi contestuali.
  • Una chiave fhirBundle contenente una risorsa bundle FHIR in formato stringa. Il bundle FHIR include tutte le entità, le menzioni dell'entità e le relazioni in formato JSON.