제5장: Phase 2 - API 인터페이스
전통 의학 통합을 위한 RESTful API
5.1 API 설계 원칙
WIA-TRADITIONAL-MEDICINE API는 현대적인 RESTful 설계 원칙을 따릅니다:
- 리소스 지향: 명확한 리소스 계층 (환자, 진단, 약재, 처방)
- 무상태: 각 요청에 모든 필요한 정보 포함
- 버전 관리: URL 경로에 API 버전 (v1, v2)
- 문서화: OpenAPI 3.0 사양 제공
- 보안: OAuth 2.0 인증, HTTPS 필수
5.2 핵심 API 엔드포인트
체질 평가
POST
/api/v1/constitution/assess
설문 응답 제출 및 체질 분석 수신
// 요청
POST /api/v1/constitution/assess
{
"patient_id": "PAT-2025-001",
"system": "sasang",
"questionnaire_type": "QSCCII",
"responses": { "q1": 4, "q2": 3 ... }
}
// 응답
{
"profile_id": "PROF-2025-12345",
"primary_constitution": "태음인",
"confidence": 0.85,
"recommendations": {
"diet": ["기름진 음식 제한", "담백한 음식 권장"],
"lifestyle": ["규칙적인 유산소 운동"]
}
}
설진 분석
POST
/api/v1/diagnosis/tongue/analyze
혀 이미지 제출 및 AI 분석
// 요청
POST /api/v1/diagnosis/tongue/analyze
Content-Type: multipart/form-data
image: [tongue_photo.jpg]
patient_id: PAT-2025-001
// 응답
{
"findings": {
"body_color": "담백",
"coating": { "color": "백", "thickness": "후" }
},
"patterns_suggested": [
{ "pattern": "비기허", "confidence": 0.89 }
],
"icd11_tm_codes": ["TM1:SF32.2"]
}
처방 추천
POST
/api/v1/herbs/formula/recommend
변증 기반 처방 추천
약물 상호작용 확인
POST
/api/v1/herbs/interactions
약재-약물 및 약재-약재 상호작용 확인
// 요청
POST /api/v1/herbs/interactions
{
"herbs": ["인삼", "당귀", "천궁"],
"medications": ["Warfarin", "Aspirin"]
}
// 응답
{
"interactions": [
{
"herb": "당귀",
"drug": "Warfarin",
"severity": "주요",
"effect": "항응고 효과 증강 가능",
"recommendation": "INR 주의 모니터링 또는 병용 피할 것"
}
],
"overall_risk": "높음"
}
5.3 SDK 지원
공식 SDK 제공:
- TypeScript/JavaScript: @wia/traditional-medicine-sdk
- Python: wia-traditional-medicine
- Java: com.wia.traditional-medicine