import React, { useState, useEffect } from 'react'; import { useNavigate, useLocation } from 'react-router-dom'; import html2pdf from 'html2pdf.js'; import './styleMedico/NovoRelatorioAudio.css'; const NovoRelatorioAudio = () => { const navigate = useNavigate(); const location = useLocation(); const [loading, setLoading] = useState(false); const [formData, setFormData] = useState({ paciente_nome: '', data_exame: new Date().toISOString().split('T')[0], exam: '', diagnostico: '', conclusao: '', medico_nome: 'Dr._______________________________' }); // --- Receber dados da Videochamada (Se houver) --- useEffect(() => { if (location.state && location.state.aiResult) { console.log("Dados recebidos da Videochamada:", location.state); const { aiResult, paciente } = location.state; setFormData(prev => ({ ...prev, paciente_nome: paciente?.name || prev.paciente_nome, exam: aiResult.exam || 'Consulta Telemedicina', diagnostico: aiResult.diagnostico || '', conclusao: aiResult.conclusao || '' })); } }, [location]); // --- LÓGICA DO UPLOAD DE ÁUDIO --- const handleAudioUpload = async (e) => { const file = e.target.files[0]; if (!file) return; setLoading(true); const data = new FormData(); data.append('audio', file); try { const response = await fetch('http://localhost:3001/api/transcrever-relatorio', { method: 'POST', body: data, }); if (!response.ok) throw new Error('Erro na comunicação com a API'); const result = await response.json(); // ATUALIZAÇÃO AQUI: Mapeando todos os campos retornados pela IA setFormData(prev => ({ ...prev, paciente_nome: result.paciente || prev.paciente_nome, // Pega o nome do paciente exam: result.exam || prev.exam, diagnostico: result.diagnostico || prev.diagnostico, conclusao: result.conclusao || prev.conclusao })); } catch (error) { console.error(error); alert("Erro: Verifique se o backend (porta 3001) está rodando."); } finally { setLoading(false); e.target.value = null; } }; const handleChange = (e) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); }; const handlePrintPDF = () => { const element = document.getElementById('documento-final'); const opt = { margin: 0, filename: `Laudo_${formData.paciente_nome || 'SemNome'}.pdf`, image: { type: 'jpeg', quality: 0.98 }, html2canvas: { scale: 2 }, jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' } }; html2pdf().set(opt).from(element).save(); }; return (

AI Report

Gerador de laudos automatizado

{loading ? (
) : ( <> )}

CLÍNICA RISE UP

Excelência em Diagnóstico por Imagem

{formData.medico_nome}

CRM/SP 123456

{new Date().toLocaleDateString()}

Paciente: {formData.paciente_nome || '__________________________'}
Exame: {formData.exam || '__________________________'}
Data: {new Date(formData.data_exame).toLocaleDateString('pt-BR')}

Relatório Médico

Análise:

{formData.diagnostico || O diagnóstico aparecerá aqui...}

Conclusão:

{formData.conclusao}

________________________________________

{formData.medico_nome}

Assinatura Eletrônica

); }; export default NovoRelatorioAudio;