이 페이지에서는 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로 내보내려면 다음 단계를 완료합니다.
Google Cloud 콘솔에서 데이터 세트 페이지로 이동합니다.
HL7v2 메시지를 내보낼 HL7v2 저장소가 포함된 데이터 세트를 클릭합니다.
데이터 저장소 목록에 있는 HL7v2 저장소의 작업 목록에서 내보내기를 선택합니다.
HL7v2 메시지 내보내기 페이지가 나타납니다.
프로젝트 목록에서 Cloud Storage 프로젝트를 선택합니다.
위치 목록에서 Cloud Storage 버킷을 선택합니다.
내보내기를 클릭하여 HL7v2 인스턴스를 Cloud Storage의 정의된 위치로 내보냅니다.
- 작업 상태를 추적하려면 작업 탭을 클릭합니다. 작업이 완료되면 다음과 같은 표시가 나타납니다.
- 장기 실행 작업 상태 섹션의 확인 제목 아래에 녹색 체크표시가 있습니다.
- 개요 섹션에 작업 ID와 같은 행에 녹색 체크표시와 확인 표시기가 있습니다.
필터를 사용하여 HL7v2 메시지를 Cloud Storage로 내보내기
기본적으로 HL7v2 메시지를 Cloud Storage로 내보내면 HL7v2 저장소의 모든 HL7v2 메시지와 각 Message
객체의 모든 필드가 포함됩니다.
내보낸 HL7v2 메시지를 다음과 같이 필터링할 수 있습니다.
- 필터를 사용하여 필터 기준과 일치하는 HL7v2 메시지의 하위 집합을 내보냅니다. 자세한 내용은 필터를 사용하여 HL7v2 메시지의 하위 집합 내보내기를 참조하세요.
MessageView
객체를 사용하여 내보낼 각Message
의 필드를 선택합니다. 자세한 내용은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
hl7V2Stores.export
메서드를 사용하여 HL7v2 메시지를 내보냅니다.요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트의 IDLOCATION
: 데이터 세트 위치DATASET_ID
: HL7v2 저장소의 상위 데이터 세트HL7V2_STORE_ID
: HL7v2 스토어 IDCLOUD_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 ContentOPERATION_ID
의 값을 확인합니다. 다음 단계에서 이 값이 필요합니다.projects.locations.datasets.operations.get
메서드를 사용하여 장기 실행 작업의 상태를 가져옵니다.요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트의 IDDATASET_ID
: 데이터 세트 IDLOCATION
: 데이터 세트 위치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 ContentAPI 탐색기
메서드 참조 페이지를 엽니다. 페이지 오른쪽에 API 탐색기 패널이 열립니다. 이 도구를 사용하여 요청을 보낼 수 있습니다. 모든 필수 필드를 입력하고 실행을 클릭합니다.
"done": true
가 포함되었으면 장기 실행 작업이 완료된 것입니다.
Message
필드로 HL7v2 메시지 내보내기
Cloud Healthcare API에서 HL7v2 메시지는 Message
리소스에 저장됩니다. MessageView
enum을 사용하여 내보낸 각 HL7v2 메시지에 포함된 Message
리소스의 필드를 확인할 수 있습니다.
다음 샘플에서는 MessageView
의 BASIC
값을 사용하여 내보낸 HL7v2 메시지에 name
필드만 포함하는 방법을 보여줍니다.
REST
hl7V2Stores.export
메서드를 사용하여 HL7v2 메시지를 내보냅니다.요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트의 IDLOCATION
: 데이터 세트 위치DATASET_ID
: HL7v2 저장소의 상위 데이터 세트HL7V2_STORE_ID
: HL7v2 스토어 IDCLOUD_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 ContentOPERATION_ID
의 값을 확인합니다. 다음 단계에서 이 값이 필요합니다.projects.locations.datasets.operations.get
메서드를 사용하여 장기 실행 작업의 상태를 가져옵니다.요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트의 IDDATASET_ID
: 데이터 세트 IDLOCATION
: 데이터 세트 위치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 ContentAPI 탐색기
메서드 참조 페이지를 엽니다. 페이지 오른쪽에 API 탐색기 패널이 열립니다. 이 도구를 사용하여 요청을 보낼 수 있습니다. 모든 필수 필드를 입력하고 실행을 클릭합니다.
"done": true
가 포함되었으면 장기 실행 작업이 완료된 것입니다.
HL7v2 내보내기 요청 문제 해결
HL7v2 메시지를 내보내는 중에 오류가 발생하면 오류가 Cloud Logging에 로깅됩니다. 자세한 내용은 Cloud Logging에서 오류 로그 보기를 참조하세요.
장기 실행 작업이 오류를 반환하는 경우 장기 실행 작업 문제 해결을 참조하세요.