3개의 분산된 의료 API를 하나의 Python SDK로 통합한 방법
Source: Dev.to
Overview
나는 MedKit을 만들었다. 의료 데이터는 다루기 매우 까다롭기 때문이다. 약물의 FDA 라벨을 최신 임상시험 단계 및 관련 연구 논문과 연관시키려면 보통 세 개의 서로 다른 API를 동시에 사용하고, 특이한 JSON 스키마를 처리하며, 일관되지 않은 식별자 유형을 다루어야 한다. MedKit은 이러한 파편화된 소스(OpenFDA, PubMed, ClinicalTrials.gov)를 하나의 프로그래밍 가능한 플랫폼으로 변환하는 통합 Python SDK이다.
Key Features
- Unified Client – 모든 것을 제어하는 하나의
MedKit()클라이언트. 더 이상 여러 API 키나 수동 연관 작업이 필요 없다. - Clinical Synthesis (
med.conclude()) – 데이터를 집계해 약물이나 상태에 대한 “스냅샷” 판정을 제공하며, 증거 강도 점수(0.0–1.0)를 포함한다. - Interaction Engine – 라벨 언급(브랜드 vs. 제네릭)을 교차 확인하여 약물‑약물 금기사항을 감지한다.
- Medical Relationship Graph – 약물, 임상시험, 연구 논문 간 연결을 지식 그래프로 시각화한다.
- Intelligence Layer – 자연어 라우팅(
med.ask())을 통해 평문 영어로 데이터를 질의할 수 있다.
Why Use It?
대부분의 헬스케어 개발자는 전체 시간의 ≈ 80 %를 데이터 정리와 결합에 소비한다. MedKit은 캐싱, 스키마 정규화, 관계 매핑 등 인프라 작업을 처리하므로 분석이나 애플리케이션 로직에 집중할 수 있다.
Tech Stack
- Language: Python (동기 및 비동기 API 모두 지원)
- Caching: 디스크 및 메모리 옵션
- Architecture: 확장성을 위한 Provider‑based 설계
Getting Started
pip install medkit-sdk
from medkit import MedKit
# Initialize the unified client
client = MedKit()
# Example: Get a clinical synthesis for a drug
summary = client.med.conclude("aspirin")
print(summary.verdict, summary.evidence_score)
Extensibility
Provider‑based 아키텍처 덕분에 약물유전체학 데이터베이스나 새로운 임상 레지스트리와 같은 추가 데이터 소스를 손쉽게 추가할 수 있다.
Feedback & Contributions
med.conclude() 합성 로직, 기타 기능, 그리고 추가로 유용할 제공자(예: 약물유전체학)에 대한 의견을 듣고 싶다.
- GitHub repository:
- PyPI:
medkit-sdk
이슈, 풀 리퀘스트, 혹은 레포지토리 스타 등 여러분의 지원에 진심으로 감사한다.