Esta página explica como ativar a API Healthcare Natural Language, configurar
autorizações e chamar o método analyzeEntities
para extrair estatísticas médicas de texto médico.
Vista geral
A API Natural Language para cuidados de saúde oferece soluções de aprendizagem automática para obter estatísticas de texto médico. A API Healthcare Natural Language faz parte da Cloud Healthcare API. Para uma vista geral da API Healthcare Natural Language, consulte a documentação conceptual da API Healthcare Natural Language.
A API Natural Language Healthcare analisa texto médico não estruturado, como registos médicos ou reivindicações de seguros. Em seguida, gera uma representação de dados estruturados das entidades de conhecimentos médicos armazenadas nestas origens de dados para análise e automatização posteriores. Por exemplo, pode:
- Extrair informações sobre conceitos médicos, como doenças, medicamentos, dispositivos médicos, procedimentos e os respetivos atributos clinicamente relevantes
- Mapear conceitos médicos para vocabulários médicos padrão, como RxNorm, ICD-10, MeSH e SNOMED CT (apenas para utilizadores nos EUA e no Reino Unido)
- Obtenha estatísticas médicas a partir de texto e integre-as com produtos de estatísticas de dados no Google Cloud
Localizações disponíveis
A API Healthcare Natural Language está disponível nas seguintes localizações:
Nome da localização | Descrição da localização |
---|---|
asia-south1 |
Mumbai, Índia |
australia-southeast1 |
Sydney, Austrália |
europe-west2 |
Londres, Reino Unido |
europe-west4 |
Países Baixos |
northamerica-northeast1 |
Montreal, Canadá |
us-central1 |
Iowa, EUA |
Ative a API Healthcare Natural Language
Antes de começar a usar a API Healthcare Natural Language, tem de ativar a API para o seu Google Cloud projeto. Pode usar a API Healthcare Natural Language sem ativar nem usar funcionalidades da API Cloud Healthcare.
Para ativar a API, conclua os seguintes passos:
- 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.
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator
). Learn how to grant roles. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
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
. - Click Create and continue.
-
Grant the Project > Owner role to the service account.
To grant the role, find the Select a role list, then select Project > Owner.
- Click Continue.
-
Click Done to finish creating the service account.
Do not close your browser window. You will use it in the next step.
-
Ensure that you have the Create Service Accounts IAM role
(
-
Create a service account key:
- In the Google Cloud console, click the email address for the service account that you created.
- Click Keys.
- Click Add key, and then click Create new key.
- Click Create. A JSON key file is downloaded to your computer.
- Click Close.
-
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. -
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator
). Learn how to grant roles. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
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
. - Click Create and continue.
-
Grant the Project > Owner role to the service account.
To grant the role, find the Select a role list, then select Project > Owner.
- Click Continue.
-
Click Done to finish creating the service account.
Do not close your browser window. You will use it in the next step.
-
Ensure that you have the Create Service Accounts IAM role
(
-
Create a service account key:
- In the Google Cloud console, click the email address for the service account that you created.
- Click Keys.
- Click Add key, and then click Create new key.
- Click Create. A JSON key file is downloaded to your computer.
- Click Close.
-
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. -
Enable the Cloud Healthcare API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Configure as autorizações
Para usar as funcionalidades neste guia, tem de ter a
healthcare.nlpservice.analyzeEntities
autorização, que está incluída nahealthcare.nlpServiceViewer
função.Para atribuir esta função, execute o comando
gcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:SERVICE_ACCOUNT_ID \ --role roles/healthcare.nlpServiceViewer
Extraia entidades, relações e atributos contextuais
A API Healthcare Natural Language usa modelos sensíveis ao contexto para extrair entidades médicas, relações e atributos contextuais. Cada entidade de texto é extraída para uma entrada do dicionário médico. Para extrair este nível de estatísticas médicas de texto médico, use o método
projects.locations.services.nlp.analyzeEntities
.Para incluir o vocabulário licenciado SNOMED CT nas suas menções de entidades, consulte Inclua vocabulários licenciados.
Para extrair estatísticas médicas de texto médico através da API Healthcare Natural Language, faça um pedido
POST
e especifique o texto de destino no campodocumentContent
. O tamanho máximo do texto médico é de 20 000 carateres Unicode.Os exemplos seguintes mostram como usar o método
analyzeEntities
para extrair estatísticas médicas do texto médico "Vão ser administradas 5 unidades de regime de insulina por via intravenosa para a diabetes".REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: o ID do seu Google Cloud projetoLOCATION
: a localização do conjunto de dados
Corpo JSON do pedido:
{ "documentContent": "Insulin regimen 5 units IV will be administered for diabetes." }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes." } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes." } '@ | Out-File -FilePath request.json -Encoding utf8
Em seguida, execute o seguinte comando para enviar o seu pedido 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 ContentSe o pedido for bem-sucedido, a resposta inclui as seguintes informações:
- Entidades de conhecimento médico reconhecidas
- Funcionalidades funcionais
- Relações entre as entidades reconhecidas
- Atributos contextuais
- Mapeamentos das entidades de conhecimento médico em terminologias padrão
Para ver uma lista dos tipos de entidades, atributos e relações suportados, consulte as funcionalidades da API Natural Language para cuidados de saúde.
A resposta seguinte identifica a insulina terapêutica, a entidade com o código
C581
no sistema de terminologia do NCI, como o medicamento. A resposta também inclui a pontuação de confiança atribuída à resposta. Para mais informações sobre os campos de resposta, consulte aanalyzeEntities
documentação.Inclua vocabulários licenciados
Por predefinição, as respostas da Healthcare Natural Language API incluem os vocabulários médicos suportados.
Pode incluir o vocabulário SNOMED Clinical Terms, US Version (SNOMEDCT_US) na resposta se o seu pedido cumprir os seguintes requisitos:
- O pedido de API tem origem nos EUA.
- O campo
licensedVocabularies
no corpo do pedido tem o valorSNOMEDCT_US
.
Se não precisar do vocabulário SNOMED CT, nenhuma destas restrições se aplica.
O exemplo seguinte mostra como incluir o vocabulário licenciado SNOMED CT no objeto
LicensedVocabularies
para extrair estatísticas médicas do texto médico "O regime de insulina de 5 unidades IV vai ser administrado para a diabetes.".REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: o ID do seu Google Cloud projetoLOCATION
: a localização do conjunto de dados
Corpo JSON do pedido:
{ "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "licensedVocabularies": [ "SNOMEDCT_US", "ICD10CM" ] }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "licensedVocabularies": [ "SNOMEDCT_US", "ICD10CM" ] } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "licensedVocabularies": [ "SNOMEDCT_US", "ICD10CM" ] } '@ | Out-File -FilePath request.json -Encoding utf8
Em seguida, execute o seguinte comando para enviar o seu pedido 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 ContentSNOMEDCT_US
eICD10CM
. O resultado é o seguinte e os códigos de vocabulário licenciados pedidos estão em negrito:Extraia o resultado como um pacote FHIR R4
Pode extrair entidades de texto e mapeá-las para recursos e elementos FHIR R4. O pacote FHIR R4 resultante inclui todas as entidades, menções de entidades e relações no formato JSON. Por exemplo, a API Healthcare Natural Language mapeia a entidade base
PROBLEM
para o recursoCondition
FHIR R4 e a entidadePROBLEM.ANATOMICAL_STRUCTURE
para o elementoCondition.bodySite
FHIR. Para ver uma lista de outras associações, consulte o artigo Resultados da API Natural Language para cuidados de saúde como um pacote FHIR.Os exemplos seguintes mostram como extrair insights médicos do texto médico "Insulin regimen 5 units IV will be administered for diabetes." num pacote FHIR R4. Para mais informações, consulte o objeto
AlternativeOutputFormat
.REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: o ID do seu Google Cloud projetoLOCATION
: a localização do conjunto de dados
Corpo JSON do pedido:
{ "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "alternativeOutputFormat": "FHIR_BUNDLE" }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "alternativeOutputFormat": "FHIR_BUNDLE" } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "alternativeOutputFormat": "FHIR_BUNDLE" } '@ | Out-File -FilePath request.json -Encoding utf8
Em seguida, execute o seguinte comando para enviar o seu pedido 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- As menções de entidades reconhecidas com as entidades e as respetivas relações num formato semelhante ao resultado em Extrair entidades, relações e atributos contextuais.
- Uma chave
fhirBundle
que contém um recurso de pacote FHIR formatado como string. O pacote FHIR inclui todas as entidades, as menções de entidades e as relações no formato JSON.