Utilizza l'API Healthcare Natural Language

Questa pagina spiega come abilitare l'API Healthcare Natural Language, configurare le autorizzazioni e chiamare il analyzeEntities metodo 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 assicurativo. Poi genera una rappresentazione di dati strutturati delle entità di conoscenza medica archiviate in queste origini dati per l'analisi e l'automazione downstream. Ad esempio, puoi:

  • Estrarre informazioni su concetti medici come malattie, farmaci, dispositivi medici, procedure e i relativi attributi clinicamente rilevanti
  • Mappare i concetti medici a vocabolari medici standard come RxNorm, ICD-10, MeSH e SNOMED CT (solo per utenti statunitensi e britannici)
  • Ricavare insight medici dal testo e integrarli 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 della sede
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

Abilitare l'API Healthcare Natural Language

Prima di iniziare a utilizzare l'API Healthcare Natural Language, devi abilitarla per il tuo Google Cloud progetto. 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 Google Cloud account. 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 senza costi per l'esecuzione, il test e il deployment dei workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  4. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. 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.

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

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

    7. Click Continue.
    8. 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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  9. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. 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.

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

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

    7. Click Continue.
    8. 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. Abilita l'API Cloud Healthcare.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilitare l'API

  13. Installa Google Cloud CLI.

  14. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  15. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init

Configurare le autorizzazioni

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

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

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 da testi medici, utilizza il projects.locations.services.nlp.analyzeEntities metodo.

Per includere il vocabolario con licenza SNOMED CT nelle citazioni di entità, vedi Includere vocabolari con licenza.

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

Gli esempi riportati di seguito mostrano come utilizzare il metodo analyzeEntities per estrarre insight medici dal testo medico "Insulin regimen 5 units IV will be administered for diabetes.".

REST

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

  • PROJECT_ID: l'ID del tuo Google Cloud progetto
  • LOCATION: la località 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 di queste opzioni:

curl

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

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

Quindi esegui il comando seguente 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 il comando seguente nel terminale per creare o sovrascrivere questo file nella directory corrente:

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

Quindi esegui il comando seguente 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à di conoscenza medica riconosciute
  • Funzionalità
  • Relazioni tra le entità riconosciute
  • Attributi contestuali
  • Mappature delle entità di conoscenza medica in terminologie standard

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

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

Includere vocabolari con licenza

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 tua 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 applicano queste limitazioni.

L'esempio seguente mostra come includere il vocabolario con licenza SNOMED CT nell' LicensedVocabularies oggetto per estrarre insight medici dal testo medico "Insulin regimen 5 units IV will be administered for diabetes.".

REST

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

  • PROJECT_ID: l'ID del tuo Google Cloud progetto
  • LOCATION: la località 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 di queste opzioni:

curl

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

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

Quindi esegui il comando seguente 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 il comando seguente nel terminale per creare o sovrascrivere questo file nella directory corrente:

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

Quindi esegui il comando seguente 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 con licenza SNOMEDCT_US e ICD10CM. L'output è il seguente e i codici del vocabolario con licenza richiesti sono in grassetto:

Estrarre l'output come bundle FHIR R4

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

Gli esempi riportati di seguito mostrano come estrarre insight medici dal testo medico "Insulin regimen 5 units IV will be administered for diabetes." in un bundle FHIR R4. Per ulteriori informazioni, vedi AlternativeOutputFormat oggetto.

REST

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

  • PROJECT_ID: l'ID del tuo Google Cloud progetto
  • LOCATION: la località 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 di queste opzioni:

curl

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

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

Quindi esegui il comando seguente 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 il comando seguente nel terminale per creare o sovrascrivere questo file nella directory corrente:

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

Quindi esegui il comando seguente 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:
  • Le citazioni di entità riconosciute con le entità e le relative relazioni in un formato simile all'output in Estrazione di entità, relazioni e attributi contestuali.
  • Una chiave fhirBundle contenente una risorsa FHIR Bundle formattata come stringa. Il bundle FHIR include tutte le entità, le citazioni di entità e le relazioni in formato JSON.