En esta página, se explica cómo habilitar la API de Healthcare Natural Language, configurar los permisos y llamar al método analyzeEntities
para extraer estadísticas médicas a partir de texto médico.
Descripción general
La API de Healthcare Natural Language proporciona soluciones de aprendizaje automático para obtener estadísticas a partir de texto médico. La API de Healthcare Natural Language forma parte de la API de Cloud Healthcare. Para obtener una descripción general de la API de Healthcare Natural Language, consulta la documentación conceptual de la API de Healthcare Natural Language.
La API de Healthcare Natural Language analiza texto médico no estructurado, como registros médicos o reclamos de seguros. Luego, genera una representación de datos estructurados de las entidades de conocimiento médico almacenadas en estas fuentes de datos para el análisis y la automatización posteriores. Por ejemplo, puede hacer lo siguiente:
- Extrae información sobre conceptos médicos, como enfermedades, medicamentos, dispositivos médicos, procedimientos y sus atributos clínicos relevantes.
- Asigna conceptos médicos a vocabularios estándar como RxNorm, ICD-10, MeSH y SNOMED CT (solo usuarios de EE.UU.)
- Obtén estadísticas médicas a partir de texto y, luego, intégralas a productos de análisis de datos en Google Cloud
Ubicaciones disponibles
La API de Healthcare Natural Language está disponible en las siguientes ubicaciones:
Nombre de la ubicación | Descripción de la ubicación |
---|---|
asia-south1 |
Bombay, India |
australia-southeast1 |
Sídney, Australia |
europe-west2 |
Londres, Reino Unido |
europe-west4 |
Países Bajos |
northamerica-northeast1 |
Montreal, Canadá |
us-central1 |
Iowa, EE.UU. |
Habilita la API de Healthcare Natural Language
Antes de comenzar a usar la API de Healthcare de Natural Language, debes habilitarla para tu proyecto de Google Cloud. Puedes usar la API de Healthcare Natural Language sin habilitar ni usar las funciones de la API de Cloud Healthcare.
Para habilitar la API, completa los siguientes pasos:
- 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Create a service account:
-
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.
-
-
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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Create a service account:
-
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.
-
-
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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Configura los permisos
Para usar las funciones de esta guía, debes tener el permiso healthcare.nlpservice.analyzeEntities
, que se incluye en la función healthcare.nlpServiceViewer
.
Para asignar esta función, ejecuta el comando gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:SERVICE_ACCOUNT_ID \ --role roles/healthcare.nlpServiceViewer
Extrae entidades, relaciones y atributos contextuales
La API de Healthcare Natural Language usa modelos contextuales para extraer entidades médicas, relaciones y atributos contextuales. Cada entidad de texto se extrae a una entrada de diccionario médico. Para extraer este nivel de estadísticas médicas a partir de texto médico, usa el método projects.locations.services.nlp.analyzeEntities
.
Para incluir el vocabulario con licencia de SNOMED CT en las menciones de tu entidad, haz lo siguiente: consulta Cómo incluir vocabularios con licencia.
Para extraer estadísticas médicas a partir de textos médicos con la API de Healthcare Natural Language, haz una solicitud POST
y especifica el texto de destino en
el
documentContent
. El tamaño máximo del texto médico es de 20,000 caracteres Unicode.
En los siguientes ejemplos, se muestra cómo usar el método analyzeEntities
para extraer
información médica del texto médico “El régimen de insulina 5 unidades IV será
para la diabetes”.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
El ID de tu proyecto de Google Cloud.LOCATION
: La ubicación del conjunto de datos
Cuerpo JSON de la solicitud:
{ "documentContent": "Insulin regimen 5 units IV will be administered for diabetes." }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
cat > request.json << 'EOF' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes." } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
@' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes." } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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
Si la solicitud es exitosa, la respuesta incluirá la siguiente información:
- Entidades de conocimiento médico reconocidas
- Características funcionales
- Relaciones entre las entidades reconocidas
- Atributos contextuales
- Asignaciones de las entidades de conocimiento médico a terminologías estándares
Para obtener una lista de los tipos de entidades, atributos y relaciones admitidos, consulta la Funciones de la API de Healthcare Natural Language.
La siguiente respuesta identifica la insulina terapéutica, la entidad que tiene
el código C581
en el sistema de terminología de NCI, como el medicamento. La respuesta también incluye la puntuación de confianza asignada a la respuesta. Para obtener más información sobre los campos de respuesta, consulta la documentación de analyzeEntities
.
Incluir vocabularios con licencia
De forma predeterminada, las respuestas de la API de Healthcare Natural Language incluyen lo siguiente: vocabularios médicos compatibles.
Puedes incluir el Condiciones clínicas de SNOMED, versión para EE.UU. (SNOMEDCT_US) vocabulario en la respuesta si tu solicitud cumple con los siguientes requisitos:
- La solicitud a la API se origina en EE.UU.
- El campo
licensedVocabularies
en el cuerpo de la solicitud tiene el valorSNOMEDCT_US
.
Si no necesitas el vocabulario de SNOMED, ninguno de estos se aplican restricciones.
En el siguiente ejemplo, se muestra cómo incluir el vocabulario con licencia de SNOMED CT en el
LicensedVocabularies
objeto para extraer
información médica del texto médico “El régimen de insulina 5 unidades IV será
para la diabetes”.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
El ID de tu proyecto de Google Cloud.LOCATION
: La ubicación del conjunto de datos
Cuerpo JSON de la solicitud:
{ "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "licensedVocabularies": [ "SNOMEDCT_US", "ICD10CM" ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
cat > request.json << 'EOF' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "licensedVocabularies": [ "SNOMEDCT_US", "ICD10CM" ] } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
@' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "licensedVocabularies": [ "SNOMEDCT_US", "ICD10CM" ] } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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
y ICD10CM
. El resultado
es el siguiente, y los códigos de vocabulario con licencia solicitados están en negrita:
Extrae el resultado como un paquete de FHIR R4
Puedes extraer entidades de textos y asignarlas a recursos de FHIR R4
o de terceros. El paquete FHIR R4 resultante incluye todas las entidades, las menciones de entidades,
y relaciones en formato JSON. Por ejemplo, el
La API de Healthcare Natural Language asigna la entidad base PROBLEM
al FHIR Condition
recurso R4 y la entidad PROBLEM.ANATOMICAL_STRUCTURE
al
Condition.bodySite
elemento de FHIR. Para obtener una lista de otras asignaciones, consulta
Resultado de la API de Healthcare Natural Language como paquete de FHIR.
En los siguientes ejemplos, se muestra cómo extraer
información médica del texto médico “El régimen de insulina 5 unidades IV será
para la diabetes". en un paquete de FHIR R4.
Para obtener más información, consulta
AlternativeOutputFormat
.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
El ID de tu proyecto de Google Cloud.LOCATION
: La ubicación del conjunto de datos
Cuerpo JSON de la solicitud:
{ "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "alternativeOutputFormat": "FHIR_BUNDLE" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
cat > request.json << 'EOF' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "alternativeOutputFormat": "FHIR_BUNDLE" } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
@' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "alternativeOutputFormat": "FHIR_BUNDLE" } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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
- La entidad reconocida menciona con las entidades y sus relaciones en un formato similar al resultado en Extrae entidades, relaciones y atributos contextuales.
- Una clave
fhirBundle
que contiene un recurso de paquete de FHIR con formato de cadena. El paquete de FHIR incluye todas las entidades, las menciones de entidades y las relaciones de JSON.