diff --git a/backend/pmr_api.py b/backend/pmr_api.py index 52d1f83..b97c738 100644 --- a/backend/pmr_api.py +++ b/backend/pmr_api.py @@ -176,7 +176,7 @@ def get_prescription_detail(prescription_id): conn.close() return jsonify({'success': False, 'error': '처방전을 찾을 수 없습니다'}), 404 - # 처방 약품 목록 (PS_sub_pharm + PM_DRUG.CD_GOODS JOIN) + # 처방 약품 목록 (PS_sub_pharm + CD_GOODS + CD_MC JOIN) medications = [] cursor.execute(""" SELECT @@ -187,17 +187,24 @@ def get_prescription_detail(prescription_id): s.PS_Type, s.INV_QUAN, g.GoodsName, - g.SUNG_CODE + g.SUNG_CODE, + m.PRINT_TYPE, + m.SIM_EFFECT FROM PS_sub_pharm s LEFT JOIN PM_DRUG.dbo.CD_GOODS g ON s.DrugCode = g.DrugCode + LEFT JOIN PM_DRUG.dbo.CD_MC m ON s.DrugCode = m.DRUGCODE WHERE s.PreSerial = ? ORDER BY s.SUB_SERIAL """, (prescription_id,)) for row in cursor.fetchall(): + # 효능: PRINT_TYPE > SIM_EFFECT > 없음 + add_info = row.PRINT_TYPE or row.SIM_EFFECT or '' + medications.append({ 'medication_code': row.DrugCode or '', 'med_name': row.GoodsName or row.DrugCode or '', + 'add_info': add_info, 'dosage': float(row.QUAN) if row.QUAN else 0, 'frequency': row.QUAN_TIME or 0, 'duration': row.Days or 0, @@ -346,6 +353,7 @@ def preview_label(): patient_name = data.get('patient_name', '') med_name = data.get('med_name', '') + add_info = data.get('add_info', '') dosage = float(data.get('dosage', 0)) frequency = int(data.get('frequency', 0)) duration = int(data.get('duration', 0)) @@ -355,6 +363,7 @@ def preview_label(): image = create_label_image( patient_name=patient_name, med_name=med_name, + add_info=add_info, dosage=dosage, frequency=frequency, duration=duration, @@ -377,7 +386,7 @@ def preview_label(): return jsonify({'success': False, 'error': str(e)}), 500 -def create_label_image(patient_name, med_name, dosage, frequency, duration, unit='정'): +def create_label_image(patient_name, med_name, add_info='', dosage=0, frequency=0, duration=0, unit='정'): """ 라벨 이미지 생성 (29mm 용지 기준) """ @@ -442,19 +451,17 @@ def create_label_image(patient_name, med_name, dosage, frequency, duration, unit # 괄호 앞에서 분리 if '(' in med_name: main_name = med_name.split('(')[0].strip() - sub_info = '(' + med_name.split('(', 1)[1] if '(' in med_name else '' else: main_name = med_name - sub_info = '' # 약품명 줄바꿈 name_lines = wrap_text(main_name, drug_font, label_width - 30) for line in name_lines: y = draw_centered(line, y, drug_font) - # 부가정보 - if sub_info: - y = draw_centered(sub_info, y, small_font, fill="gray") + # 효능효과 (add_info) + if add_info: + y = draw_centered(f"({add_info})", y, small_font, fill="gray") y += 5 diff --git a/backend/templates/pmr.html b/backend/templates/pmr.html index 8e1bfbc..8c39e33 100644 --- a/backend/templates/pmr.html +++ b/backend/templates/pmr.html @@ -316,6 +316,14 @@