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이 누락되는 문제가 있었음
This commit is contained in:
root
2026-04-01 14:53:33 +00:00
parent 8b4e8f7a0a
commit defebd5554
5 changed files with 15 additions and 3 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -12,14 +12,24 @@ PMPLUS20 통계 쿼리 (v2)
- PRICE_T → TOT_PRICE, PRICE_C → INS_PRICE, PRICE_P → EXE_PRICE, PRICE_N → REAL_PRICE
- S_Prep → INS_PREP_PRICE
- Drug_T4 → NON_DRUG_PRICE + EXP_EXE_PRICE
- PreGubun → MPRE_TYPE (값 체계 동일: 0,1,9,F 등)
- PreGubun → MPRE_TYPE + MPRE_TYPE_GUBUN 조합 (아래 매핑 참고)
- Holiday → HD_ADD + PRES_TIME_GUBUN 조합
- Appr_Gubun → APPR_GUBUN (값 동일)
- nAPPROVAL_NUM → CARD_ADM_NO
보험구분 매핑 (V1 PreGubun ↔ V2):
- '0' ← MPRE_TYPE='0' (건강보험)
- '1' ← MPRE_TYPE='1' (의료급여1종)
- '2' ← MPRE_TYPE='2' (산재)
- '3' ← MPRE_TYPE='3' (의료급여2종)
- '7' ← MPRE_TYPE='4' + MPRE_TYPE_GUBUN='C' (차상위1)
- 'E' ← MPRE_TYPE='4' + MPRE_TYPE_GUBUN='E' (보훈)
- 'F' ← MPRE_TYPE='4' + MPRE_TYPE_GUBUN='F' (차상위2)
- '9' ← MPRE_TYPE='9' (비급여)
주의:
- PRES_GUBUN='E' (재고보정) 레코드 제외 필요
- MPRE_TYPE_GUBUN='F'인 경우 PreGubun='F' (차상위)
- MPRE_TYPE='4'는 특수보험 그룹, MPRE_TYPE_GUBUN으로 세부 구분
"""
import pyodbc
from datetime import date
@@ -68,7 +78,9 @@ def get_sales_stats(date_from: str, date_to: str) -> dict:
SELECT
m.DRUG_SEQ AS PreSerial,
CASE
WHEN m.MPRE_TYPE_GUBUN = 'F' THEN 'F'
WHEN m.MPRE_TYPE = '4' AND m.MPRE_TYPE_GUBUN = 'E' THEN 'E' -- 보훈
WHEN m.MPRE_TYPE = '4' AND m.MPRE_TYPE_GUBUN = 'F' THEN 'F' -- 차상위2
WHEN m.MPRE_TYPE = '4' AND m.MPRE_TYPE_GUBUN = 'C' THEN '7' -- 차상위1
ELSE ISNULL(m.MPRE_TYPE, '0')
END AS PreGubun,
m.PAT_JUMIN_NO AS PaNum,