Files
thug0bin bde81cdc7e 초기 정리: PIT3000 분석 자료 업로드
- 좌표/SQL/API 분석 문서화
- 재현 스크립트와 예시 응답 추가
- 개인정보/원본 실행파일 제외
2026-06-29 00:27:06 +00:00

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
    FastReport frx_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 접속정보는 저장소에 넣지 않습니다.