본문 바로가기
Data Analysis

환자와 임상시험 연결하기: OMOP CDM과 Ducklake 지식 그래프 연합 (Sixing Huang)

by Hagrid 2026. 4. 4.
반응형

요약 정리

핵심 내용 (TL;DR)

  • 임상시험의 약 80%가 환자 모집 문제로 지연되는 현실에서, 온프레미스 병원 데이터(OMOP CDM on PostgreSQL)와 클라우드 약물 지식 그래프(Ducklake on MotherDuck)를 DuckDB로 연합(federation)하여 데이터 이동 없이 단일 쿼리로 양쪽을 조회하는 아키텍처를 제안한다.
  • UMLS CUI를 공통 어휘(cross-walk vocabulary)로 활용하여 SNOMED CT, RxNorm 등 서로 다른 의료 코드 체계 간 매핑을 수행하며, 그래프 순회(GRAPH_TABLE), 시공간 필터링 등 고급 쿼리를 통해 임상시험 후보 환자를 효율적으로 선별할 수 있다.

주요 포인트

1. 문제 정의: 임상시험 모집의 이중 과제

  • 임상시험의 ~80%가 모집 지연을 겪으며, 이는 신약 개발 비용 증가의 주요 원인
  • 환자 접근성(accessibility) 향상과 데이터 주권(data sovereignty) 보장이라는 두 가지 과제를 동시에 해결해야 함
  • 병원은 민감한 EHR 데이터를 외부로 내보내기 어렵고, 제약사는 광범위한 환자 풀에 접근해야 하는 상충 구조

2. 아키텍처 설계

  • Ducklake 약물 지식 그래프: MotherDuck 클라우드에 배포. 약물-질병-임상시험 관계 데이터를 UMLS CUI 표준 어휘로 코드화
  • OMOP CDM: Docker(Broadsea)로 배포된 PostgreSQL. Synthea로 생성한 1,000명의 합성 환자 데이터. SNOMED CT(진단), RxNorm(약물) 사용
  • DuckDB 연합: ATTACH 명령으로 두 데이터 소스를 연결. ETL 없이 단일 쿼리로 양쪽 동시 조회

3. 핵심 기술 요소

  • UMLS CUI: 서로 다른 의료 코드 체계(SNOMED CT, RxNorm 등) 간 브릿지 역할. source_to_concept_map 테이블로 매핑
  • Ducklake 멀티모델: SQL + 그래프 + 벡터 + 전문 검색을 단일 환경에서 지원
  • GRAPH_TABLE 구문: 그래프 순회 쿼리로 약물-질병 관계 탐색 가능
  • 시공간 필터링: 약물의 작용 기전(MOA), 환자 위치, 날짜 조건을 결합한 복합 쿼리

4. 연합 쿼리 시나리오

  • 조건 기반 매칭: Trial 108에 해당하는 질환 조건으로 환자 스크리닝 (10명 후보 발견)
  • 약물 기반 매칭: Trial 121에 해당하는 약물 복용 환자 스크리닝
  • 그래프 순회: 'Atrial Flutter' 치료 약물을 그래프에서 탐색 후 환자 기록과 교차 참조
  • 시공간 필터링: Glucocorticoid Receptor Agonists MOA 약물 + 위치/날짜 필터 (4명 환자)

5. 결론 및 전망

  • 이 아키텍처를 통해 LLM, AI 에이전트, MPC(다자간 연산) 등이 자연어로 임상시험 모집 쿼리를 수행할 수 있는 기반이 마련됨
  • 데이터를 이동하지 않으면서도 풍부한 분석이 가능한 연합 패턴의 실용적 사례

한글 번역

환자와 임상시험 연결하기: OMOP CDM과 Ducklake 지식 그래프 연합

단일 쿼리로 온프레미스(on-prem) 데이터베이스와 클라우드 레이크하우스(lakehouse)를 가로질러 임상시험 대상 환자를 선별하는 방법

Sixing Huang | 2026년 2월 17일

문제: 임상시험 모집의 위기

임상시험의 약 80%가 모집 문제로 지연을 겪고 있다. 이 문제를 해결하려면 이중 전략(two-pronged strategy)이 필요하다. 환자에게는 접근성(accessibility)을 개선하고, 제약사와 병원에게는 데이터 주권(data sovereignty)을 보장해야 한다.

병원은 민감한 전자건강기록(EHR) 데이터를 외부로 내보내기 어렵고, 제약사는 최대한 넓은 환자 풀에 접근하여 적합한 후보를 찾아야 한다. 이 상충되는 요구를 어떻게 동시에 만족시킬 수 있을까?

아키텍처 개요

이 글에서 제안하는 아키텍처는 세 가지 핵심 구성요소로 이루어져 있다.

  1. Ducklake 약물 지식 그래프(Drug Knowledge Graph) - MotherDuck 클라우드에 배포. 제약/규제 데이터를 포함하는 약물-질병-임상시험 관계 그래프
  2. OMOP CDM on PostgreSQL - Docker 환경에서 실행. 안전한 온프레미스 EHR을 시뮬레이션하며, Synthea로 생성한 1,000명의 합성(synthetic) 환자 데이터 포함
  3. DuckDB를 통한 연합(Federation) - 데이터 이동 없이 단일 쿼리로 두 데이터 소스를 동시에 조회

핵심 아이디어는 간단하다. DuckDB의 ATTACH 기능을 사용하면 ETL 파이프라인 없이도 서로 다른 데이터 소스를 마치 하나의 데이터베이스처럼 쿼리할 수 있다.

Ducklake 지식 그래프 구축

약물-질병-임상시험 데이터셋은 UMLS CUI(Concept Unique Identifier)를 표준 어휘로 사용한다. UMLS는 다양한 의료 용어 체계(SNOMED CT, RxNorm, ICD-10 등)를 연결하는 메타 사전(metathesaurus) 역할을 한다.

이 지식 그래프는 MotherDuck 클라우드에 ducklake_omop이라는 이름으로 배포된다. 의료 상태(medical conditions)는 UMLS API를 통해 표준 코드로 변환된다.

Ducklake의 강점은 멀티모델(multi-model) 지원에 있다. 단일 환경에서 SQL, 그래프(Graph), 벡터(Vector), 전문 검색(Full-text Search)을 모두 수행할 수 있어, 별도의 그래프 데이터베이스나 검색 엔진을 구축할 필요가 없다.

OMOP CDM 구축

OMOP CDM(Observational Medical Outcomes Partnership Common Data Model)은 관찰 의료 데이터의 표준 데이터 모델이다. 이 프로젝트에서는 다음과 같이 구성했다.

  • 배포: Broadsea Docker를 사용한 PostgreSQL 기반 배포
  • 환자 데이터: Synthea로 생성한 1,000명의 합성 환자 기록
  • 코드 체계: 진단에는 SNOMED CT, 약물에는 RxNorm 사용
  • 매핑: source_to_concept_map 테이블을 통해 UMLS CUI로 매핑

SNOMED CT와 RxNorm은 각각 진단과 약물을 위한 표준 코드 체계이며, UMLS CUI가 이 둘을 연결하는 교차 어휘(cross-walk vocabulary) 역할을 한다.

연합 쿼리 시나리오

DuckDB의 ATTACH 명령으로 MotherDuck의 Ducklake와 로컬 PostgreSQL의 OMOP CDM을 연결한 뒤, 다양한 연합 쿼리를 수행할 수 있다.

시나리오 1: 조건 기반 환자 스크리닝

Trial 108에 해당하는 질환 조건을 Ducklake에서 가져와 OMOP CDM의 환자 기록과 매칭한다. 10명의 후보 환자가 발견되었다.

시나리오 2: 약물 기반 환자 스크리닝

Trial 121에서 사용하는 약물을 기준으로 해당 약물을 복용 중인 환자를 OMOP CDM에서 검색한다.

시나리오 3: 그래프 순회를 통한 탐색

GRAPH_TABLE 구문을 사용하여 'Atrial Flutter(심방조동)'를 치료하는 약물을 그래프에서 탐색한 뒤, 해당 약물을 복용 중인 환자를 교차 참조한다. 이는 단순 SQL로는 표현하기 어려운 관계 탐색을 가능하게 한다.

시나리오 4: 시공간 필터링

작용 기전(MOA, Mechanism of Action)이 'Glucocorticoid Receptor Agonists'인 약물을 찾고, 환자의 위치(location)와 날짜(date) 조건을 추가로 필터링한다. 최종적으로 4명의 환자가 선별되었다.

결론

이 아키텍처는 데이터를 물리적으로 이동하지 않으면서도, 온프레미스 병원 데이터와 클라우드 약물 지식 그래프를 효과적으로 연합하여 임상시험 환자 모집을 지원한다.

핵심 기술적 성과는 다음과 같다.

  • DuckDB ATTACH: ETL 없는 데이터 연합
  • Ducklake 멀티모델: SQL + 그래프 + 벡터 + 전문 검색을 단일 환경에서 지원
  • GRAPH_TABLE 구문: 복잡한 관계 탐색을 위한 그래프 순회 쿼리
  • UMLS CUI: 서로 다른 의료 코드 체계 간 교차 어휘

궁극적으로, 이 아키텍처는 AI 도구(LLM, 에이전트, MPC)가 자연어로 임상시험 모집 쿼리를 수행할 수 있는 기반을 마련한다. 데이터 주권을 보장하면서도 풍부한 분석이 가능한 연합 패턴의 실용적 사례를 보여준다.


관련 자료 및 링크

원문 링크

관련 자료

반응형

댓글