# 📋 주성분코드 기반 약재 관리 체계 개선 계획

## 🎯 목표
**"454개 주성분코드를 기준으로 약재를 관리하고, 입고되지 않은 약재도 처방 가능한 체계 구축"**

## 🏗️ 현재 문제점
1. 약재 관리가 입고된 제품 중심 (28개만 표시)
2. 입고되지 않은 약재는 처방 생성 불가
3. 보험코드와 주성분코드가 혼재

## ✨ 개선 후 모습

### 3단계 계층 구조
```
1. 주성분코드 (454개) - 약재 마스터
        ↓
2. 처방 구성 - 주성분코드 기반
        ↓
3. 실제 조제 - 입고된 제품으로 매핑
```

## 📝 구현 단계

### Phase 1: 약재 관리 UI 개선 (우선)
#### 1-1. 약재 목록 페이지 개선
- **현재**: 입고된 약재만 표시 (28개)
- **개선**:
  ```
  전체 454개 주성분코드 표시
  ✅ 재고 있음 (28개) - 녹색 표시
  ⬜ 재고 없음 (426개) - 회색 표시
  ```

#### 1-2. API 수정
- `/api/herbs/masters` - 454개 전체 약재 (재고 유무 표시)
- `/api/herbs/inventory` - 재고 있는 약재만 (현재 방식 유지)

#### 1-3. 필터링 기능
- 전체 보기 / 재고 있음 / 재고 없음
- 효능별 필터
- 검색 기능

### Phase 2: 처방 관리 개선
#### 2-1. 처방 생성 개선
- 454개 주성분코드에서 선택
- 재고 없는 약재도 선택 가능
- 재고 상태 시각적 표시

#### 2-2. 처방 구성 표시
```
쌍화탕 (12개 약재)
✅ 건강 (재고: 6,500g)
✅ 감초 (재고: 5,000g)
⚠️ 특정약재 (재고: 0g) - 입고 필요
```

### Phase 3: 조제 프로세스 개선
#### 3-1. 조제 시 자동 매핑
```
주성분코드 → 실제 제품 선택
3017H1AHM (건강) →
  • 경희한약 건강 500g (페루산)
  • 고강제약 건강 600g (한국산)
```

#### 3-2. 재고 부족 알림
- 조제 불가능한 약재 강조
- 대체 가능 제품 제안

### Phase 4: 입고 관리 개선
#### 4-1. 제품 매핑
- 입고 시 주성분코드 자동 매핑
- 바코드로 제품 식별

## 🚀 구현 순서

### Step 1: 약재 마스터 API (30분)
1. `/api/herbs/masters` API 생성
2. 454개 전체 약재 + 재고 상태 반환

### Step 2: 약재 관리 UI (1시간)
1. 약재 관리 페이지 새로 구성
2. 필터링 기능 추가
3. 재고 상태 표시

### Step 3: 처방 관리 수정 (1시간)
1. formula_ingredients를 주성분코드 기반으로 변경
2. 처방 생성 UI 수정
3. 재고 체크 로직 분리

### Step 4: 조제 프로세스 (1시간)
1. 주성분코드 → 제품 매핑 로직
2. 제품 선택 UI
3. 재고 부족 처리

### Step 5: 테스트 및 마무리 (30분)
1. 전체 프로세스 테스트
2. 버그 수정
3. 문서 업데이트

## 📊 예상 효과

### Before
- 28개 약재만 관리
- 입고된 약재로만 처방 생성
- 제한적인 시스템

### After
- 454개 전체 급여 약재 관리
- 재고 없어도 처방 생성 가능
- 표준화된 체계
- 확장 가능한 구조

## ⚠️ 주의사항
1. **하위 호환성**: 기존 데이터 유지
2. **단계적 적용**: 한 번에 하나씩 구현
3. **백업**: 각 단계별 백업

## 🔍 검증 기준
1. 454개 약재 모두 표시되는가?
2. 재고 없는 약재로 처방 생성 가능한가?
3. 조제 시 적절한 제품이 매핑되는가?
4. 기존 기능이 정상 작동하는가?

---
작성일: 2026-02-15
예상 소요시간: 4시간
우선순위: 높음