Esta página foi traduzida pela API Cloud Translation.
Switch to English

Como usar a API Healthcare Natural Language

Nesta página, você verá como ativar a API Healthcare Natural Language, configurar permissões e chamar o método analyzeEntities 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;
  • Mapeie conceitos médicos para vocabulários padrão de saúde, como RxNorm, CID-10, ISH e SNOMED CT (somente usuários dos EUA)
  • 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
us-central1 Iowa, EUA
europe-west4 Países Baixos

Como ativar a API Healthcare Natural Language

Antes de começar a usar a API Healthcare Natural Language, é necessário ativar a API no projeto do Google Cloud. É 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:

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  4. Crie uma conta de serviço:

    1. No Console do Cloud, acesse a página Criar conta de serviço.

      Acesse Criar conta de serviço
    2. Selecione um projeto.
    3. No campo Nome da conta de serviço, insira um nome. O Console do Cloud preenche o campo ID da conta de serviço com base nesse nome.

      No campo Descrição da conta de serviço, insira uma descrição. Por exemplo, Service account for quickstart.

    4. Clique em Criar.
    5. Clique no campo Selecionar um papel.

      Em Acesso rápido, clique em Básico e em Proprietário.

    6. Clique em Continuar.
    7. Clique em Concluído para terminar a criação da conta de serviço.

      Não feche a janela do navegador. Você vai usá-lo na próxima etapa.

  5. Crie uma chave de conta de serviço:

    1. No Console do Cloud, clique no endereço de e-mail da conta de serviço que você criou.
    2. Clique em Chaves.
    3. Clique em Adicionar chave e em Criar nova chave.
    4. Clique em Criar. O download de um arquivo de chave JSON é feito no seu computador.
    5. Clique em Fechar.
  6. Defina a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS como o caminho do arquivo JSON que contém a chave da conta de serviço. Essa variável só se aplica à sessão de shell atual. Dessa maneira, se você abrir uma nova sessão, defina a variável novamente.

  7. Ative a Cloud Healthcare API.

    Ative a API

  8. Instale e inicialize o SDK do Cloud..

Configurar permissões

Para usar os recursos deste guia, é necessário ter a permissão healthcare.nlpservce.analyzeEntities, que está incluída no papel healthcare.nlpServiceViewer.

Para atribuir esse papel, 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

Como 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 método projects.locations.services.nlp.analyzeEntities.

Para extrair insights clínicos do texto médico usando a API Healthcare Natural Language, faça uma solicitação POST e, nela, especifique as seguintes informações:

  • O nome do serviço pai, incluindo o ID e o local do projeto
  • O texto do destino. O tamanho máximo é de 10.000 caracteres unicode.

curl

O exemplo a seguir mostra uma solicitação POST usando curl:

curl -X POST \
   -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
   -H "Content-Type:application/json" \
   --data "{
    'nlpService':'projects/PROJECT_ID/locations/LOCATION/services/nlp',
    'documentContent':'Insulin regimen human 5 units IV administered.'
   }" \
   "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

PowerShell

O exemplo a seguir mostra uma solicitação POST usando o Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
    'nlpService':'projects/PROJECT_ID/locations/LOCATION/services/nlp',
    'documentContent':'Insulin regimen human 5 units IV administered.'
   }" `
   -Uri "https://healthcare.googleapis.com/v1beta1/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 a documentação conceitual da API Healthcare Natural Language.

A seguinte resposta para os exemplos anteriores identificou a insulina terapêutica, entidade com o código C581 no sistema de terminologia do NCI, como 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 documentação analyzeEntities.

{
  "entityMentions": [
    {
      "mentionId": "1",
      "type": "MEDICINE",
      "text": {
        "content": "Insulin regimen human"
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/3537244"
        },
        {
          "entityId": "UMLS/3714501"
        },
        {
          "entityId": "UMLS/21641"
        },
        {
          "entityId": "UMLS/795635"
        },
        {
          "entityId": "UMLS/1533581"
        },
        {
          "entityId": "UMLS/4721402"
        }
      ],
      "temporalAssessment": {
        "value": "CURRENT",
        "confidence": 0.87631082534790039
      },
      "certaintyAssessment": {
        "value": "LIKELY",
        "confidence": 0.9999774694442749
      },
      "subject": {
        "value": "PATIENT",
        "confidence": 0.99999970197677612
      },
      "confidence": 0.41636556386947632
    },
    {
      "mentionId": "2",
      "type": "MED_DOSE",
      "text": {
        "content": "5 units",
        "beginOffset": 22
      },
      "confidence": 0.56910794973373413
    },
    {
      "mentionId": "3",
      "type": "MED_ROUTE",
      "text": {
        "content": "IV",
        "beginOffset": 30
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/348016"
        }
      ],
      "confidence": 0.9180646538734436
    }
  ],
  "entities": [
    {
      "entityId": "UMLS/1533581",
      "preferredTerm": "Therapeutic Insulin",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C581"
      ]
    },
    {
      "entityId": "UMLS/21641",
      "preferredTerm": "Insulin",
      "vocabularyCodes": [
        "FMA/83365",
        "LNC/LA15805-7",
        "LNC/LP14676-8",
        "LNC/LP16325-0",
        "LNC/LP32542-0",
        "LNC/LP70329-5",
        "LNC/MTHU002108",
        "LNC/MTHU019392",
        "MSH/D007328",
        "MTH/NOCODE"
      ]
    },
    {
      "entityId": "UMLS/348016",
      "preferredTerm": "Intravenous",
      "vocabularyCodes": [
        "LNC/LA9437-0",
        "LNC/LP32453-0",
        "MTH/NOCODE",
        "NCI/C13346"
      ]
    },
    {
      "entityId": "UMLS/3537244",
      "preferredTerm": "Insulins",
      "vocabularyCodes": [
        "MSH/D061385",
        "MTH/NOCODE"
      ]
    },
    {
      "entityId": "UMLS/3714501",
      "preferredTerm": "Insulin Drug Class",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "VANDF/4021631"
      ]
    },
    {
      "entityId": "UMLS/4721402",
      "preferredTerm": "INS protein, human",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C2271"
      ]
    },
    {
      "entityId": "UMLS/795635",
      "preferredTerm": "insulin, regular, human",
      "vocabularyCodes": [
        "LNC/LP17001-6",
        "MSH/D061386",
        "MTH/NOCODE",
        "NCI/C29125",
        "RXNORM/253182",
        "VANDF/4017559",
        "VANDF/4017569",
        "VANDF/4019786"
      ]
    }
  ],
  "relationships": [
    {
      "subjectId": "1",
      "objectId": "2",
      "confidence": 0.53775161504745483
    },
    {
      "subjectId": "1",
      "objectId": "3",
      "confidence": 0.95007365942001343
    }
  ]
}