Korean Traditional Medicine Inventory Management System - 한약 재고관리 시스템
Go to file
시골약사 9fa1f7a031 refactor: formula_ingredients를 ingredient_code 기반으로 변경
- formula_ingredients 테이블이 herb_item_id 대신 ingredient_code 사용하도록 변경
- GET /api/formulas/<id>/ingredients API 개선
  - ingredient_code 기반 조회로 변경
  - available_products 배열 추가 (재고 있는 모든 제품 포함)
  - total_available_stock, product_count 필드 추가
- 같은 주성분을 가진 모든 제품의 재고 정보를 반환하도록 수정

이제 처방에서 특정 제품이 아닌 주성분을 지정하여
재고가 있는 대체 제품을 자동으로 선택 가능
2026-02-15 17:45:19 +00:00
.claude feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +00:00
backups feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +00:00
database feat: 재고 보정 시스템 구현 2026-02-15 12:19:18 +00:00
docs feat: 십전대보탕 처방 추가 2026-02-15 15:16:11 +00:00
refactoring refactor: 주성분코드 기반 데이터베이스 리팩토링 완료 2026-02-15 10:34:32 +00:00
sample feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +00:00
static feat: 환자 처방 내역에서 조제 상세 정보 인라인 펼침 기능 추가 2026-02-15 12:54:22 +00:00
templates feat: 환자 처방 내역에서 조제 상세 정보 인라인 펼침 기능 추가 2026-02-15 12:54:22 +00:00
uploads feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +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
analyze_product_code.py feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +00:00
analyze_product_deep.py feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +00:00
app.py refactor: formula_ingredients를 ingredient_code 기반으로 변경 2026-02-15 17:45:19 +00:00
check_and_create_efficacy_tags.py feat: 약재 효능 태그 시스템 추가 2026-02-15 09:48:15 +00:00
check_totals.py feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +00:00
create_adjustment_tables.py feat: 재고 보정 시스템 구현 2026-02-15 12:19:18 +00:00
debug_receipt_detail.py feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +00:00
direct_test.png feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +00:00
excel_processor.py feat: Excel 형식 자동 감지 및 다중 형식 지원 추가 2026-02-15 08:15:59 +00:00
fix_database.py feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +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
purchase_test.png feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +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
test_direct.py feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +00:00
test_frontend.py feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +00:00
test_simple.py feat: 처방 관리 및 재고 원장 시스템 구현 2026-02-15 11:21:20 +00:00
update_receipt_numbers.py fix: 입고장 번호 자동 생성 기능 추가 2026-02-15 11:25:58 +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

라이선스

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

문의

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