48 lines
2.2 KiB
JavaScript
48 lines
2.2 KiB
JavaScript
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 = '<span class="spinner-border spinner-border-sm me-1"></span> 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;
|
|
}
|
|
}
|