`;
});
html += `
Disclaimer: This is a sample guide. Always follow the specific exercises and instructions provided by your doctor or physical therapist.
`; container.innerHTML = html; } function saveEntry() { const entry = { date: document.getElementById('entry-date').value, pain: parseInt(painSlider.value), rom: parseInt(document.getElementById('range-of-motion').value) || 0, notes: document.getElementById('entry-notes').value, exercises: [] }; if (!entry.date) { alert('Please select a date.'); return; } document.querySelectorAll('#exercise-checklist input:checked').forEach(checkbox => { entry.exercises.push(checkbox.dataset.exerciseName); }); rehabData.push(entry); rehabData.sort((a, b) => new Date(a.date) - new Date(b.date)); // Keep data sorted localStorage.setItem('rehabTrackerData', JSON.stringify(rehabData)); alert('Entry saved successfully!'); resetForm(); } function resetForm() { document.getElementById('entry-date').valueAsDate = new Date(); painSlider.value = 5; painDisplay.textContent = '5'; document.getElementById('range-of-motion').value = ''; document.getElementById('entry-notes').value = ''; document.querySelectorAll('#exercise-checklist input:checked').forEach(checkbox => checkbox.checked = false); } function renderDashboard() { renderCharts(); renderLogTable(); } function renderCharts() { const labels = rehabData.map(d => new Date(d.date).toLocaleDateString()); const painData = rehabData.map(d => d.pain); const romData = rehabData.map(d => d.rom); if (painChart) painChart.destroy(); if (romChart) romChart.destroy(); painChart = new Chart(document.getElementById('pain-chart').getContext('2d'), { type: 'line', data: { labels, datasets: [{ label: 'Pain Level (0-10)', data: painData, borderColor: '#ef4444', tension: 0.1 }] }, options: { responsive: true } }); romChart = new Chart(document.getElementById('rom-chart').getContext('2d'), { type: 'line', data: { labels, datasets: [{ label: 'Range of Motion (°)', data: romData, borderColor: '#4f46e5', tension: 0.1 }] }, options: { responsive: true } }); } function renderLogTable() { const container = document.getElementById('log-table-container'); if (rehabData.length === 0) { container.innerHTML = `No entries yet. Add one from the 'Log Today's Entry' tab.
`; return; } let tableHTML = `| Date | Pain | ROM (°) | Notes |
|---|---|---|---|
| ${new Date(entry.date).toLocaleDateString()} | ${entry.pain} | ${entry.rom} | ${entry.notes || '-'} |
