3.0 KiB
3.0 KiB
PIT3000 인쇄/영수증 Reverse Engineering Notes
PIT3000/PM2000V6의 약제비 A4 출력물과 관련된 QuickReport/FastReport 객체 좌표, SQL 필드 매핑, 샘플 렌더러를 정리한 저장소입니다.
핵심 결론
| 출력물/서식 | 엔진 | 확인 내용 |
|---|---|---|
| 약제비 계산서·영수증 | QuickReport (TQRLabel, TQRShape, TQRBand, TQRDBText) |
PM_MAIN 쪽 QuickReport 객체가 실제 A4 영수증 본체에 가장 근접 |
| 진료비(약제비) 납입 확인서 | QuickReport | PM_PharmCharge/PM_MAIN 내부 QuickReport blob에 존재 |
frx_presprint |
FastReport (TfrxReport) |
제목이 판매 내역서; A4 약제비 영수증 본체가 아님 |
frxTeoul_A4_* |
FastReport | 터울/약봉투 계열로 분리해서 봐야 함 |
주의:
SUNG_CODE는 성분코드입니다. 보험코드로 취급하면 안 됩니다.
포함 자료
data/quickreport/quickreport_receipt_canonical_top.csv
QuickReport A4 후보 객체 좌표/라벨/데이터셋 필드.data/quickreport/quickreport_receipt_summary.md
QuickReport 후보 요약.data/fastreport/frx_presprint_objects_canonical.csv
FastReportfrx_presprint판매내역서 객체.sql/a4_receipt_amount_query.md
A4 영수증/납입확인서 금액 필드와 추정 SQL 흐름.scripts/render_a4_receipt_pm_main.py
PM_MAIN QuickReport 약제비 계산서·영수증 좌표 기반 샘플 렌더러.scripts/render_a4_quickreport_receipt.py
PM_PharmCharge QuickReport 납입확인서/영수증 후보 렌더러.examples/rendered/
실제 SQL 샘플 필드 매핑으로 만든 PDF/PNG 결과.
빠른 실행
python3 -m venv .venv
. .venv/bin/activate
pip install reportlab pymupdf
python scripts/render_a4_receipt_pm_main.py
결과는 out/ 또는 스크립트 내부 examples/rendered/ 경로로 생성하도록 조정해서 사용하면 됩니다.
현재 매핑 상태
PM_BASE..CD_SELL_MASTE 계열에서 확보된 샘플 필드:
CUSCODE, PRESERIAL, PREPASS, INDATE, PANAME, PANUM,
TOT_C, CHUNG_C, BON_C, CARD_C, CHASH_C, PAPER_C, BI_PRICE, BI_CNT
대표 매핑:
| QuickReport 객체 | SQL/계산 필드 | 의미 |
|---|---|---|
Q_PreSerial |
PRESERIAL |
영수증번호/처방 serial |
Q_paname |
PANAME |
환자명 |
Q_InDate |
INDATE |
조제일자 |
Q_Price_A |
TOT_C |
약제비 총액 |
Q_Price_p |
BON_C |
본인부담금 |
Q_Price_c |
CHUNG_C |
보험자부담금 |
Q_s_FastMon |
BI_PRICE |
비급여/전액본인부담 계열 |
Q_CardPrice |
CARD_C |
카드 결제액 |
Q_CashPrint |
PAPER_C |
현금영수증/지류 계열 |
Q_Chah |
CHASH_C |
현금 계열 |
Q_PersonNum |
PANUM |
주민번호/식별번호, 반드시 마스킹 |
보안/개인정보
- 원본 EXE, DB dump, 원본 환자명/주민번호는 포함하지 않습니다.
- 샘플 산출물의 환자명은 더미값/마스킹값으로 치환했습니다.
- 실제 운영 DB 접속정보는 저장소에 넣지 않습니다.