동물약 APC 매핑 가이드
최종 업데이트: 2026-03-02
개요
POS(PIT3000)의 동물약 제품을 APDB의 APC 코드와 매핑하여 제품 정보(용법, 용량, 주의사항) 및 이미지를 표시하기 위한 작업 가이드.
현재 상태
매핑 현황
| 구분 |
개수 |
비율 |
| 동물약 총 |
39개 |
100% |
| APC 매핑됨 |
7개 |
18% |
| APC 미매핑 |
32개 |
82% |
매핑 완료 제품
| POS 제품명 |
DrugCode |
APC |
| (판)복합개시딘 |
LB000003140 |
0231093520106 |
| 안텔민킹(5kg이상) |
LB000003158 |
0230237810109 |
| 안텔민뽀삐(5kg이하) |
LB000003157 |
0230237010107 |
| 파라캅L(5kg이상) |
LB000003159 |
0230338510101 |
| 파라캅S(5kg이하) |
LB000003160 |
0230347110106 |
| 세레니아정16mg(개멀미약) |
LB000003353 |
0231884610109 |
| 세레니아정24mg(개멀미약) |
LB000003354 |
0231884620107 |
매핑 구조
데이터베이스 연결
MSSQL (192.168.0.4\PM2014) PostgreSQL (192.168.0.87:5432)
┌─────────────────────────┐ ┌─────────────────────────┐
│ PM_DRUG.CD_GOODS │ │ apdb_master.apc │
│ - DrugCode │ │ - apc (PK) │
│ - GoodsName │ │ - product_name │
│ - BARCODE │ │ - image_url1 │
│ │ │ - llm_pharm (JSONB) │
├─────────────────────────┤ └─────────────────────────┘
│ PM_DRUG.CD_ITEM_UNIT_ │
│ MEMBER │
│ - DRUGCODE (FK) │
│ - CD_CD_BARCODE ◀───────┼── APC 코드 저장 (023%로 시작)
│ - CHANGE_DATE │
└─────────────────────────┘
APC 매핑 방식
CD_ITEM_UNIT_MEMBER 테이블에 추가 바코드로 APC 등록
- 기존 바코드는 유지, APC를 별도 레코드로 INSERT
- APC 코드는
023%로 시작 (식별자)
1:1 매핑 가능 후보
✅ 확실한 매핑 (1개)
| POS 제품명 |
DrugCode |
APC |
APDB 제품명 |
이미지 |
| 제스타제(10정) |
LB000003146 |
8809720800455 |
제스타제 |
✅ 있음 |
⚠️ 검토 필요 (1개)
| POS 제품명 |
DrugCode |
APC 후보 |
비고 |
| 안텔민 |
S0000001 |
0230237800003 |
"안텔민킹"과 "안텔민뽀삐"는 이미 별도 매핑됨. 이 제품이 무엇인지 확인 필요 |
❌ APDB에 없음 (3개)
| POS 제품명 |
사유 |
| (판)클라펫정50(100정) |
APDB엔 "클라펫 정"만 있음 (함량 불일치) |
| 넥스가드xs(2~3.5kg) |
사이즈별 APC 없음 |
| 캐치원캣(2.5~7.5kg)/고양이 |
APDB에 캐치원 자체가 없음 |
1:N 매핑 필요 제품 (27개)
사이즈별로 세분화된 제품들. 하나의 APDB APC에 여러 POS 제품을 매핑해야 함.
브랜드별 현황
| 브랜드 |
POS 제품 수 |
APDB 존재 |
비고 |
| 다이로하트 |
3개 (SS/S/M) |
✅ |
다이로하트 츄어블 정 |
| 하트세이버 |
4개 (mini/S/M/L) |
✅ |
하트세이버 플러스 츄어블 |
| 하트웜솔루션 |
2개 (S/M) |
❌ |
APDB에 없음 |
| 리펠로 |
2개 (S/M) |
✅ |
리펠로액 (이미지 있음!) |
| 캐치원 |
5개 (SS/S/M/L/캣) |
❌ |
APDB에 없음 |
| 셀라이트 |
5개 (SS/S/M/L/XL) |
✅ |
셀라이트 액 |
| 넥스가드 |
2개 (xs/L) |
✅ |
넥스가드 스펙트라 |
| 가드닐 |
3개 (S/M/L) |
✅ |
가드닐 액 |
| 심피드 |
2개 (M/L) |
❌ |
APDB에 없음 |
| 하트캅 |
1개 |
✅ |
하트캅-츄어블 정 |
APDB 통계
| 항목 |
수치 |
| 전체 APC |
16,326개 |
| 이미지 있음 |
73개 (0.4%) |
| LLM 정보 있음 |
81개 (0.5%) |
| 동물 관련 키워드 |
~200개 |
⚠️ 주의: APDB에 이미지가 거의 없음. 이미지 표시가 목적이라면 다른 소스 필요.
매핑 스크립트
매핑 후보 찾기
python backend/scripts/batch_apc_matching.py
1:1 매핑 가능 후보 추출
python backend/scripts/find_1to1_candidates.py
매핑 실행 (수동)
# backend/scripts/batch_insert_apc.py 참고
MAPPINGS = [
('제스타제(10정)', 'LB000003146', '8809720800455'),
]
INSERT 쿼리 예시
INSERT INTO CD_ITEM_UNIT_MEMBER (
DRUGCODE, CD_CD_UNIT, CD_NM_UNIT, CD_MY_UNIT, CD_IN_UNIT,
CD_CD_BARCODE, CD_CD_POS, CHANGE_DATE
) VALUES (
'LB000003146', -- DrugCode
'015', -- 단위코드
1.0, -- 단위명
<기존값>, -- CD_MY_UNIT (기존 레코드에서 복사)
<기존값>, -- CD_IN_UNIT (기존 레코드에서 복사)
'8809720800455', -- APC 바코드
'',
'20260302' -- 변경일자
)
다음 단계
- 제스타제 1:1 매핑 실행
- 안텔민(S0000001) 제품 확인 후 결정
- 1:N 매핑 정책 결정 (사이즈별 제품 → 동일 APC?)
- 이미지 소스 대안 검토 (필요시)
관련 파일
backend/db/dbsetup.py - DB 연결 설정
backend/scripts/batch_apc_matching.py - 매칭 후보 찾기
backend/scripts/batch_insert_apc.py - 매핑 실행
backend/scripts/find_1to1_candidates.py - 1:1 후보 추출
backend/app.py - _get_animal_drugs(), _get_animal_drug_rag()