- patient_query: 대체조제 원본 처방 제외 - rx_query: 대체조제 원본 처방 제외 - PS_Type=9는 대체조제시 원래 처방된 약(조제 안됨) - 기타 배치 스크립트 및 문서 추가
130 lines
3.8 KiB
Markdown
130 lines
3.8 KiB
Markdown
# 동원약품 rx-usage 프론트엔드 연동 트러블슈팅
|
|
|
|
**작성일**: 2025-07-14
|
|
**수정 파일**: `backend/templates/admin_rx_usage.html`
|
|
|
|
## 발견된 문제점 3가지
|
|
|
|
### 문제 1: 재고 모달에서 KD코드가 아닌 내부코드 표시
|
|
|
|
**증상**: 동원약품만 재고 모달에서 내부코드(예: 16045, A4394)가 표시됨. 다른 도매상(지오영, 수인, 백제)은 KD코드(보험코드)가 정상 표시됨.
|
|
|
|
**원인**: `renderWholesaleResults()` 함수의 동원 섹션에서 `item.internal_code`를 표시함
|
|
|
|
```javascript
|
|
// 잘못된 코드
|
|
<span class="geo-code">${item.internal_code || ''} · ${item.manufacturer || ''}</span>
|
|
```
|
|
|
|
**해결**: 동원 API는 `code`에 KD코드(보험코드)를, `internal_code`에 내부코드를 반환함. 표시용은 `code` 사용.
|
|
|
|
```javascript
|
|
// 수정된 코드
|
|
const displayCode = item.code || item.internal_code || '';
|
|
<span class="geo-code">${displayCode} · ${item.manufacturer || ''}</span>
|
|
```
|
|
|
|
### 문제 2: 장바구니 "주문서 생성하기"에 동원 미포함
|
|
|
|
**증상**: 장바구니에 동원 상품을 담아도 "주문서 생성하기" 모달에 동원이 나오지 않음.
|
|
|
|
**원인**: `WHOLESALERS` 객체에 동원 설정 누락
|
|
|
|
```javascript
|
|
// 기존 코드 - 동원 없음
|
|
const WHOLESALERS = {
|
|
geoyoung: {...},
|
|
sooin: {...},
|
|
baekje: {...}
|
|
};
|
|
```
|
|
|
|
**해결**: `WHOLESALERS`에 동원 추가
|
|
|
|
```javascript
|
|
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` 객체에 동원 누락
|
|
|
|
```javascript
|
|
// 기존
|
|
const supplierNames = { geoyoung: '지오영', sooin: '수인약품', baekje: '백제약품' };
|
|
```
|
|
|
|
**해결**: 동원 추가
|
|
|
|
```javascript
|
|
const supplierNames = {
|
|
geoyoung: '지오영',
|
|
sooin: '수인약품',
|
|
baekje: '백제약품',
|
|
dongwon: '동원약품'
|
|
};
|
|
```
|
|
|
|
## 추가 수정 사항
|
|
|
|
### 1. 장바구니 아이템에 dongwon_code 필드 추가
|
|
|
|
```javascript
|
|
const cartItem = {
|
|
...
|
|
dongwon_code: wholesaler === 'dongwon' ? item.internal_code : null,
|
|
...
|
|
};
|
|
```
|
|
|
|
동원은 장바구니 담기/주문 시 `internal_code`를 사용해야 함.
|
|
|
|
### 2. CSS 스타일 - 다중 도매상 모달 카드 색상
|
|
|
|
```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. "주문서 생성하기" 클릭하여:
|
|
- 동원약품이 도매상 목록에 나타나는지 확인
|