요약 정리
핵심 내용 (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) 데이터를 외부로 내보내기 어렵고, 제약사는 최대한 넓은 환자 풀에 접근하여 적합한 후보를 찾아야 한다. 이 상충되는 요구를 어떻게 동시에 만족시킬 수 있을까?
아키텍처 개요
이 글에서 제안하는 아키텍처는 세 가지 핵심 구성요소로 이루어져 있다.
- Ducklake 약물 지식 그래프(Drug Knowledge Graph) - MotherDuck 클라우드에 배포. 제약/규제 데이터를 포함하는 약물-질병-임상시험 관계 그래프
- OMOP CDM on PostgreSQL - Docker 환경에서 실행. 안전한 온프레미스 EHR을 시뮬레이션하며, Synthea로 생성한 1,000명의 합성(synthetic) 환자 데이터 포함
- 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)가 자연어로 임상시험 모집 쿼리를 수행할 수 있는 기반을 마련한다. 데이터 주권을 보장하면서도 풍부한 분석이 가능한 연합 패턴의 실용적 사례를 보여준다.
관련 자료 및 링크
원문 링크
- Connecting Patients to Drug Trials: Federating OMOP CDM and Ducklake Knowledge Graph - Sixing Huang, 2026.02.17
관련 자료
- DuckLake Medical Knowledge Graph - 같은 저자의 선행 글. MotherDuck에서 Postgres 기반 GCS로의 DuckLake 의료 지식 그래프 구축 과정
- 'Crossing borders' in data standardisation: application of OMOP CDM in an international clinical trial network in precision cancer medicine - OMOP CDM을 국제 정밀 암 의학 임상시험 네트워크에 적용한 데이터 표준화 사례 (Acta Oncologica, 2026)
- The European Health Data Space in 2026 - 유럽 건강 데이터 공간(EHDS)의 연합 모델. OMOP-on-FHIR 파이프라인을 통한 연합 데이터 표준화 동향
- Healthcare Knowledge Graph Construction: A Systematic Review - 헬스케어 지식 그래프 구축에 대한 체계적 문헌 리뷰
- OHDSI - Standardized Data: The OMOP Common Data Model - OMOP CDM 공식 문서 및 데이터 표준화 가이드
- OMOP MCP Server - OMOP CDM을 위한 MCP 서버 구현체. AI 에이전트와의 통합 사례
'Data Analysis' 카테고리의 다른 글
| 업리프트 모델링 완벽 가이드 — 인과추론으로 마케팅 ROI를 극대화하는 법 (2) | 2026.04.07 |
|---|---|
| R 설치 (mac m1) (0) | 2023.03.10 |
댓글