Commit Graph

13 Commits

Author SHA1 Message Date
청춘약국
ef23830a77 fix(v1): QT-POS sales_stats_dialog.py 와 1:1 동기화
pharmon-web/sales_stats_dialog.py 의 _query / _build_margin_cache
로직을 그대로 이식하여 QT-POS 와 stats-api 의 통계 수치 불일치
문제를 해결.

주요 변경:
- CD_SUNAB LEFT JOIN → OUTER APPLY TOP 1
  (1:N 곱증으로 행 중복되어 매출 이중계산되던 버그 제거)
- PS_SUB_BOJO JOIN 추가 (보훈 GITA_GUBUN 세분화 지원)
- SELECT 확장: S_FASTMON, S_TEMP3, SE_BOHUN_C, DRUG_T1~T3,
  S_S_PHOL_0~3, SUGA_ZE_PRICE, GITA_GUBUN
- GPPOS2 공식으로 재작성
  sales_amt = PRICE_C + PRICE_P + S_FASTMON + S_TEMP3
            + SE_PRICE_C + SE_PRICE_P + SE_BOHUN_C
- 보훈(PreGubun='4') + GITA_GUBUN ∈ {1,2,3,4} → '4_1'~'4_4'
- 자동차보험 할증금액, 선별급여 청구액 (SE_PRICE_P*0.25) 반영
- 비급여 마진 캐시 (PS_SUB_PHARM × WH_sub/CD_GOODS)
- config.py: DB 서버 192.168.0.201 → 192.168.0.69 (테스트 서버)

2026-04-08 1/3 스크린샷 기준 QT-POS 와 1원 단위까지 수치 일치 확인.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 20:53:46 +09:00
청춘약국
34374c5626 fix(V1): 비급여에서도 급여조제료/약가 표시 (GPPOS 동일) 2026-04-02 16:22:10 +09:00
청춘약국
8ef9fcdd71 chore: .gitignore 추가 (pyc, venv 등 제외) 2026-04-02 15:45:12 +09:00
청춘약국
f6377a9d5c feat(V1): 선별급여 컬럼 추가 (QT-POS 동기화)
- SE_PRICE_P (선별급여약가) 컬럼 추가
- SE_PRICE_C (선별급여 보험부담) 컬럼 추가
- 청구액 = PRICE_C + SE_PRICE_C
- 비급여조제료 계산에서 SE_PRICE_P 제외
2026-04-02 15:42:31 +09:00
root
cdf2e5682a fix: update V2 PMPLUS20 query 2026-04-02 06:33:09 +00:00
root
9836d2bdab fix: V2 비급여 매출금액 계산 수정 - EXE_PRICE 사용
비급여(MPRE_TYPE='9') 처방의 매출금액:
- V1: PRICE_T에 비급여 총액이 들어감
- V2: TOT_PRICE는 조제료만, EXE_PRICE에 비급여 총액

수정:
- PRICE_T = CASE WHEN MPRE_TYPE='9' THEN EXE_PRICE ELSE TOT_PRICE END

검증 (2026년 3월):
- V1 비급여 매출: 3,804,250
- V2 비급여 매출: 3,804,250
- 차이: 0 
2026-04-01 15:34:56 +00:00
root
fc0f6832c3 fix: V1 쿼리에 PS_Main_Sub 조인 추가 - 선별급여/상한제 합산
V1 PharmIT3000의 PRICE_N은 선별급여/상한제초과 금액 미포함 버그 있음.
PS_Main_Sub.SE_PRICE_P를 합산해야 진짜 수납액.

변경:
- PS_Main_Sub LEFT JOIN 추가
- PRICE_N = m.PRICE_N + ISNULL(s.SE_PRICE_P, 0)

결과:
- V1 수납액 합계: 64,680,430
- V2 수납액 합계: 64,680,430
- 차이: 0 (완벽 일치)
2026-04-01 15:29:02 +00:00
root
bc0c282eaf docs: V1 PS_Main_Sub 선별급여/상한제 스키마 분석 추가
V1 PharmIT3000 구조 분석:
- PS_Main: 처방헤더 (PRICE_N만, 합산 안됨)
- PS_Main_Sub: 처방 부가정보 (SE_PRICE_P_80 등 선별급여 컬럼 있음!)
- CD_SUNAB: 수납 (ETC_CARD에 합산 결과 저장)

V1 버그 원인:
- 수납 화면에서는 PS_Main + PS_Main_Sub JOIN해서 계산
- CD_SUNAB.ETC_CARD에 정확히 저장
- 하지만 PS_Main.PRICE_N은 업데이트 안 함

SE_PRICE 컬럼 이력:
- PS_Main_Sub 테이블: 2010년 초기 스키마에 생성
- SE_PRICE_P_* 컬럼: 선별급여 제도 시행 후 추가
- 실제 데이터: 2026년부터 6건 존재

V2 PMPLUS20 개선:
- REAL_PRICE에 모든 항목 합산해서 저장
- 수납테이블 RECP_AMT와 일치 보장
2026-04-01 15:26:58 +00:00
root
75559a78f9 docs: PRICE_N vs REAL_PRICE 매핑 상세 분석 추가
- 일반 환자: REAL_PRICE = PRICE_N 정확히 일치 확인
- 특수 보험 환자 (차상위/선별급여):
  - 지성윤(차상위2): 상한제초과분(EXP_UNDER_EXE_PRICE) 포함
  - 임해자(선별급여): 선별급여80%(SE_PRICE_P_80) 포함
- v1 PRICE_N 버그: 상한제초과/선별급여분 미포함
- v2 REAL_PRICE = 수납테이블(TBSIR000_01)의 RECP_AMT와 일치
- 결론: REAL_PRICE 매핑 유지 (v1보다 정확한 실제 결제금액)
2026-04-01 15:07:35 +00:00
root
d6a1484b54 docs: 보험구분 매핑 문서 업데이트 - 전체 보험종류 포함
- 3-2절: MPRE_TYPE + MPRE_TYPE_GUBUN 조합 매핑 추가
  - 건강보험(0), 의료급여1종(1), 산재(2), 의료급여2종(3)
  - 차상위1(7←4+C), 보훈(E←4+E), 차상위2(F←4+F), 비급여(9)
- 4절: v2 쿼리에 정확한 CASE문 반영
- 5절: 2026년 3월 전체 검증 결과로 업데이트 (V1=V2 일치 확인)
- 6절: 작업 이력으로 변경, 완료된 항목 체크
2026-04-01 14:57:56 +00:00
root
defebd5554 fix: 보험구분 매핑 수정 - 보훈/차상위1/차상위2 정확한 변환
V2 PMPLUS20에서 MPRE_TYPE='4'는 특수보험 그룹:
- MPRE_TYPE_GUBUN='E' → 보훈 (V1: 'E')
- MPRE_TYPE_GUBUN='F' → 차상위2 (V1: 'F')
- MPRE_TYPE_GUBUN='C' → 차상위1 (V1: '7')

기존 코드는 MPRE_TYPE_GUBUN='F'만 체크해서 차상위2만 인식하고
보훈과 차상위1이 누락되는 문제가 있었음
2026-04-01 14:53:33 +00:00
root
8b4e8f7a0a feat: PMPLUS20(v2) 테이블 매핑 완료 및 쿼리 수정
- 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>
2026-04-01 14:45:31 +00:00
청춘약국
8e6552724a Initial commit: Flask stats API (v1 PharmIT3000, v2 PMPLUS20) 2026-04-01 22:10:15 +09:00