pharmacy-pos-qr-system/docs/DONGWON_TROUBLESHOOTING.md
thug0bin e470deaefc fix: rx-usage 쿼리에 PS_Type!=9 조건 추가 (실제 조제된 약만 집계)
- patient_query: 대체조제 원본 처방 제외
- rx_query: 대체조제 원본 처방 제외
- PS_Type=9는 대체조제시 원래 처방된 약(조제 안됨)
- 기타 배치 스크립트 및 문서 추가
2026-03-09 21:54:32 +09:00

3.8 KiB

동원약품 rx-usage 프론트엔드 연동 트러블슈팅

작성일: 2025-07-14 수정 파일: backend/templates/admin_rx_usage.html

발견된 문제점 3가지

문제 1: 재고 모달에서 KD코드가 아닌 내부코드 표시

증상: 동원약품만 재고 모달에서 내부코드(예: 16045, A4394)가 표시됨. 다른 도매상(지오영, 수인, 백제)은 KD코드(보험코드)가 정상 표시됨.

원인: renderWholesaleResults() 함수의 동원 섹션에서 item.internal_code를 표시함

// 잘못된 코드
<span class="geo-code">${item.internal_code || ''} · ${item.manufacturer || ''}</span>

해결: 동원 API는 code에 KD코드(보험코드)를, internal_code에 내부코드를 반환함. 표시용은 code 사용.

// 수정된 코드
const displayCode = item.code || item.internal_code || '';
<span class="geo-code">${displayCode} · ${item.manufacturer || ''}</span>

문제 2: 장바구니 "주문서 생성하기"에 동원 미포함

증상: 장바구니에 동원 상품을 담아도 "주문서 생성하기" 모달에 동원이 나오지 않음.

원인: WHOLESALERS 객체에 동원 설정 누락

// 기존 코드 - 동원 없음
const WHOLESALERS = {
    geoyoung: {...},
    sooin: {...},
    baekje: {...}
};

해결: WHOLESALERS에 동원 추가

dongwon: {
    id: 'dongwon',
    name: '동원약품',
    icon: '🏥',
    logo: '/static/img/logo_dongwon.png',
    color: '#22c55e',
    gradient: 'linear-gradient(135deg, #16a34a, #22c55e)',
    filterFn: (item) => item.supplier === '동원약품' || item.wholesaler === 'dongwon',
    getCode: (item) => item.dongwon_code || item.internal_code || item.drug_code
}

문제 3: 장바구니에서 "dongwon"으로 표시

증상: 동원 상품이 장바구니에 담기면 "동원약품" 대신 "dongwon"으로 표시됨.

원인: addToCartFromWholesale() 함수의 supplierNames 객체에 동원 누락

// 기존
const supplierNames = { geoyoung: '지오영', sooin: '수인약품', baekje: '백제약품' };

해결: 동원 추가

const supplierNames = { 
    geoyoung: '지오영', 
    sooin: '수인약품', 
    baekje: '백제약품', 
    dongwon: '동원약품' 
};

추가 수정 사항

1. 장바구니 아이템에 dongwon_code 필드 추가

const cartItem = {
    ...
    dongwon_code: wholesaler === 'dongwon' ? item.internal_code : null,
    ...
};

동원은 장바구니 담기/주문 시 internal_code를 사용해야 함.

2. CSS 스타일 - 다중 도매상 모달 카드 색상

.multi-ws-card.dongwon {
    border-left: 3px solid #22c55e;
}

동원약품 API 필드 매핑

API 필드 의미 용도
code KD코드 (보험코드) 화면 표시용
internal_code 동원 내부코드 장바구니 담기/주문 시 사용
name 제품명 표시용
manufacturer 제조사 표시용
spec 규격 표시용
price 단가 표시용
stock 재고 표시용

관련 파일

  • 프론트엔드: backend/templates/admin_rx_usage.html
  • 동원 API: backend/dongwon_api.py
  • 동원 세션: pharmacy-wholesale-api/wholesale/dongwon.py

테스트 방법

  1. 전문의약품 사용량 페이지 접속: http://localhost:7001/admin/rx-usage
  2. 약품 행 더블클릭하여 재고 모달 열기
  3. 동원약품 섹션에서:
    • KD코드(9자리 숫자)가 표시되는지 확인
    • "담기" 버튼 클릭하여 장바구니 추가
  4. 장바구니 열어서:
    • "동원약품"으로 표시되는지 확인
  5. "주문서 생성하기" 클릭하여:
    • 동원약품이 도매상 목록에 나타나는지 확인