diff --git a/src/PagesMedico/EditPageRelatorio.jsx b/src/PagesMedico/EditPageRelatorio.jsx index 741da1e..5459211 100644 --- a/src/PagesMedico/EditPageRelatorio.jsx +++ b/src/PagesMedico/EditPageRelatorio.jsx @@ -7,6 +7,7 @@ import TiptapEditor from '../PagesMedico/TiptapEditor'; import { GetPatientByID } from '../components/utils/Functions-Endpoints/Patient'; import { GetDoctorByID } from '../components/utils/Functions-Endpoints/Doctor'; + const EditPageRelatorio = () => { const params = useParams(); const navigate = useNavigate(); @@ -18,6 +19,7 @@ const EditPageRelatorio = () => { const [doctor, setDoctor] = useState(null); const [html, setHtml] = useState(''); + const generateTemplate = (r = {}, p = {}, d = {}) => { const patientName = p?.full_name || '[NOME DO PACIENTE]'; const birthDate = p?.birth_date || ''; @@ -46,6 +48,7 @@ const EditPageRelatorio = () => { `; }; + useEffect(() => { const load = async () => { setLoading(true); @@ -55,20 +58,24 @@ const EditPageRelatorio = () => { myHeaders.append("Authorization", authHeader); const requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; + // Pega relatório por id (supabase geralmente retorna array para ?id=eq.X) const resp = await fetch(`https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/reports?id=eq.${params.id}`, requestOptions); const data = await resp.json(); const rep = Array.isArray(data) ? data[0] : data; if (!rep) throw new Error('Relatório não encontrado'); + setReport(rep); + // busca paciente if (rep.patient_id) { const p = await GetPatientByID(rep.patient_id, authHeader); setPatient(Array.isArray(p) ? p[0] : p); } + // busca doctor se tiver created_by/requested_by id (tentamos fallback) if (rep.created_by) { try { @@ -79,6 +86,7 @@ const EditPageRelatorio = () => { } } + // content_html preferencial let initial = rep.content_html || rep.content || rep.diagnosis || rep.conclusion || ''; if (!initial || initial.trim() === '') { @@ -96,6 +104,7 @@ const EditPageRelatorio = () => { // eslint-disable-next-line }, [params.id, authHeader]); + const handleSave = async () => { setLoading(true); try { @@ -103,10 +112,12 @@ const EditPageRelatorio = () => { myHeaders.append('apikey', API_KEY); myHeaders.append('Authorization', authHeader); myHeaders.append('Content-Type', 'application/json'); + + // Adicionado para que a API retorne o registro atualizado + myHeaders.append('Prefer', 'return=representation'); const body = JSON.stringify({ content_html: html }); - // supabase: PATCH via query id=eq. const res = await fetch(`https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/reports?id=eq.${params.id}`, { method: 'PATCH', headers: myHeaders, @@ -119,8 +130,18 @@ const EditPageRelatorio = () => { throw new Error('Erro na API'); } + // Recebe o dado atualizado e atualiza o estado do componente + const updatedData = await res.json(); + const updatedReport = Array.isArray(updatedData) ? updatedData[0] : updatedData; + + if (updatedReport) { + setReport(updatedReport); + setHtml(updatedReport.content_html || ''); + } + alert('Relatório atualizado com sucesso!'); navigate('/medico/relatorios'); + } catch (err) { console.error(err); alert('Erro ao salvar. Veja console.'); @@ -129,17 +150,21 @@ const EditPageRelatorio = () => { } }; + if (loading) return
Carregando...
; + return (

Editar Relatório do Paciente: {patient?.full_name || '...'}

+
Conteúdo do Relatório
setHtml(newHtml)} />
+
+ } catch (error) { + console.error('Erro ao cancelar a consulta:', error); + alert('Erro ao cancelar a consulta. Veja o console.'); + } + } -

Seus proximos atendimentos

+ return ( +
+

Gerencie suas consultas

- {consultas.map((consulta) => ( - - - ))} -{showDeleteModal && -
-
- -
-
- Confirmação de Exclusão -
- -
- -
-

- Tem certeza que deseja excluir este agendamento? -

-
- -
- - - - -
+

Seus próximos atendimentos

+ + {consultas.map((consulta) => ( + + ))} + + {showDeleteModal && +
+
+
+
+ Confirmação de Exclusão +
+ +
+
+

+ Tem certeza que deseja excluir este agendamento? +

+
+
+ + +
+
+
}
-
} - -
-
- ) +
+ ) } -export default ConsultasPaciente \ No newline at end of file +export default ConsultasPaciente; \ No newline at end of file