Google Cloud CLI로 의료 데이터 저장

이 페이지에서는 Cloud Healthcare API와 Google Cloud CLI를 사용하여 다음 태스크를 완료하는 방법을 설명합니다.

  1. Cloud Healthcare API 데이터 세트를 만듭니다.
  2. 데이터 세트 내에 다음 데이터 스토어 중 하나를 만듭니다.
    • Digital Imaging and Communications in Medicine(DICOM) 저장소
    • Fast Healthcare Interoperability Resources(FHIR) 저장소
    • Health Level Seven International Version 2(HL7v2) 저장소
  3. DICOM, FHIR, HL7v2 데이터를 저장하고 DICOM 메타데이터를 봅니다.

한 가지 유형의 데이터 스토어로 작업하는 데 관심이 있는 경우 시작하기 전에데이터 세트 만들기의 단계별 안내를 완료한 후에 빠른 시작에서 해당 항목으로 곧장 건너뛰면 됩니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud CLI를 설치합니다.
  3. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init
  4. Google Cloud 프로젝트를 만들거나 선택합니다.

    • Google Cloud 프로젝트를 만듭니다.

      gcloud projects create PROJECT_ID

      PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

    • 만든 Google Cloud 프로젝트를 선택합니다.

      gcloud config set project PROJECT_ID

      PROJECT_ID를 Google Cloud 프로젝트 이름으로 바꿉니다.

  5. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  6. Cloud Healthcare API를 사용 설정합니다.

    gcloud services enable healthcare.googleapis.com
  7. Google 계정에 역할을 부여합니다. 다음 각 IAM 역할에 대해 다음 명령어를 한 번씩 실행합니다. roles/healthcare.datasetAdmin, roles/healthcare.fhirStoreAdmin, roles/healthcare.dicomStoreAdmin, roles/healthcare.hl7V2StoreAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
    • PROJECT_ID를 프로젝트 ID로 바꿉니다.
    • EMAIL_ADDRESS를 이메일 주소로 바꿉니다.
    • ROLE을 각 개별 역할로 바꿉니다.
  8. Google Cloud CLI를 설치합니다.
  9. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init
  10. Google Cloud 프로젝트를 만들거나 선택합니다.

    • Google Cloud 프로젝트를 만듭니다.

      gcloud projects create PROJECT_ID

      PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

    • 만든 Google Cloud 프로젝트를 선택합니다.

      gcloud config set project PROJECT_ID

      PROJECT_ID를 Google Cloud 프로젝트 이름으로 바꿉니다.

  11. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  12. Cloud Healthcare API를 사용 설정합니다.

    gcloud services enable healthcare.googleapis.com
  13. Google 계정에 역할을 부여합니다. 다음 각 IAM 역할에 대해 다음 명령어를 한 번씩 실행합니다. roles/healthcare.datasetAdmin, roles/healthcare.fhirStoreAdmin, roles/healthcare.dicomStoreAdmin, roles/healthcare.hl7V2StoreAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
    • PROJECT_ID를 프로젝트 ID로 바꿉니다.
    • EMAIL_ADDRESS를 이메일 주소로 바꿉니다.
    • ROLE을 각 개별 역할로 바꿉니다.

데이터 세트 만들기

데이터 세트에는 데이터 저장소가 포함되고 데이터 저장소에는 의료 데이터가 포함됩니다. 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 인스턴스 저장 및 보기

이 섹션에서는 다음 태스크를 완료하는 방법을 보여줍니다.

  1. DICOM 저장소를 만듭니다.
  2. 공개 Cloud Storage 버킷에서 DICOM 저장소로 DICOM 인스턴스를 가져옵니다.
  3. 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 인스턴스 가져오기

샘플 DICOM 데이터는 gs://gcs-public-data--healthcare-nih-chest-xray Cloud Storage 버킷에서 제공됩니다.

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: DICOM 인스턴스를 가져올 때 Cloud Healthcare API에서 제공하는 장기 실행 작업의 식별자입니다. 메서드 호출이 완료되는 데 시간이 오래 걸릴 수 있으면 장기 실행 작업이 반환됩니다. 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 트랜잭션을 지원하지 않습니다. 대신 Python을 통해 실행되는 Google의 DICOMweb 명령줄 도구를 사용할 수 있습니다. Google Cloud에서 Python을 설정하는 방법에 대한 자세한 내용은 Python 개발 환경 설정을 참조하세요.

DICOMweb 명령줄 도구를 사용하여 DICOM 인스턴스 메타데이터를 보려면 다음 단계를 완료합니다.

  1. Pip를 사용하여 DICOMweb 명령줄 도구를 설치합니다.

    pip install https://github.com/GoogleCloudPlatform/healthcare-api-dicomweb-cli/archive/v1.0.zip
    
  2. dcmweb 설치 위치를 포함하도록 PATH 변수를 업데이트합니다.

    export PATH="$HOME/bin:$PATH"
    
  3. 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 리소스 저장

이 섹션에서는 다음 태스크를 완료하는 방법을 보여줍니다.

  1. FHIR 저장소를 만듭니다.
  2. 공개 Cloud Storage 버킷에서 FHIR 저장소로 FHIR 리소스를 가져옵니다.

FHIR 저장소를 만듭니다.

FHIR 저장소는 데이터 세트 내에 존재하며 FHIR 리소스를 보관합니다. 다음 샘플에서는 FHIR 버전 R4를 사용하는 my-fhir-store라는 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 리소스 가져오기

샘플 FHIR 데이터는 gs://gcp-public-data--synthea-fhir-data-10-patients Cloud Storage 버킷에서 제공됩니다.

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: FHIR 리소스를 가져올 때 Cloud Healthcare API에서 제공하는 장기 실행 작업의 식별자입니다. 메서드 호출이 완료되는 데 시간이 오래 걸릴 수 있으면 장기 실행 작업이 반환됩니다. FHIR 리소스를 가져오는 데 약 1~2분 정도 걸립니다.
  • 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 메시지 저장

이 섹션에서는 다음 태스크를 완료하는 방법을 보여줍니다.

  1. HL7v2 저장소를 만듭니다.
  2. 공개 Cloud Storage 버킷에서 HL7v2 저장소로 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: HL7v2 메시지를 가져올 때 Cloud Healthcare API에서 제공하는 장기 실행 작업의 식별자입니다. 메서드 호출이 완료되는 데 시간이 오래 걸릴 수 있으면 장기 실행 작업이 반환됩니다. 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 프로젝트를 삭제하면 됩니다.

이 빠른 시작용으로 새 프로젝트를 만든 경우 프로젝트 삭제 단계를 수행합니다. 그렇지 않으면 데이터 세트 삭제 단계를 수행합니다.

선택사항: gcloud CLI에서 사용자 인증 정보를 취소합니다.

gcloud auth revoke

프로젝트 삭제

    Google Cloud 프로젝트를 삭제합니다.

    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
확인하려면 Y를 입력합니다. 다음과 비슷한 응답이 표시됩니다.

응답

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 적합성 명세를 참조하세요.

HL7v2