빠른 시작: curl 또는 PowerShell 사용

이 페이지에서는 curl 또는 Windows PowerShell과 함께 Cloud Healthcare API를 사용하여 다음 태스크를 완료하는 방법을 설명합니다.

  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 저장소에 특정 유형의 의료 데이터를 저장하고 검사합니다.

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

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

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

    API 사용 설정

  5. Cloud SDK 설치 및 초기화
  6. gcloud 명령줄 도구를 사용하여 인증 환경을 테스트합니다. 다음 명령어가 오류 없이 텍스트 문자열을 출력하는지 확인합니다.
    gcloud auth application-default print-access-token

: 명령어 프롬프트가 필요하세요? Google Cloud Shell을 사용해 보세요. Cloud Shell 명령줄 환경에는 Cloud SDK가 이미 포함되어 있으므로 별도로 설치할 필요가 없습니다. (또한 Cloud SDK는 Compute Engine 가상 머신에 사전 설치된 상태로 제공됩니다.)

데이터 세트 만들기

데이터 세트에는 데이터 저장소가 포함되고 데이터 저장소에는 의료 데이터가 포함됩니다. Cloud Healthcare API를 사용하려면 적어도 하나 이상의 데이터 세트를 만들어야 합니다.

datasets.create 메서드를 사용하여 데이터 세트를 만듭니다.

curl

curl -X POST \
    --data "" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets?datasetId=my-dataset"

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

응답은 다음과 같습니다. 응답에는 장기 실행 작업의 식별자가 포함됩니다. 메서드 호출을 완료하는 데 상당한 시간이 걸릴 수 있는 장기 실행 작업은 반환됩니다.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID",
}

이 출력에서 각 항목의 의미는 다음과 같습니다.

  • PROJECT_ID, us-central1, my-dataset: 메서드 호출에서 제공한 값입니다.
  • OPERATION_ID: Cloud Healthcare API로 제공된 장기 실행 작업의 식별자입니다.

작업 상태를 추적하려면 operations.get 메서드를 사용합니다.

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID"

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
  • OPERATION_ID: 장기 실행 작업에서 반환된 ID입니다.

출력은 다음과 같습니다. 응답에 "done": true가 포함되었으면 작업이 완료된 것입니다. 그렇지 않으면 작업이 아직 실행 중입니다. 잠시 기다린 후 operations.get 메서드를 다시 호출하세요.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1.dataset.DatasetService.CreateDataset",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.dataset.Dataset",
    "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset"
  }
}

PowerShell

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets?datasetId=my-dataset" | Select-Object -Expand Content

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

응답은 다음과 같습니다. 응답에는 장기 실행 작업의 식별자가 포함됩니다. 메서드 호출을 완료하는 데 상당한 시간이 걸릴 수 있는 장기 실행 작업은 반환됩니다.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID",
}

이 출력에서 각 항목의 의미는 다음과 같습니다.

  • PROJECT_ID, us-central1, my-dataset: 메서드 호출에서 제공한 값입니다.
  • OPERATION_ID: Cloud Healthcare API로 제공된 장기 실행 작업의 식별자입니다.

작업 상태를 추적하려면 operations.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/us-central1/datasets/my-dataset/operations/OPERATION_ID" | Select-Object -Expand Content

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
  • OPERATION_ID: 장기 실행 작업에서 반환된 ID입니다.

출력은 다음과 같습니다. 응답에 "done": true가 포함되었으면 작업이 완료된 것입니다. 그렇지 않으면 작업이 아직 실행 중입니다. 잠시 기다린 후 operations.get 메서드를 다시 호출하세요.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1.dataset.DatasetService.CreateDataset",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.dataset.Dataset",
    "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset"
  }
}

이 빠른 시작을 완료하려면 다음 섹션 중 하나를 선택하세요.

DICOM 인스턴스 저장 및 보기

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

  1. DICOM 저장소를 만듭니다.
  2. DICOM 저장소에 DICOM 인스턴스를 저장합니다.
  3. DICOM 인스턴스의 메타데이터를 확인합니다.

Cloud Healthcare API는 의료 영상 데이터를 저장하고 액세스하기 위해 DICOMweb 표준을 구현합니다.

DICOM 저장소 만들기

DICOM 저장소는 데이터 세트 내에 있으며 DICOM 인스턴스를 보유합니다. dicomStores.create 메서드를 사용하여 DICOM 저장소를 만듭니다.

curl

curl -X POST \
    --data "" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores?dicomStoreId=my-dicom-store"

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

출력은 다음과 같습니다.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store"
}

PowerShell

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores?dicomStoreId=my-dicom-store" | Select-Object -Expand Content

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

출력은 다음과 같습니다.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store"
}

DICOM 인스턴스 저장

  1. 머신에 샘플 DICOM 인스턴스 파일을 다운로드합니다. 파일에 익명화된 환자 X레이가 포함됩니다.

    curl

    curl -O https://cloud.google.com/healthcare/docs/resources/dicom_00000001_000.dcm
    

    PowerShell

    Invoke-WebRequest -Uri "https://cloud.google.com/healthcare/docs/resources/dicom_00000001_000.dcm" -OutFile $pwd/dicom_00000001_000.dcm
    
  2. dicomStores.storeInstances 메서드를 사용하여 DICOM 인스턴스를 저장합니다. 이 빠른 시작에서는 DICOM 인스턴스를 다운로드한 것과 동일 디렉터리에서 명령어를 실행한다고 가정합니다.

    curl

    curl -X POST \
        -H "Content-Type: application/dicom" \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        --data-binary @dicom_00000001_000.dcm \
        https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb/studies
    

    PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

    출력은 XML 형식으로 다음과 같습니다.

    <NativeDicomModel>
      <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
        <Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604</Value>
      </DicomAttribute>
      <DicomAttribute tag="00081199" vr="SQ" keyword="ReferencedSOPSequence">
        <Item number="1">
          <DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID">
            <Value number="1">1.2.840.10008.5.1.4.1.1.7</Value>
          </DicomAttribute>
          <DicomAttribute tag="00081155" vr="UI" keyword="ReferencedSOPInstanceUID">
            <Value number="1">1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480</Value>
          </DicomAttribute>
          <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
            <Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604/series/1.3.6.1.4.1.11129.5.5.195628213694300498946760767481291263511724/instances/1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480</Value>
          </DicomAttribute>
        </Item>
      </DicomAttribute>
    </NativeDicomModel>
    

    PowerShell

    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    Invoke-WebRequest `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/dicom" `
      -InFile dicom_00000001_000.dcm `
      -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb/studies" | Select-Object -Expand Content
    

    PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

    출력은 XML 형식으로 다음과 같습니다.

    <NativeDicomModel>
      <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
        <Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604</Value>
      </DicomAttribute>
      <DicomAttribute tag="00081199" vr="SQ" keyword="ReferencedSOPSequence">
        <Item number="1">
          <DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID">
            <Value number="1">1.2.840.10008.5.1.4.1.1.7</Value>
          </DicomAttribute>
          <DicomAttribute tag="00081155" vr="UI" keyword="ReferencedSOPInstanceUID">
            <Value number="1">1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480</Value>
          </DicomAttribute>
          <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
            <Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604/series/1.3.6.1.4.1.11129.5.5.195628213694300498946760767481291263511724/instances/1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480</Value>
          </DicomAttribute>
        </Item>
      </DicomAttribute>
    </NativeDicomModel>
    

DICOM 인스턴스 메타데이터 보기

dicomStores.searchForInstances 메서드를 사용하여 인스턴스의 메타데이터를 확인합니다.

curl

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb/instances"

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

출력은 다음과 같습니다.

[
  {
    "00080016": {
      "vr": "UI",
      "Value": [
        "1.2.840.10008.5.1.4.1.1.7"
      ]
    },
    "00080018": {
      "vr": "UI",
      "Value": [
        "1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480"
      ]
    },
    "00080060": {
      "vr": "CS",
      "Value": [
        "DX"
      ]
    },
    "00100020": {
      "vr": "LO",
      "Value": [
        "1"
      ]
    },
    "00100040": {
      "vr": "CS",
      "Value": [
        "M"
      ]
    },
    "0020000D": {
      "vr": "UI",
      "Value": [
        "1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604"
      ]
    },
    "0020000E": {
      "vr": "UI",
      "Value": [
        "1.3.6.1.4.1.11129.5.5.195628213694300498946760767481291263511724"
      ]
    },
    "00280010": {
      "vr": "US",
      "Value": [
        1024
      ]
    },
    "00280011": {
      "vr": "US",
      "Value": [
        1024
      ]
    },
    "00280100": {
      "vr": "US",
      "Value": [
        8
      ]
    }
  }
]

PowerShell

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-RestMethod `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb/instances"

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

출력은 다음과 같습니다.

[
  {
    "00080016": {
      "vr": "UI",
      "Value": [
        "1.2.840.10008.5.1.4.1.1.7"
      ]
    },
    "00080018": {
      "vr": "UI",
      "Value": [
        "1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480"
      ]
    },
    "00080060": {
      "vr": "CS",
      "Value": [
        "DX"
      ]
    },
    "00100020": {
      "vr": "LO",
      "Value": [
        "1"
      ]
    },
    "00100040": {
      "vr": "CS",
      "Value": [
        "M"
      ]
    },
    "0020000D": {
      "vr": "UI",
      "Value": [
        "1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604"
      ]
    },
    "0020000E": {
      "vr": "UI",
      "Value": [
        "1.3.6.1.4.1.11129.5.5.195628213694300498946760767481291263511724"
      ]
    },
    "00280010": {
      "vr": "US",
      "Value": [
        1024
      ]
    },
    "00280011": {
      "vr": "US",
      "Value": [
        1024
      ]
    },
    "00280100": {
      "vr": "US",
      "Value": [
        8
      ]
    }
  }
]

이제 Cloud Healthcare API에 DICOM 인스턴스를 저장하고 확인했으므로 다음 단계에 대한 자세한 내용은 다음 단계를 참조하세요.

FHIR 리소스 저장 및 보기

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

  1. FHIR 저장소를 만듭니다.
  2. FHIR 저장소에서 FHIR 리소스를 저장합니다.
  3. FHIR 리소스의 데이터를 봅니다.

Cloud Healthcare API는 FHIR 데이터를 저장하고 액세스하기 위한 FHIR 사양 표준을 구현합니다.

FHIR 저장소를 만듭니다.

FHIR 저장소는 데이터 세트 내에 존재하며 FHIR 리소스를 보유합니다. fhirStores.create 메서드를 사용하여 FHIR 저장소를 만듭니다.

curl

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'version': 'R4'
    }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores?fhirStoreId=my-fhir-store"

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

출력은 다음과 같습니다.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store",
  "version": "R4"
}

PowerShell

$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 "{
      'version': 'R4'
  }" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores?fhirStoreId=my-fhir-store" | Select-Object -Expand Content

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

출력은 다음과 같습니다.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store",
  "version": "R4"
}

FHIR 리소스 저장

  1. 샘플 JSON FHIR 리소스 파일을 다운로드합니다. 이 파일은 환자 리소스의 기본 데이터를 포함합니다.

    curl

    curl -O https://cloud.google.com/healthcare/docs/resources/Patient.json
    

    PowerShell

    Invoke-WebRequest -Uri "https://cloud.google.com/healthcare/docs/resources/Patient.json" -OutFile $pwd/Patient.json
    
  2. fhir.create 메서드를 사용하여 환자 리소스를 저장합니다. 이 빠른 시작에서는 환자 리소스를 다운로드한 것과 동일한 디렉터리에서 명령어를 실행한다고 가정합니다.

    curl

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        -H "Content-Type: application/fhir+json; charset=utf-8" \
        --data @Patient.json \
        "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/fhir/Patient"
    

    PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

    출력은 다음과 같습니다.

    {
      "birthDate": "1970-01-01",
      "gender": "female",
      "id": "PATIENT_ID",
      "meta": {
        "lastUpdated": "LAST_UPDATED",
        "versionId": "VERSION_ID"
      },
      "name": [
        {
          "family": "Smith",
          "given": [
            "Darcy"
          ],
          "use": "official"
        }
      ],
      "resourceType": "Patient"
    }
    

    PowerShell

    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    Invoke-WebRequest `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/dicom" `
      -InFile Patient.json `
      -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/fhir/Patient" | Select-Object -Expand Content
    

    PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

    출력은 다음과 같습니다.

    {
      "birthDate": "1970-01-01",
      "gender": "female",
      "id": "PATIENT_ID",
      "meta": {
        "lastUpdated": "LAST_UPDATED",
        "versionId": "VERSION_ID"
      },
      "name": [
        {
          "family": "Smith",
          "given": [
            "Darcy"
          ],
          "use": "official"
        }
      ],
      "resourceType": "Patient"
    }
    

FHIR 리소스 콘텐츠 보기

fhir.search 메서드를 사용하여 환자 리소스에 대한 정보를 확인합니다. 다음 샘플은 성이 'Smith'인 모든 환자 리소스를 검색하는 방법을 보여줍니다.

curl

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/fhir/Patient?family:exact=Smith"

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

서버가 JSON 형식의 FHIR Bundle로 응답을 반환합니다. Bundle.typesearchset이며 검색 결과는 Bundle.entry 배열의 항목입니다. 이 예시에서 요청은 해당 리소스 내의 데이터가 포함된 단일 환자 리소스를 반환합니다.

{
  "entry": [
    {
      "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/fhir/Patient/PATIENT_ID",
      "resource": {
        "birthDate": "1970-01-01",
        "gender": "female",
        "id": "PATIENT_ID",
        "meta": {
          "lastUpdated": "LAST_UPDATED",
          "versionId": "VERSION_ID"
        },
        "name": [
          {
            "family": "Smith",
            "given": [
              "Darcy"
            ],
            "use": "official"
          }
        ],
        "resourceType": "Patient"
      },
      "search": {
        "mode": "match"
      }
    }
  ],
  "link": [
    {
      "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/fhir/Patient/?family%3Aexact=Smith"
    }
  ],
  "resourceType": "Bundle",
  "total": 1,
  "type": "searchset"
}

PowerShell

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-RestMethod `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/fhir/RESOURCE_TYPE?family:exact=Smith" | ConvertTo-Json

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

서버가 JSON 형식의 FHIR Bundle로 응답을 반환합니다. Bundle.typesearchset이며 검색 결과는 Bundle.entry 배열의 항목입니다. 이 예시에서 요청은 해당 리소스 내의 데이터가 포함된 단일 환자 리소스를 반환합니다.

{
  "entry": [
    {
      "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/fhir/Patient/PATIENT_ID",
      "resource": {
        "birthDate": "1970-01-01",
        "gender": "female",
        "id": "PATIENT_ID",
        "meta": {
          "lastUpdated": "LAST_UPDATED",
          "versionId": "VERSION_ID"
        },
        "name": [
          {
            "family": "Smith",
            "given": [
              "Darcy"
            ],
            "use": "official"
          }
        ],
        "resourceType": "Patient"
      },
      "search": {
        "mode": "match"
      }
    }
  ],
  "link": [
    {
      "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/fhir/Patient/?family%3Aexact=Smith"
    }
  ],
  "resourceType": "Bundle",
  "total": 1,
  "type": "searchset"
}

이제 Cloud Healthcare API에 FHIR 리소스를 저장하고 확인했으므로 다음 단계에 대한 자세한 내용은 다음 단계를 참조하세요.

HL7v2 메시지 저장 및 보기

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

  1. HL7v2 저장소를 만듭니다.
  2. HL7v2 저장소에 HL7v2 메시지를 저장합니다.
  3. HL7v2 메시지의 데이터를 확인합니다.

Cloud Healthcare API의 HL7v2 구현은 HL7v2 표준과 일치합니다.

HL7v2 저장소 만들기

HL7v2 저장소는 데이터 세트 내에 있으며 HL7v2 메시지를 보관합니다. hl7V2Stores.create 메서드를 사용하여 HL7v2 저장소를 만듭니다.

curl

curl -X POST \
    --data "" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores?hl7V2StoreId=my-hl7v2-store"

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

출력은 다음과 같습니다.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store"
}

PowerShell

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores?hl7V2StoreId=my-hl7v2-store" | Select-Object -Expand Content

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

출력은 다음과 같습니다.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store"
}

HL7v2 메시지 만들기

  1. 머신에 샘플 HL7v2 메시지 파일을 다운로드합니다.

    curl

    curl -O https://cloud.google.com/healthcare/docs/resources/hl7v2-sample.json
    

    PowerShell

    Invoke-WebRequest -Uri "https://cloud.google.com/healthcare/docs/resources/hl7v2-sample.json" -OutFile $pwd/hl7v2-sample.json
    

    HL7v2 메시지에는 샘플 파일의 data 필드에 base-64로 인코딩된 다음 기본 정보가 포함됩니다.

    MSH|^~\&|A|SEND_FACILITY|A|A|20180101000000||TYPE^A|20180101000000|T|0.0|||AA||00|ASCII
    EVN|A00|20180101040000
    PID||14^111^^^^MRN|11111111^^^^MRN~1111111111^^^^ORGNMBR
    
  2. messages.create 메서드를 사용하여 HL7v2 메시지를 저장합니다. 이 빠른 시작에서는 HL7v2 메시지 파일을 다운로드한 것과 동일한 디렉터리에서 명령어를 실행한다고 가정합니다.

    curl

    curl -X POST \
         -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
         -H "Content-Type: application/json; charset=utf-8" \
         --data-binary @hl7v2-sample.json \
         "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/messages"
    

    PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

    출력은 다음과 같습니다.

    {
      "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/messages/MESSAGE_ID",
      "data": "TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZfEF8QXwyMDE4MDEwMTAwMDAwMHx8VFlQRV5BfDIwMTgwMTAxMDAwMDAwfFR8MC4wfHx8QUF8fDAwfEFTQ0lJDUVWTnxBMDB8MjAxODAxMDEwNDAwMDANUElEfHwxNAExMTFeXl5eTVJOfDExMTExMTExXl5eXk1STn4xMTExMTExMTExXl5eXk9SR05NQlI=",
      "sendFacility": "SEND_FACILITY",
      "sendTime": "2018-01-01T00:00:00Z",
      "messageType": "TYPE",
      "createTime": "CREATE_TIME",
      "patientIds": [
        {
          "value": "14\u0001111",
          "type": "MRN"
        },
        {
          "value": "11111111",
          "type": "MRN"
        },
        {
          "value": "1111111111",
          "type": "ORGNMBR"
        }
      ]
    }
    

    이 출력에서 각 항목의 의미는 다음과 같습니다.

    • PROJECT_ID, us-central1, my-dataset, my-hl7v2-store: 메서드 호출에서 제공한 값입니다.
    • MESSAGE_ID: Cloud Healthcare API에서 제공되는 HL7v2 메시지의 식별자입니다.
    • CREATE_TIME: 메시지가 Cloud Healthcare API에 전송된 타임스탬프입니다.

    PowerShell

    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    Invoke-WebRequest `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/json; charset=utf-8" `
      -InFile hl7v2-sample.json `
      -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/messages" | Select-Object -Expand Content
    

    PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

    출력은 다음과 같습니다.

    {
      "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/messages/MESSAGE_ID",
      "data": "TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZfEF8QXwyMDE4MDEwMTAwMDAwMHx8VFlQRV5BfDIwMTgwMTAxMDAwMDAwfFR8MC4wfHx8QUF8fDAwfEFTQ0lJDUVWTnxBMDB8MjAxODAxMDEwNDAwMDANUElEfHwxNAExMTFeXl5eTVJOfDExMTExMTExXl5eXk1STn4xMTExMTExMTExXl5eXk9SR05NQlI=",
      "sendFacility": "SEND_FACILITY",
      "sendTime": "2018-01-01T00:00:00Z",
      "messageType": "TYPE",
      "createTime": "CREATE_TIME",
      "patientIds": [
        {
          "value": "14\u0001111",
          "type": "MRN"
        },
        {
          "value": "11111111",
          "type": "MRN"
        },
        {
          "value": "1111111111",
          "type": "ORGNMBR"
        }
      ]
    }
    

    이 출력에서 각 항목의 의미는 다음과 같습니다.

    • PROJECT_ID, us-central1, my-dataset, my-hl7v2-store: 메서드 호출에서 제공한 값입니다.
    • MESSAGE_ID: Cloud Healthcare API에서 제공되는 HL7v2 메시지의 식별자입니다.
    • CREATE_TIME: 메시지가 Cloud Healthcare API에 전송된 타임스탬프입니다.

HL7v2 메시지 콘텐츠 보기

HL7v2 메시지를 만들었을 때 수신된 응답에서 MESSAGE_ID를 확인합니다. messages.get 메서드를 사용하여 HL7v2 메시지 세부정보를 확인합니다.

curl

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/messages/MESSAGE_ID"

다음을 바꿉니다.

  • PROJECT_ID: 시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID입니다.
  • MESSAGE_ID: 메시지 ID

출력은 다음과 같습니다.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/messages/MESSAGE_ID",
  "data": "TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZfEF8QXwyMDE4MDEwMTAwMDAwMHx8VFlQRV5BfDIwMTgwMTAxMDAwMDAwfFR8MC4wfHx8QUF8fDAwfEFTQ0lJDUVWTnxBMDB8MjAxODAxMDEwNDAwMDANUElEfHwxNAExMTFeXl5eTVJOfDExMTExMTExXl5eXk1STn4xMTExMTExMTExXl5eXk9SR05NQlI=",
  "sendFacility": "SEND_FACILITY",
  "sendTime": "2018-01-01T00:00:00Z",
  "messageType": "TYPE",
  "createTime": "CREATE_TIME",
  "patientIds": [
    {
      "value": "14\u0001111",
      "type": "MRN"
    },
    {
      "value": "11111111",
      "type": "MRN"
    },
    {
      "value": "1111111111",
      "type": "ORGNMBR"
    }
  ],
  "parsedData": {
    "segments": [
      {
        "segmentId": "MSH",
        "fields": {
          "5": "A",
          "8.1": "TYPE",
          "6": "20180101000000",
          "8.2": "A",
          "3": "SEND_FACILITY",
          "4": "A",
          "11": "0.0",
          "10": "T",
          "1": "^~\\&",
          "17": "ASCII",
          "2": "A",
          "0": "MSH",
          "14": "AA",
          "9": "20180101000000",
          "16": "00"
        }
      },
      {
        "segmentId": "EVN",
        "fields": {
          "2": "20180101040000",
          "0": "EVN",
          "1": "A00"
        }
      },
      {
        "segmentId": "PID",
        "fields": {
          "3[0].5": "MRN",
          "3[1].1": "1111111111",
          "3[1].5": "ORGNMBR",
          "0": "PID",
          "2.1": "14\u0001111",
          "2.5": "MRN",
          "3[0].1": "11111111"
        }
      }
    ]
  }
}

PowerShell

$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/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/messages/MESSAGE_ID" | Select-Object -Expand Content

다음을 바꿉니다.

  • PROJECT_ID: 시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID입니다.
  • MESSAGE_ID: 메시지 ID

출력은 다음과 같습니다.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/messages/MESSAGE_ID",
  "data": "TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZfEF8QXwyMDE4MDEwMTAwMDAwMHx8VFlQRV5BfDIwMTgwMTAxMDAwMDAwfFR8MC4wfHx8QUF8fDAwfEFTQ0lJDUVWTnxBMDB8MjAxODAxMDEwNDAwMDANUElEfHwxNAExMTFeXl5eTVJOfDExMTExMTExXl5eXk1STn4xMTExMTExMTExXl5eXk9SR05NQlI=",
  "sendFacility": "SEND_FACILITY",
  "sendTime": "2018-01-01T00:00:00Z",
  "messageType": "TYPE",
  "createTime": "CREATE_TIME",
  "patientIds": [
    {
      "value": "14\u0001111",
      "type": "MRN"
    },
    {
      "value": "11111111",
      "type": "MRN"
    },
    {
      "value": "1111111111",
      "type": "ORGNMBR"
    }
  ],
  "parsedData": {
    "segments": [
      {
        "segmentId": "MSH",
        "fields": {
          "5": "A",
          "8.1": "TYPE",
          "6": "20180101000000",
          "8.2": "A",
          "3": "SEND_FACILITY",
          "4": "A",
          "11": "0.0",
          "10": "T",
          "1": "^~\\&",
          "17": "ASCII",
          "2": "A",
          "0": "MSH",
          "14": "AA",
          "9": "20180101000000",
          "16": "00"
        }
      },
      {
        "segmentId": "EVN",
        "fields": {
          "2": "20180101040000",
          "0": "EVN",
          "1": "A00"
        }
      },
      {
        "segmentId": "PID",
        "fields": {
          "3[0].5": "MRN",
          "3[1].1": "1111111111",
          "3[1].5": "ORGNMBR",
          "0": "PID",
          "2.1": "14\u0001111",
          "2.5": "MRN",
          "3[0].1": "11111111"
        }
      }
    ]
  }
}

이제 Cloud Healthcare API에 HL7v2 메시지를 저장하고 확인했으므로 다음 단계에 대한 자세한 내용은 다음 단계를 참조하세요.

삭제

이 페이지에서 사용한 리소스의 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 따르세요.

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

프로젝트 삭제

  1. Cloud Console에서 리소스 관리 페이지로 이동합니다.

    리소스 관리로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.

데이터 세트 삭제

이 빠른 시작에서 만든 데이터 세트가 더 이상 필요하지 않으면 삭제할 수 있습니다. 데이터 세트를 삭제하면 데이터 세트 및 데이터 세트에 포함된 모든 FHIR, HL7v2 또는 DICOM 저장소가 영구적으로 삭제됩니다.

curl

curl -X DELETE \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset"

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

출력은 다음과 같습니다.

{}

PowerShell

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Delete `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset" | Select-Object -Expand Content

PROJECT_ID시작하기 전에에서 만들었거나 선택한 Google Cloud 프로젝트의 ID로 바꿉니다.

출력은 다음과 같습니다.

{}

어땠나요?

다음 단계

Cloud Healthcare API에 대한 일반 정보와 Cloud Console 및 gcloud 명령줄 도구를 사용하여 작업을 수행하는 방법은 다음 섹션을 참조하세요.

DICOM

DICOM 가이드로 이동하여 다음 주제를 검토하세요.

Cloud Healthcare API가 DICOMweb 표준을 구현하는 방법에 대한 자세한 내용은 DICOM 적합성 명세를 참조하세요.

FHIR

FHIR 가이드로 이동하여 다음 주제를 검토하세요.

Cloud Healthcare API가 FHIR 표준을 구현하는 방법에 대한 자세한 내용은 FHIR 적합성 명세를 참조하세요.

HL7v2

HL7v2 가이드로 이동하여 다음 주제를 검토하세요.