Korean Traditional Medicine Inventory Management System - 한약 재고관리 시스템
Go to file
시골약사 8f2823e6df refactor: 주성분코드 기반 데이터베이스 리팩토링 완료
DB 구조 개선:
- 454개 주성분코드 기반 herb_masters 테이블 생성
- 53,769개 제품 데이터를 herb_products 테이블에 임포트
- 128개 업체 정보를 product_companies 테이블에 추가
- 기존 herb_items에 ingredient_code 매핑 (100% 완료)

UI/API 개선:
- 급여 약재 보유 현황 표시 (28/454 = 6.2%)
- 재고 현황에 프로그레스 바 추가
- 주성분코드 기준 통계 API 추가

문서화:
- 데이터베이스 리팩토링 제안서 작성
- 리팩토링 결과 보고서 작성
- 백업 정보 문서화

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 10:34:32 +00:00
.claude docs: 서버 관리 및 시스템 설계 문서 추가 2026-02-15 09:57:18 +00:00
database 초기 커밋: 한약 재고관리 시스템 2026-02-15 07:57:40 +00:00
docs refactor: 주성분코드 기반 데이터베이스 리팩토링 완료 2026-02-15 10:34:32 +00:00
refactoring refactor: 주성분코드 기반 데이터베이스 리팩토링 완료 2026-02-15 10:34:32 +00:00
sample feat: 입고장 관리 기능 추가 2026-02-15 08:26:51 +00:00
static refactor: 주성분코드 기반 데이터베이스 리팩토링 완료 2026-02-15 10:34:32 +00:00
templates refactor: 주성분코드 기반 데이터베이스 리팩토링 완료 2026-02-15 10:34:32 +00:00
uploads feat: 입고장 관리 기능 추가 2026-02-15 08:26:51 +00:00
.gitignore 초기 커밋: 한약 재고관리 시스템 2026-02-15 07:57:40 +00:00
add_missing_herbs.py feat: 쌍화탕 처방 완성 (12종 약재) 2026-02-15 09:54:37 +00:00
analyze_excel_formats.py feat: Excel 형식 자동 감지 및 다중 형식 지원 추가 2026-02-15 08:15:59 +00:00
app.py refactor: 주성분코드 기반 데이터베이스 리팩토링 완료 2026-02-15 10:34:32 +00:00
check_and_create_efficacy_tags.py feat: 약재 효능 태그 시스템 추가 2026-02-15 09:48:15 +00:00
excel_processor.py feat: Excel 형식 자동 감지 및 다중 형식 지원 추가 2026-02-15 08:15:59 +00:00
gitea.md 초기 커밋: 한약 재고관리 시스템 2026-02-15 07:57:40 +00:00
insert_ssanghwa.py feat: 쌍화탕 처방 완성 (12종 약재) 2026-02-15 09:54:37 +00:00
README.md 초기 커밋: 한약 재고관리 시스템 2026-02-15 07:57:40 +00:00
run_server.sh docs: 서버 관리 및 시스템 설계 문서 추가 2026-02-15 09:57:18 +00:00
test_db.py feat: 입고장 관리 기능 추가 2026-02-15 08:26:51 +00:00
기획문서.md 초기 커밋: 한약 재고관리 시스템 2026-02-15 07:57:40 +00:00

한약 재고관리 시스템

한의원/한약방을 위한 웹 기반 재고관리 및 조제관리 시스템입니다.

주요 기능

1. 환자 관리

  • 환자 등록 (이름, 전화번호, 주민번호, 성별, 생년월일)
  • 환자 검색 및 조회
  • 환자별 조제 이력 관리

2. 입고 관리

  • Excel 파일을 통한 대량 입고 처리
  • 도매상별 입고 관리
  • 로트별 재고 추적 (원산지, 입고일, 단가 등)

3. 처방 관리 (약속 처방)

  • 자주 사용하는 처방 템플릿 등록
  • 처방별 구성 약재 및 용량 설정
  • 처방 재사용 및 가감 기능

4. 조제 관리

  • 처방 선택 후 즉시 조제
  • 약재 가감 기능
  • FIFO 방식 재고 차감
  • 조제 원가 자동 계산

5. 재고 현황

  • 실시간 재고 조회
  • 약재별 재고 수량 및 금액
  • 로트별 상세 재고 현황

시스템 아키텍처

┌─────────────────────────────────────────┐
│         웹 브라우저 (클라이언트)          │
│     HTML + Bootstrap + jQuery           │
└──────────────────┬──────────────────────┘
                   │ HTTP/AJAX
                   │
┌──────────────────▼──────────────────────┐
│        Flask 웹 서버 (Backend)          │
│         REST API + 템플릿 렌더링         │
└──────────────────┬──────────────────────┘
                   │
┌──────────────────▼──────────────────────┐
│       SQLite Database                  │
│  (재고, 환자, 처방, 조제 데이터)        │
└─────────────────────────────────────────┘

데이터베이스 구조

핵심 테이블

  • patients - 환자 정보
  • herb_items - 약재 마스터 (보험코드 기준)
  • suppliers - 도매상 정보
  • purchase_receipts - 입고장 헤더
  • purchase_receipt_lines - 입고장 상세
  • inventory_lots - 로트별 재고
  • formulas - 처방 마스터
  • formula_ingredients - 처방 구성 약재
  • compounds - 조제 작업
  • compound_consumptions - 로트별 차감 내역
  • stock_ledger - 재고 원장 (모든 변동 기록)

핵심 개념

  • 1제 = 20첩 = 30파우치 (기본값, 조정 가능)
  • 로트 관리: 입고 시점별로 재고를 구분 관리
  • FIFO 차감: 오래된 재고부터 우선 사용
  • 원가 추적: 로트별 단가 기준 정확한 원가 계산

설치 방법

1. 필수 요구사항

  • Python 3.8 이상
  • pip (Python 패키지 관리자)

2. 설치 과정

# 1. 프로젝트 클론 또는 다운로드
cd kdrug

# 2. 가상환경 생성 및 활성화
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 3. 필요 패키지 설치
pip install flask flask-cors pandas openpyxl

# 4. 서버 실행
python app.py

3. 웹 브라우저에서 접속

http://localhost:5001

사용 방법

1. 초기 설정

  1. 시스템 실행 후 웹 브라우저로 접속
  2. 약재 마스터 데이터 준비 (Excel 업로드로 자동 생성 가능)

2. Excel 입고장 업로드

Excel 파일 형식 (필수 컬럼):

  • 제품코드 (보험코드 9자리)
  • 업체명
  • 약재명
  • 구입일자 (YYYYMMDD)
  • 구입량 (그램 단위)
  • 구입액 (원)
  • 원산지

3. 환자 등록

  1. 좌측 메뉴에서 "환자 관리" 클릭
  2. "새 환자 등록" 버튼 클릭
  3. 필수 정보 입력 (이름, 전화번호)
  4. 선택 정보 입력 (주민번호, 성별, 생년월일 등)

4. 처방 등록 (약속 처방)

  1. 좌측 메뉴에서 "처방 관리" 클릭
  2. "새 처방 등록" 버튼 클릭
  3. 처방명 입력 (예: 쌍화탕, 보중익기탕 등)
  4. 구성 약재 추가
    • 약재 선택
    • 1첩당 용량(g) 입력
  5. 저장

5. 조제 실행

  1. 좌측 메뉴에서 "조제 관리" 클릭
  2. "새 조제" 버튼 클릭
  3. 환자 선택
  4. 처방 선택 (등록된 처방 템플릿)
  5. 제수 입력 (기본 1제)
  6. 약재 가감 (필요시)
    • 용량 조정
    • 약재 추가/삭제
  7. "조제 실행" 클릭
  8. 자동으로 재고 차감 및 원가 계산

6. 재고 확인

  1. 좌측 메뉴에서 "재고 현황" 클릭
  2. 약재명으로 검색 가능
  3. 현재 재고량, 로트 수, 평균 단가, 재고 금액 확인

시스템 특징

장점

  • 간편한 Excel 업로드: 기존 Excel 입고장을 그대로 활용
  • 약속 처방 기능: 자주 사용하는 처방을 템플릿으로 저장
  • 가감 기능: 처방 기본 구성에서 유연한 조정 가능
  • 정확한 원가 계산: 로트별 단가 추적으로 정확한 원가 산출
  • FIFO 재고 관리: 선입선출 원칙 자동 적용
  • 웹 기반: 별도 설치 없이 브라우저에서 사용

보안 고려사항

  • 주민번호 등 민감 정보는 암호화 필요 (프로덕션 환경)
  • 사용자 인증/권한 관리 기능 추가 필요
  • HTTPS 적용 권장

향후 개발 계획

  1. 보험 청구 연동

    • 건강보험 첩약 코드 완벽 지원
    • 청구 자료 자동 생성
  2. 고급 리포트

    • 월별/분기별 매출 분석
    • 약재별 사용량 통계
    • 환자별 처방 이력
  3. 모바일 지원

    • 반응형 웹 디자인
    • 모바일 앱 개발
  4. 재고 알림

    • 최소 재고 수준 설정
    • 재고 부족 알림
    • 유효기간 임박 알림
  5. 다중 사용자

    • 사용자 계정 관리
    • 권한별 접근 제어
    • 작업 이력 추적

기술 스택

  • Backend: Flask 3.1.2 (Python Web Framework)
  • Database: SQLite (경량 관계형 데이터베이스)
  • Frontend: Bootstrap 5.1.3 + jQuery 3.6.0
  • Excel 처리: pandas + openpyxl
  • API: RESTful JSON API

라이선스

이 프로젝트는 교육 및 테스트 목적으로 제작되었습니다. 상업적 사용 시 별도 협의가 필요합니다.

문의

기술 지원 및 문의사항은 이슈 트래커를 통해 등록해주세요.