현재 스키마 흐름 herb_masters (성분코드 마스터) ingredient_code: '3400H1AHM' → 인삼 │ ├──── official_formula_ingredients (100처방 원방 구성) │ ingredient_code + grams_per_cheop │ → "가미패독산 원방: 인삼 3g/첩" │ └──── formula_ingredients (운영 처방 구성) ingredient_code + grams_per_cheop → "내 쌍화탕: 인삼 4g/첩 (가감)" 둘 다 ingredient_code 기반으로 통일되어 있어서: - 100처방 마스터에 원방 구성을 채워두면 - 운영 처방 만들 때 원방을 복사 → 가감하는 워크플로우가 가능합니다 - 특정 제품(휴먼인삼 vs 한퓨어인삼)에 종속되지 않고, 조제 시점에 재고 기반으로 제품이 자동 선택됩니다 1. 100처방 목록에서 가미패독산 클릭 → 상세 모달 2. "내 처방으로 등록" 버튼 클릭 3. 처방 등록 모달이 열리면서 자동 프리필: - 처방명: 어울림 가미패독산 - 구성 약재 13종 + 첩당 용량 전부 채워짐 - 각 약재의 역할(notes)도 포함 4. 여기서 자유롭게 약재 추가/제거/용량 변경 후 저장 원방을 기반으로 가감방을 만드는 워크플로우가 완성된 겁니다. app.py - create_formula 함수: 1. formula_ingredients INSERT 컬럼을 herb_item_id → ingredient_code로 변경 (line 572) 2. official_formula_id 저장 추가 — 100처방 기반으로 생성한 처방은 원방 연결 추적 가능 static/app.js: 1. 100처방에서 "내 처방으로 등록" 시 official_formula_id를 모달 데이터에 저장 2. 처방 저장 시 official_formula_id를 API로 전달 3. 저장 완료 후 official-formula-id 데이터 초기화 이제 가미패독산 등 100처방에서 "내 처방으로 등록" → 저장이 정상 동작할 것입니다. 재고가 없는 약재도 ingredient_code 기반으로 저장되므로 문제없습니다. 1. 내 처방 목록 가감 표시 기능 처방명 "어울림" 스타일링: - "어울림 가미패독산" → 어울림(초록색 볼드) + 가미패독산 가감 뱃지 (100처방 원방 대비 변경사항): - 용량 변경: 생강 3g→4g — 파란색 뱃지 - 약재 추가: +건강 2g — 초록색 뱃지 - 약재 제거: -생강 — 빨간색 뱃지 - 원방 그대로인 경우: 원방 그대로 — 회색 뱃지 조제 시 가감 감지 코드(checkCustomPrescription)와 동일한 패턴을 처방 목록에도 적용했습니다.