Nesta página, você verá como ativar a API Healthcare Natural Language, configurar
permissões e chamar o analyzeEntities
método para extrair insights clínicos do texto médico.
Visão geral
A API Natural Language oferece soluções de aprendizado de máquina para gerar insights de textos médicos. A API Cloud Natural Language é parte da API Cloud Healthcare. Para uma visão geral, consulte a documentação conceitual da API Healthcare Natural Language.
A API Healthcare Natural Language analisa textos médicos não estruturados, como registros médicos ou pedidos de seguro. Em seguida, ela gera uma representação de dados estruturados das entidades de conhecimento médico armazenadas nessas fontes para análise e automação de downstream. Por exemplo, você pode:
- extrair informações sobre conceitos médicos, como doenças, medicamentos, dispositivos médicos, procedimentos e seus atributos clinicamente relevantes;
- mapear conceitos médicos para vocabulários médicos padrão, como RxNorm, ICD-10, MeSH e SNOMED CT (somente usuários dos EUA e do Reino Unido);
- extrair insights médicos de textos e integrá-los a produtos de análise de dados no Google Cloud
Locais disponíveis
A API Healthcare Natural Language está disponível nos seguintes locais:
| Nome do local | Descrição do local |
|---|---|
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 |
Ativar a API Healthcare Natural Language
Antes de começar a usar a API Healthcare Natural Language, é necessário ativar a API no seu Google Cloud projeto. É possível usar a API Healthcare Natural Language sem ativar ou usar recursos da API Cloud Healthcare.
Para ativar a API, conclua as seguintes etapas:
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
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 theresourcemanager.projects.createpermission. 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) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). 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_CREDENTIALSto 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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. 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) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). 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_CREDENTIALSto 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. Ative a API Cloud Healthcare.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Configurar permissões
Para usar os recursos deste guia, é necessário ter a permissão healthcare.nlpservice.analyzeEntities,
que está incluída no
papel healthcare.nlpServiceViewer.
Para atribuir esse papel, execute o
gcloud projects add-iam-policy-binding
comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:SERVICE_ACCOUNT_ID \ --role roles/healthcare.nlpServiceViewer
Extrair entidades, relações e atributos contextuais
A API Healthcare Natural Language usa modelos com reconhecimento de contexto para extrair entidades, relações e atributos contextuais médicos. Cada entidade de texto é extraída
para uma entrada de dicionário médico. Para extrair esse nível de insights médicos do
texto, use o
projects.locations.services.nlp.analyzeEntities
método.
Para incluir o vocabulário licenciado SNOMED CT nas menções de entidades, consulte Incluir vocabulários licenciados.
Para extrair insights clínicos do texto médico usando a API Healthcare Natural Language, faça uma solicitação POST e especifique o texto de destino no
campo
documentContent. O tamanho máximo do texto médico é de 20.000 caracteres Unicode.
Os exemplos a seguir mostram como usar o método analyzeEntities para extrair insights clínicos do texto médico "Insulin regimen 5 units IV will be administered for diabetes.".
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID: ID do seu Google Cloud projetoLOCATION: o local do conjunto de dados;
Corpo JSON da solicitação:
{
"documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF'
{
"documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}
EOFDepois execute o comando a seguir para enviar a solicitação 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
Salve o corpo da solicitação em um arquivo chamado request.json.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
@'
{
"documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}
'@ | Out-File -FilePath request.json -Encoding utf8Depois execute o comando a seguir para enviar a solicitação 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 a solicitação for bem-sucedida, a resposta incluirá as seguintes informações:
- Entidades de conhecimento médico reconhecidas
- Recursos funcionais
- Relações entre as entidades reconhecidas
- Atributos contextuais
- Mapeamentos de entidades de conhecimento médico em terminologias padrão
Para uma lista de tipos de entidade, atributos e relações compatíveis, consulte os recursos da API Healthcare Natural Language.
A resposta a seguir identifica a insulina terapêutica, a entidade com o código C581 no sistema de terminologia de NCI, como o medicamento. Ela também inclui a pontuação de confiança atribuída à resposta. Para mais
informações sobre os campos de resposta, consulte a
analyzeEntities
documentação.
Incluir vocabulários licenciados
Por padrão, as respostas da API Healthcare Natural Language incluem os vocabulários médicos compatíveis.
É possível incluir o vocabulário Termos Clínicos SNOMED, versão dos EUA (SNOMEDCT_US) na resposta se a solicitação atender aos seguintes requisitos:
- A solicitação de API é originada nos EUA.
- O campo
licensedVocabulariesno corpo da solicitação tem o valorSNOMEDCT_US.
Se você não precisar do vocabulário SNOMED CT, nenhuma dessas restrições será aplicada.
O exemplo a seguir mostra como incluir o vocabulário licenciado SNOMED CT no
LicensedVocabularies
objeto para extrair
insights clínicos do texto médico "Insulin regimen 5 units IV will be
administered for diabetes.".
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID: ID do seu Google Cloud projetoLOCATION: o local do conjunto de dados;
Corpo JSON da solicitação:
{
"documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
"licensedVocabularies": [
"SNOMEDCT_US",
"ICD10CM"
]
}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF'
{
"documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
"licensedVocabularies": [
"SNOMEDCT_US",
"ICD10CM"
]
}
EOFDepois execute o comando a seguir para enviar a solicitação 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
Salve o corpo da solicitação em um arquivo chamado request.json.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo 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 utf8Depois execute o comando a seguir para enviar a solicitação 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
SNOMEDCT_US e ICD10CM. A saída é a seguinte, e os códigos de vocabulário licenciados solicitados estão em negrito:
Extrair a saída como um pacote FHIR R4
É possível 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 recurso Condition FHIR
R4 e a entidade PROBLEM.ANATOMICAL_STRUCTURE para o elemento Condition.bodySite FHIR. Para uma lista de outros mapeamentos, consulte
Saída da API Healthcare Natural Language como um pacote FHIR.
Os exemplos a seguir mostram como extrair insights clínicos do texto médico "Insulin regimen 5 units IV will be administered for diabetes." em um pacote FHIR R4.
Para mais informações, consulte o
AlternativeOutputFormat
objeto.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID: ID do seu Google Cloud projetoLOCATION: o local do conjunto de dados;
Corpo JSON da solicitação:
{
"documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
"alternativeOutputFormat": "FHIR_BUNDLE"
}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF'
{
"documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
"alternativeOutputFormat": "FHIR_BUNDLE"
}
EOFDepois execute o comando a seguir para enviar a solicitação 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
Salve o corpo da solicitação em um arquivo chamado request.json.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
@'
{
"documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
"alternativeOutputFormat": "FHIR_BUNDLE"
}
'@ | Out-File -FilePath request.json -Encoding utf8Depois execute o comando a seguir para enviar a solicitação 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 relações delas em um formato semelhante à saída em Extrair entidades, relações e atributos contextuais.
- Uma chave
fhirBundleque 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.