kdrug-inventory-system/dev_scripts/check_sipjeondaebotang.py
시골약사 ad9ac396e2 chore: 개발 파일 정리 및 구조화
- 개발/테스트 스크립트를 dev_scripts/ 폴더로 이동
- 스크린샷을 screenshots/ 폴더로 이동
- 백업 파일 보존 (.backup)
- 처방 관련 추가 스크립트 포함

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 04:44:48 +00:00

119 lines
4.3 KiB
Python

#!/usr/bin/env python3
"""
십전대보탕 데이터 조회 및 분석
"""
import sqlite3
def check_sipjeondaebotang():
"""십전대보탕 처방 상세 조회"""
conn = sqlite3.connect('database/kdrug.db')
cursor = conn.cursor()
print("🔍 십전대보탕 처방 조회")
print("="*70)
# 십전대보탕 처방 찾기
cursor.execute("""
SELECT formula_id, formula_code, formula_name, formula_type,
base_cheop, base_pouches, description, is_active
FROM formulas
WHERE formula_name LIKE '%십전대보%'
OR formula_name LIKE '%십전대보탕%'
OR formula_code LIKE '%SJDB%'
""")
formulas = cursor.fetchall()
if not formulas:
print("❌ 십전대보탕 처방을 찾을 수 없습니다.")
else:
for formula_id, code, name, f_type, cheop, pouches, desc, active in formulas:
print(f"\n📋 {name} ({code})")
print(f" ID: {formula_id}")
print(f" 타입: {f_type if f_type else '❌ 없음'}")
print(f" 기본 첩수: {cheop if cheop else '❌ 없음'}")
print(f" 기본 포수: {pouches if pouches else '❌ 없음'}")
print(f" 설명: {desc if desc else '❌ 없음'}")
print(f" 활성 상태: {'활성' if active else '비활성'}")
# 처방 구성 약재 확인
cursor.execute("""
SELECT hm.herb_name, hm.ingredient_code, fi.grams_per_cheop, fi.notes
FROM formula_ingredients fi
JOIN herb_masters hm ON fi.ingredient_code = hm.ingredient_code
WHERE fi.formula_id = ?
ORDER BY fi.sort_order
""", (formula_id,))
ingredients = cursor.fetchall()
print(f"\n 구성 약재 ({len(ingredients)}개):")
print(" " + "-"*60)
print(f" {'약재명':15s} | {'용량(g)':>8s} | {'효능 설명'}")
print(" " + "-"*60)
total_amount = 0
for herb_name, code, amount, notes in ingredients:
total_amount += amount
notes_str = notes if notes else "❌ 효능 설명 없음"
print(f" {herb_name:15s} | {amount:8.1f} | {notes_str}")
print(" " + "-"*60)
print(f" {'총 용량':15s} | {total_amount:8.1f} |")
# 빠진 정보 체크
print(f"\n ⚠️ 빠진 정보 체크:")
missing = []
if not desc:
missing.append("처방 설명")
if not f_type:
missing.append("처방 타입")
if not cheop:
missing.append("기본 첩수")
if not pouches:
missing.append("기본 포수")
# 약재별 효능 설명 체크
missing_notes = []
for herb_name, code, amount, notes in ingredients:
if not notes:
missing_notes.append(herb_name)
if missing:
print(f" - 처방 기본 정보: {', '.join(missing)}")
if missing_notes:
print(f" - 약재 효능 설명 없음: {', '.join(missing_notes)}")
if not missing and not missing_notes:
print(" ✅ 모든 정보가 완비되어 있습니다.")
# 십전대보탕 표준 구성 확인
print(f"\n\n📚 십전대보탕 표준 구성 (참고용):")
print("="*70)
print("""
십전대보탕은 사군자탕(인삼, 백출, 복령, 감초)과
사물탕(당귀, 천궁, 백작약, 숙지황)을 합방한 처방으로,
황기와 육계를 추가하여 총 10개 약재로 구성됩니다.
주요 효능: 기혈양허(氣血兩虛)를 치료하는 대표 처방
- 대보기혈(大補氣血): 기와 혈을 크게 보함
- 병후 회복, 수술 후 회복, 만성 피로에 사용
표준 구성 (1첩 기준):
- 인삼 4g (대보원기)
- 황기 4g (보기승양)
- 백출 4g (보기건비)
- 복령 4g (건비이수)
- 감초 2g (조화제약)
- 당귀(일당귀) 4g (보혈)
- 천궁 4g (활혈)
- 백작약 4g (보혈)
- 숙지황 4g (보음보혈)
- 육계 2g (온양보화)
""")
conn.close()
if __name__ == "__main__":
check_sipjeondaebotang()