fix: PMR 약품명 조회 - PM_DRUG.CD_GOODS JOIN

- PS_sub_pharm.DrugCode → PM_DRUG.CD_GOODS.GoodsName
- 용량(QUAN), 횟수(QUAN_TIME), 일수(Days) 매핑
This commit is contained in:
thug0bin 2026-03-04 22:48:35 +09:00
parent 75448ffdc5
commit 8d025457c0

View File

@ -172,36 +172,35 @@ def get_prescription_detail(prescription_id):
conn.close()
return jsonify({'success': False, 'error': '처방전을 찾을 수 없습니다'}), 404
# 처방 약품 목록 (PS_sub_pharm 테이블 확인 필요)
cursor.execute("""
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'PS_sub_pharm'
""")
sub_columns = [row[0] for row in cursor.fetchall()]
# 약품 목록 조회
# 처방 약품 목록 (PS_sub_pharm + PM_DRUG.CD_GOODS JOIN)
medications = []
if 'PreSerial' in sub_columns:
cursor.execute("""
SELECT *
FROM PS_sub_pharm
WHERE PreSerial = ?
ORDER BY 1
""", (prescription_id,))
med_columns = [col[0] for col in cursor.description]
for row in cursor.fetchall():
med_dict = dict(zip(med_columns, row))
medications.append({
'medication_code': med_dict.get('GoodsCode') or med_dict.get('PCODE') or '',
'med_name': med_dict.get('GoodsName') or med_dict.get('PNAME') or '',
'dosage': med_dict.get('Once_Qty') or med_dict.get('POESSION') or 0,
'frequency': med_dict.get('Times') or med_dict.get('PTIMES') or 0,
'duration': med_dict.get('Days') or med_dict.get('PDAY') or 0,
'total_qty': med_dict.get('Total_Qty') or 0,
'type': med_dict.get('PS_Type', '0')
})
cursor.execute("""
SELECT
s.DrugCode,
s.Days,
s.QUAN,
s.QUAN_TIME,
s.PS_Type,
s.INV_QUAN,
g.GoodsName,
g.SUNG_CODE
FROM PS_sub_pharm s
LEFT JOIN PM_DRUG.dbo.CD_GOODS g ON s.DrugCode = g.DrugCode
WHERE s.PreSerial = ?
ORDER BY s.SUB_SERIAL
""", (prescription_id,))
for row in cursor.fetchall():
medications.append({
'medication_code': row.DrugCode or '',
'med_name': row.GoodsName or row.DrugCode or '',
'dosage': float(row.QUAN) if row.QUAN else 0,
'frequency': row.QUAN_TIME or 0,
'duration': row.Days or 0,
'total_qty': float(row.INV_QUAN) if row.INV_QUAN else 0,
'type': '급여' if row.PS_Type in ['0', '4'] else '비급여' if row.PS_Type == '1' else row.PS_Type,
'sung_code': row.SUNG_CODE or ''
})
conn.close()