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절: 작업 이력으로 변경, 완료된 항목 체크
This commit is contained in:
root
2026-04-01 14:57:56 +00:00
parent defebd5554
commit d6a1484b54

View File

@@ -60,16 +60,32 @@ LEFT JOIN PM_MAIN..TBSIR000_01 n ON n.DRUG_SEQ = m.DRUG_SEQ
| `PaName` | `PAT_NM` | 환자명 | 동일 | ✅ | | `PaName` | `PAT_NM` | 환자명 | 동일 | ✅ |
| `OrderName` | `YOYANG_NM` | 처방 병원명 | 동일 | ✅ | | `OrderName` | `YOYANG_NM` | 처방 병원명 | 동일 | ✅ |
### 3-2. 보험구분 (PreGubun → MPRE_TYPE) ### 3-2. 보험구분 (PreGubun → MPRE_TYPE + MPRE_TYPE_GUBUN)
| v1 `PreGubun` | v2 `MPRE_TYPE` | 의미 | 건수 (20260324) | v2에서 `MPRE_TYPE='4'`는 특수보험 그룹이며, `MPRE_TYPE_GUBUN`으로 세부 구분함.
|---------------|---------------|------|----------------|
| `'0'` | `'0'` | 건강보험 | 191건 ✅ |
| `'1'` | `'1'` | 의료급여 | 16건 ✅ |
| `'9'` | `'9'` | 비급여 | 2건 ✅ |
| `'F'` | `MPRE_TYPE_GUBUN='F'` | 차상위 | 2건 ✅ |
> **주의**: `MPRE_TYPE`이 보험구분. `PRES_GUBUN`은 다른 용도 (A/E 값) | v1 `PreGubun` | v2 `MPRE_TYPE` | v2 `MPRE_TYPE_GUBUN` | 의미 | 건수 (202603) |
|---------------|---------------|---------------------|------|----------------|
| `'0'` | `'0'` | `'0'` | 건강보험 | 3,325건 ✅ |
| `'1'` | `'1'` | `'0'` | 의료급여1종 | 259건 ✅ |
| `'2'` | `'2'` | `'0'` | 산재 | 17건 ✅ |
| `'3'` | `'3'` | `'0'` | 의료급여2종 | 6건 ✅ |
| `'7'` | `'4'` | `'C'` | **차상위1** | 7건 ✅ |
| `'E'` | `'4'` | `'E'` | **보훈** | 32건 ✅ |
| `'F'` | `'4'` | `'F'` | **차상위2** | 11건 ✅ |
| `'9'` | `'9'` | `'0'` | 비급여 | 34건 ✅ |
**v2에서 PreGubun 변환 SQL**:
```sql
CASE
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
```
> **주의**: `MPRE_TYPE`이 기본 보험구분. `PRES_GUBUN`은 다른 용도 (A/E 값)
> **v2 전용 필터**: `PRES_GUBUN = 'E'`인 "재고보정" 레코드는 제외해야 함 > **v2 전용 필터**: `PRES_GUBUN = 'E'`인 "재고보정" 레코드는 제외해야 함
> (DRUG_SEQ='20260324099999' 형태, v1에는 없음) > (DRUG_SEQ='20260324099999' 형태, v1에는 없음)
@@ -119,7 +135,13 @@ else:
```sql ```sql
SELECT SELECT
m.DRUG_SEQ AS PreSerial, m.DRUG_SEQ AS PreSerial,
m.MPRE_TYPE AS PreGubun, -- 보험구분 변환: MPRE_TYPE + MPRE_TYPE_GUBUN → PreGubun
CASE
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, m.PAT_JUMIN_NO AS PaNum,
m.YOYANG_NM AS OrderName, m.YOYANG_NM AS OrderName,
-- Holiday 변환: HD_ADD + PRES_TIME_GUBUN → Holiday -- Holiday 변환: HD_ADD + PRES_TIME_GUBUN → Holiday
@@ -177,13 +199,17 @@ PMPLUS20의 `REAL_PRICE`는 비급여 약제비를 포함한 **실제 수납액*
**결론**: v2(PMPLUS20)의 `REAL_PRICE`가 더 정확한 값. 차이는 시스템 개선에 의한 정상 차이. **결론**: v2(PMPLUS20)의 `REAL_PRICE`가 더 정확한 값. 차이는 시스템 개선에 의한 정상 차이.
### 보험구분별 ### 보험구분별 (2026년 3월 전체 검증)
| 보험구분 | v1 건수 | v2 건수 | 일치 | | 보험구분 | v1 건수 | v2 건수 | 일치 |
|---------|--------|--------|------| |---------|--------|--------|------|
| 0 (건강보험) | 191 | 191 | ✅ | | 0 (건강보험) | 3,359 | 3,359 | ✅ |
| 1 (의료급여) | 16 | 16 | ✅ | | 1 (의료급여1종) | 271 | 271 | ✅ |
| 9 (비급여) | 2 | 2 | ✅ | | 2 (산재) | 17 | 17 | ✅ |
| F (차상위) | 2 | 2 | ✅ | | 3 (의료급여2종) | 6 | 6 | ✅ |
| 7 (차상위1) | 8 | 8 | ✅ |
| 9 (비급여) | 35 | 35 | ✅ |
| E (보훈) | 32 | 32 | ✅ |
| F (차상위2) | 11 | 11 | ✅ |
### 결제수단별 ### 결제수단별
| 구분 | v1 건수 | v2 건수 | 일치 | | 구분 | v1 건수 | v2 건수 | 일치 |
@@ -195,15 +221,17 @@ PMPLUS20의 `REAL_PRICE`는 비급여 약제비를 포함한 **실제 수납액*
--- ---
## 6. 남은 작업 ## 6. 작업 이력
- [x] 테이블 매핑 확정 (PS_MAIN → TBSID040_03) - [x] 테이블 매핑 확정 (PS_MAIN → TBSID040_03)
- [x] 컬럼 매핑 확정 (13개 컬럼 전체) - [x] 컬럼 매핑 확정 (13개 컬럼 전체)
- [x] 수납 테이블 매핑 확정 (CD_SUNAB → TBSIR000_01) - [x] 수납 테이블 매핑 확정 (CD_SUNAB → TBSIR000_01)
- [x] 변환 쿼리 작성 - [x] 변환 쿼리 작성
- [ ] `queries/v2_pmplus20.py` 코드 수정 - [x] `queries/v2_pmplus20.py` 코드 수정 (2026-04-01)
- [ ] `/api/compare`로 전체 기간 수치 검증 - [x] 보험구분 매핑 완료 - 보훈/차상위1/차상위2 정확히 변환 (2026-04-01)
- [ ] 보험별/시간별/결제별/병원별 세부 수치 검증 - [x] 2026년 3월 전체 기간 보험구분별 건수 검증 완료 (V1=V2 일치)
- [ ] `/api/compare`로 UI 수치 검증
- [ ] 시간별/결제별/병원별 세부 수치 검증
--- ---