## 처방 관리 (조제) 기능 - compounds API 추가 (목록/상세/환자별 조회) - 조제 시 자동 재고 차감 (FIFO) - 조제 내역 UI (EMR 스타일) - 조제 상세보기 모달 (처방구성, 재고소비내역) - 오늘/이번달 조제 통계 표시 ## 재고 원장 시스템 - stock-ledger API 구현 - 입출고 내역 실시간 추적 - 재고 현황 페이지 개선 (통계 카드 추가) - 입출고 원장 모달 UI - 약재별/전체 입출고 내역 조회 ## 확인된 동작 - 박주호 환자 오미자 200g 조제 - 재고 2000g → 1800g 정확히 차감 - 모든 입출고 stock_ledger에 기록 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
3.3 KiB
3.3 KiB
📋 주성분코드 기반 약재 관리 체계 개선 계획
🎯 목표
"454개 주성분코드를 기준으로 약재를 관리하고, 입고되지 않은 약재도 처방 가능한 체계 구축"
🏗️ 현재 문제점
- 약재 관리가 입고된 제품 중심 (28개만 표시)
- 입고되지 않은 약재는 처방 생성 불가
- 보험코드와 주성분코드가 혼재
✨ 개선 후 모습
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분)
/api/herbs/mastersAPI 생성- 454개 전체 약재 + 재고 상태 반환
Step 2: 약재 관리 UI (1시간)
- 약재 관리 페이지 새로 구성
- 필터링 기능 추가
- 재고 상태 표시
Step 3: 처방 관리 수정 (1시간)
- formula_ingredients를 주성분코드 기반으로 변경
- 처방 생성 UI 수정
- 재고 체크 로직 분리
Step 4: 조제 프로세스 (1시간)
- 주성분코드 → 제품 매핑 로직
- 제품 선택 UI
- 재고 부족 처리
Step 5: 테스트 및 마무리 (30분)
- 전체 프로세스 테스트
- 버그 수정
- 문서 업데이트
📊 예상 효과
Before
- 28개 약재만 관리
- 입고된 약재로만 처방 생성
- 제한적인 시스템
After
- 454개 전체 급여 약재 관리
- 재고 없어도 처방 생성 가능
- 표준화된 체계
- 확장 가능한 구조
⚠️ 주의사항
- 하위 호환성: 기존 데이터 유지
- 단계적 적용: 한 번에 하나씩 구현
- 백업: 각 단계별 백업
🔍 검증 기준
- 454개 약재 모두 표시되는가?
- 재고 없는 약재로 처방 생성 가능한가?
- 조제 시 적절한 제품이 매핑되는가?
- 기존 기능이 정상 작동하는가?
작성일: 2026-02-15 예상 소요시간: 4시간 우선순위: 높음