async function generateAIReport(button) { const modal = button.closest(".modal"); const symptomsEditor = $(modal.querySelector('textarea[name="symptoms"]')); const diagnosisEditor = $(modal.querySelector('textarea[name="diagnosis"]')); const treatmentPlanEditor = $(modal.querySelector('textarea[name="treatment_plan"]')); const symptomsText = symptomsEditor.length && symptomsEditor.summernote ? symptomsEditor.summernote('code') : (modal.querySelector('textarea[name="symptoms"]') ? modal.querySelector('textarea[name="symptoms"]').value : ''); const diagnosisText = diagnosisEditor.length && diagnosisEditor.summernote ? diagnosisEditor.summernote('code') : (modal.querySelector('textarea[name="diagnosis"]') ? modal.querySelector('textarea[name="diagnosis"]').value : ''); // Check if actually empty beyond HTML tags const cleanSymptoms = symptomsText.replace(/<[^>]*>/g, "").trim(); const cleanDiagnosis = diagnosisText.replace(/<[^>]*>/g, "").trim(); if (!cleanSymptoms && !cleanDiagnosis) { alert("Please enter symptoms or diagnosis first."); return; } const originalHTML = button.innerHTML; button.disabled = true; button.innerHTML = ' AI generating...'; try { const response = await fetch("api/ai_report.php", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ symptoms: symptomsText, diagnosis: diagnosisText }) }); const data = await response.json(); if (data.success) { if (treatmentPlanEditor.length && treatmentPlanEditor.summernote) { treatmentPlanEditor.summernote('code', data.report); } else { modal.querySelector('textarea[name="treatment_plan"]').value = data.report; } } else { alert("AI Error: " + (data.error || "Unknown error")); } } catch (error) { console.error("AI Report generation failed:", error); alert("Failed to generate AI suggestion."); } finally { button.disabled = false; button.innerHTML = originalHTML; } }