fix: KIMS API에 DrugCode 직접 사용 (BASECODE 조인 제거)
This commit is contained in:
parent
4c0cd68267
commit
67e576736d
@ -4152,25 +4152,23 @@ def api_kims_interaction_check():
|
|||||||
'error': '상호작용 체크를 위해 최소 2개 이상의 약품이 필요합니다.'
|
'error': '상호작용 체크를 위해 최소 2개 이상의 약품이 필요합니다.'
|
||||||
}), 400
|
}), 400
|
||||||
|
|
||||||
# 1. DrugCode → BASECODE(KIMS 9자리) 변환
|
# 1. DrugCode = KIMS KD코드 (9자리) - 직접 사용
|
||||||
# CD_BARCODE.BASECODE가 KIMS KD코드 (9자리)
|
|
||||||
drug_session = db_manager.get_session('PM_DRUG')
|
drug_session = db_manager.get_session('PM_DRUG')
|
||||||
placeholders = ','.join([f"'{c}'" for c in drug_codes])
|
placeholders = ','.join([f"'{c}'" for c in drug_codes])
|
||||||
|
|
||||||
code_query = text(f"""
|
code_query = text(f"""
|
||||||
SELECT G.DrugCode, G.GoodsName,
|
SELECT DrugCode, GoodsName
|
||||||
(SELECT TOP 1 BASECODE FROM CD_BARCODE WHERE DrugCode = G.DrugCode AND BASECODE IS NOT NULL) as BASECODE
|
FROM CD_GOODS
|
||||||
FROM CD_GOODS G
|
WHERE DrugCode IN ({placeholders})
|
||||||
WHERE G.DrugCode IN ({placeholders})
|
|
||||||
""")
|
""")
|
||||||
code_result = drug_session.execute(code_query).fetchall()
|
code_result = drug_session.execute(code_query).fetchall()
|
||||||
|
|
||||||
# KIMS 코드 매핑
|
# DrugCode를 KIMS KD코드로 직접 사용
|
||||||
kd_codes = []
|
kd_codes = []
|
||||||
drugs_info = []
|
drugs_info = []
|
||||||
for row in code_result:
|
for row in code_result:
|
||||||
kd_code = row.BASECODE
|
kd_code = row.DrugCode # DrugCode 자체가 KIMS 코드
|
||||||
if kd_code:
|
if kd_code and len(str(kd_code)) == 9:
|
||||||
kd_codes.append(str(kd_code))
|
kd_codes.append(str(kd_code))
|
||||||
drugs_info.append({
|
drugs_info.append({
|
||||||
'drug_code': row.DrugCode,
|
'drug_code': row.DrugCode,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user