本页面介绍了如何添加、查看、修改和移除 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": } }
后续步骤
阅读了解 Resource Manager API 标签的其他用途。