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:
parent
75448ffdc5
commit
8d025457c0
@ -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()
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user