diff --git a/PMPLUS20_MIGRATION_GUIDE.md b/PMPLUS20_MIGRATION_GUIDE.md index 82cfd83..5e25dab 100644 --- a/PMPLUS20_MIGRATION_GUIDE.md +++ b/PMPLUS20_MIGRATION_GUIDE.md @@ -185,19 +185,55 @@ WHERE m.SUNAB_DT BETWEEN ? AND ? | Drug_T4 (비급여약제비) | 412,560 | 412,560 | ✅ (NON_DRUG+EXP_EXE) | | PRICE_N (수납금액) | 2,815,000 | 2,838,420 | ⚠️ 차이 23,420원 (아래 설명) | -### PRICE_N vs REAL_PRICE 차이 원인 (정상) +### PRICE_N vs REAL_PRICE 매핑 상세 분석 -20260324 기준 2건에서 차이 발생: +#### 결론: `REAL_PRICE = 진짜 수납금액` ✅ -| 환자 | v1 PRICE_N | v2 REAL_PRICE | 차이 | 보험구분 | -|------|-----------|--------------|------|---------| -| 지성윤 | 500 | 11,920 | +11,420 | 차상위(F) | -| 임해자 | 19,700 | 31,700 | +12,000 | - | +PMPLUS20의 `REAL_PRICE`는 수납테이블(TBSIR000_01)의 `RECP_AMT`, `SUNAB_PRICE`와 정확히 일치함. -**원인**: PharmIT3000은 차상위/의료급여 등 특수 보험에서 비급여 약제비를 `PRICE_N`에 미반영하는 버그가 있었음. -PMPLUS20의 `REAL_PRICE`는 비급여 약제비를 포함한 **실제 수납액**으로 개선됨. +#### 검증 케이스 (20260324) -**결론**: v2(PMPLUS20)의 `REAL_PRICE`가 더 정확한 값. 차이는 시스템 개선에 의한 정상 차이. +| 환자 | 보험구분 | v1 PRICE_N | v2 REAL_PRICE | v2 수납(RECP_AMT) | 설명 | +|------|---------|-----------|--------------|-----------------|------| +| 박명순 | 건강보험+비급여 | 89,600 | 89,600 | 89,600 | 일반 케이스 ✅ | +| 김상훈 | 건강보험+비급여 | 70,900 | 70,900 | 70,900 | 일반 케이스 ✅ | +| 지성윤 | 차상위2(F) | 500 | 11,920 | 11,920 | 특수 케이스 ⚠️ | +| 임해자 | 건강보험+선별급여 | 19,700 | 31,700 | 31,700 | 특수 케이스 ⚠️ | + +#### 일반 환자 (건강보험 + 비급여) + +``` +REAL_PRICE = EXE_PRICE(본인부담) + NON_DRUG_PRICE(비급여약) + EXP_EXE_PRICE(비급여조제) + = PRICE_N (정확히 일치) +``` + +#### 특수 보험 환자 (차상위/선별급여) + +**지성윤 (차상위2)**: +``` +EXE_PRICE = 500 (기본 본인부담) +EXP_UNDER_EXE_PRICE = 11,420 (상한제초과 본인부담) +REAL_PRICE = 500 + 11,420 = 11,920 (진짜 수납액) +v1 PRICE_N = 500 ← 상한제초과분 누락! +``` + +**임해자 (건강보험 + 선별급여 80%)**: +``` +EXE_PRICE = 19,700 (기본 본인부담) +SE_PRICE_P_80 = 12,000 (선별급여 80% 본인부담) +REAL_PRICE = 19,700 + 12,000 = 31,700 (진짜 수납액) +v1 PRICE_N = 19,700 ← 선별급여분 누락! +``` + +#### v1 PRICE_N 버그 원인 + +PharmIT3000의 `PRICE_N`은 다음 항목을 미포함: +- `EXP_UNDER_EXE_PRICE`: 상한제초과 본인부담 +- `SE_PRICE_P_80/90/50`: 선별급여 본인부담 + +PMPLUS20의 `REAL_PRICE`는 이 모두를 포함한 **실제 결제금액**이며, 수납테이블(TBSIR000_01)의 `RECP_AMT`와 일치함. + +**결론**: `REAL_PRICE` 매핑 유지가 맞음. 차이는 시스템 개선에 의한 정상 차이. ### 보험구분별 (2026년 3월 전체 검증) | 보험구분 | v1 건수 | v2 건수 | 일치 |