HL7v2 메시지를 Cloud Storage로 내보내기

이 페이지에서는 HL7v2 저장소에서 Cloud Storage로 HL7v2 메시지를 내보내는 방법을 설명합니다. 다운스트림 처리를 위해 HL7v2 메시지를 Cloud Storage로 일괄적으로 내보낼 수 있습니다.

시작하기 전에

Cloud Healthcare 서비스 에이전트 서비스 계정에 부여해야 하는 역할은 Cloud Storage에서 HL7v2 메시지 내보내기를 참조하세요.

HL7v2 메시지를 Cloud Storage로 내보내기

Cloud Healthcare API는 각 HL7v2 메시지를 NDJSON .ndjson 파일의 줄로 내보냅니다. HL7v2 메시지는 sendTime 값에 따라 시간순으로 정렬됩니다.

HL7v2 메시지가 많은 경우 Cloud Healthcare API가 여러 NDJSON 파일을 만들 수 있으므로 객체가 아닌 Cloud Storage 버킷 또는 폴더로 내보냅니다.

존재하지 않는 Cloud Storage 폴더로 내보내면 폴더가 생성됩니다.

Console

HL7v2 메시지를 Cloud Storage로 내보내려면 다음 단계를 완료합니다.

  1. Google Cloud 콘솔에서 데이터 세트 페이지로 이동합니다.

    데이터 세트로 이동

  2. HL7v2 메시지를 내보낼 HL7v2 저장소가 포함된 데이터 세트를 클릭합니다.

  3. 데이터 저장소 목록에 있는 HL7v2 저장소의 작업 목록에서 내보내기를 선택합니다.

    HL7v2 메시지 내보내기 페이지가 나타납니다.

  4. 프로젝트 목록에서 Cloud Storage 프로젝트를 선택합니다.

  5. 위치 목록에서 Cloud Storage 버킷을 선택합니다.

  6. 내보내기를 클릭하여 HL7v2 인스턴스를 Cloud Storage의 정의된 위치로 내보냅니다.

  7. 작업 상태를 추적하려면 작업 탭을 클릭합니다. 작업이 완료되면 다음과 같은 표시가 나타납니다.
    • 장기 실행 작업 상태 섹션의 확인 제목 아래에 녹색 체크표시가 있습니다.
    • 개요 섹션에 작업 ID와 같은 행에 녹색 체크표시와 확인 표시기가 있습니다.
    오류가 발생하면 작업을 클릭한 다음 Cloud Logging에서 세부정보 보기를 클릭합니다.

필터를 사용하여 HL7v2 메시지를 Cloud Storage로 내보내기

기본적으로 HL7v2 메시지를 Cloud Storage로 내보내면 HL7v2 저장소의 모든 HL7v2 메시지와 각 Message 객체의 모든 필드가 포함됩니다.

내보낸 HL7v2 메시지를 다음과 같이 필터링할 수 있습니다.

필터를 사용하여 HL7v2 메시지의 하위 집합 내보내기

필터 기준에서 다음 필드를 사용할 수 있습니다.

filter 필드에서 필터 기준으로 다음 필터 매개변수를 지정할 수 있습니다. 필터 문법을 알아보고 쿼리를 구성하려면 쿼리 문자열을 참조하세요.

  • message_type: MSH 9.1 필드에서 가져옵니다. 예를 들면 NOT message_type = "ADT"입니다.
  • send_date: 데이터 세트의 시간대에 지정된 MSH.7 세그먼트에서 메시지가 전송된 YYYY-MM-DD 날짜입니다. 예를 들면 send_date < "2017-01-02"입니다.
  • send_time: 메일이 전송된 시점의 타임스탬프입니다. 이 매개변수는 메시지의 MSH.7 세그먼트에서 가져옵니다. 이 매개변수는 비교를 위해 RFC 3339 시간 형식을 사용합니다. 예를 들면 send_time < "2017-01-02T00:00:00-05:00"입니다.
  • create_time: 메시지가 Cloud Healthcare API에서 생성된 타임스탬프로, 비교를 위해 RFC 3339 시간 형식을 사용합니다. 예를 들면 create_time < "2017-01-02T00:00:00-05:00"입니다.
  • send_facility: MSH.4 세그먼트에서 메시지를 가져온 의료 센터입니다. 예를 들면 send_facility = "ABC"입니다.

다음 샘플에서는 ADT 유형의 HL7v2 메시지만 내보내도록 필터를 지정하는 방법을 보여줍니다.

REST

  1. hl7V2Stores.export 메서드를 사용하여 HL7v2 메시지를 내보냅니다.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트의 ID
    • LOCATION: 데이터 세트 위치
    • DATASET_ID: HL7v2 저장소의 상위 데이터 세트
    • HL7V2_STORE_ID: HL7v2 스토어 ID
    • CLOUD_STORAGE_LOCATION: 내보낸 HL7v2 메시지가 작성되는 Cloud Storage 버킷 또는 폴더의 이름

    JSON 요청 본문:

    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION"
      },
      "filter": "message_type = \"ADT\""
    }
    

    요청을 보내려면 다음 옵션 중 하나를 선택합니다.

    curl

    요청 본문을 request.json 파일에 저장합니다. 터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.

    cat > request.json << 'EOF'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION"
      },
      "filter": "message_type = \"ADT\""
    }
    EOF

    그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export"

    PowerShell

    요청 본문을 request.json 파일에 저장합니다. 터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.

    @'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION"
      },
      "filter": "message_type = \"ADT\""
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export" | Select-Object -Expand Content
    출력은 다음과 같습니다. 응답에는 장기 실행 작업(LRO)의 식별자가 포함됩니다. 장기 실행 작업은 메서드 호출을 완료하는 데 추가 시간이 걸릴 수 있는 경우에 반환됩니다. OPERATION_ID의 값을 확인합니다. 다음 단계에서 이 값이 필요합니다.

  2. projects.locations.datasets.operations.get 메서드를 사용하여 장기 실행 작업의 상태를 가져옵니다.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트의 ID
    • DATASET_ID: 데이터 세트 ID
    • LOCATION: 데이터 세트 위치
    • OPERATION_ID: 장기 실행 작업에서 반환된 ID

    요청을 보내려면 다음 옵션 중 하나를 선택합니다.

    curl

    다음 명령어를 실행합니다.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

    PowerShell

    다음 명령어를 실행합니다.

    $cred = gcloud auth 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/operations/OPERATION_ID" | Select-Object -Expand Content

    API 탐색기

    메서드 참조 페이지를 엽니다. 페이지 오른쪽에 API 탐색기 패널이 열립니다. 이 도구를 사용하여 요청을 보낼 수 있습니다. 모든 필수 필드를 입력하고 실행을 클릭합니다.

    출력은 다음과 같습니다. 응답에 "done": true가 포함되었으면 장기 실행 작업이 완료된 것입니다.

Message 필드로 HL7v2 메시지 내보내기

Cloud Healthcare API에서 HL7v2 메시지는 Message 리소스에 저장됩니다. MessageView enum을 사용하여 내보낸 각 HL7v2 메시지에 포함된 Message 리소스의 필드를 확인할 수 있습니다.

다음 샘플에서는 MessageViewBASIC 값을 사용하여 내보낸 HL7v2 메시지에 name 필드만 포함하는 방법을 보여줍니다.

REST

  1. hl7V2Stores.export 메서드를 사용하여 HL7v2 메시지를 내보냅니다.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트의 ID
    • LOCATION: 데이터 세트 위치
    • DATASET_ID: HL7v2 저장소의 상위 데이터 세트
    • HL7V2_STORE_ID: HL7v2 스토어 ID
    • CLOUD_STORAGE_LOCATION: 내보낸 HL7v2 메시지가 작성되는 Cloud Storage 버킷 또는 폴더의 이름

    JSON 요청 본문:

    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION",
        "messageView": "BASIC"
      }
    }
    

    요청을 보내려면 다음 옵션 중 하나를 선택합니다.

    curl

    요청 본문을 request.json 파일에 저장합니다. 터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.

    cat > request.json << 'EOF'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION",
        "messageView": "BASIC"
      }
    }
    EOF

    그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export"

    PowerShell

    요청 본문을 request.json 파일에 저장합니다. 터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.

    @'
    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION",
        "messageView": "BASIC"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export" | Select-Object -Expand Content
    출력은 다음과 같습니다. 응답에는 장기 실행 작업(LRO)의 식별자가 포함됩니다. 장기 실행 작업은 메서드 호출을 완료하는 데 추가 시간이 걸릴 수 있는 경우에 반환됩니다. OPERATION_ID의 값을 확인합니다. 다음 단계에서 이 값이 필요합니다.

  2. projects.locations.datasets.operations.get 메서드를 사용하여 장기 실행 작업의 상태를 가져옵니다.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트의 ID
    • DATASET_ID: 데이터 세트 ID
    • LOCATION: 데이터 세트 위치
    • OPERATION_ID: 장기 실행 작업에서 반환된 ID

    요청을 보내려면 다음 옵션 중 하나를 선택합니다.

    curl

    다음 명령어를 실행합니다.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

    PowerShell

    다음 명령어를 실행합니다.

    $cred = gcloud auth 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/operations/OPERATION_ID" | Select-Object -Expand Content

    API 탐색기

    메서드 참조 페이지를 엽니다. 페이지 오른쪽에 API 탐색기 패널이 열립니다. 이 도구를 사용하여 요청을 보낼 수 있습니다. 모든 필수 필드를 입력하고 실행을 클릭합니다.

    출력은 다음과 같습니다. 응답에 "done": true가 포함되었으면 장기 실행 작업이 완료된 것입니다.

HL7v2 내보내기 요청 문제 해결

HL7v2 메시지를 내보내는 중에 오류가 발생하면 오류가 Cloud Logging에 로깅됩니다. 자세한 내용은 Cloud Logging에서 오류 로그 보기를 참조하세요.

장기 실행 작업이 오류를 반환하는 경우 장기 실행 작업 문제 해결을 참조하세요.