'use client'; import { useState, useEffect } from 'react'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; import Link from 'next/link'; import { useParams } from 'next/navigation'; import { api } from '@/services/api.mjs'; import { reportsApi } from '@/services/reportsApi.mjs'; import Sidebar from '@/components/Sidebar'; export default function LaudosPage() { const [patient, setPatient] = useState(null); const [laudos, setLaudos] = useState([]); const [loading, setLoading] = useState(true); const params = useParams(); const patientId = params.id as string; const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage] = useState(5); useEffect(() => { if (patientId) { const fetchPatientAndLaudos = async () => { setLoading(true); try { const patientData = await api.get(`/rest/v1/patients?id=eq.${patientId}&select=*`).then(r => r?.[0]); setPatient(patientData); const laudosData = await reportsApi.getReports(patientId); setLaudos(laudosData); } catch (error) { console.error("Failed to fetch data:", error); } finally { setLoading(false); } }; fetchPatientAndLaudos(); } }, [patientId]); const indexOfLastItem = currentPage * itemsPerPage; const indexOfFirstItem = indexOfLastItem - itemsPerPage; const currentItems = laudos.slice(indexOfFirstItem, indexOfLastItem); const totalPages = Math.ceil(laudos.length / itemsPerPage); const paginate = (pageNumber) => setCurrentPage(pageNumber); return (
{loading ? (

Carregando...

) : ( <> {patient && ( Informações do Paciente

Nome: {patient.full_name}

Email: {patient.email}

Telefone: {patient.phone_mobile}

)} Laudos do Paciente Nº do Pedido Exame Diagnóstico Status Data de Criação Ações {currentItems.length > 0 ? ( currentItems.map((laudo) => ( {laudo.order_number} {laudo.exam} {laudo.diagnosis} {laudo.status} {new Date(laudo.created_at).toLocaleDateString()} )) ) : ( Nenhum laudo encontrado. )}
{totalPages > 1 && (
{Array.from({ length: totalPages }, (_, i) => ( ))}
)}
)}
); }