"use client";
import { Button } from "@/components/ui/button";
import { FileDown, BarChart2, Users, DollarSign, TrendingUp, UserCheck, CalendarCheck, ThumbsUp, User, Briefcase } from "lucide-react";
import jsPDF from "jspdf";
import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, LineChart, Line, PieChart, Pie, Cell } from "recharts";
// Dados fictícios para demonstração
const metricas = [
{ label: "Atendimentos", value: 1240, icon: },
{ label: "Absenteísmo", value: "7,2%", icon: },
{ label: "Satisfação", value: "92%", icon: },
{ label: "Faturamento (Mês)", value: "R$ 45.000", icon: },
{ label: "No-show", value: "5,1%", icon: },
];
const consultasPorPeriodo = [
{ periodo: "Jan", consultas: 210 },
{ periodo: "Fev", consultas: 180 },
{ periodo: "Mar", consultas: 250 },
{ periodo: "Abr", consultas: 230 },
{ periodo: "Mai", consultas: 270 },
{ periodo: "Jun", consultas: 220 },
];
const faturamentoMensal = [
{ mes: "Jan", valor: 35000 },
{ mes: "Fev", valor: 29000 },
{ mes: "Mar", valor: 42000 },
{ mes: "Abr", valor: 38000 },
{ mes: "Mai", valor: 45000 },
{ mes: "Jun", valor: 41000 },
];
const taxaNoShow = [
{ mes: "Jan", noShow: 6.2 },
{ mes: "Fev", noShow: 5.8 },
{ mes: "Mar", noShow: 4.9 },
{ mes: "Abr", noShow: 5.5 },
{ mes: "Mai", noShow: 5.1 },
{ mes: "Jun", noShow: 4.7 },
];
const pacientesMaisAtendidos = [
{ nome: "Ana Souza", consultas: 18 },
{ nome: "Bruno Lima", consultas: 15 },
{ nome: "Carla Menezes", consultas: 13 },
{ nome: "Diego Alves", consultas: 12 },
{ nome: "Fernanda Dias", consultas: 11 },
];
const medicosMaisProdutivos = [
{ nome: "Dr. Carlos Andrade", consultas: 62 },
{ nome: "Dra. Paula Silva", consultas: 58 },
{ nome: "Dr. João Pedro", consultas: 54 },
{ nome: "Dra. Marina Costa", consultas: 51 },
];
const convenios = [
{ nome: "Unimed", valor: 18000 },
{ nome: "Bradesco", valor: 12000 },
{ nome: "SulAmérica", valor: 9000 },
{ nome: "Particular", valor: 15000 },
];
const performancePorMedico = [
{ nome: "Dr. Carlos Andrade", consultas: 62, absenteismo: 4.8 },
{ nome: "Dra. Paula Silva", consultas: 58, absenteismo: 6.1 },
{ nome: "Dr. João Pedro", consultas: 54, absenteismo: 7.5 },
{ nome: "Dra. Marina Costa", consultas: 51, absenteismo: 5.2 },
];
const COLORS = ["#10b981", "#6366f1", "#f59e42", "#ef4444"];
function exportPDF(title: string, content: string) {
const doc = new jsPDF();
doc.text(title, 10, 10);
doc.text(content, 10, 20);
doc.save(`${title.toLowerCase().replace(/ /g, '-')}.pdf`);
}
export default function RelatoriosPage() {
return (
Dashboard Executivo de Relatórios
{/* Métricas principais */}
{metricas.map((m) => (
{m.icon}
{m.value}
{m.label}
))}
{/* Gráficos e Relatórios */}
{/* Consultas realizadas por período */}
Consultas por Período
{/* Faturamento mensal/anual */}
Faturamento Mensal
{/* Taxa de no-show */}
Taxa de No-show
{/* Indicadores de satisfação */}
Satisfação dos Pacientes
92%
Índice de satisfação geral
{/* Pacientes mais atendidos */}
Pacientes Mais Atendidos
| Paciente |
Consultas |
{pacientesMaisAtendidos.map((p) => (
| {p.nome} |
{p.consultas} |
))}
{/* Médicos mais produtivos */}
Médicos Mais Produtivos
| Médico |
Consultas |
{medicosMaisProdutivos.map((m) => (
| {m.nome} |
{m.consultas} |
))}
{/* Análise de convênios */}
Análise de Convênios
{convenios.map((entry, index) => (
|
))}
{/* Performance por médico */}
Performance por Médico
| Médico |
Consultas |
Absenteísmo (%) |
{performancePorMedico.map((m) => (
| {m.nome} |
{m.consultas} |
{m.absenteismo} |
))}
);
}