8b4e8f7a0aacb54dabc1d1dabc79ef1c84b3d490
- config.py: PMPLUS20 서버(192.168.0.201\PMPLUS20) 및 SA 비밀번호 수정 - v2_pmplus20.py: PS_MAIN→TBSID040_03, CD_SUNAB→TBSIR000_01 매핑 적용 - 컬럼 매핑: PRICE_T→TOT_PRICE, PRICE_C→INS_PRICE, PRICE_P→EXE_PRICE 등 - Drug_T4 = NON_DRUG_PRICE + EXP_EXE_PRICE - Holiday = HD_ADD + PRES_TIME_GUBUN 조합 - PreGubun = MPRE_TYPE (차상위 F 별도 처리) - PRES_GUBUN='E' 재고보정 레코드 제외 - PMPLUS20_MIGRATION_GUIDE.md: 전체 매핑 가이드 문서 추가 - app.py: 포트 5060→5050 변경 20260324 기준 검증: 건수/금액/보험별/결제별 일치 확인 PRICE_N(수납) 2건 차이(23,420원)는 비급여 수납 처리 개선에 의한 정상 차이 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Pharmacy Stats API
QT-POS 통계 다이얼로그 API 버전
구조
pharmacy-stats-api/
├── app.py # Flask 메인
├── config.py # DB 연결 설정
├── queries/
│ ├── v1_pharmit3000.py # PharmIT3000 쿼리
│ └── v2_pmplus20.py # PMPLUS20 쿼리
└── templates/
└── stats.html # 비교 UI
API 엔드포인트
v1 - PharmIT3000
| Endpoint | 설명 |
|---|---|
/v1/api/stats |
전체 통계 |
/v1/api/stats/insurance |
보험별 통계 |
/v1/api/stats/time |
시간가산별 통계 |
/v1/api/stats/payment |
결제수단별 통계 |
/v1/api/stats/hospital |
병원별 통계 |
v2 - PMPLUS20
동일한 구조의 /v2/api/stats/... 엔드포인트
비교
| Endpoint | 설명 |
|---|---|
/api/compare |
v1 vs v2 비교 |
쿼리 파라미터
from: 시작일 (YYYYMMDD)to: 종료일 (YYYYMMDD)
예: /v1/api/stats?from=20260401&to=20260401
테이블 매핑
| 역할 | PharmIT3000 (v1) | PMPLUS20 (v2) |
|---|---|---|
| 판매 헤더 | PM_PRES.PS_MAIN | PM_MAIN.TBSIM040_28 |
| 판매 상세 | PM_PRES.PS_SUB_PHARM | PM_MAIN.TBSIM040_29 |
| 수납 정보 | PM_PRES.CD_SUNAB | PM_MAIN.TBSIR000_01 |
| 약품 마스터 | PM_DRUG.CD_GOODS | PM_MAIN.TBSIM040_01 |
실행
pip install -r requirements.txt
python app.py
환경변수
PHARMIT_SERVER=192.168.0.4\PM2014
PHARMIT_USER=sa
PHARMIT_PASS=password
PMPLUS_SERVER=192.168.0.4\PM2014
PMPLUS_USER=sa
PMPLUS_PASS=password
Description
Languages
Python
69.3%
HTML
30.7%