2.5 KiB
2.5 KiB
PIT3000 의약품정보/API·이미지 흐름 Reverse Engineering Notes
PIT3000/PM2000V6에서 확인한 의약품 상세정보, 식별 이미지, 약품 이미지, pictogram 관련 SQL/API 흐름을 정리한 저장소입니다.
핵심 결론
- 화면/인쇄에 쓰이는 약품 상세정보는 로컬 DB(
PM_DRUG,PM_IMAGE)와 외부 health.kr URL을 병행합니다. DRUGCODE에서DIK_CODE,SUNG_CODE를 조회합니다.SUNG_CODE는 성분코드입니다. 보험코드가 아닙니다.- 식별/약품 이미지는
PM_IMAGE..DrugImg,C:\Dik20\Data\Drugimg2005.MDB,C:\Dik2004\Data\Drugimg.MDB계열에서 확인됩니다. - health.kr URL은 상세 페이지/확대 이미지 페이지를 여는 보조 경로로 확인됩니다.
확인된 외부 URL
https://health.kr/searchDrug/result_drug_simple.asp?drug_cd={DIK_CODE}
https://www.health.kr/drug_info/sb/zoom.asp?drug_code={DIK_CODE}&print_front={PRINT_FRONT}&print_back={PRINT_BACK}
https://www.pharm.or.kr/search/zoom.asp?drug_code={DIK_CODE}
확인된 주요 SQL
-- DRUGCODE → DIK_CODE / SUNG_CODE
SELECT ISNULL(DIK_CODE, '') AS DIK_CODE, SUNG_CODE
FROM PM_DRUG..CD_GOODS
WHERE DRUGCODE = :drugcode;
-- 약품 상세정보
SELECT
A.ETCNAME,
A.SPLNAME,
C.SUNG_ENM,
B.PRINT_TYPE,
A.EFFCTNAME,
B.CHARACT,
B.SAVE_MEDI,
B.INDIC_MEDI,
B.EFFECT,
B.ADR,
B.INTERACTION,
B.GEN_MEDI
FROM PM_DRUG..CD_ETCGOODS AS A
INNER JOIN PM_DRUG..CD_MC AS B
ON A.DRUGCODE = B.DRUGCODE
LEFT JOIN PM_DRUG..CD_SUNG AS C
ON A.SUNG_CODE = C.SUNG_CODE
WHERE A.DRUGCODE = :drugcode;
-- SQL Server 이미지 테이블
SELECT DIK_CODE, DRUG_IMG, EXPR1
FROM PM_IMAGE..DrugImg
WHERE DIK_CODE = :dik_code
ORDER BY EXPR1 DESC;
-- Access MDB 계열 이미지
SELECT DRUGCODE, FILENAME, FILELENGTH, DRUGIMG, SEQ
FROM DRUGIMG
WHERE DRUGCODE = :drugcode
ORDER BY SEQ;
-- pictogram
SELECT TOP 3 PIC_CODE
FROM PM_DRUG..CD_PICTOGRAM_SUB
WHERE DIK_CODE = :dik_code
ORDER BY SEQ;
SELECT TOP 1 PIC_IMG
FROM PM_DRUG..CD_PICTOGRAM
WHERE PIC_CODE = :pic_code
AND PIC_LAG = '0'
AND IMG_CODE = '1';
예시 JSON
examples/drug-info-response.example.json 참고.
원본 분석 산출물
data/teoul_drug_image_api_PM_PharmCharge.txt
PM_PharmCharge에서 추출한 문자열/SQL/API URL 히트 요약.
주의
- 이 저장소는 API 계약/흐름 문서화용입니다. 외부 사이트를 과도하게 호출하지 마세요.
- 실제 환자/처방 데이터는 포함하지 않습니다.
- 이미지 BLOB은 예시에서는 URL/base64 placeholder로만 둡니다.