BigQuery의 의료 데이터 변환 및 조정

이 문서에서는 BigQuery에서 분석 데이터 레이크를 만들려는 연구자, 데이터 과학자, IT팀을 위해 Google Cloud에서 의료 데이터를 조정하는 프로세스와 고려사항을 설명합니다.

데이터를 조정하면 다양한 파일 형식의 데이터와 표준 데이터를 결합한 후 심층 분석할 수 있도록 표준화된 통합 데이터 세트 하나로 데이터를 변환합니다. 데이터를 조정하려면 데이터 소스의 유효성을 검사한 후 구조 변환, 변환, ID 확인, 익명화를 통해 데이터를 수정하는 일련의 파이프라인을 빌드해야 합니다.

소스 데이터 유효성 검사

임상 데이터는 원시 형태에서 부정확하거나 불완전할 수 있으므로 데이터 변환 전에 들어오는 데이터의 품질을 평가해야 합니다. 유효성 검사에는 다음 프로세스가 포함됩니다.

  • 필요한 데이터 요소가 있는지 확인합니다.
  • 데이터 수를 확인하여 소스 시스템과 수집 데이터 레이크가 데이터 수와 동일한 숫자가 되도록 합니다.
  • 컴퓨팅 리소스에 투자하기 전에 값 범위가 합당한 지 확인합니다.

Google Cloud는 다음과 같은 방법으로 소스 데이터 유효성을 검사합니다.

  • Cloud Data Fusion은 소량의 데이터(행 1,000개 이하)를 보고 탐색할 수 있도록 데이터를 준비합니다.
  • BigQuery를 사용하면 SQL로 여러 가지 유효성 검사를 수행할 수 있습니다. 데이터에 불일치가 있으면 뷰를 만들어 유효성 검사를 위해 식별된 사용자에게 액세스 권한을 부여하거나 주석을 처리하고 팀과 공동 작업을 할 수 있도록 선택한 행을 Google Sheets에 내보낼 수 있습니다.
  • 자동 데이터 품질 검사의 경우 Cloud Data Fusion을 사용하여 사용자 정의 지시문(UDD)을 만들 수 있습니다. UDD를 사용하면 Cloud Data Fusion 내에서 커스텀 처리, 데이터 검사, 함수를 지정할 수 있습니다. 또한 UDD를 만들면 이상점 플래그를 자동으로 지정할 수 있습니다.

데이터 변환 및 파이프라인 빌드

구조 변환은 데이터 변환 파이프라인 빌드에서 중요한 단계이며 필드 매핑, 파싱, 데이터 형식 지정이 포함됩니다.

수집 방법으로 Cloud Healthcare API를 사용하는 경우 데이터를 파싱하거나 색인을 생성할 필요가 없습니다. Cloud Healthcare API는 수신 데이터 형식으로 유연성을 제공하고 여러 줄로 구성된 JSON 형식과 줄바꿈으로 구분된 JSON 형식 모두로 리소스와 번들을 허용합니다. 예를 들어 FHIR(Fast Healthcare Interoperability Resource) 데이터 유형으로 작업하는 경우 커스텀 JSON 파서를 개발할 필요가 없습니다. 대신 Cloud Healthcare API의 기본 제공 기능을 사용하여 데이터를 수집할 수 있습니다.

또한 HL7v2 데이터 유형을 FHIR 데이터 유형으로 변환하거나 FHIR 데이터 유형을 FHIR 스키마의 SQL로 변환하는 등 변환에 대한 구조적 변환을 수행할 수 있습니다.

Cloud Data Fusion에는 데이터 파싱, 형식 지정, 압축, 변환을 위해 사전 빌드된 다양한 플러그인이 있습니다. 또한 Cloud Data Fusion에는 데이터 세트의 작은 샘플(행 1000개)을 기준으로 데이터를 대화식으로 필터링, 정리, 형식 지정, 프로젝션하는 시각화 도구인 랭글러가 포함되어 있습니다. 변환을 정의하면 랭글러가 변경사항을 전체 데이터 세트에 적용하는 Dataproc 파이프라인을 자동으로 생성합니다.

고급 변환의 경우 구조 매핑의 정의, 관리, 이동성을 위한 구성 기반 매핑 언어를 사용할 수 있습니다.

환자 ID 확인

데이터 변환에서 중요한 단계는 레코드를 해당 고유 환자 식별자(UPI)와 일치시키는 것입니다. 레코드를 일치시키면 데이터의 불일치와 중복을 식별하고 개별 환자 레코드간에 일관된 데이터 변환을 보장하는 데 유용한 세로 레코드를 만들 수 있습니다. 커스텀 파이프라인 또는 모델로 마스터 환자 색인(MPI)을 호출하여 환자 레코드를 일치시킬 수 있습니다. FHIR을 통해 데이터를 통합하는 경우 레코드를 조인하는 데 사용할 수 있는 환자 식별자 검색 매개변수도 있습니다.

용어 변환

의료 용어 환경은 코딩 시스템, 이사회, 조직의 니즈로 인해 자주 변경됩니다. 기록 레코드와 새로 만든 리소스를 결합하면 이전 용어와 현재 용어 간에 불일치가 발생할 수 있습니다. 임상 용어를 변환 및 조정하면 이전 용어와 신규 용어 표준 간의 일관성과 연속성을 보장할 수 있습니다.

측정 단위 변환

측정 단위는 수집 소스, 측정을 수행하는 조직, 지리적 리전에 따라 크게 달라질 수 있습니다. 예를 들어 미국에서는 아기 체중을 그램 단위로 측정하지만 일반적으로 성인 체중을 파운드 단위로 측정합니다. 측정 단위를 변환 및 조정하면 애널리틱스에서 모든 측정 단위를 캡처하고 모든 환자 모집단을 포함할 수 있습니다.

데이터 익명화

익명화는 변환 프로세스의 마지막 단계입니다. 익명화가 특히 ID 확인 및 의료 항목 추출에서 데이터를 조정하는 기능을 간섭할 수 있기 때문입니다. 예를 들어 파이프라인에서 너무 빨리 익명화하면 조정에 필요한 정확한 ID 확인을 수행하지 못할 수 있습니다. Google Cloud는 맞춤설정을 포함하여 의료 데이터를 익명화하고 가명처리하는 데 유용한 여러 가지 옵션을 제공합니다.

구조화되지 않은 텍스트 데이터 또는 CSV와 같은 기존 구조화된 데이터의 경우 민감한 정보 보호를 사용하여 민감한 데이터 요소를 분류하고 수정할 수 있습니다. 또한 민감한 정보 보호를 사용하면 마스킹, 보안 해싱, 토큰화, 버케팅, 형식 보존 암호화와 같은 기술을 사용하여 보안 니즈와 사용 사례에 대한 익명화를 맞춤설정할 수 있습니다.

Cloud Healthcare API에는 API에 기본 제공된 익명화 기능도 포함되어 있으며, 이 기능은 Digital Imaging and Communications in Medicine(DICOM) 및 FHIR 데이터 세트에 사용할 수 있습니다. 이 옵션은 초기 데이터 모델을 보존하려는 경우에 유용합니다.

시계열 데이터를 FHIR 형식으로 처리하는 경우 UPI를 기반으로 리소스 시퀀스를 보존할 수 있습니다. 즉, 날짜 이동 기능을 사용하면 리소스의 순서를 유지할 수 있습니다.

중간 스토리지 사용

문제를 해결하거나 재해 복구 사례에서 데이터 변환 이전 상태로 되돌릴 수 있도록 중간 스토리지(임시 중간 스토리지)에 각 변환 결과를 저장하는 것이 좋습니다. 파이프라인이 실행될 때마다 BigQuery의 Cloud Storage에 대한 원시 내보내기 형식으로 중간 스토리지를 다시 작성할 수 있습니다.

파이프라인 아키텍처 이해

다음 다이어그램은 데이터 변환 및 조정을 위한 파이프라인을 보여줍니다.

데이터 변환 및 조정을 위한 파이프라인

앞의 다이어그램은 변환 및 조정과 관련된 모든 단계를 포함하여 파이프라인을 통해 데이터가 이동하는 전체 프로세스를 보여줍니다. 데이터는 먼저 원시 데이터로 수집된 후 구조적 변환 파이프라인과 ID 확인 파이프라인을 통해 처리됩니다. 그런 다음 데이터는 추가 변환(예: 용어 변환 및 익명화)을 거치고 BigQuery에 대한 출력 파이프라인을 통해 종료되며, 여기서 분석할 수 있도록 조정된 데이터로 저장됩니다. 또한 중간 스토리지의 메타데이터는 런타임 시 자동으로 작성되며 출처와 계보 데이터로 BigQuery에 저장됩니다.

또한 다이어그램에서는 권장사항으로 파이프라인 단계 사이에 각 데이터 세트를 저장할 수 있는 두 가지 중간 스토리지 단계를 보여줍니다.

다음 단계