使用资源标签

本页面介绍了如何添加、查看、修改和移除 Cloud Healthcare API 资源上的标签。标签是可用于整理资源的键值对。您可以将标签附加到各个资源,然后根据其标签过滤资源。标签的相关信息将转发到结算系统,因此您可以根据标签细分结算费用

您可以将标签用于以下 Cloud Healthcare API 资源:

  • FHIR 存储区
  • DICOM 存储区
  • HL7v2 存储区
  • HL7v2 信息

您可以通过 REST 或 RPC API 使用标签。标签在 gcloud 命令行工具或 Google Cloud Console 中不可用。

标签要求

应用于资源的标签必须符合以下要求:

  • 每项资源可以有多个标签,但不能超过 64 个。
  • 每个标签都必须采用键值对形式。
  • 键至少有 1 个字符,最多有 63 个字符,且不能为空。值可以为空,且最多包含 63 个字符。
  • 键和值只能包含小写字母、数字字符、下划线和短划线。所有字符必须使用 UTF-8 编码,允许使用国际字符。
  • 标签的键在单个资源中必须是唯一的,但您可以将同一键用于多个资源。
  • 键必须以小写字母或国际字符开头。

添加标签

以下示例展示了如何向现有 FHIR 存储区添加标签。

例如,您可以使用该标签来表明 FHIR 存储区正用作测试环境。标签的键为 environment,值为 test

curl 命令

要向现有 FHIR 存储区添加标签,请发出 PATCH 请求并指定以下信息:

  • 父数据集的名称
  • FHIR 存储区的名称
  • 要更新的标签数据
  • 更新掩码设置为 labels
  • 访问令牌

以下示例显示了使用 curlPATCH 请求。

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"

如果请求成功,服务器将以 JSON 格式返回响应:

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

PowerShell

要向现有 FHIR 存储区添加标签,请发出 PATCH 请求并指定以下信息:

  • 父数据集的名称
  • FHIR 存储区的名称
  • 要更新的标签数据
  • 更新掩码设置为 labels
  • 访问令牌

以下示例显示了使用 Windows PowerShell 的 PATCH 请求。

$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

如果请求成功,服务器将以 JSON 格式返回响应:

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

添加多个标签

以下示例展示了如何向现有 FHIR 存储区添加多个标签。要添加多个标签,请用逗号分隔每个标签。

例如,您可以使用标签来表明 FHIR 存储区正用作测试环境,并且该数据已用于研究团队。

第一个标签的键为 environment,值为 test。第二个标签的键为 team,值为 research

curl 命令

要向现有 FHIR 存储区添加多个标签,请发出 PATCH 请求并指定以下信息:

  • 父数据集的名称
  • FHIR 存储区的名称
  • 将要更新的数据标注为以逗号分隔的键值对列表
  • 更新掩码设置为 labels
  • 访问令牌

以下示例显示了使用 curlPATCH 请求。

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"

如果请求成功,服务器将以 JSON 格式返回响应:

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

PowerShell

要向现有 FHIR 存储区添加标签,请发出 PATCH 请求并指定以下信息:

  • 父数据集的名称
  • FHIR 存储区的名称
  • 将要更新的数据标注为以逗号分隔的键值对列表
  • 更新掩码设置为 labels
  • 访问令牌

以下示例显示了使用 Windows PowerShell 的 PATCH 请求。

$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

如果请求成功,服务器将以 JSON 格式返回响应:

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

按标签列出和过滤

向 Cloud Healthcare API 资源添加标签后,您可以列出资源并按其标签进行过滤。例如,在之前的示例中向 FHIR 存储区添加标签后,您可以列出数据集中的 FHIR 存储区,并按添加的标签进行过滤。

HL7v2 信息还有其他过滤选项均可在 projects.locations.datasets.hl7V2Stores.messages.list 中查看。

curl 命令

要查看数据集中的 FHIR 存储区并按标签进行过滤,请发出 GET 请求并提供以下信息:

  • 父数据集的名称
  • FHIR 存储区的名称
  • 查询字符串包含作为过滤依据的信息
  • 访问令牌

以下示例显示了使用 curlGET 请求。

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"

如果请求成功,服务器将以 JSON 格式返回响应:

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

PowerShell

要查看数据集中的 FHIR 存储区并按标签进行过滤,请发出 GET 请求并提供以下信息:

  • 父数据集的名称
  • FHIR 存储区的名称
  • 查询字符串包含作为过滤依据的信息
  • 访问令牌

以下示例显示了使用 Windows PowerShell 的 GET 请求。

$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

如果请求成功,服务器将以 JSON 格式返回响应:

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

移除标签

您可以通过以下两种方式移除标签:

  • 要完全移除标签(即同时移除键和值),请使用读-修改-写模式,完成以下步骤:

    1. 通过调用资源的 get() 方法读取当前标签。
    2. 通过文本编辑器或以编程方式修改返回的标签,以添加或移除任何适用的键及其值。
    3. 通过调用资源的 patch() 方法写入更新后的标签。
  • 要保留键并移除值,请将值设置为 null

curl 命令

以下示例展示了如何通过将标签的值设置为 null 来移除标签。

要从现有 FHIR 存储区中移除标签,请发出 PATCH 请求并指定以下信息:

  • 父数据集的名称
  • FHIR 存储区的名称
  • 要更新的标签数据
  • 更新掩码设置为 labels
  • 访问令牌

以下示例显示了使用 curlPATCH 请求。

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"

如果请求成功,服务器将以 JSON 格式返回响应:

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

PowerShell

以下示例展示了如何通过将标签的值设置为 null 来移除标签。

要从现有 FHIR 存储区中移除标签,请发出 PATCH 请求并指定以下信息:

  • 父数据集的名称
  • FHIR 存储区的名称
  • 要更新的标签数据
  • 更新掩码设置为 labels
  • 访问令牌

以下示例显示了使用 Windows PowerShell 的 PATCH 请求。

$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

如果请求成功,服务器将以 JSON 格式返回响应:

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

后续步骤

阅读了解 Resource Manager API 标签的其他用途