From 3dade61bb645f67e4e752aca6ee3f8be3ce33ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B2=AD=EC=B6=98=EC=95=BD=EA=B5=AD?= Date: Wed, 18 Mar 2026 22:05:14 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=A7=88=EC=8A=A4=ED=84=B0=20=ED=85=9C?= =?UTF-8?q?=ED=94=8C=EB=A6=BF=20=EC=84=A4=EA=B3=84=20+=20=EB=84=A5?= =?UTF-8?q?=EC=8A=A4=EA=B0=80=EB=93=9C/=EC=95=84=EC=8B=9C=EC=B9=B4?= =?UTF-8?q?=ED=94=84=20=EB=A7=88=EC=8A=A4=ED=84=B0=20JSON?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/master/asikaff_carprofen.json | 119 ++++++++++++++++ data/master/nexgard_spectra.json | 98 +++++++++++++ docs/MASTER_TEMPLATE_DESIGN.md | 221 +++++++++++++++++++++++++++++ 3 files changed, 438 insertions(+) create mode 100644 data/master/asikaff_carprofen.json create mode 100644 data/master/nexgard_spectra.json create mode 100644 docs/MASTER_TEMPLATE_DESIGN.md diff --git a/data/master/asikaff_carprofen.json b/data/master/asikaff_carprofen.json new file mode 100644 index 0000000..b4931eb --- /dev/null +++ b/data/master/asikaff_carprofen.json @@ -0,0 +1,119 @@ +{ + "product_id": "MASTER-002", + "apc_code": "0232617800004", + "name": "아시카프 츄어블정", + "english_name": "Asikaff Chewable (Carprofen 50mg)", + "manufacturer": "미상", + "category": "nsaid", + "category_display": "진통소염제 (NSAIDs)", + "target_animal": ["개"], + "administration": "경구 (츄어블정)", + "image_url": "/images/asikaff.png", + + "indication": "개의 관절염, 수술 후 통증, 근골격계 염증 완화", + + "mechanism": { + "drug_class": "프로피온산계 NSAIDs", + "action": "COX-2 우선 억제 → 염증성 프로스타글란딘 생성 억제", + "selectivity": "COX-2 우선 (preferential) - 완전 선택적 아님" + }, + + "dosage": { + "standard": "4.4mg/kg 1일 1회", + "alternative": "2.2mg/kg 1일 2회", + "note": "최소 유효 용량 원칙 - 효과 확인 후 감량 시도" + }, + + "dosage_table": [ + {"weight": "5kg", "daily_dose": "22mg", "tablets": "0.5정 (반정)"}, + {"weight": "10kg", "daily_dose": "44mg", "tablets": "1정"}, + {"weight": "15kg", "daily_dose": "66mg", "tablets": "1.5정"}, + {"weight": "20kg", "daily_dose": "88mg", "tablets": "2정"}, + {"weight": "25kg", "daily_dose": "110mg", "tablets": "2.5정"}, + {"weight": "30kg", "daily_dose": "132mg", "tablets": "3정"} + ], + + "absolute_contraindications": [ + { + "item": "고양이 사용 절대 금지", + "reason": "UGT 대사효소 결여 → 약물 축적 → 치명적 독성", + "severity": "치명적" + }, + { + "item": "코르티코스테로이드 동시 투여 금지", + "reason": "위장관 궤양·천공 위험 급증", + "severity": "치명적" + }, + { + "item": "다른 NSAIDs 동시 투여 금지", + "reason": "소규모 연구에서 2종 병용 시 천공 100%", + "severity": "치명적" + } + ], + + "relative_contraindications": [ + "신장 기능 저하", + "간 기능 저하", + "위장관 궤양 병력", + "출혈 경향", + "심부전", + "탈수 상태" + ], + + "warnings": [ + "🚫 고양이에게 절대 투여하지 마세요 (치명적)", + "🚫 스테로이드와 함께 투여하지 마세요", + "⚠️ 구토, 흑색변, 식욕부진 시 즉시 투여 중단", + "⚠️ 장기 투여 시 3~6개월마다 혈액검사 필요", + "⚠️ 음식과 함께 투여하면 위장 자극 감소" + ], + + "side_effects": { + "common": ["구토", "설사", "식욕부진"], + "serious": ["위장관 궤양/출혈 (흑색변)", "간독성 (황달)", "신독성 (다음다뇨)"], + "monitoring_signs": ["흑색변", "토혈", "황달", "기력저하", "다음다뇨"] + }, + + "monitoring": { + "required": true, + "pre_treatment": ["CBC", "간기능 (ALT, ALP, AST)", "신기능 (BUN, Cr)", "뇨검사"], + "during_treatment": { + "2_4_weeks": "혈청 화학 (간·신기능)", + "3_months": "혈청 화학, 뇨검사", + "every_6_months": "CBC, 혈청 화학, 뇨검사" + }, + "stop_criteria": [ + "ALT/ALP 기저치 2~3배 이상 상승", + "크레아티닌/BUN 상승", + "흑색변/토혈", + "황달" + ] + }, + + "washout_period": { + "to_other_nsaid": "3~5일", + "to_steroid": "5~7일", + "from_short_steroid": "5~7일", + "from_long_steroid": "2주 이상" + }, + + "clinical_efficacy": { + "osteoarthritis": "89.1~92.4% 개선", + "post_surgical": "우수한 통증 관리", + "source_pmid": ["7759332", "12665145", "17056650", "25433056"] + }, + + "storage": "실온 보관, 습기 피할 것", + + "pharmacist_tips": [ + "음식과 함께 투여 권장 (위장 자극 감소)", + "장기 투여 시 정기 검사 안내 필수", + "보호자에게 중단 신호 교육 (흑색변, 구토, 황달)", + "스테로이드 병용 여부 반드시 확인" + ], + + "source": { + "guidelines": ["WSAVA Pain Management Guidelines"], + "pmid": ["7759332", "12665145", "17056650", "16468926", "25433056"] + } +} diff --git a/data/master/nexgard_spectra.json b/data/master/nexgard_spectra.json new file mode 100644 index 0000000..19f9471 --- /dev/null +++ b/data/master/nexgard_spectra.json @@ -0,0 +1,98 @@ +{ + "product_id": "MASTER-001", + "apc_code": "0519-NEXGARD-SPECTRA", + "name": "넥스가드 스펙트라", + "english_name": "NexGard Spectra (Afoxolaner + Milbemycin Oxime)", + "manufacturer": "베링거인겔하임 (Boehringer Ingelheim)", + "category": "antiparasitic", + "category_display": "올인원 구충제", + "target_animal": ["개"], + "administration": "경구 (소고기맛 츄어블)", + "image_url": "/images/nexgard_spectra.png", + + "indication": "벼룩·진드기 구제 + 심장사상충 예방 + 내부기생충 구제", + + "coverage": { + "external": { + "fleas": {"covered": true, "note": "6~8시간 내 사멸"}, + "ticks": {"covered": true, "note": "12~24시간 내 사멸"}, + "demodex": {"covered": true, "note": "모낭충증 치료"}, + "sarcoptes": {"covered": true, "note": "개선충증"}, + "ear_mites": {"covered": true, "note": "귀진드기"} + }, + "heartworm": { + "covered": true, + "note": "L3/L4 유충 단계에서 차단", + "limitation": "성충(L5+)은 구제 불가" + }, + "intestinal": { + "roundworm": {"covered": true, "note": "회충"}, + "hookworm": {"covered": true, "note": "구충"}, + "whipworm": {"covered": true, "note": "편충 - 하트가드에 없는 커버!"}, + "tapeworm": {"covered": false, "note": "❌ 조충 미커버 - Praziquantel 필요"} + } + }, + + "coverage_summary": { + "covered": ["벼룩", "진드기", "심장사상충", "회충", "구충", "편충", "모낭충"], + "not_covered": ["조충(촌충)"], + "gap_solution": "안텔민(Praziquantel) 3개월마다 보조 투약" + }, + + "dosing": { + "interval": "매월 1회", + "interval_reason": "심장사상충 L3→L5 전환 시간 ~60일, 30일 간격으로 차단", + "year_round": true, + "year_round_reason": "겨울에도 실내 모기/벼룩 있음, CAPC/AHS 권장", + "minimum_age": "8주 이상", + "minimum_weight": "2kg 이상" + }, + + "weight_products": [ + {"size": "XS", "weight_range": "2~3.5kg", "afoxolaner": "9.4mg", "milbemycin": "1.9mg", "price_approx": "16,000원"}, + {"size": "S", "weight_range": "3.6~7.5kg", "afoxolaner": "18.8mg", "milbemycin": "3.8mg", "price_approx": "17,000원"}, + {"size": "M", "weight_range": "7.6~15kg", "afoxolaner": "37.5mg", "milbemycin": "7.5mg", "price_approx": "18,000원"}, + {"size": "L", "weight_range": "15.1~30kg", "afoxolaner": "75mg", "milbemycin": "15mg", "price_approx": "20,000원"}, + {"size": "XL", "weight_range": "30.1~60kg", "afoxolaner": "150mg", "milbemycin": "30mg", "price_approx": "22,000원"} + ], + + "warnings": [ + "⚠️ 경련/간질 이력이 있는 개는 수의사 상담 필수 (이소자졸린 계열 FDA 경고)", + "⚠️ 투약 전 심장사상충 검사 필수 (감염 상태에서 투약 시 위험)", + "⚠️ 8주(2개월) 미만, 2kg 미만 투여 금지", + "⚠️ 콜리 품종은 MDR1 유전자 검사 후 투여 권장" + ], + + "contraindications": [ + "8주 미만, 2kg 미만", + "심장사상충 양성 (미검사 포함)", + "경련/간질 이력 (상대적 금기)" + ], + + "side_effects": [ + "드물게 구토, 설사, 무기력, 식욕부진 (대부분 일시적)", + "매우 드물게 근육떨림, 운동실조, 경련 (FDA 경고)" + ], + + "fda_warning": { + "year": 2018, + "content": "이소자졸린 계열에서 드물게 신경계 부작용 보고", + "symptoms": ["근육 떨림", "운동실조", "경련"], + "fda_statement": "대다수 동물에서 안전하고 효과적" + }, + + "comparison_with_3set": { + "convenience": "넥스가드 스펙트라 우위 (한 알로 끝)", + "cost": "3종 세트가 저렴 (~15,000원 vs ~20,000원)", + "coverage": "넥스가드가 편충까지 추가 커버", + "tapeworm_gap": "둘 다 안텔민 보조 필요" + }, + + "storage": "직사광선 피하여 서늘한 곳 보관", + + "source": { + "guidelines": ["ESCCAP GL1/GL3/GL5 (2024-2025)", "CAPC (2024)", "AHS Think 12 (2024)"], + "fda": "FDA Isoxazoline Fact Sheet (2018)", + "pmid": ["40234985", "30201031", "30516132", "32485788"] + } +} diff --git a/docs/MASTER_TEMPLATE_DESIGN.md b/docs/MASTER_TEMPLATE_DESIGN.md new file mode 100644 index 0000000..9f6b5b7 --- /dev/null +++ b/docs/MASTER_TEMPLATE_DESIGN.md @@ -0,0 +1,221 @@ +# 동물약 복약안내문 마스터 템플릿 설계 + +> 작성일: 2026-03-18 +> 목표: 골든패턴 문서를 기반으로 규격화된 복약안내문 구조 설계 + +--- + +## 1. 문제점 분석 + +### 현재 골든패턴 데이터의 한계 + +| 문제 | 원인 | 해결 방향 | +|------|------|---------| +| 필드 불일치 | 문서마다 포함 정보가 다름 | **필수 필드 규격화** | +| 복약안내용 아님 | 전문가 참고용으로 작성됨 | **보호자용 언어로 재가공** | +| 시각화 부재 | 텍스트 위주 | **구충범위표, 용량표 시각화** | +| 카테고리별 차이 | 구충제 vs NSAIDs 표현 방식 다름 | **카테고리별 템플릿 분리** | + +--- + +## 2. 카테고리별 템플릿 설계 + +### 2-1. 구충제 (Antiparasitic) 템플릿 + +**핵심 표현 요소:** +- 🎯 **구충 범위표** (가장 중요!) +- 📅 투약 주기 +- ⚖️ 체중별 제품 선택 +- ⚠️ 주의사항 + 갭(Gap) 보완 안내 + +``` +┌─────────────────────────────────────────────────────┐ +│ [제품 사진] 넥스가드 스펙트라 │ +│ Afoxolaner + Milbemycin Oxime │ +│ [구충제] [경구] [개 전용] │ +├─────────────────────────────────────────────────────┤ +│ 🎯 구충 범위 │ +│ ┌────────────────────────────────────────────┐ │ +│ │ 벼룩 ✅ │ 심장사상충 ✅ │ 회충 ✅ │ │ +│ │ 진드기 ✅ │ 구충 ✅ │ 편충 ✅ │ │ +│ │ 모낭충 ✅ │ 조충(촌충) ❌ │ │ │ +│ └────────────────────────────────────────────┘ │ +│ │ +│ 📅 투약 주기: 매월 1회 (연중) │ +│ │ +│ ⚖️ 체중별 선택 │ +│ XS(2-3.5kg) | S(3.6-7.5kg) | M(7.6-15kg) | ... │ +│ │ +│ ⚠️ 주의사항 │ +│ • 경련/간질 이력 → 수의사 상담 필수 │ +│ • 투약 전 심장사상충 검사 필수 │ +│ • 8주 미만, 2kg 미만 금지 │ +│ │ +│ 💡 조충 보완: 안텔민 3개월마다 추가 │ +└─────────────────────────────────────────────────────┘ +``` + +### 2-2. 진통소염제 (NSAIDs) 템플릿 + +**핵심 표현 요소:** +- 📋 적응증 (어디에 쓰는 약인지) +- ⚖️ **체중별 용량표** (가장 중요!) +- 🚫 **절대 금기** (강조) +- 📊 모니터링 필요 안내 + +``` +┌─────────────────────────────────────────────────────┐ +│ [제품 사진] 아시카프 츄어블정 │ +│ Carprofen 50mg │ +│ [진통소염제] [경구] [개 전용] │ +├─────────────────────────────────────────────────────┤ +│ 📋 적응증 │ +│ 관절염, 수술 후 통증, 근골격계 염증 │ +│ │ +│ ⚖️ 용법용량 (4.4mg/kg 1일 1회) │ +│ ┌────────────────────────────────────────────┐ │ +│ │ 체중 5kg → 0.5정 │ 체중 10kg → 1정 │ │ +│ │ 체중 15kg → 1.5정 │ 체중 20kg → 2정 │ │ +│ └────────────────────────────────────────────┘ │ +│ │ +│ 🚫 절대 금기 │ +│ ┌────────────────────────────────────────────┐ │ +│ │ ❌ 고양이 사용 금지 (치명적 독성) │ │ +│ │ ❌ 스테로이드 병용 금지 (위장관 천공) │ │ +│ │ ❌ 다른 NSAIDs 병용 금지 │ │ +│ └────────────────────────────────────────────┘ │ +│ │ +│ ⚠️ 주의사항 │ +│ • 위장관 부작용 (구토, 흑색변) 시 즉시 중단 │ +│ • 장기 투여 시 3~6개월마다 혈액검사 권장 │ +│ • 임신/수유 중 투여 주의 │ +└─────────────────────────────────────────────────────┘ +``` + +--- + +## 3. 규격화된 JSON 스키마 + +### 3-1. 공통 필드 + +```json +{ + "product_id": "필수 - 고유 ID", + "apc_code": "필수 - APC 코드", + "name": "필수 - 제품명", + "english_name": "필수 - 영문명/성분명", + "manufacturer": "선택 - 제조사", + "category": "필수 - 카테고리 (antiparasitic/nsaid/antibiotic/...)", + "target_animal": "필수 - 대상동물 배열", + "administration": "필수 - 투여경로 (경구/외용/주사)", + "image_url": "선택 - 제품 이미지", + + "indication": "필수 - 적응증 (한 줄 요약)", + "dosage_summary": "필수 - 용법용량 요약", + "dosage_table": "조건부 - 체중별 용량표 (NSAIDs용)", + + "warnings": "필수 - 주의사항 배열", + "contraindications": "필수 - 금기사항 배열", + "side_effects": "선택 - 부작용", + + "storage": "선택 - 보관방법", + "source": "선택 - 출처" +} +``` + +### 3-2. 구충제 전용 필드 + +```json +{ + "coverage": { + "fleas": true, + "ticks": true, + "heartworm": true, + "roundworm": true, + "hookworm": true, + "whipworm": true, + "tapeworm": false, + "demodex": true, + "ear_mites": false + }, + "coverage_gap": "조충 미커버 - Praziquantel 필요", + "supplement_recommendation": "안텔민 3개월마다", + "dosing_interval": "매월 1회", + "weight_products": [ + {"name": "XS", "weight_range": "2-3.5kg", "price": "16000"}, + {"name": "S", "weight_range": "3.6-7.5kg", "price": "17000"} + ] +} +``` + +### 3-3. NSAIDs 전용 필드 + +```json +{ + "dosage_per_kg": "4.4mg/kg", + "dosage_frequency": "1일 1회 또는 2.2mg/kg 1일 2회", + "dosage_table": [ + {"weight": "5kg", "dose": "0.5정"}, + {"weight": "10kg", "dose": "1정"}, + {"weight": "15kg", "dose": "1.5정"}, + {"weight": "20kg", "dose": "2정"} + ], + "absolute_contraindications": [ + "고양이 사용 금지", + "스테로이드 병용 금지", + "다른 NSAIDs 병용 금지" + ], + "monitoring_required": true, + "monitoring_interval": "3~6개월마다 혈액검사" +} +``` + +--- + +## 4. 마스터 목업 2종 + +### 4-1. 넥스가드 스펙트라 (구충제 마스터) + +선정 이유: +- 올인원 구충제로 구충범위 시각화 적합 +- 조충 갭이 있어 보완 안내 표현 가능 +- 체중별 제품 라인업 표현 가능 +- FDA 경고 등 주의사항 풍부 + +### 4-2. 아시카프 (NSAIDs 마스터) + +선정 이유: +- 체중별 용량 계산 필요 +- 절대 금기 3가지 명확 +- 모니터링 안내 필요 +- 일반적인 약품 카드 구조 대표 + +--- + +## 5. 다음 단계 + +1. **마스터 JSON 2개 작성** (nexgard_spectra_master.json, asikaff_master.json) +2. **HTML 템플릿 개선** - 카테고리별 레이아웃 분기 +3. **PDF 렌더링 테스트** +4. **MCP 연동 기획** - 새 약품 추가 시 규격화된 JSON 생성 + +--- + +## 6. 향후 MCP 생성 프롬프트 (예시) + +``` +동물약 복약안내 JSON 생성 + +[제품명]: 넥스가드 스펙트라 +[카테고리]: antiparasitic + +다음 규격에 맞춰 JSON을 생성하세요: +1. coverage: 각 기생충별 커버 여부 (true/false) +2. coverage_gap: 미커버 항목과 보완 방법 +3. dosing_interval: 투약 주기 +4. weight_products: 체중별 제품 라인업 +5. warnings: 보호자용 언어로 주의사항 3~5개 +6. contraindications: 금기사항 + +출력: JSON 형식 +```