diff --git a/backend/app.py b/backend/app.py index 005b878..8d5a8d4 100644 --- a/backend/app.py +++ b/backend/app.py @@ -4120,6 +4120,69 @@ def kill_process_on_port(port: int) -> bool: # KIMS 약물 상호작용 API # ═══════════════════════════════════════════════════════════ +@app.route('/admin/kims-logs') +def admin_kims_logs(): + """KIMS 상호작용 로그 뷰어 페이지""" + return render_template('admin_kims_logs.html') + + +@app.route('/api/kims/logs') +def api_kims_logs(): + """KIMS 로그 목록 조회""" + from db.kims_logger import get_recent_logs + + limit = int(request.args.get('limit', 100)) + status = request.args.get('status', '') + interaction = request.args.get('interaction', '') + date = request.args.get('date', '') + + try: + logs = get_recent_logs(limit=limit) + + # 필터링 + if status: + logs = [l for l in logs if l['api_status'] == status] + if interaction == 'has': + logs = [l for l in logs if l['interaction_count'] > 0] + elif interaction == 'severe': + logs = [l for l in logs if l['has_severe_interaction'] == 1] + elif interaction == 'none': + logs = [l for l in logs if l['interaction_count'] == 0] + if date: + logs = [l for l in logs if l['created_at'] and l['created_at'].startswith(date)] + + return jsonify({'success': True, 'logs': logs}) + except Exception as e: + return jsonify({'success': False, 'error': str(e)}) + + +@app.route('/api/kims/logs/stats') +def api_kims_logs_stats(): + """KIMS 로그 통계""" + from db.kims_logger import get_stats + + try: + stats = get_stats() + return jsonify({'success': True, 'stats': stats}) + except Exception as e: + return jsonify({'success': False, 'error': str(e)}) + + +@app.route('/api/kims/logs/') +def api_kims_log_detail(log_id): + """KIMS 로그 상세 조회""" + from db.kims_logger import get_log_detail + + try: + log = get_log_detail(log_id) + if log: + return jsonify({'success': True, 'log': log}) + else: + return jsonify({'success': False, 'error': '로그를 찾을 수 없습니다'}), 404 + except Exception as e: + return jsonify({'success': False, 'error': str(e)}) + + @app.route('/api/kims/interaction-check', methods=['POST']) def api_kims_interaction_check(): """ diff --git a/backend/templates/admin_kims_logs.html b/backend/templates/admin_kims_logs.html new file mode 100644 index 0000000..744b907 --- /dev/null +++ b/backend/templates/admin_kims_logs.html @@ -0,0 +1,563 @@ + + + + + + KIMS 상호작용 로그 - 청춘약국 + + + + + + +
+ +

🔬 KIMS 상호작용 로그

+

약물 상호작용 체크 API 호출 기록 · AI 학습용 데이터

+
+ +
+ +
+
+
총 호출
+
-
+
+
+
성공
+
-
+
+
+
상호작용 발견
+
-
+
+
+
심각 경고
+
-
+
+
+
평균 응답
+
-
+
밀리초
+
+
+ + +
+ + + + +
+ + +
+ + + + + + + + + + + + + + + + +
시간처방번호약품상호작용상태응답
로딩 중...
+
+
+ + + +