使用 Google Cloud CLI 存储医疗保健数据
本页面介绍如何使用 Cloud Healthcare API 和 Google Cloud CLI 来完成以下任务:
- 创建 Cloud Healthcare API 数据集。
- 在数据集内创建以下数据存储区之一:
- 医学数字图像和通信 (DICOM) 存储区
- 快速医疗互操作性资源 (FHIR) 存储区
- Health Level Seven International 版本 2 (HL7v2) 存储区
- 存储 DICOM、FHIR 和 HL7v2 数据,并查看 DICOM 元数据。
须知事项
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Enable the Cloud Healthcare API:
gcloud services enable healthcare.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/healthcare.datasetAdmin, roles/healthcare.fhirStoreAdmin, roles/healthcare.dicomStoreAdmin, roles/healthcare.hl7V2StoreAdmin
gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Enable the Cloud Healthcare API:
gcloud services enable healthcare.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/healthcare.datasetAdmin, roles/healthcare.fhirStoreAdmin, roles/healthcare.dicomStoreAdmin, roles/healthcare.hl7V2StoreAdmin
gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
创建数据集
数据集包含数据存储区,数据存储区包含医疗保健数据。 要使用 Cloud Healthcare API,您必须至少创建一个数据集。
以下示例展示了如何在 us-central1
区域中创建名为 my-dataset
的数据集。在本快速入门中,您将使用数据集创建 DICOM 存储区、FHIR 存储区和 HL7v2 存储区。
gcloud
使用 gcloud healthcare datasets create
命令创建数据集。
在使用下面的命令数据之前,请先进行以下替换:
PROJECT_ID
:您在准备工作中创建或选择的 Google Cloud 项目的 ID
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud healthcare datasets create my-dataset \ --project=PROJECT_ID \ --location=us-central1
Windows (PowerShell)
gcloud healthcare datasets create my-dataset ` --project=PROJECT_ID ` --location=us-central1
Windows (cmd.exe)
gcloud healthcare datasets create my-dataset ^ --project=PROJECT_ID ^ --location=us-central1
您应该会收到类似如下所示的响应:
响应
Create request issued for: [my-dataset] Created dataset [my-dataset].
如需完成本快速入门,请从以下部分中选择一个:
存储和查看 DICOM 实例
本部分介绍了如何完成以下任务:
- 创建 DICOM 存储区。
- 将 DICOM 实例从公共 Cloud Storage 存储桶导入 DICOM 存储区。
- 查看 DICOM 实例的元数据。
Cloud Healthcare API 实现了 DICOMweb 标准,用于存储和访问医学成像数据。
创建 DICOM 存储区
DICOM 存储区位于数据集内,包含 DICOM 实例。以下示例展示了如何创建一个名为 my-dicom-store
的 DICOM 存储区。
gcloud
使用 gcloud healthcare dicom-stores create
命令创建 DICOM 存储区。
在使用下面的命令数据之前,请先进行以下替换:
PROJECT_ID
:您在准备工作中创建或选择的 Google Cloud 项目的 ID
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud healthcare dicom-stores create my-dicom-store \ --project=PROJECT_ID \ --dataset=my-dataset \ --location=us-central1
Windows (PowerShell)
gcloud healthcare dicom-stores create my-dicom-store ` --project=PROJECT_ID ` --dataset=my-dataset ` --location=us-central1
Windows (cmd.exe)
gcloud healthcare dicom-stores create my-dicom-store ^ --project=PROJECT_ID ^ --dataset=my-dataset ^ --location=us-central1
您应该会收到类似如下所示的响应:
响应
Created dicomStore [my-dicom-store].
导入 DICOM 实例
gs://gcs-public-data--healthcare-nih-chest-xray
Cloud Storage 存储桶中提供了示例 DICOM 数据。
gcloud
使用 gcloud healthcare dicom-stores import
命令导入 gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm
实例。
在使用下面的命令数据之前,请先进行以下替换:
PROJECT_ID
:您在准备工作中创建或选择的 Google Cloud 项目的 ID
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud healthcare dicom-stores import gcs my-dicom-store \ --project=PROJECT_ID \ --dataset=my-dataset \ --location=us-central1 \ --gcs-uri=gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm
Windows (PowerShell)
gcloud healthcare dicom-stores import gcs my-dicom-store ` --project=PROJECT_ID ` --dataset=my-dataset ` --location=us-central1 ` --gcs-uri=gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm
Windows (cmd.exe)
gcloud healthcare dicom-stores import gcs my-dicom-store ^ --project=PROJECT_ID ^ --dataset=my-dataset ^ --location=us-central1 ^ --gcs-uri=gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm
在此输出中:
PROJECT_ID
、us-central1
、my-dataset
、my-dicom-store
:您在运行命令时提供的值OPERATION_ID
:Cloud Healthcare API 在导入 DICOM 实例时提供的长时间运行的操作的标识符。如果方法调用可能需要很长时间才能完成,系统就会返回长时间运行的操作。导入一个 DICOM 实例通常是一项快速操作,因此输出几乎会立即返回。
响应
Request issued for: [my-dicom-store] Waiting for operation [projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID] to complete...done. name: projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store
查看 DICOM 实例元数据
gcloud CLI 不支持 DICOMweb 事务,例如查看或检索实例。您可以改用 Google 的 DICOMweb 命令行工具,该工具使用 Python 运行。如需了解如何在 Google Cloud 上设置 Python,请参阅设置 Python 开发环境。
如需使用 DICOMweb 命令行工具查看 DICOM 实例元数据,请完成以下步骤:
使用 Pip 安装 DICOMweb 命令行工具:
pip install https://github.com/GoogleCloudPlatform/healthcare-api-dicomweb-cli/archive/v1.0.zip
更新
PATH
变量以包括dcmweb
安装位置:export PATH="$HOME/bin:$PATH"
查看 DICOM 实例的元数据:
dcmweb \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb \ search instances
将
PROJECT_ID
替换为您在准备工作中创建或选择的 Google Cloud 项目的 ID。输出如下所示。有关输出中的字段,请参阅 SOP 通用模块的属性。
[ { "00080016": { "Value": [ "1.2.840.10008.5.1.4.1.1.7" ], "vr": "UI" }, "00080018": { "Value": [ "1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480" ], "vr": "UI" }, "00080060": { "Value": [ "DX" ], "vr": "CS" }, "00100020": { "Value": [ "1" ], "vr": "LO" }, "00100040": { "Value": [ "M" ], "vr": "CS" }, "0020000D": { "Value": [ "1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604" ], "vr": "UI" }, "0020000E": { "Value": [ "1.3.6.1.4.1.11129.5.5.195628213694300498946760767481291263511724" ], "vr": "UI" }, "00280010": { "Value": [ 1024 ], "vr": "US" }, "00280011": { "Value": [ 1024 ], "vr": "US" }, "00280100": { "Value": [ 8 ], "vr": "US" } } ]
将 DICOM 实例导入 Cloud Healthcare API 并查看其元数据后,请继续清理,以避免您的 Google Cloud 帐号因本页中使用的资源产生费用。
如需了解后续步骤(例如如何使用 Cloud Healthcare API 中的 DICOMweb 标准搜索或检索 DICOM 映像),请参阅后续步骤。
存储 FHIR 资源
本部分介绍了如何完成以下任务:
- 创建 FHIR 存储区。
- 将 FHIR 资源从公共 Cloud Storage 存储桶导入 FHIR 存储区。
创建 FHIR 存储区
FHIR 存储区位于数据集内,包含 FHIR 资源。以下示例展示了如何创建一个名为 my-fhir-store
且使用 FHIR 版本 R4 的 FHIR 存储区。
gcloud
使用 gcloud healthcare fhir-stores create
命令创建 FHIR 存储区。
在使用下面的命令数据之前,请先进行以下替换:
PROJECT_ID
:您在准备工作中创建或选择的 Google Cloud 项目的 ID
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud healthcare fhir-stores create my-fhir-store \ --project=PROJECT_ID \ --dataset=my-dataset \ --location=us-central1 \ --version=R4
Windows (PowerShell)
gcloud healthcare fhir-stores create my-fhir-store ` --project=PROJECT_ID ` --dataset=my-dataset ` --location=us-central1 ` --version=R4
Windows (cmd.exe)
gcloud healthcare fhir-stores create my-fhir-store ^ --project=PROJECT_ID ^ --dataset=my-dataset ^ --location=us-central1 ^ --version=R4
您应该会收到类似如下所示的响应:
响应
Created fhirStore [my-fhir-store].
导入 FHIR 资源
gs://gcp-public-data--synthea-fhir-data-10-patients
Cloud Storage 存储桶中提供了示例 FHIR 数据。
gcloud
使用 gcloud healthcare fhir-stores import
命令在 gs://gcp-public-data--synthea-fhir-data-10-patients
中导入 FHIR 资源。
在使用下面的命令数据之前,请先进行以下替换:
PROJECT_ID
:您在准备工作中创建或选择的 Google Cloud 项目的 ID
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud healthcare fhir-stores import gcs my-fhir-store \ --project=PROJECT_ID \ --dataset=my-dataset \ --location=us-central1 \ --gcs-uri=gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/*.ndjson \ --content-structure=RESOURCE
Windows (PowerShell)
gcloud healthcare fhir-stores import gcs my-fhir-store ` --project=PROJECT_ID ` --dataset=my-dataset ` --location=us-central1 ` --gcs-uri=gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/*.ndjson ` --content-structure=RESOURCE
Windows (cmd.exe)
gcloud healthcare fhir-stores import gcs my-fhir-store ^ --project=PROJECT_ID ^ --dataset=my-dataset ^ --location=us-central1 ^ --gcs-uri=gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/*.ndjson ^ --content-structure=RESOURCE
在此输出中:
PROJECT_ID
、us-central1
、my-dataset
、my-fhir-store
:您在运行命令时提供的值OPERATION_ID
:Cloud Healthcare API 在导入 FHIR 资源时提供的长时间运行的操作的标识符。如果方法调用可能需要很长时间才能完成,系统就会返回长时间运行的操作。导入 FHIR 资源大约需要一两分钟的时间。R4
:FHIR 存储区版本
响应
Request issued for: [my-fhir-store] Waiting for operation [projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID] to complete...done. name: projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store version: R4
将 FHIR 资源导入 Cloud Healthcare API 后,请继续清理,以避免您的 Google Cloud 帐号因本页中使用的资源而产生费用。
如需了解后续步骤(例如如何查看和搜索 FHIR 资源),请参阅后续步骤。
存储 HL7v2 消息
本部分介绍了如何完成以下任务:
- 创建 HL7v2 存储区
- 将 HL7v2 消息从公共 Cloud Storage 存储桶导入 HL7v2 存储区。
Cloud Healthcare API 中的 HL7v2 实现与 HL7v2 标准一致。
创建 HL7v2 存储区
HL7v2 存储区位于数据集内,其中包含 HL7v2 消息。以下示例展示了如何创建一个名为 my-hl7v2-store
的 HL7v2 存储区。
gcloud
使用 gcloud healthcare hl7v2-stores create
命令创建 HL7v2 存储区。
在使用下面的命令数据之前,请先进行以下替换:
PROJECT_ID
:您在准备工作中创建或选择的 Google Cloud 项目的 ID
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud healthcare hl7v2-stores create my-hl7v2-store \ --project=PROJECT_ID \ --dataset=my-dataset \ --location=us-central1
Windows (PowerShell)
gcloud healthcare hl7v2-stores create my-hl7v2-store ` --project=PROJECT_ID ` --dataset=my-dataset ` --location=us-central1
Windows (cmd.exe)
gcloud healthcare hl7v2-stores create my-hl7v2-store ^ --project=PROJECT_ID ^ --dataset=my-dataset ^ --location=us-central1
您应该会收到类似如下所示的响应:
响应
Created hl7v2Store [my-hl7v2-store].
导入 HL7v2 消息
gcloud
使用 gcloud healthcare hl7v2-stores import
命令导入 gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson
HL7v2 消息。
在使用下面的命令数据之前,请先进行以下替换:
PROJECT_ID
:您在准备工作中创建或选择的 Google Cloud 项目的 ID
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud healthcare hl7v2-stores import gcs my-hl7v2-store \ --project=PROJECT_ID \ --dataset=my-dataset \ --location=us-central1 \ --gcs-uri=gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson
Windows (PowerShell)
gcloud healthcare hl7v2-stores import gcs my-hl7v2-store ` --project=PROJECT_ID ` --dataset=my-dataset ` --location=us-central1 ` --gcs-uri=gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson
Windows (cmd.exe)
gcloud healthcare hl7v2-stores import gcs my-hl7v2-store ^ --project=PROJECT_ID ^ --dataset=my-dataset ^ --location=us-central1 ^ --gcs-uri=gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson
在此输出中:
PROJECT_ID
、us-central1
、my-dataset
、my-hl7v2-store
:您在运行命令时提供的值OPERATION_ID
:Cloud Healthcare API 在导入 HL7v2 消息时提供的长时间运行的操作的标识符。如果方法调用可能需要很长时间才能完成,系统就会返回长时间运行的操作。导入一个 HL7v2 消息通常是一项快速操作,因此输出几乎会立即返回。
响应
Request issued for: [my-hl7v2-store] Waiting for operation [projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID] to complete...done. name: projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store
将 HL7v2 消息导入 Cloud Healthcare API 后,请继续清理,以避免您的 Google Cloud 帐号因本页中使用的资源产生费用。
如需了解后续步骤(例如如何查看 HL7v2 消息的内容),请参阅后续步骤。
清理
为避免因本页面中使用的资源导致您的 Google Cloud 帐号产生费用,请删除包含这些资源的 Google Cloud 项目。
如果您为此快速入门创建了新项目,请按照删除项目中的步骤操作。否则,请按照删除数据集中的步骤操作。
Optional: Revoke credentials from the gcloud CLI.
gcloud auth revoke
删除项目
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
删除数据集
如果您不再需要在本快速入门中创建的数据集,可以将其删除。删除数据集会永久删除该数据集以及其中包含的任何 FHIR、HL7v2 或 DICOM 存储区。
gcloud
使用 gcloud healthcare datasets delete
命令删除数据集。
在使用下面的命令数据之前,请先进行以下替换:
PROJECT_ID
:您在准备工作中创建或选择的 Google Cloud 项目的 ID
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud healthcare datasets delete my-dataset \ --project=PROJECT_ID \ --location=us-central1
Windows (PowerShell)
gcloud healthcare datasets delete my-dataset ` --project=PROJECT_ID ` --location=us-central1
Windows (cmd.exe)
gcloud healthcare datasets delete my-dataset ^ --project=PROJECT_ID ^ --location=us-central1
响应
You are about to delete dataset [my-dataset] Do you want to continue (Y/n)? Y Deleted dataset [my-dataset].
结果怎么样?
后续步骤
参阅以下部分,了解有关 Cloud Healthcare API 的一般信息以及如何使用本界面执行本快速入门中的任务:
DICOM
如需了解 Cloud Healthcare API 如何实现 DICOMweb 标准,请参阅 DICOM 一致性声明。
FHIR
如需了解 Cloud Healthcare API 如何实现 FHIR 标准,请参阅 FHIR 一致性声明。