fix: KIMS API에 DrugCode 직접 사용 (BASECODE 조인 제거)

This commit is contained in:
thug0bin 2026-02-28 13:22:26 +09:00
parent 4c0cd68267
commit 67e576736d

View File

@ -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,