本页面介绍了如何添加、查看、修改和移除 Cloud Healthcare API 资源上的标签。标签是可用于整理资源的键值对。您可以将标签附加到各个资源,然后根据其标签过滤资源。标签的相关信息将转发到结算系统,因此您可以根据标签细分结算费用。
您可以将标签用于以下 Cloud Healthcare API 资源:
- FHIR 存储区
 - DICOM 存储区
 - 许可存储区
 - HL7v2 存储区
 - HL7v2 信息
 
您可以通过 REST 或 RPC API 使用标签。标签在 Google Cloud CLI 或 Google Cloud 控制台中不可用。
标签要求
应用于资源的标签必须符合以下要求:
- 每项资源可以有多个标签,但不能超过 64 个。
 - 每个标签都必须采用键值对形式。
 - 键至少有 1 个字符,最多有 63 个字符,且不能为空。值可以为空,且最多包含 63 个字符。
 - 键和值只能包含小写字母、数字字符、下划线和短划线。所有字符必须使用 UTF-8 编码,允许使用国际字符。
 - 标签的键在单个资源中必须是唯一的,但您可以将同一键用于多个资源。
 - 键必须以小写字母或国际字符开头。
 
添加标签
以下示例展示了如何向现有 FHIR 存储区添加标签。
例如,您可以使用该标签来表明 FHIR 存储区正用作测试环境。标签的键为 environment,值为 test。
curl
要向现有 FHIR 存储区添加标签,请发出 PATCH 请求并指定以下信息:
- 父数据集的名称
 - FHIR 存储区的名称
 - 要更新的标签数据
 - 更新掩码设置为 
labels - 访问令牌
 
以下示例展示了使用 curl 的 PATCH 请求。
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 - 访问令牌
 
以下示例展示了使用 curl 的 PATCH 请求。
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 存储区的名称
 - 查询字符串包含作为过滤依据的信息
 - 访问令牌
 
以下示例展示了使用 curl 的 GET 请求。
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"
      }
    },
    {
      ...
    }
  ]
}
移除标签
您可以通过以下两种方式移除标签:
要完全移除标签(即同时移除键和值),请使用读-修改-写模式,完成以下步骤:
- 通过调用资源的 
get()方法读取当前标签。 - 通过文本编辑器或以编程方式修改返回的标签,以添加或移除任何适用的键及其值。
 - 通过调用资源的 
patch()方法写入更新后的标签。 
- 通过调用资源的 
 要保留键并移除值,请将值设置为
null。
curl
以下示例展示了如何通过将标签的值设置为 null 来移除标签。
要从现有 FHIR 存储区中移除标签,请发出 PATCH 请求并指定以下信息:
- 父数据集的名称
 - FHIR 存储区的名称
 - 要更新的标签数据
 - 更新掩码设置为 
labels - 访问令牌
 
以下示例展示了使用 curl 的 PATCH 请求。
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":
  }
}
后续步骤
阅读了解 Cloud Resource Manager API 标签的其他用途。