github-actions[bot]
Deploy from GitHub Actions (commit: 8b247ffacd77c0672965b8378f1d52a7dcd187ae)
9366995
| """ | |
| Step 3 Left Panel: Predefined Metrics | |
| """ | |
| import streamlit as st | |
| def render_step3_left(): | |
| """Render the left panel for Step 3: Predefined Metrics""" | |
| st.markdown("### 📊 Available Metrics") | |
| st.markdown("Select which therapeutic metrics to evaluate:") | |
| # Get available metrics from registry | |
| from evaluators import list_available_metrics, get_metrics_by_category, get_metric_metadata | |
| available_metrics = list_available_metrics() | |
| metrics_by_category = get_metrics_by_category() | |
| selected_metrics = [] | |
| # Display metrics grouped by category | |
| if metrics_by_category: | |
| for category, metric_keys in metrics_by_category.items(): | |
| if category: | |
| st.markdown(f"**{category}**") | |
| for metric_key in metric_keys: | |
| metadata = get_metric_metadata(metric_key) | |
| if metadata: | |
| label = metadata.label | |
| description = metadata.description | |
| help_text = description if description else None | |
| if st.checkbox( | |
| label, | |
| value=st.session_state.get(f'metric_{metric_key}', False), | |
| key=f'metric_{metric_key}', | |
| help=help_text | |
| ): | |
| selected_metrics.append(metric_key) | |
| else: | |
| # Fallback: display all metrics without categories | |
| for metric_key in available_metrics: | |
| metadata = get_metric_metadata(metric_key) | |
| label = metadata.label if metadata else metric_key.replace('_', ' ').title() | |
| description = metadata.description if metadata else None | |
| if st.checkbox( | |
| label, | |
| value=st.session_state.get(f'metric_{metric_key}', False), | |
| key=f'metric_{metric_key}', | |
| help=description | |
| ): | |
| selected_metrics.append(metric_key) | |
| st.session_state.selected_metrics = selected_metrics | |
| # Validation message for metrics | |
| if not selected_metrics: | |
| st.warning("⚠️ Please select at least one metric.") | |
| else: | |
| st.success(f"✅ {len(selected_metrics)} metric(s) selected") | |
| return selected_metrics | |