Usar etiquetas de recursos

En esta página se explica cómo añadir, ver, editar y quitar etiquetas en recursos de la API Cloud Healthcare. Las etiquetas son pares clave-valor que puede usar para organizar los recursos. Puedes asignar una etiqueta a recursos concretos y, después, filtrar los recursos en función de sus etiquetas. La información relacionada con las etiquetas se reenvía al sistema de facturación para que puedas desglosar los cargos de facturación por etiquetas.

Puedes usar etiquetas con los siguientes recursos de la API Cloud Healthcare:

  • Almacenes FHIR
  • Almacenes DICOM
  • Almacenes de consentimientos
  • Almacenes HL7v2
  • Mensajes HL7v2

Las etiquetas están disponibles mediante las APIs REST o RPC. Las etiquetas no están disponibles en la consola de Google Cloud ni en la CLI. Google Cloud

Requisitos de las etiquetas

Las etiquetas aplicadas a un recurso deben cumplir los siguientes requisitos:

  • Cada recurso puede tener varias etiquetas, hasta un máximo de 64.
  • Cada etiqueta debe ser un par clave-valor.
  • Las claves deben tener como mínimo 1 carácter y como máximo 63 caracteres, y no pueden estar vacías. Los valores pueden estar vacíos y tener una longitud máxima de 63 caracteres.
  • Las claves y los valores solo pueden contener letras minúsculas, caracteres numéricos, guiones bajos y guiones. Todos los caracteres deben usar la codificación UTF-8 y se pueden usar caracteres internacionales.
  • La clave de una etiqueta debe ser única en un solo recurso, pero puedes usar la misma clave con varios recursos.
  • Las claves deben empezar por una letra minúscula o un carácter internacional.

Cómo añadir una etiqueta

En el siguiente ejemplo se muestra cómo añadir una etiqueta a un almacén FHIR.

Por ejemplo, puedes usar la etiqueta para indicar que el almacén de FHIR se está usando como entorno de pruebas. La clave de la etiqueta sería environment y el valor, test.

curl

Para añadir una etiqueta a un almacén FHIR, haz una solicitud PATCH y especifica la siguiente información:

  • Nombre del conjunto de datos principal
  • Nombre del almacén FHIR
  • Datos de la etiqueta que se va a actualizar.
  • Una máscara de actualización definida como labels
  • Un token de acceso

En el siguiente ejemplo se muestra una solicitud PATCH que utiliza curl.

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'labels': {
        'KEY' : 'VALUE'
      }
     }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=labels"

Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "labels": {
    "KEY": "VALUE"
  }
}

PowerShell

Para añadir una etiqueta a un almacén FHIR, haz una solicitud PATCH y especifica la siguiente información:

  • Nombre del conjunto de datos principal
  • Nombre del almacén FHIR
  • Datos de la etiqueta que se va a actualizar.
  • Una máscara de actualización definida como labels
  • Un token de acceso

En el siguiente ejemplo se muestra una solicitud PATCH que utiliza Windows PowerShell.

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

Invoke-WebRequest `
  -Method Patch `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
      'labels': {
        'KEY': 'VALUE'
      }
  }" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=labels" | Select-Object -Expand Content

Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "labels": {
    "KEY": "VALUE"
  }
}

Añadir varias etiquetas

En el siguiente ejemplo se muestra cómo añadir varias etiquetas a un almacén FHIR. Para añadir varias etiquetas, sepáralas con comas.

Por ejemplo, puedes usar las etiquetas para indicar que el almacén de FHIR se está usando como entorno de prueba y que lo utiliza un equipo de investigación.

La clave de la primera etiqueta sería environment y el valor sería test. La clave de la segunda etiqueta sería team y el valor sería research.

curl

Para añadir varias etiquetas a un almacén FHIR, haz una solicitud PATCH y especifica la siguiente información:

  • Nombre del conjunto de datos principal
  • Nombre del almacén FHIR
  • Datos de la etiqueta que se van a actualizar como una lista de pares clave-valor separados por comas
  • Una máscara de actualización definida como labels
  • Un token de acceso

En el siguiente ejemplo se muestra una solicitud PATCH que utiliza curl.

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'labels': {
        'KEY_1' : 'VALUE_1',
        'KEY_2' : 'VALUE_2'
      }
     }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=labels"

Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "labels": {
    "KEY_1": "VALUE_1",
    "KEY_2": "VALUE_2"
  }
}

PowerShell

Para añadir una etiqueta a un almacén FHIR, haz una solicitud PATCH y especifica la siguiente información:

  • Nombre del conjunto de datos principal
  • Nombre del almacén FHIR
  • Datos de la etiqueta que se van a actualizar como una lista de pares clave-valor separados por comas
  • Una máscara de actualización definida como labels
  • Un token de acceso

En el siguiente ejemplo se muestra una solicitud PATCH que utiliza Windows PowerShell.

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

Invoke-WebRequest `
  -Method Patch `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
      'labels': {
        'KEY_1': 'VALUE_1',
        'KEY_2': 'VALUE_2'
      }
  }" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=labels" | Select-Object -Expand Content

Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "labels": {
    "KEY_1": "VALUE_1",
    "KEY_2": "VALUE_2"
  }
}

Listar y filtrar por etiquetas

Después de añadir una etiqueta a un recurso de la API Cloud Healthcare, puedes enumerar los recursos y filtrarlos por sus etiquetas. Por ejemplo, después de añadir una etiqueta a un almacén FHIR en los ejemplos anteriores, puedes enumerar los almacenes FHIR de tu conjunto de datos y filtrar por las etiquetas que hayas añadido.

Los mensajes HL7v2 tienen opciones de filtrado adicionales que puedes ver en projects.locations.datasets.hl7V2Stores.messages.list.

curl

Para ver los almacenes FHIR de un conjunto de datos y filtrarlos por una etiqueta, haz una solicitud GET y proporciona la siguiente información:

  • Nombre del conjunto de datos principal
  • Nombre del almacén FHIR
  • Cadena de consulta que contiene la información por la que se va a filtrar.
  • Un token de acceso

En el siguiente ejemplo se muestra una solicitud GET que utiliza curl.

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?filter=labels.KEY=VALUE"

Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

{
  "fhirStores": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
      "labels": {
        "KEY": "VALUE"
      }
    },
    {
      ...
    }
  ]
}

PowerShell

Para ver los almacenes FHIR de un conjunto de datos y filtrarlos por una etiqueta, haz una solicitud GET y proporciona la siguiente información:

  • Nombre del conjunto de datos principal
  • Nombre del almacén FHIR
  • Cadena de consulta que contiene la información por la que se va a filtrar.
  • Un token de acceso

En el siguiente ejemplo se muestra una solicitud GET que utiliza Windows PowerShell.

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

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?filter=labels.KEY=VALUE" | Select-Object -Expand Content

Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

{
  "fhirStores": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
      "labels": {
        "KEY": "VALUE"
      }
    },
    {
      ...
    }
  ]
}

Eliminar una etiqueta

Puedes quitar una etiqueta de dos formas:

  • Para quitar la etiqueta por completo, es decir, tanto la clave como el valor, utilice el patrón de lectura-modificación-escritura siguiendo estos pasos:

    1. Lee las etiquetas actuales llamando al método get() del recurso.
    2. Edita las etiquetas devueltas, ya sea mediante un editor de texto o de forma programática, para añadir o eliminar las claves aplicables y sus valores.
    3. Escribe las etiquetas actualizadas llamando al método patch() del recurso.
  • Para conservar la clave y quitar el valor, asigna el valor null.

curl

En el siguiente ejemplo se muestra cómo quitar una etiqueta asignando el valor null a la etiqueta.

Para quitar una etiqueta de un almacén FHIR, haz una solicitud PATCH y especifica la siguiente información:

  • Nombre del conjunto de datos principal
  • Nombre del almacén FHIR
  • Datos de la etiqueta que se va a actualizar.
  • Una máscara de actualización definida como labels
  • Un token de acceso

En el siguiente ejemplo se muestra una solicitud PATCH que utiliza curl.

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'labels': {
        'KEY' : null
      }
     }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=labels"

Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "labels": {
    "KEY":
  }
}

PowerShell

En el siguiente ejemplo se muestra cómo quitar una etiqueta asignando el valor null a la etiqueta.

Para quitar una etiqueta de un almacén FHIR, haz una solicitud PATCH y especifica la siguiente información:

  • Nombre del conjunto de datos principal
  • Nombre del almacén FHIR
  • Datos de la etiqueta que se va a actualizar.
  • Una máscara de actualización definida como labels
  • Un token de acceso

En el siguiente ejemplo se muestra una solicitud PATCH que utiliza 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 "{
      'labels': {
        'KEY': nullresource_manager_api
      }
  }" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=labels" | Select-Object -Expand Content

Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "labels": {
    "KEY":
  }
}

Siguientes pasos

Consulta otros usos de las etiquetas con la API de Cloud Resource Manager.