API Healthcare Natural Language

A API Healthcare Natural Language que faz parte da API Cloud Healthcare que usa modelos de linguagem natural para extrair informações de saúde do texto médico.

Neste guia conceitual, explicamos os conceitos básicos de uso da API Natural Language, incluindo:

  • Tipos de solicitações que você pode fazer para a API Natural Language
  • Como criar solicitações para a API Natural Language
  • Como lidar com as respostas da API Healthcare Natural Language

Visão geral

A API Natural Language extrai informações de saúde do texto médico. Essas informações de saúde podem incluir:

  • Conceitos médicos, como medicamentos, procedimentos e condições médicas
  • Recursos funcionais, como relacionamentos temporais, assuntos e avaliações de certeza
  • Relações, como efeitos colaterais e dosagem de medicamentos

Como escolher entre a API Healthcare Natural Language e a extração de entidade de Healthcare AutoML

A API Healthcare Natural Language oferece modelos pré-treinados de linguagem natural para extrair conceitos e relações médicas do texto médico. A API Healthcare Natural Language mapeia o texto em um conjunto predefinido de categorias de conhecimento médico.

A extração de entidade de Healthcare AutoML permite criar um modelo de extração de entidades personalizado treinado usando seu próprio texto médico anotado e suas próprias categorias. Para mais informações, consulte a Documentação de Extração de entidades de Healthcare AutoML.

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

Recursos da API Healthcare Natural Language

A API Natural Language inspeciona o texto médico de conceitos e relações médicas. Execute a análise de entidade usando o método analyzeEntities.

Campos da solicitação de análise de entidade

A API Natural Language é uma API REST e consiste em solicitações e respostas JSON. No exemplo a seguir, mostramos uma solicitação simples da API Healthcare Natural Language usando curl:

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

O exemplo de solicitação demonstra os seguintes campos:

  • nlpService contém o nome do recurso do serviço NLP.
  • documentContent contém os dados da solicitação, que consistem em texto médico. O tamanho máximo do texto médico é de 10.000 caracteres unicode.

Campos da resposta da análise de entidade

A análise de entidade retorna um conjunto de menções de conhecimento médico detectado, conceitos médicos e relações entre menções de conhecimento médico.

A seguir, é possível ver a resposta à solicitação de amostra nos campos de solicitação de análise de entidade:

{
  "entityMentions": [
    {
      "mentionId": "1",
      "type": "MEDICINE",
      "text": {
        "content": "Insulin regimen human"
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/C3537244"
        },
        {
          "entityId": "UMLS/C3714501"
        },
        {
          "entityId": "UMLS/C0021641"
        },
        {
          "entityId": "UMLS/C0795635"
        },
        {
          "entityId": "UMLS/C1533581"
        },
        {
          "entityId": "UMLS/C4721402"
        }
      ],
      "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/C0348016"
        }
      ],
      "confidence": 0.9180646538734436
    }
  ],
  "entities": [
    {
      "entityId": "UMLS/C1533581",
      "preferredTerm": "Therapeutic Insulin",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C581"
      ]
    },
    {
      "entityId": "UMLS/C0021641",
      "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/C0348016",
      "preferredTerm": "Intravenous",
      "vocabularyCodes": [
        "LNC/LA9437-0",
        "LNC/LP32453-0",
        "MTH/NOCODE",
        "NCI/C13346"
      ]
    },
    {
      "entityId": "UMLS/C3537244",
      "preferredTerm": "Insulins",
      "vocabularyCodes": [
        "MSH/D061385",
        "MTH/NOCODE"
      ]
    },
    {
      "entityId": "UMLS/C3714501",
      "preferredTerm": "Insulin Drug Class",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "VANDF/4021631"
      ]
    },
    {
      "entityId": "UMLS/C4721402",
      "preferredTerm": "INS protein, human",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C2271"
      ]
    },
    {
      "entityId": "UMLS/C0795635",
      "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
    }
  ]
}

O exemplo demonstra os seguintes campos de resposta:

  • entityMentions são ocorrências de entidades de conhecimento médico no texto médico de origem. Cada menção à entidade tem os seguintes campos:

    • mentionId é um identificador exclusivo de uma menção de entidade na resposta.
    • type é a categoria de conhecimento médico da menção à entidade.
    • text consiste em textContent, o trecho do texto médico que contém a referência à entidade, e offset, o local da entidade mencionado no texto médico de origem.
    • temporalAssessment especifica como a entidade vinculada está relacionada à menção da entidade: CURRENT, CLINICAL_HISTORY, FAMILY_HISTORY, UPCOMING ou ALLERGY.
    • certaintyAssessment é a negação ou qualificação do conceito médico: LIKELY, SOMEWHAT_LIKELY, UNCERTAIN, SOMEWHAT_UNLIKELY, UNLIKELY ou CONDITIONAL.
    • subject especifica o assunto relacionado ao conceito médico: PATIENT, FAMILY_MEMBER ou OTHER.
    • linkedEntities lista conceitos médicos que podem estar relacionados a essa menção à entidade. As entidades vinculadas especificam o entityId que vincula um conceito médico a uma entidade em entities.
  • entities descreve os conceitos médicos dos campos de entidades vinculadas. Cada entidade é descrita usando os seguintes campos:

    • entityId é o identificador exclusivo de linkedEntities.
    • preferredTerm é o termo preferido para o conceito médico.
    • vocabularyCodes são a representação do conceito médico em vocabulários médicos compatíveis.
  • relationships define relações direcionadas entre menções de entidades. Na amostra, o assunto da relação é "Insulin regimen human" e o objeto do relacionamento é "5 units". confidence indica a confiança do modelo na relação como um número entre 0 e 1.

Idiomas compatíveis

A API Healthcare Natural Language só é compatível com a extração de informações de saúde de textos em inglês.

Vocabulários médicos compatíveis

A API Healthcare Natural Language é compatível com os seguintes vocabulários médicos:

  • Foundational Model of Anatomy
  • Gene Ontology
  • HUGO Gene Nomenclature Committee
  • Human Phenotype Ontology
  • ICD-9-CM
  • Tópicos de saúde da MedlinePlus
  • MeSH
  • Metathesaurus Names
  • NCBI Taxonomy
  • NCI Thesaurus
  • National Drug File
  • Online Mendelian Inheritance in Man
  • RXNORM
  • LOINC
  • ICD-10 Procedure Coding System
  • ICD-10-CM (disponível apenas para usuários dos EUA)
  • SNOMED CT (disponível apenas para usuários dos EUA)

Categorias de conhecimento médico compatíveis

A API Healthcare Natural Language é compatível com as seguintes categorias de conhecimento médico:

Categoria de conhecimento médico Descrição
PROBLEM Condição médica, incluindo descobertas e doenças
SEVERITY Gravidade da condição médica
PROCEDURE Procedimento de diagnóstico ou tratamento
PROC_METHOD Método em que um procedimento é realizado
PROCEDURE_RESULT Resultados de um procedimento
MEDICINE Drogas ou outros tipos de preparação para tratamento ou prevenção de doenças
MED_DOSE Dose de medicamentos
MED_DURATION Duração da medicação
MED_FORM Características físicas do medicamento específico
MED_FREQUENCY Com que frequência o medicamento é usado
MED_ROUTE Local do corpo em que o medicamento é administrado
MED_STATUS Para um medicamento, o status pode ser um modificador, como "continuar", "iniciar", "reiniciar", "parar", "alternar", "aumentar", "diminuir".
MED_STRENGTH Quantidade de ingredientes ativos em uma dose do medicamento
MED_TOTALDOSE Quantidade de medicamentos para usar ao mesmo tempo
MED_UNIT Unidade de medida do ingrediente ativo em um medicamento
ANATOMICAL_STRUCTURE Parte complexa do corpo humano
LABORATORY_DATA Resultados do teste de uma amostra corporal
LAB_RESULT Descrição qualitativa dos dados do laboratório, como aumento, redução, positivo ou negativo
LAB_VALUE Valor de uma instância de dados do laboratório
LAB_UNIT Unidade de medida de um valor de laboratório
BODY_MEASUREMENT Uma medida normal do corpo humano, como um sinal vital
BM_RESULT Resultado da medição do corpo
BM_VALUE Valor de uma medida do corpo
BM_UNIT Unidade de medida corporal
MEDICAL_DEVICE Instrumento físico ou virtual
SUBSTANCE_ABUSE Abuso de uma substância psicológica
BODY_FUNCTION Função realizada pelo corpo humano
BF_RESULT Resultado da função corporal

Categorias de recursos funcionais suportados

A API Healthcare Natural Language pode inferir recursos funcionais ou atributos de uma entidade mencionada pelo contexto. Por exemplo, na declaração "A mãe de Kusuma tem diabetes", a condição "diabetes" tem o recurso funcional de subject FAMILY_MEMBER.

Relações temporais

As relações temporais, retornadas no campo temporalAssessment, descrevem como essa menção de entidade se refere ao assunto no temporalmente.

A API Healthcare Natural Language é compatível com as seguintes relações temporais:

  • CURRENT
  • CLINICAL_HISTORY
  • FAMILY_HISTORY
  • UPCOMING
  • ALLERGY

Assuntos

Os assuntos, retornados no campo subject, descrevem o indivíduo a que a entidade se refere.

A API Healthcare Natural Language é compatível com os seguintes assuntos:

  • PATIENT
  • FAMILY_MEMBER
  • OTHER

Avaliações de certeza

Algumas avaliações, retornadas no campo certaintyAssessment, descrevem a confiança do autor original da anotação. Por exemplo, se a anotação original contiver "O paciente tem uma dor de garganta", a avaliação de certeza retorna um valor LIKELY para indicar a confiança do autor da anotação na probabilidade do paciente ter apresentado uma dor de garganta. Se a nota original contiver "O paciente não tem dor de garganta", a avaliação de certeza retornará um valor UNLIKELY para indicar que o tomador de notas tem certeza de que é improvável que o paciente tenha um dor de garganta.

As avaliações de certeza podem ter um dos seguintes valores:

  • LIKELY
  • SOMEWHAT_LIKELY
  • UNCERTAIN
  • SOMEWHAT_UNLIKELY
  • UNLIKELY
  • CONDITIONAL

Relações compatíveis entre menções a entidades

A API Healthcare Natural Language pode inferir relações entre menções a entidades com base no texto médico associado. Na resposta, o assunto da relação é identificado por subjectId e o objeto da relação, por objectId.

A API Healthcare Natural Language é compatível com as seguintes relações entre menções a entidades:

Assunto Objeto
ANATOMICAL_STRUCTURE MEDICAL_DEVICE
BODY_FUNCTION BF_RESULT
BODY_MEASUREMENT BM_RESULT
BODY_MEASUREMENT BM_UNIT
BODY_MEASUREMENT BM_VALUE
LABORATORY_DATA LAB_RESULT
LABORATORY_DATA LAB_UNIT
LABORATORY_DATA LAB_VALUE
MEDICINE MED_DOSE
MEDICINE MED_DURATION
MEDICINE MED_FORM
MEDICINE MED_FREQUENCY
MEDICINE MED_ROUTE
MEDICINE MED_STATUS
MEDICINE MED_STRENGTH
MEDICINE MED_TOTALDOSE
MEDICINE MED_UNIT
PROBLEM ANATOMICAL_STRUCTURE
PROBLEM MEDICINE
PROBLEM PROCEDURE
PROBLEM SEVERITY
PROCEDURE ANATOMICAL_STRUCTURE
PROCEDURE PROC_METHOD
PROCEDURE PROCEDURE_RESULT
SUBSTANCE_ABUSE SEVERITY