fix-patient-appoiment

This commit is contained in:
João Gustavo 2025-10-23 16:46:19 -03:00
parent 2c39f404d8
commit edb717050b
3 changed files with 55 additions and 2 deletions

View File

@ -4,7 +4,7 @@ import { useRouter, useSearchParams } from "next/navigation";
import { CalendarRegistrationForm } from "@/components/forms/calendar-registration-form"; import { CalendarRegistrationForm } from "@/components/forms/calendar-registration-form";
import HeaderAgenda from "@/components/agenda/HeaderAgenda"; import HeaderAgenda from "@/components/agenda/HeaderAgenda";
import FooterAgenda from "@/components/agenda/FooterAgenda"; import FooterAgenda from "@/components/agenda/FooterAgenda";
import { useState } from "react"; import { useState, useEffect } from "react";
import { criarAgendamento } from '@/lib/api'; import { criarAgendamento } from '@/lib/api';
import { toast } from '@/hooks/use-toast'; import { toast } from '@/hooks/use-toast';
@ -40,6 +40,26 @@ export default function NovoAgendamentoPage() {
const router = useRouter(); const router = useRouter();
const searchParams = useSearchParams(); const searchParams = useSearchParams();
const [formData, setFormData] = useState<FormData>({}); const [formData, setFormData] = useState<FormData>({});
// Prefill from search params if provided (origin=consultas)
useEffect(() => {
try {
const origin = searchParams?.get?.('origin')
if (!origin) return
const next: FormData = { ...formData }
const pId = searchParams.get('patientId')
const tipo = searchParams.get('tipo')
const especialidade = searchParams.get('especialidade')
const local = searchParams.get('local')
if (pId) next.patientId = pId
if (tipo) next.appointmentType = tipo
if (especialidade) next.chief_complaint = `Especialidade: ${especialidade}`
if (local) next.unit = local
setFormData(next)
} catch (e) {
// ignore
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [])
const handleFormChange = (data: FormData) => { const handleFormChange = (data: FormData) => {
setFormData(data); setFormData(data);

View File

@ -333,7 +333,9 @@ export default function PacientePage() {
especialidade, especialidade,
local: localizacao local: localizacao
}) })
router.push(`/resultados?${params.toString()}`) // if we have a linked patient id, include it so the agenda page can prefill
try { if (patientId) params.append('patientId', String(patientId)) } catch(e){}
router.push(`/agenda?origin=consultas&${params.toString()}`)
} }
return ( return (

View File

@ -0,0 +1,31 @@
{
"user": {
"id": "8c02cbac-16f8-4437-b362-342f5a6ea6df",
"email": "yinohos278@nrlord.com",
"email_confirmed_at": "2025-10-22T21:14:13.540678Z",
"created_at": "2025-10-22T21:14:13.536407Z",
"last_sign_in_at": "2025-10-23T19:35:45.222772Z"
},
"profile": {
"id": "8c02cbac-16f8-4437-b362-342f5a6ea6df",
"full_name": "João Gustavo",
"avatar_url": null,
"created_at": "2025-10-22T21:14:13.536083+00:00",
"updated_at": "2025-10-22T21:14:13.581474+00:00",
"email": "yinohos278@nrlord.com",
"disabled": false,
"phone": "(79) 99161-9988"
},
"roles": [
"paciente"
],
"permissions": {
"isAdmin": false,
"isManager": false,
"isDoctor": false,
"isSecretary": false,
"isPatient": true,
"canManageUsers": false,
"isAdminOrManager": false
}
}