초기 정리: PIT3000 분석 자료 업로드
- 좌표/SQL/API 분석 문서화 - 재현 스크립트와 예시 응답 추가 - 개인정보/원본 실행파일 제외
This commit is contained in:
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
__pycache__/
|
||||||
|
.venv/
|
||||||
|
.env
|
||||||
|
*.mdb
|
||||||
|
*.mdf
|
||||||
|
*.ldf
|
||||||
|
*.bak
|
||||||
|
Image/Temp/
|
||||||
88
README.md
Normal file
88
README.md
Normal 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로만 둡니다.
|
||||||
67
data/teoul_drug_image_api_PM_PharmCharge.txt
Normal file
67
data/teoul_drug_image_api_PM_PharmCharge.txt
Normal 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ꚨLLJ뤼C놨L똈CMꀈL蓀K諌K記KJ绌K귤L笠KJ껰LᶠK,MJJJ냬L꾨LJ뇨LJḤK箬K籬K痰K籐K魬L먀L䁘K칔L홌L푐L䃰K䄔KLL㽄K鋔K綘KL鉈K䓨K秐K鎘K齃L镌L韼LLꕈ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 Ұ <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 Ұ <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;"> Ұ : Ұ* </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 Ұ <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䖋倌䖋倈ᖋ귄Őኋ똏m욋ᗨꇿ귄Őᢉ孞嵙ࣂ Ұ 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
66
docs/api-response.md
Normal 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
46
docs/flow.md
Normal 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">
|
||||||
|
```
|
||||||
50
examples/drug-info-response.example.json
Normal file
50
examples/drug-info-response.example.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
59
scripts/normalize_drug_info.py
Normal file
59
scripts/normalize_drug_info.py
Normal 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))
|
||||||
Reference in New Issue
Block a user