초기 정리: PIT3000 분석 자료 업로드

- 좌표/SQL/API 분석 문서화
- 재현 스크립트와 예시 응답 추가
- 개인정보/원본 실행파일 제외
This commit is contained in:
2026-06-29 00:27:06 +00:00
commit 4bacdb0a1e
7 changed files with 384 additions and 0 deletions

8
.gitignore vendored Normal file
View File

@@ -0,0 +1,8 @@
__pycache__/
.venv/
.env
*.mdb
*.mdf
*.ldf
*.bak
Image/Temp/

88
README.md Normal file
View File

@@ -0,0 +1,88 @@
# PIT3000 의약품정보/API·이미지 흐름 Reverse Engineering Notes
PIT3000/PM2000V6에서 확인한 **의약품 상세정보, 식별 이미지, 약품 이미지, pictogram** 관련 SQL/API 흐름을 정리한 저장소입니다.
## 핵심 결론
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은 상세 페이지/확대 이미지 페이지를 여는 보조 경로로 확인됩니다.
## 확인된 외부 URL
```text
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
```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로만 둡니다.

View File

@@ -0,0 +1,67 @@
===== PM_PharmCharge.exe https://health.kr/searchDrug/result_drug_simple.asp?drug_cd= char=3309727 byte=65013e =====
ꇨ駲跿ʺ ル푮ル髫譛工ӂ Ұ￿￿ SELECT ISNULL(DIK_CODE, Ұ￿￿ ) AS DIK_CODE, SUNG_CODE Ұ￿￿ FROM Ұ￿￿ Ұ￿￿ PM_DRUG.. Ұ￿￿ CD_GOODS Ұ￿￿ WHERE Ұ￿￿
DRUGCODE = Ұ￿￿ DIK_CODE Ұ￿￿ SUNG_CODE Ұ￿￿ TB Ұ￿￿ CH Ұ￿￿ CS Ұ￿￿ CE Ұ￿￿ TE Ұ￿￿ TD Ұ￿￿ TR Ұ￿￿ CR Ұ￿￿ TL Ұ￿￿ TC Ұ￿￿ TO Ұ￿￿ SP Ұ￿￿ DRUGIMG Ұ￿￿ DRUGIMG_PKG Ұ￿￿= SELECT DIK_CODE, DRUG_IMG AS DRUGIMG, EXPR1 FROM PM_IMAGE.. Ұ￿￿ WHERE DIK_CODE = Ұ￿￿ ORDER BY EXPR1 DESC Ұ￿￿ EXPR1 Ұ￿￿ 1 Ұ￿￿< https://health.kr/searchDrug/result_drug_simple.asp?drug_cd= Ұ￿￿ 0 Ұ￿￿ê SELECT A.ETCNAME, A.SPLNAME, B.PRINT_TYPE, 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 WHERE A.DRUGCODE = Ұ￿￿ ETCNAME Ұ￿￿ 약 품 명 : Ұ￿￿ SPLNAME Ұ￿￿ 제약회사 : Ұ￿￿
PRINT_TYPE Ұ￿￿ 약효분류 : Ұ￿￿I ▶ 저 장 방 법 -------------------------------------------------------------- Ұ￿￿ SAVE_MEDI Ұ￿￿I ▶ 효능 / 효과 -------------------------------------------------------------- Ұ￿￿ EFFECT Ұ￿￿I ▶ 주 의 사 항 -------------------------------------------------------------- Ұ￿￿ ADR Ұ￿￿I ▶ 상 호 작 용 -------------------------------------------------------------- Ұ￿￿ INTERACTION Ұ￿￿I ▶ 복 약 지 도 -------------------------------------------------------------- Ұ￿￿ GEN_MEDI  Ұ￿￿ - Ұ￿￿ ?
===== PM_PharmCharge.exe https://health.kr/searchDrug/result_drug_simple.asp?drug_cd= char=4233647 byte=81335e =====
DE WHERE A.DRUG_CODE = Ұ￿￿ AND A.EXPR1 = Ұ￿￿ PRINT_FRONT Ұ￿￿ @ Ұ￿￿
PRINT_BACK Ұ￿￿ C:\Dik2004\Data\Drugimg.MDB Ұ￿￿ DRUG_CODE Ұ￿￿Y SELECT DRUGCODE, FILENAME, FILELENGTH, DRUGIMG, "00" AS SEQ FROM DRUGIMG WHERE DRUGCODE = Ұ￿￿Q SELECT DRUGCODE, FILENAME, FILELENGTH, DRUGIMG, SEQ FROM DRUGIMG WHERE DRUGCODE = Ұ￿￿ ORDER BY SEQ Ұ￿￿ SEQ Ұ￿￿_ SELECT * FROM 식별정보 AS A LEFT JOIN 식별정보품목 AS B ON A.DRUG_CODE = B.DRUG_CODE WHERE A.DRUG_CODE = Ұ￿￿ AND A.EXPR1 = Ұ￿￿ 1 Ұ￿￿< https://health.kr/searchDrug/result_drug_simple.asp?drug_cd= Ұ￿￿ ▶ 약효분류 Ұ￿￿ ▶ 작용기전 Ұ￿￿ ▶ 약동학 Ұ￿￿ ▶ Off-label Indication Ұ￿￿ ▶ 전문가용 복약정보 譕召뜏昑琛昈瑙ノᓫ邋Ϥ 莋Ĕ 鏿Đ 嵛ӂ贀@觷쏿삋譕召坖Ʋ碡䐞℮チ쀳桕ǬÃ、搰₉ƺ 讀⇮チƱᲺ쌂謀⌤チ삄捴袹쌂먀ʸÃ쎋Ꮸ脪㏿뫉˔Ã쎋ר脪맿˰ÃႺ쌃謀⧴チ쌂먀̴Ã쎋脩맿˰Ã岺쌃謀⧒チ쌂먀΀Ã쎋쇨脩诿䰆ス쀳奚摙ႉΎ絒櫿ༀභΜÃƲ겸쌃ニ絗忿孞썝Ұ￿￿. Software\Microsoft\Internet Explorer\PageSetup Ұ￿￿ &w&bPage &p of &P Ұ￿￿ header Ұ￿￿ footer Ұ￿￿ 0.250000 Ұ￿￿ margin_left Ұ￿￿ margin_right Ұ￿￿
margin_top Ұ￿￿
margin_bottom  Ұ￿￿6 Error while writing page print values to the registry! 譕맬 jj畉凹譓㏘嗀꽨쌄搀ヿ襤謠ﳴ￿䶍뫔Ë 莋Д ᗨ밉诿푕䖍맼ҼÃ엨綘跿赐橐樂樆謀ﱅ譐＀ၐ쀳奚摙ႉ뙨쌄贀푅嗨綘跿ᖋሜ@ʹ 聲ス䖍頺ス勤ス헫譛工Ã볋뜢乨ရ벢ꨀ䀀灇譕櫬樀匀쀳桕ՆÃ、搰₉喍ꇸ됰œ揨蟭诿喍ス綃üή恨쌅樀ꄂ뼴Ջ璹쌅먀֠Ã䤳謇ﻴ￿쀳奚摙ႉ䵨쌅贀珨絰跿ﱅ毨絰쏿䷩絒寨奙썝 Ұ￿￿ 확인 Ұ￿￿ 출력할 내용이 없습니다. Ұ￿￿ 출력확인 譕맬 jj畉凹襓쀳桕৅Ã、搰₉㒡傿謁먀ৠÃ䥍贀䖋说墀郎ス䶋诤䰅먀ਐÃ鿨絴诿袋ь 䖋跴䢐ꄀ뼴Ջ㧨䥋謀肋ш 뉦蓿痀譗肋Ш 譐袋м 䖋说墀謀ﱕ毨偀謀肋Ш 譐袋м 䖋说墀謀ﱕ珨偕贀為쌋澊ス㇫䖋说⢀倀䖋说㲈謀肋ј 喋瀰P䖍뫸஌Ã埨絯诿颋И 쎋뉁诿
===== PM_PharmCharge.exe https://www.health.kr/drug_info/sb/zoom.asp?drug_code= char=4237873 byte=815462 =====
AS A LEFT JOIN 식별정보품목 AS B ON A.DRUG_CODE = B.DRUG_CODE WHERE A.DRUG_CODE = Ұ￿￿ AND A.EXPR1 = Ұ￿￿ PRINT_FRONT Ұ￿￿ @ Ұ￿￿
PRINT_BACK Ұ￿￿ 1 譕맬 jj畉凹譓㏘嗀表쌠搀ヿ襤贠莋ќ 짨緞菿ༀ쪄謀䠍僂謁눉ꄁ릌¥诨要觿ﱅ쀳桕‬Ã、搰₉툳䖋폴ヌ䲡債老̸舏“ ꂸ쌠ス삄萏 쌠謀悋謀岓贀폨絛诿喍ス痿棬ⅤÃ喍诤撃ス痿棤↌Ã喍诠梃ス痿跠ں 屰ス喋跰⧨絙诿䖋诼碀⑴ᄐ싩 ꄀ뎀Ő㢀琀桾⃨Ã讋Ѡ 鎋ќ 䖍孈ス䖋跐푕쇨緝￿푵摨쌡贀챕莋Ѥ ꯨ緝￿챵豨쌡贀졕莋Ѩ 门緝￿졵䖍뫘 絛诿䖍增ス喋诜ﱅ肋͸ 밣贺뱕莋ќ 姨緝诿뱍䖍뫀↴Ã엨絚诿쁕䖍塢ス喋评ﱅ肋͸ 귨밣ꇿ꽴ŐÆ謁ﱅႋ鋿Ā 璡傯영 쀳奚摙ႉ㍨쌠謀ﱅ뷨紭쏿柩紷㏰嫀奙襤栐₏Ã䖍몼 毨絕跿쑅㟨絎跿졅ֺ 啖ス䖍丢ス䖍뫠 䇨絕跿෨絎跿⧨絕쏿௩紷宱썝Ұ￿￿ C:\Dik20\Data\Drugimg2005.MDB Ұ￿￿6 https://www.health.kr/drug_info/sb/zoom.asp?drug_code= Ұ￿￿
&print_front= Ұ￿￿ &print_back= Ұ￿￿2 https://www.pharm.or.kr/search/zoom.asp?drug_code= 譕召ꗨ綝櫿樀栂¡ 쎋䷨衛僿綝룿≘Ã巨北嬀쉝 Ұ￿￿ TfrmPMMain6 譕㏬嗀ꅨ쌢搀ヿ襤@㰅厴甁렊됴œ嗨絺㏿嫀奙襤栐⊨Ã㓲ス썝삋⌄à ␌ÃⓠÃ␞Ã␸à ⒾÃᘬ 췀ï交@京@傌@뤤CꆰLꎬL催@L䶀@䶜@ꐔL誜KꩴLഄC꘤LꚨL꟤LJ뤼C놨L똈C΀MꀈL蓀K諌K記KJ绌K귤L笠KJ껰LᶠK,MJJJ냬L꾨LJ뇨LJḤK箬K籬K痰K籐K魬L먀L䁘K칔L홌L푐L䃰K䄔K퟈LL㽄K鋔K綘KL鉈K䓨K秐K鎘K齃L镌L韼LLꕈLꗄLーLꍤL寮LLﮰL냨L  ᇜ@ᘠ ⓖÃᘘ 䈍湴偟慨浲潰瑲┠Ã䘊牯䍭敲瑡ၥЀ쌧ऀ潆浲汃獯፥쌨ఀ潆浲捁楴慶整晄Ã䘈牯卭潨ᕷ썦฀楂䉴湴牐䍮楬正⟼Ã戏湴捏䍲污䍬楬正⠀Ã戏湴䝟䑯湡䍧楬正吗牆偭敲捳楲瑰潩䍮湯畳瑬剰yⓠÃᜇ䙔浲牐獥牣灩楴湯潃獮汵Ѵ쌣氀᠀湕瑩偟敲捳楲瑰潩䍮湯畳瑬 삋譕櫬樀匀쀳桕♭Ã、搰₉쎋헨ⴇ였ᲃĀ툳莋ތ 槨蟃ꇿ뗤Ő먀♼Ã藨紘狿ꄖ뗤Ő먀⚀Ã濨紘盿贪ﱅᖋ뗤Ő슁ˠ ꇨ絓诿ﱅ懨緣菿爂䠆猄㌜诒钃謀(摑툳莋෸ 蟍㌧诒钃쯊ヌ툳莋ޔ 취蟍㏿诒
췀ヌ삡僅謁ᒀ먀⚐Ã珨絗痿렝⚠Ã忨緪蓿瓀눏謁ᢃ쭾ヌ෫툳莋ᘘ 濨蟋诿簕僊謁贒쌦呢ス喋뇸謁蓼Q쀳奚摙ႉ瑨쌦贀ʺ 佌スㄦス奛嵙à ㄁ 㜁 Ұ￿￿ 1 Ұ￿￿ C:\PharmPort\p-viewer.exe Ұ￿￿ IMG_Drug_Plus.bmp 譕櫬匀譖诱㏘嗀꽨쌧搀ヿ襤謠2菆ᗜ 였 傾영 Ʋ莋ܤ ࢋ凿뉤謁ⲃ謀(摑Ʋ莋ܰ ࢋ凿뉤謁㒃謀(摑졨쌧樀贀ﱕ쎋헨蟊诿ﱍ压레⟤Ã뗨匒㌀ꏀ둀œۆ㌂嫀奙襤栐➶Ã䖍丂ス⿤ス孞嵙ÃҰ￿￿ MemoDel Ұ￿￿ TfrmPMMain6 跃
===== PM_PharmCharge.exe PM_IMAGE..DrugImg char=4225134 byte=80f0dc =====
栌릸Â䖍뫸 旨緂诿쎋忨蠹栤만Â痿栌릸Â䖍뫴 㿨緂诿쎋㧨蠹㏿嫀奙襤栐릂Â䖍뫴 䯨綼跿ࡅʺ 밾ス鸘ス孞쉝 Ұ￿￿ 성분명 : ( Ұ￿￿ ) Ұ￿￿ 약품명 : ( 譕櫬樀樀樀樀樀匀譖诱㏘嗀鑨슼搀ヿ襤謠ゃ倀莋м 譐㒋謀⢓謀㢃薀P㔻됴œᅵ׆됸œ렁됴œ꟨緢跿岃謀咓뭮ス뎋И 욋嗨늎诿廊ᅩႋ勿桄벰Â喍诬岃肶P䖋跬鏨繄￿偨슽贀κ 샪ス䖋僴욋蟨챞嫿ࢋ凿謸跲ᄇ욋叨늲蓿࿀超먀불Â욋쯨늞跿ࢋ凿譤莍Ѡ 綺诿识0碒䠀ᱵ莋ϰ 툳ࢋ凿譤㌀诒(摑櫫莋΄ 뢀  琀謜㌀诒(摑莋ϴ Ʋࢋ凿耿ꆸ ᱴ莋ϰ Ʋࢋ凿譤㌀诒(摑᫫莋ϰ Ʋࢋ凿譤눀謁(摑䲡債老̸ᵲꂸ슽哞セ삄ུ莋ϸ Ʋࢋ凿謍㌀诒(摑莋Ϭ 툳蠵诿눀㗔ネƲ䲡枿ٔᆬ䖉닼ꄁ푀B헨綑觿쀳桕뱋Â、搰₉莋Р 喋⥆ᄇjj䖋绖タ喋诸ﱅࢋ凿譜謀ꢀ謀ﱕﯨ致㏿嫀奙襤栐뱹Â䖋醦ス䖋醞ス魈ス莋ϸ 툳ࢋ凿譤㌀㔰ネ莋Ϭ Ʋ⏨蠵㏿嫀奙襤栐벛Â䖍뫨 ◨綹쏿←続廫譛工ӂ Ұ￿￿I SELECT DIK_CODE, DRUG_IMG, EXPR1 FROM PM_IMAGE..DrugImg WHERE DIK_CODE = Ұ￿￿ ORDER BY EXPR1 DESC Ұ￿￿ EXPR1 Ұ￿￿ C:\Dik20\Data\Drugimg2005.MDB 譕召㶃됴œ甀렌됴œ펋২緟寿쉝譕櫬匀쀳桕뼛Â、搰₉僄謁謀ಀ먀뼴Â䯨綿痿ꅰ뎀Ő㢀甀ꅛ때Ő㢀猂㍑诒㍐ネ툳莋ϰ ࢋ凿㍤诒謀(摑툳莋ϸ ࢋ凿㍤诒㌜ネ䒺슿謀㏼ネ툳쎋叨ꅪ쓰Ջ肋Ȍ 肺슿뻂ス兵喍诼境䁚セ䶋跼䲃먀뾐Â쿨綻跿⢓ꄀ뼴Ջ讋ь 濨䦒謀⢃긘ᄇ삄ॵ툳쎋㌀嫀奙襤栐뼢Â䖍뚖ス顸ス奛썝 Ұ￿￿ 1 Ұ￿￿ Dik 또는 식별이미지 DB가 없습니다. Ұ￿￿ 0 Ұ￿￿ŕ 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 = 譕맬 jj畉凹譓㏘嗀२싇搀ヿ襤ꄠ때Ő㢀༂킂贀莋є ꏨ縼诿莍ь Ⓔ싇렘ス벸싈䷖セ삄奴돿ь 싈栀줜Â鑨싉栀쨐Â遨싊栀좼Â끨싊栀쫈Â싊栀쬘Â喍说咃㰼セ痿跴䲃 门綸诿粃薶ᄇ莋ͼ ⟨챖诿0䑒莋ͼ ៨챖诿䲓謀(㡑莋ͼ 秨늅跿莋є 縻诿莍ь 䲺싋띔ス벸싈䴒セ삄䕴돿ь 싈栀쯀Â뱨싈栀쪰Â졨싊栀쯼Â喍诬咃㮌セ痿跬䲃 綷诿碃蔆ᄇ莋͸ 矨챕诿0䑒莋͸ 柨챕诿䲓謀(㡑莋͸ 짨늄诿碃ꤦᄇ삄ᡵ䢺싌謀碃閞ᄇ喍诼(摑桨싌
===== PM_PharmCharge.exe PM_IMAGE..DrugImg char=4232957 byte=812dfa =====
FCTNAME Ұ￿￿
단 위 : Ұ￿￿ CHARACT Ұ￿￿
성 상 : Ұ￿￿
PRINT_TYPE Ұ￿￿ 약효분류 : Ұ￿￿I ▶ 저 장 방 법 -------------------------------------------------------------- Ұ￿￿ SAVE_MEDI Ұ￿￿I ▶ 효능 / 효과 -------------------------------------------------------------- Ұ￿￿ EFFECT Ұ￿￿I ▶ 상 호 작 용 -------------------------------------------------------------- Ұ￿￿ INTERACTION Ұ￿￿ ▶ 주 의 사 항 Ұ￿￿ ADR Ұ￿￿ ▶ 복 약 지 도 Ұ￿￿ GEN_MEDI  Ұ￿￿ - Ұ￿￿ ? Ұ￿￿I SELECT DIK_CODE, DRUG_IMG, EXPR1 FROM PM_IMAGE..DrugImg WHERE DIK_CODE = Ұ￿￿ ORDER BY EXPR1 DESC Ұ￿￿ EXPR1 Ұ￿￿ C:\Dik20\Data\Drugimg2005.MDB Ұ￿￿` SELECT * FROM 식별정보 AS A LEFT JOIN 식별정보품목 AS B ON A.DRUG_CODE = B.DRUG_CODE WHERE A.DRUG_CODE = Ұ￿￿ AND A.EXPR1 = Ұ￿￿ PRINT_FRONT Ұ￿￿ @ Ұ￿￿
PRINT_BACK Ұ￿￿ C:\Dik2004\Data\Drugimg.MDB Ұ￿￿ DRUG_CODE Ұ￿￿Y SELECT DRUGCODE, FILENAME, FILELENGTH, DRUGIMG, "00" AS SEQ FROM DRUGIMG WHERE DRUGCODE = Ұ￿￿Q SELECT DRUGCODE, FILENAME, FILELENGTH, DRUGIMG, SEQ FROM DRUGIMG WHERE DRUGCODE = Ұ￿￿ ORDER BY SEQ Ұ￿￿ SEQ Ұ￿￿_ SELECT * FROM 식별정보 AS A LEFT JOIN 식별정보품목 AS B ON A.DRUG_CODE = B.DRUG_CODE WHERE A.DRUG_CODE = Ұ￿￿ AND A.EXPR1 = Ұ￿￿ 1 Ұ￿￿< https://health.kr/searchDrug/result_drug_simple.asp?drug_cd= Ұ￿￿ ▶ 약효분류 Ұ￿￿ ▶ 작용기전 Ұ￿￿ ▶ 약동학 Ұ￿￿ ▶ Off-label Indication Ұ￿￿ ▶ 전문가용 복약정보 譕召뜏昑琛昈瑙ノᓫ邋Ϥ 莋Ĕ 鏿Đ 嵛ӂ贀@觷쏿삋譕召坖Ʋ碡䐞℮チ쀳桕ǬÃ、搰₉ƺ 讀
===== PM_PharmCharge.exe PM_IMAGE..DrugImg char=4284971 byte=82c456 =====
사용 Ұ￿￿ 개인별 설정내용 Ұ￿￿ \Temp\InDikPlus.ifo Ұ￿￿ 1 Ұ￿￿ 2 Ұ￿￿ drugcode Ұ￿￿G SELECT DIK_CODE, PLUS_CODE FROM PM_DRUG..CD_ETCGOODS WHERE DRUGCODE = Ұ￿￿§ SELECT DISTINCT CMMC_RN, CMPAT FROM CCMM CM INNER JOIN GIYP_IN01 YP ON CM.YAKPUM_CD = YP.YAKPUM_CD WHERE YP.KD_CD = Ұ￿￿ AND CMMC_RN <= Ұ￿￿J ORDER BY CMMC_RN Ұ￿￿ Dru_EName Ұ￿￿L SELECT DIK_CODE, DRUG_IMG, EXPR1 FROM PM_IMAGE..DrugImg WHERE DIK_CODE = Ұ￿￿ DIK_CODE Ұ￿￿ ORDER BY EXPR1 DESC Ұ￿￿ \Image\Temp\Sik_ Ұ￿￿ .jpg Ұ￿￿ &nbsp;<img src=" Ұ￿￿* .jpg" width="183" height="100" border="0"> Ұ￿￿
<img src=" Ұ￿￿* .jpg" width="215" height="117" border="0"> Ұ￿￿) .jpg" width="163" height="95" border="0"> Ұ￿￿. SELECT DRUGIMG FROM DRUGIMG WHERE DRUGCODE = Ұ￿￿ ORDER BY SEQ DESC Ұ￿￿J SELECT TOP 3 PIC_CODE FROM PM_DRUG..CD_PICTOGRAM_SUB WHERE DIK_CODE = Ұ￿￿= ORDER BY SEQ Ұ￿￿D SELECT TOP 1 PIC_IMG FROM PM_DRUG..CD_PICTOGRAM WHERE PIC_CODE = Ұ￿￿ PIC_CODE Ұ￿￿ AND PIC_LAG = '0' Ұ￿￿ AND IMG_CODE = '1' Ұ￿￿ \Image\Temp\Pito_ Ұ￿￿) .jpg" width="59" height="100" border="0"> Ұ￿￿) .jpg" width="84" height="141" border="0"> Ұ￿￿ CMMC_RN Ұ￿￿ . Ұ￿￿ CMPAT Ұ￿￿Z <p style="line-height:100%; margin-t
===== PM_PharmCharge.exe PM_IMAGE..DrugImg char=5844378 byte=b25b34 =====
￿￿G
처방전에 질병기호 기재시 반드시 입력해주시기 바랍니다.|단, 처방전에 질병기호가 없을 경우 계속진행하여 입력해주시기 바랍니다. Ұ￿￿ 마약류 질병기호 Ұ￿￿Y
처방전에 질병기호 기재시 반드시 입력해주시기 바랍니다.|
미입력시 행정처분 대상입니다.|단, 처방전에 질병기호가 없을 경우 계속진행하여 입력해주시기 바랍니다. Ұ￿￿ Y Ұ￿￿ M1 Ұ￿￿ 주민등록번호 착오입력 Ұ￿￿ M5 Ұ￿￿ 처방 또는 조제일자 착오입력 Ұ￿￿ M2 Ұ￿￿ 처방전 발행기관 기호 착오입력 Ұ￿￿ M3 Ұ￿￿
처방전 교부번호 착오입력 Ұ￿￿ M4 Ұ￿￿ 의사면허번호 착오입력 Ұ￿￿ 0 Ұ￿￿ C:\PM2000V6\Data\PM_IMAGE.mdf Ұ￿￿7 SELECT DIK_CODE FROM PM_DRUG..CD_MC WHERE DRUGCODE = Ұ￿￿L SELECT DIK_CODE, DRUG_IMG, EXPR1 FROM PM_IMAGE..DrugImg WHERE DIK_CODE = Ұ￿￿ DIK_CODE Ұ￿￿ ORDER BY EXPR1 DESC Ұ￿￿ 20241025 Ұ￿￿ 20241130 Ұ￿￿ 3 Ұ￿￿ 5 ε￿￿ 0 ε￿￿ 1 Ұ￿￿ N Ұ￿￿, UPDATE PM_BASE..CD_PERSON SET PHONE = Ұ￿￿ WHERE CUSCODE = Ұ￿￿ AND CUSACT = '1' 夁 丁 Ұ￿￿ 999 Ұ￿￿ \Temp\InDikPlus.ifo Ұ￿￿ TCH Ұ￿￿ 기 승인된 자료가 존재합니다. Ұ￿￿ 승인확인 Ұ￿￿J 과거 의료급여 진료비 승인을 시도하고 있습니다.|기 승인한적이 있으면 승인 없이 데이터를 저장하십시오.|진료비승인을 요청하시겠습니까? Ұ￿￿ 일자 확인 ε￿￿ 㤹㤹 Ұ￿￿ 9999 ε￿￿ 卐䵟䥁Nε￿￿ ㍍ ε￿￿ 㑍 ε￿￿ 坉㉓〰㈰ ε￿￿ 젠삮많죸㪣 ε￿￿ | ε￿￿ 잰ﶻ쌠놻뺸⃗:Ұ￿￿ 건생비 승인액 : Ұ￿￿  Ұ￿￿ 입금액은 Ұ￿￿ 원입니다 Ұ￿￿ 정상승인 Ұ￿￿( UPDATE PM_PRES..PS_MAIN SET PRICE_N = Ұ￿￿ WHERE PRESERIAL = ε￿￿ 선뿶뇸⃝믃뢱ힾ㨠 Ұ￿￿ 출산 지원금 승인액 : Ұ￿￿ 출산 지원 청구액 : Ұ￿￿ 출산 지원 승인액 : ε￿￿ 坅㉓㄰㔲 ε￿￿ 坅㉓㄰㘲 ε￿￿ 坅㉓㄰㜲 ε￿￿ 坅㉓㄰㠲 ε￿￿ 坅㉓㄰㤲 ε￿￿ 坅㉓㄰〳 ε￿￿ 쀨럇뇡뿞₩삿醴
 ε￿￿
ε￿￿7 쌠릳샦₺컀선럸뷡볃뾳벡뢭₸유⃒쀠뷖듀듏⻙|ε￿￿H 돃ﳀ뤠뇟뇞냢뿼₡꺹쟀쿇ꦿ댠볫샷⃎
===== PM_PharmCharge.exe \Image\Temp\Sik_ char=4285059 byte=82c506 =====
ECT DIK_CODE, PLUS_CODE FROM PM_DRUG..CD_ETCGOODS WHERE DRUGCODE = Ұ￿￿§ SELECT DISTINCT CMMC_RN, CMPAT FROM CCMM CM INNER JOIN GIYP_IN01 YP ON CM.YAKPUM_CD = YP.YAKPUM_CD WHERE YP.KD_CD = Ұ￿￿ AND CMMC_RN <= Ұ￿￿J ORDER BY CMMC_RN Ұ￿￿ Dru_EName Ұ￿￿L SELECT DIK_CODE, DRUG_IMG, EXPR1 FROM PM_IMAGE..DrugImg WHERE DIK_CODE = Ұ￿￿ DIK_CODE Ұ￿￿ ORDER BY EXPR1 DESC Ұ￿￿ \Image\Temp\Sik_ Ұ￿￿ .jpg Ұ￿￿ &nbsp;<img src=" Ұ￿￿* .jpg" width="183" height="100" border="0"> Ұ￿￿
<img src=" Ұ￿￿* .jpg" width="215" height="117" border="0"> Ұ￿￿) .jpg" width="163" height="95" border="0"> Ұ￿￿. SELECT DRUGIMG FROM DRUGIMG WHERE DRUGCODE = Ұ￿￿ ORDER BY SEQ DESC Ұ￿￿J SELECT TOP 3 PIC_CODE FROM PM_DRUG..CD_PICTOGRAM_SUB WHERE DIK_CODE = Ұ￿￿= ORDER BY SEQ Ұ￿￿D SELECT TOP 1 PIC_IMG FROM PM_DRUG..CD_PICTOGRAM WHERE PIC_CODE = Ұ￿￿ PIC_CODE Ұ￿￿ AND PIC_LAG = '0' Ұ￿￿ AND IMG_CODE = '1' Ұ￿￿ \Image\Temp\Pito_ Ұ￿￿) .jpg" width="59" height="100" border="0"> Ұ￿￿) .jpg" width="84" height="141" border="0"> Ұ￿￿ CMMC_RN Ұ￿￿ . Ұ￿￿ CMPAT Ұ￿￿Z <p style="line-height:100%; margin-top:0; margin-bottom:0;"><span style="font-size:11pt;"> Ұ￿￿ </span></p>  Ұ￿￿ (임부금기)
===== PM_PharmCharge.exe \Image\Temp\Sik_ char=6253442 byte=bed704 =====
tom:0;" align="right"><b><font face="돋움체"><span style="font-size:12pt;"> Ұ￿￿ : Ұ￿￿* &nbsp;&nbsp; </span></font></b></p></body> Ұ￿￿ DRUGCODE Ұ￿￿ \ Ұ￿￿ PM2000V6.INI Ұ￿￿ 0 Ұ￿￿
DIKPLUS_사용 Ұ￿￿ 개인별 설정내용 Ұ￿￿< SELECT DIK_CODE FROM PM_DRUG..CD_ETCGOODS WHERE DRUGCODE = Ұ￿￿- SELECT * FROM PM_DRUG..CD_MC WHERE DIK_CODE = Ұ￿￿ DIK_CODE Ұ￿￿ ORDER BY EDIT_DATE DESC Ұ￿￿ 준비중입니다. Ұ￿￿. SELECT DRUGIMG FROM DRUGIMG WHERE DRUGCODE = Ұ￿￿ ORDER BY SEQ DESC Ұ￿￿ \Image\Temp\Sik_ Ұ￿￿ .jpg Ұ￿￿ &nbsp;<img src=" Ұ￿￿* .jpg" width="183" height="100" border="0"> Ұ￿￿
<img src=" Ұ￿￿* .jpg" width="215" height="117" border="0"> Ұ￿￿J SELECT TOP 3 PIC_CODE FROM PM_DRUG..CD_PICTOGRAM_SUB WHERE DIK_CODE = Ұ￿￿= ORDER BY SEQ Ұ￿￿D SELECT TOP 1 PIC_IMG FROM PM_DRUG..CD_PICTOGRAM WHERE PIC_CODE = Ұ￿￿ PIC_CODE Ұ￿￿ AND PIC_LAG = '0' Ұ￿￿ AND IMG_CODE = '1' Ұ￿￿ \Image\Temp\Pito_ Ұ￿￿) .jpg" width="75" height="100" border="0"> Ұ￿￿ .jpg" border="0">  Ұ￿￿ ETCNAME Ұ￿￿ (임부금기) Ұ￿￿ INOUT_GUBUN Ұ￿￿ ········· Ұ￿￿ 1일 Ұ￿￿ QUAN_TIME Ұ￿￿ #.# Ұ￿￿ 회/ Ұ￿￿ DAYS Ұ￿￿ 일 Ұ￿￿ (약품명입력) Ұ￿￿ 1일 Ұ￿￿ (복용법입력) Ұ￿￿ġ SELECT CASE WHEN CHARINDEX('/', REPLACE(EFFCTNAME, EFFCTUNIT, '')) > 0 THEN LEFT(REPLACE(EFFCTNAME, EFFCTUNIT, ''), CHARINDEX('/', REPLACE(EF
===== PM_PharmCharge.exe 식별이미지 업데이트 char=4234938 byte=813d74 =====
诤䰅먀ਐÃ鿨絴诿袋ь 䖋跴䢐ꄀ뼴Ջ㧨䥋謀肋ш 뉦蓿痀譗肋Ш 譐袋м 䖋说墀謀ﱕ毨偀謀肋Ш 譐袋м 䖋说墀謀ﱕ珨偕贀為쌋澊ス㇫䖋说⢀倀䖋说㲈謀肋ј 喋瀰P䖍뫸஌Ã埨絯诿颋И 쎋뉁诿ቜᅩႋ勿桄ரÃ痿棸ఠÃ喍诘肋ќ 㷨倴謀喍ス痿棜౔Ã䖍뫠 燨絴诿譐ሎᅩ譚(㡑쎋秨뉁诿旚ᄇ삄蔏Ƽ 貺쌌謀剒ᄇ喍诔(摑喋诔怅湞ス쎋ႋ鋿Ÿ 畈謢肋ϰ 툳ࢋ凿譤肋ϴ 툳ࢋ凿譿肋΄ 뢀  琀謢肋ϰ 툳ࢋ凿譤肋ϴ Ʋࢋ凿聋ꆸ ≴䖋说눀謁(摑䖋说㌀诒(摑⃫䖋说눀謁(摑䖋说눀謁(摑䲡債老̸⁲꒸쌌ࡈセ삄ቴ䖋说눀謁(摑ძ䖋说㌀诒(摑䖋说㌀ヌ䖋说눀ヌƲ䲡枿릲ᄂ䖉닰ꄁ푀B㏨絅觿쀳桕ࣳÃ、搰₉䖋说₀謀ꇨ뇜櫿樀謀㇨耲诿䖋诰(屑䖋说謀ꢀ謀叨膨㏿嫀奙襤栐पÃ䖋䓾ス䖋䓶ス亠ス䖋说㌀诒(摑䖋说㌀ヌ䖋说눀ヌ㒡傿謁仪Iඋ쉈ŐঋƲᲡꖾ难ノ䖉㏨嗀陨쌉搀ヿ襤謠袋Μ 䖋说謀࿨诿ႋ鋿Ā 쀳奚摙ႉ鵨쌉謀叨組쏿﷩絍㏰嫀奙襤栐ৌÃ䖍뫔 Ǩ絬跿ʺ 毴ス䷎ス譛工à Ұ￿￿ 식별이미지 업데이트 중입니다. Ұ￿￿© SELECT * FROM PM_DRUG..CD_ETCGOODS WHERE SUBSTRING(SUNG_CODE, 8, 2) IN ('TB', 'CH', 'CS', 'CE', 'TE', 'TD', 'TR', 'CR', 'TL', 'TC', 'TO', 'SP') AND DRUGCODE = Ұ￿￿ DrugImg Ұ￿￿ DrugImg_PKG Ұ￿￿0 SELECT DIK_CODE, DRUG_IMG, EXPR1 FROM PM_IMAGE.. Ұ￿￿ WHERE DIK_CODE = Ұ￿￿ ORDER BY EXPR1 DESC Ұ￿￿ EXPR1 Ұ￿￿ C:\Dik20\Data\Drugimg2005.MDB 譕㯬ಐ甀謎뫂ഠÃ巨刑㬔႐甀謌뫂സÃ䟨刑崀ೂ Ұ￿￿ EXIT Ұ￿￿ PRINT 譕㯬ಐ甀謎뫂඄Ã刑㬔႐甀謌뫂ගÃ쏨刑崀ೂ Ұ￿￿ EXIT Ұ￿￿ PRINT 譕召ᖋ귄Őኋ逻Ќ ᩵쒡傭謁먀ดÃꗨ刏ꄀ귄Őᢉ⣫ᖋ귄Őኋ逻А ᡵ쒡傭謁먀ฬÃ篨刏ꄀ귄Őᢉ嵛ࣂ Ұ￿￿ EXIT Ұ￿￿ PRINT 譕凬噓䶈诿诚ꇰ귄Őᠻ䱴鸻Ќ ๵낺쌎謀าRᓫ鸻А ౵좺쌎謀ผR䖋倌䖋倈ᖋ귄Őኋ똏욋ᗨ￿ꇿ귄Őᢉ孞嵙ࣂ Ұ￿￿ EXIT Ұ￿￿ PRINT 譕맬 jj畉凹譓㏘嗀Ѩ쌓搀ヿ襤ꄠ세Ő㢁Ѐ 萏‹ 㢡僁脁砸甀謖㠕僁謁㌒ꇉ됰œ卣ꅨ세Ő㢁ڐ 孵ᖋ세Őኋ줳ァ厴揎S莋Τ 傋䩄⿨蟙诿ﲃ謀䱐슃ヌ莋ϼ 傋䩀蟘뫿څ 쎋㟨蟙뫿ͨ 쎋忨蟙ꇿ뎀Ő㢀ༀㆄꄀ믄Ջ肋à Ჺ쌓涾ス蔏˹ 喍说咃ス䶋跴䲃먀ጬÃ쟨絪跿⢓ꄀ뼴Ջ讋ь 柨䥁謀⢃崐ᄇ삄蔏ʭ 풺쌓謀⢃䦄ᄇ喍诼(摑쌓謀⢃䥬ᄇ喍诸(摑ᒺ쌔謀⢃䥔ᄇ喍诰(摑䖋뫰ᐴÃ៨絭࿿즄먀ᐔÃ莋Ш ⧨뉉跿ࢋ凿譤䢺쌔泬ス萏ƞ ᒺ쌔謀⢃䣾ᄇ喍诨(摑䖋뫨ᑜÃ쇨絬࿿玄먀ᐔÃ莋Ш 폨뉈跿ࢋ凿譤為쌔沖ス萏ň ᒺ쌔謀⢃
===== PM_PharmCharge.exe 약품이미지 업데이트 char=3315151 byte=652b9e =====
債老̸舏Ī ꒸ꚳ扴レ삄萏Ę 䖋诸謀肋Ϭ ꚳꮀᅫ喍诔(摑喋诔尅잌ル쎋秨캚诿櫮│ႋ勿桄됀¦喍诌肋՘ 뿨驐￿챵큨ꚴ贀졕䖋诸岀傦レ痿跈큅Һ 촂ル䖋僐쎋鿨嫿ࢋ凿謸騊ᅫ쎋믨컀诿빤ᅫ삄桵ºꚵ謀ꫠᅫ喍诀摑䖋跀쑍Ⓔꚵ⺀n喋评怅웜ル㒺ꚵ謀ꪬᅫ喍许摑䖋趸뱍Ⓔꚵ⹌n喋讼搅욨ル䖋㯸悰ༀ麅 謀肋Ϭ 鿨컂닿ꄁ뽌g섒觿Ʋ䂡䋔鹨ル䖉㏰嗀빨ꚯ搀ヿ襤謠肋Ѐ 喋㗖ᅫjj䖋警ワ喋诰ࢋ凿譜肋є 肋ƨ 喋ƈ゙쀳奚摙ႉ難ꚰ謀㏨馞诿⯨馞쏿헩馧诨뀻Ѥ 蔏ž 䖋诸쇂ᅫƲ䲡枿ሺ￁䖉담ꄁ푀B믨馝觿쀳桕끫¦、搰₉䖋诸€謀⧨층櫿樀謀맨鲊诿䖋说(屑䖋诸咀謀ꢀ謀鸀㏿嫀奙襤栐냺¦䖋鶆ル䖋鵾ルꜨル䖋㯸械甀譽肋ϰ 藨캼蓿࿀徭 謀䠍僂謁눉ꄁ븜¥懨ꗯ觿쀳桕냳¦、搰₉䖋诸謀邋є 䖋Ꮂ￿䖋诬0’㌀嫀奙襤栐냺¦䖋鳶ルꚠル䖋诸謀0碒䠀罾䖋诸耀ꂸ ≴䖋诸悀㌀诒(摑䖋诸撀눀謁(摑䯫뢀¡ 琀謢肋Ѡ Ʋࢋ凿譤肋Ѥ 툳ࢋ凿謠肋Ѡ Ʋࢋ凿譤肋Ѥ Ʋࢋ凿㍤嫀奙襤栐놷¦䖍몸
ᇨ駄跿ﱅǨ駄쏿馥廣譛工Ã Ұ￿￿ 약품이미지 업데이트 중입니다. Ұ￿￿Í SELECT * FROM PM_DRUG..CD_ETCGOODS WHERE SUBSTRING(SUNG_CODE, 8, 2) IN ('TB', 'CH', 'CS', 'CE', 'TE', 'TD', 'TR', 'CR', 'TL', 'TC', 'TO', 'SP', 'TX', 'TU', 'TT', 'TS', 'CV', 'OF') AND DRUGCODE = Ұ￿￿ C:\Dik20\Data\Drugimg2005.MDB Ұ￿￿ SEQ Ұ￿￿` SELECT * FROM 식별정보 AS A LEFT JOIN 식별정보품목 AS B ON A.DRUG_CODE = B.DRUG_CODE WHERE A.DRUG_CODE = Ұ￿￿ AND A.EXPR1 = Ұ￿￿ PRINT_FRONT Ұ￿￿ @ Ұ￿￿
PRINT_BACK 跃@譕㏬凉兑兑卑譖㏘嗀㡨ꚷ搀ヿ襤茠₻ ൵줳툳쎋䟨G㌋㏉诒ꨦ￿삄蔏 뮃Ԡ 甀资ﱅ譐颳謀μ¥좋ࢺ 謀ᕢᅳ喋跼㲃뿴ルŪ讋Լ 鎋Ҥ 쎋揨﾿赂譐钳謀͸¥좋ֺ 謀ᔞᅳ喋跸㲃뾰ルj讋Լ 鎋Ҥ 쎋Ῠ﾿诿뭈￿뮃Ԡ 甀謐颃謀0 謎钃謀0 謀邃謀0 萀瓀赝ᖋ즄Ő方 션ル痿棰띔¦摨ꚷ贀κ 쓶ル䶋담ꄁﱄC柨鵆诿棘람¦鲹ꚷ먀랼¦쎋る囿謄霨ル寫䖍诨萕僉뤁e ﯨ駀￿周ꚷ栀띤¦䖍뫬 駨駄诿Ʋ䒡䏼䘊ン𲱨ꚷ뤀랜¦벺ꚷ謀诃Pі쎋쯨首㏿嫀奙襤栐뜿¦䖍뫨 臨馾쏿審馠廫譛工à Ұ￿￿ \ Ұ￿￿ PM2000V6.INI Ұ￿￿ 1 Ұ￿￿ 대체조제사용약품 Ұ￿￿ 개인별 설정내용 Ұ￿￿ 0 譕櫬樀樀匀譖㏘嗀쵨ꚸ搀ヿ襤贠ﱅᖋ즄Ő方 뿂ル莋Ҝ ႋ鋿Ü 삄䩵痿棼루¦ꚸ贀κ 썎ル䶋닸ꄁﱄC뿨鵄诿棘뤠¦スꚹ먀륌¦쎋る囿謄門ル䣫痿棼루¦ꚸ贀κ 쌄ル䶋담ꄁﱄC痨鵄诿棘륨¦スꚹ먀륌¦쎋る囿謄锶ル쀳奚摙ႉ푨ꚸ贀κ 볬ル黆ル孞썝

66
docs/api-response.md Normal file
View File

@@ -0,0 +1,66 @@
# API/JSON 응답 설계 예시
PIT 원본은 JSON API라기보다는 SQL + BLOB + health.kr HTML/이미지 URL을 조합합니다. 현대화할 때는 아래처럼 normalization하는 것을 권장합니다.
## Endpoint 예시
```http
GET /api/drugs/{drugcode}
GET /api/drugs/{drugcode}/images
GET /api/drugs/{drugcode}/pictograms
```
## 응답 예시
```json
{
"drugcode": "A000000001",
"dik_code": "123456789",
"sung_code": "1234567TB",
"sung_code_kind": "ingredient_code",
"names": {
"etcname": "샘플정",
"splname": "샘플제약",
"ingredient_name_en": "Sample ingredient"
},
"classification": {
"print_type": "해열진통소염제",
"effctname": "정제",
"character": "흰색 원형 정제"
},
"drug_info": {
"save_medi": "실온 보관",
"indic_medi": "용법용량 예시",
"effect": "효능/효과 예시",
"adr": "주의사항 예시",
"interaction": "상호작용 예시",
"gen_medi": "복약지도 예시"
},
"images": [
{
"source": "PM_IMAGE..DrugImg",
"expr1": "1",
"content_type": "image/jpeg",
"url": "/api/drugs/A000000001/images/1.jpg",
"width_hint": 183,
"height_hint": 100
},
{
"source": "health.kr",
"url": "https://www.health.kr/drug_info/sb/zoom.asp?drug_code=123456789&print_front=&print_back="
}
],
"pictograms": [
{
"pic_code": "P001",
"source": "PM_DRUG..CD_PICTOGRAM",
"url": "/api/drugs/A000000001/pictograms/P001.jpg"
}
],
"external_links": {
"health_kr_simple": "https://health.kr/searchDrug/result_drug_simple.asp?drug_cd=123456789",
"health_kr_zoom": "https://www.health.kr/drug_info/sb/zoom.asp?drug_code=123456789&print_front=&print_back=",
"pharm_or_kr_zoom": "https://www.pharm.or.kr/search/zoom.asp?drug_code=123456789"
}
}
```

46
docs/flow.md Normal file
View File

@@ -0,0 +1,46 @@
# 의약품 상세/이미지 흐름
## 1. 입력
PIT 내부의 약품 단위 key는 상황에 따라 `DRUGCODE`, `DIK_CODE`, `SUNG_CODE`가 함께 등장합니다.
- `DRUGCODE`: PIT/PM 내부 약품 코드
- `DIK_CODE`: health.kr/식별 이미지 계열에서 사용하는 식별 코드
- `SUNG_CODE`: 성분코드
## 2. 기본 해석 흐름
```mermaid
flowchart TD
A[DRUGCODE] --> B[PM_DRUG..CD_GOODS]
B --> C[DIK_CODE]
B --> D[SUNG_CODE 성분코드]
A --> E[PM_DRUG..CD_ETCGOODS + CD_MC]
D --> F[PM_DRUG..CD_SUNG]
C --> G[PM_IMAGE..DrugImg]
C --> H[health.kr result_drug_simple.asp]
C --> I[health.kr zoom.asp]
C --> J[PM_DRUG..CD_PICTOGRAM_SUB/CD_PICTOGRAM]
```
## 3. 이미지 후보 우선순위
1. `PM_IMAGE..DrugImg``DRUG_IMG` BLOB
2. `C:\Dik20\Data\Drugimg2005.MDB` / `C:\Dik2004\Data\Drugimg.MDB`
3. health.kr 확대 이미지 URL
4. pictogram BLOB
## 4. HTML/인쇄 쪽에서 관찰된 임시 파일
```text
\Image\Temp\Sik_{...}.jpg
\Image\Temp\Pito_{...}.jpg
```
PIT는 BLOB을 임시 jpg로 쓰고 다음 형태의 HTML img tag를 구성하는 흔적이 있습니다.
```html
<img src="...jpg" width="183" height="100" border="0">
<img src="...jpg" width="215" height="117" border="0">
<img src="...jpg" width="59" height="100" border="0">
```

View File

@@ -0,0 +1,50 @@
{
"drugcode": "A000000001",
"dik_code": "123456789",
"sung_code": "1234567TB",
"sung_code_kind": "ingredient_code",
"names": {
"etcname": "샘플정",
"splname": "샘플제약",
"ingredient_name_en": "Sample ingredient"
},
"classification": {
"print_type": "해열진통소염제",
"effctname": "정제",
"character": "흰색 원형 정제"
},
"drug_info": {
"save_medi": "실온 보관",
"indic_medi": "1일 3회 식후 복용",
"effect": "효능/효과 예시",
"adr": "주의사항 예시",
"interaction": "상호작용 예시",
"gen_medi": "복약지도 예시"
},
"images": [
{
"source": "PM_IMAGE..DrugImg",
"expr1": "1",
"content_type": "image/jpeg",
"url": "/api/drugs/A000000001/images/1.jpg",
"width_hint": 183,
"height_hint": 100
},
{
"source": "health.kr",
"url": "https://www.health.kr/drug_info/sb/zoom.asp?drug_code=123456789&print_front=&print_back="
}
],
"pictograms": [
{
"pic_code": "P001",
"source": "PM_DRUG..CD_PICTOGRAM",
"url": "/api/drugs/A000000001/pictograms/P001.jpg"
}
],
"external_links": {
"health_kr_simple": "https://health.kr/searchDrug/result_drug_simple.asp?drug_cd=123456789",
"health_kr_zoom": "https://www.health.kr/drug_info/sb/zoom.asp?drug_code=123456789&print_front=&print_back=",
"pharm_or_kr_zoom": "https://www.pharm.or.kr/search/zoom.asp?drug_code=123456789"
}
}

View File

@@ -0,0 +1,59 @@
#!/usr/bin/env python3
"""Example normalizer for PIT3000 drug info rows.
This file does not connect to production DB. Replace the stub functions with pyodbc/pymssql calls.
"""
from __future__ import annotations
import json
def normalize_drug_info(drugcode: str, goods: dict, detail: dict, images: list[dict], pictograms: list[dict]) -> dict:
dik_code = goods.get('DIK_CODE') or ''
sung_code = goods.get('SUNG_CODE') or ''
return {
'drugcode': drugcode,
'dik_code': dik_code,
'sung_code': sung_code,
'sung_code_kind': 'ingredient_code',
'names': {
'etcname': detail.get('ETCNAME'),
'splname': detail.get('SPLNAME'),
'ingredient_name_en': detail.get('SUNG_ENM'),
},
'classification': {
'print_type': detail.get('PRINT_TYPE'),
'effctname': detail.get('EFFCTNAME'),
'character': detail.get('CHARACT'),
},
'drug_info': {
'save_medi': detail.get('SAVE_MEDI'),
'indic_medi': detail.get('INDIC_MEDI'),
'effect': detail.get('EFFECT'),
'adr': detail.get('ADR'),
'interaction': detail.get('INTERACTION'),
'gen_medi': detail.get('GEN_MEDI'),
},
'images': images,
'pictograms': pictograms,
'external_links': {
'health_kr_simple': f'https://health.kr/searchDrug/result_drug_simple.asp?drug_cd={dik_code}',
'health_kr_zoom': f'https://www.health.kr/drug_info/sb/zoom.asp?drug_code={dik_code}&print_front=&print_back=',
'pharm_or_kr_zoom': f'https://www.pharm.or.kr/search/zoom.asp?drug_code={dik_code}',
},
}
if __name__ == '__main__':
sample = normalize_drug_info(
'A000000001',
{'DIK_CODE': '123456789', 'SUNG_CODE': '1234567TB'},
{
'ETCNAME': '샘플정', 'SPLNAME': '샘플제약', 'SUNG_ENM': 'Sample ingredient',
'PRINT_TYPE': '해열진통소염제', 'EFFCTNAME': '정제', 'CHARACT': '흰색 원형 정제',
'SAVE_MEDI': '실온 보관', 'INDIC_MEDI': '1일 3회 식후 복용',
'EFFECT': '효능/효과 예시', 'ADR': '주의사항 예시',
'INTERACTION': '상호작용 예시', 'GEN_MEDI': '복약지도 예시',
},
[{'source': 'PM_IMAGE..DrugImg', 'expr1': '1', 'url': '/api/drugs/A000000001/images/1.jpg'}],
[{'pic_code': 'P001', 'source': 'PM_DRUG..CD_PICTOGRAM', 'url': '/api/drugs/A000000001/pictograms/P001.jpg'}],
)
print(json.dumps(sample, ensure_ascii=False, indent=2))