정정: DrugImg 이미지키와 외부 URL 검증 추가

- DrugImg.DIK_CODE 44자 Base64 image key 가능성 문서화
- 평문 DIK_CODE 직접 join 단정 제거
- health.kr zoom 후보 URL과 실제 이미지 GET 검증 스크립트 추가
This commit is contained in:
2026-06-29 00:45:34 +00:00
parent 4bacdb0a1e
commit c0a673d20a
3 changed files with 170 additions and 3 deletions

View File

@@ -7,8 +7,9 @@ PIT3000/PM2000V6에서 확인한 **의약품 상세정보, 식별 이미지, 약
1. 화면/인쇄에 쓰이는 약품 상세정보는 로컬 DB(`PM_DRUG`, `PM_IMAGE`)와 외부 health.kr URL을 병행합니다.
2. `DRUGCODE`에서 `DIK_CODE`, `SUNG_CODE`를 조회합니다.
3. `SUNG_CODE`는 **성분코드**입니다. 보험코드가 아닙니다.
4. 식별/약품 이미지는 `PM_IMAGE..DrugImg`, `C:\Dik20\Data\Drugimg2005.MDB`, `C:\Dik2004\Data\Drugimg.MDB` 계열에서 확인됩니다.
5. health.kr URL은 상세 페이지/확대 이미지 페이지를 여는 보조 경로로 확인됩니다.
4. 식별/약품 이미지는 `PM_IMAGE..DrugImg`, `C:\\Dik20\\Data\\Drugimg2005.MDB`, `C:\\Dik2004\\Data\\Drugimg.MDB` 계열에서 확인됩니다.
5. `PM_IMAGE..DrugImg.DIK_CODE`는 일부 인스턴스에서 평문 13자리 DIK_CODE가 아니라 44자 Base64/32-byte digest 형태의 image key일 수 있습니다. 직접 join을 단정하면 안 됩니다.
6. health.kr URL은 상세 페이지/확대 이미지 페이지를 여는 보조 경로입니다. `zoom.asp` 내부에 보이는 이미지 URL도 실제 HTTP 200/JPEG인지 별도 검증해야 합니다.
## 확인된 외부 URL
@@ -48,9 +49,11 @@ LEFT JOIN PM_DRUG..CD_SUNG AS C
WHERE A.DRUGCODE = :drugcode;
-- SQL Server 이미지 테이블
-- 주의: DrugImg.DIK_CODE는 인스턴스에 따라 평문 DIK_CODE가 아니라 44자 Base64 image key일 수 있음.
-- 평문 join을 먼저 가정하지 말고 key 분포/DRUGIMG_USER.DRUG_CODE/legacy MDB/PIT 생성 함수를 확인한다.
SELECT DIK_CODE, DRUG_IMG, EXPR1
FROM PM_IMAGE..DrugImg
WHERE DIK_CODE = :dik_code
WHERE DIK_CODE = :image_key
ORDER BY EXPR1 DESC;
-- Access MDB 계열 이미지