diff --git a/dental-server/dental-client/src/pages/DashboardPage.jsx b/dental-server/dental-client/src/pages/DashboardPage.jsx index be92fc0..b2ea8f9 100644 --- a/dental-server/dental-client/src/pages/DashboardPage.jsx +++ b/dental-server/dental-client/src/pages/DashboardPage.jsx @@ -95,6 +95,37 @@ export default function DashboardPage() { }, 300); }, [searchParams]); + // ── URL query patient (abre a pasta de RX do paciente se informado) ── + useEffect(() => { + const patientName = searchParams.get('patient'); + if (!patientName) return; + + const loadQueryPatient = async () => { + try { + const { data } = await api.get(`/images/patients?search=${encodeURIComponent(patientName)}&limit=10`); + const found = data.find(p => p.patient_name === patientName) || data[0]; + if (found) { + setSelectedPatient(found); + setView('patient-images'); + loadPatientImages(found.patient_name); + } else { + const fallbackPatient = { patient_name: patientName, doctor: '', remark: '', image_count: 0 }; + setSelectedPatient(fallbackPatient); + setView('patient-images'); + loadPatientImages(patientName); + } + } catch { + const fallbackPatient = { patient_name: patientName, doctor: '', remark: '', image_count: 0 }; + setSelectedPatient(fallbackPatient); + setView('patient-images'); + loadPatientImages(patientName); + } + }; + + loadQueryPatient(); + navigate('/', { replace: true }); + }, [searchParams]); + // ── Socket.IO: nova imagem em tempo real ────────────────────────── useEffect(() => { let debounceTimer; diff --git a/dental-server/dental-client/src/pages/ImageDetailsPage.jsx b/dental-server/dental-client/src/pages/ImageDetailsPage.jsx index 5ca7e5e..54cb148 100644 --- a/dental-server/dental-client/src/pages/ImageDetailsPage.jsx +++ b/dental-server/dental-client/src/pages/ImageDetailsPage.jsx @@ -183,7 +183,7 @@ export default function ImageDetailsPage() { rotation: 0, flipH: false, flipV: false, remark: '' }); showToast('Imagem restaurada para o original!', 'success'); - navigate('/patients'); + navigate('/?patient=' + encodeURIComponent(patientName)); } catch { showToast('Erro ao restaurar a imagem.', 'error'); } finally { @@ -337,7 +337,7 @@ export default function ImageDetailsPage() { {/* Top Header para navegação / Voltar */}
-