forked from RiseUP/riseup_squad_03
new file: src/App.css new file: src/App.jsx new file: src/assets/figma/login-clinic.png new file: src/assets/hero.png new file: src/assets/react.svg new file: src/assets/vite.svg new file: src/components/AppShell.jsx new file: src/components/Brand.jsx new file: src/components/ui.jsx new file: src/data/mockData.js new file: src/index.css new file: src/main.jsx new file: src/pages/AgendaPage.jsx new file: src/pages/AnalyticsPage.jsx new file: src/pages/AuthPages.jsx new file: src/pages/HomePage.jsx new file: src/pages/MedicalRecordsPage.jsx new file: src/pages/MessagesPage.jsx new file: src/pages/NotFoundPage.jsx new file: src/pages/PatientsPage.jsx new file: src/pages/ProfilePage.jsx new file: src/pages/ReportsPage.jsx new file: src/pages/SettingsPage.jsx new file: src/pages/TeamPage.jsx new file: src/pages/VisitsPage.jsx new file: src/repositories/analyticsRepository.js new file: src/repositories/appointmentRepository.js new file: src/repositories/communicationRepository.js new file: src/repositories/homeRepository.js new file: src/repositories/medicalRecordRepository.js new file: src/repositories/patientRepository.js new file: src/repositories/professionalRepository.js new file: src/repositories/profileRepository.js new file: src/repositories/reportRepository.js new file: src/repositories/settingsRepository.js new file: src/repositories/visitRepository.js new file: src/services/analyticsService.js new file: src/services/appointmentService.js new file: src/services/communicationService.js new file: src/services/homeService.js new file: src/services/medicalRecordService.js new file: src/services/patientService.js new file: src/services/professionalService.js new file: src/services/profileService.js new file: src/services/reportService.js new file: src/services/settingsService.js
329 lines
7.7 KiB
JavaScript
329 lines
7.7 KiB
JavaScript
export const todayLabel = '07 abr 2026'
|
|
|
|
export const dashboardMetrics = [
|
|
{
|
|
label: 'Consultas hoje',
|
|
value: '18',
|
|
helper: '6 por teleconsulta',
|
|
tone: 'blue',
|
|
},
|
|
{
|
|
label: 'Pacientes em acompanhamento',
|
|
value: '124',
|
|
helper: '12 com prioridade alta',
|
|
tone: 'green',
|
|
},
|
|
{
|
|
label: 'Mensagens novas',
|
|
value: '9',
|
|
helper: '4 aguardando resposta',
|
|
tone: 'amber',
|
|
},
|
|
{
|
|
label: 'Documentos pendentes',
|
|
value: '7',
|
|
helper: 'Exames e receitas',
|
|
tone: 'slate',
|
|
},
|
|
]
|
|
|
|
export const patients = [
|
|
{
|
|
id: 'ana-souza',
|
|
name: 'Ana Souza',
|
|
age: 42,
|
|
document: 'CPF 284.019.430-10',
|
|
plan: 'Unimed',
|
|
condition: 'Diabetes tipo 2',
|
|
status: 'Acompanhamento',
|
|
risk: 'Moderado',
|
|
phone: '(81) 98812-2301',
|
|
email: 'ana.souza@email.com',
|
|
address: 'Rua das Flores, 220',
|
|
lastVisit: '31 mar 2026',
|
|
nextVisit: '08 abr 2026, 10:00',
|
|
team: ['Dra. Marina Lopes', 'Enf. Paulo Reis'],
|
|
notes: [
|
|
'Paciente relatou melhora na rotina alimentar.',
|
|
'Solicitar retorno com glicemia de jejum atualizada.',
|
|
],
|
|
exams: ['Hemoglobina glicada', 'Glicemia de jejum', 'Perfil lipidico'],
|
|
},
|
|
{
|
|
id: 'bruno-lima',
|
|
name: 'Bruno Lima',
|
|
age: 35,
|
|
document: 'CPF 031.762.880-04',
|
|
plan: 'SulAmerica',
|
|
condition: 'Hipertensao',
|
|
status: 'Retorno',
|
|
risk: 'Alto',
|
|
phone: '(81) 99744-9011',
|
|
email: 'bruno.lima@email.com',
|
|
address: 'Av. Norte, 1180',
|
|
lastVisit: '02 abr 2026',
|
|
nextVisit: '07 abr 2026, 14:30',
|
|
team: ['Dr. Rafael Nunes', 'Nutri. Clara Meireles'],
|
|
notes: [
|
|
'Pressao ainda oscilando no periodo da tarde.',
|
|
'Conferir adesao ao medicamento e orientar diario de pressao.',
|
|
],
|
|
exams: ['MAPA 24h', 'Eletrocardiograma', 'Creatinina'],
|
|
},
|
|
{
|
|
id: 'carla-mendes',
|
|
name: 'Carla Mendes',
|
|
age: 29,
|
|
document: 'CPF 740.991.112-80',
|
|
plan: 'Particular',
|
|
condition: 'Pre-natal',
|
|
status: 'Primeira consulta',
|
|
risk: 'Baixo',
|
|
phone: '(81) 98120-4477',
|
|
email: 'carla.mendes@email.com',
|
|
address: 'Rua Aurora, 90',
|
|
lastVisit: 'Sem historico',
|
|
nextVisit: '09 abr 2026, 08:30',
|
|
team: ['Dra. Marina Lopes'],
|
|
notes: [
|
|
'Primeiro atendimento cadastrado pela recepcao.',
|
|
'Confirmar exames iniciais e historico familiar.',
|
|
],
|
|
exams: ['Beta HCG', 'Ultrassom obstetrico', 'Hemograma'],
|
|
},
|
|
{
|
|
id: 'diego-alves',
|
|
name: 'Diego Alves',
|
|
age: 51,
|
|
document: 'CPF 607.113.904-18',
|
|
plan: 'Bradesco Saude',
|
|
condition: 'Pos-operatorio',
|
|
status: 'Monitoramento',
|
|
risk: 'Moderado',
|
|
phone: '(81) 98772-5330',
|
|
email: 'diego.alves@email.com',
|
|
address: 'Rua Imperial, 410',
|
|
lastVisit: '05 abr 2026',
|
|
nextVisit: '10 abr 2026, 16:00',
|
|
team: ['Dr. Rafael Nunes', 'Fisio. Jonas Pedro'],
|
|
notes: [
|
|
'Evolucao dentro do esperado no curativo.',
|
|
'Manter avaliacao de dor e mobilidade nos proximos contatos.',
|
|
],
|
|
exams: ['Raio X controle', 'Hemograma', 'PCR'],
|
|
},
|
|
]
|
|
|
|
export const appointments = [
|
|
{
|
|
id: 'apt-001',
|
|
date: '2026-04-07',
|
|
time: '08:00',
|
|
patient: 'Carla Mendes',
|
|
patientId: 'carla-mendes',
|
|
professional: 'Dra. Marina Lopes',
|
|
type: 'Consulta inicial',
|
|
room: 'Sala 01',
|
|
status: 'Confirmada',
|
|
mode: 'Presencial',
|
|
},
|
|
{
|
|
id: 'apt-002',
|
|
date: '2026-04-07',
|
|
time: '09:30',
|
|
patient: 'Ana Souza',
|
|
patientId: 'ana-souza',
|
|
professional: 'Dra. Marina Lopes',
|
|
type: 'Retorno',
|
|
room: 'Sala virtual 1',
|
|
status: 'Em triagem',
|
|
mode: 'Teleconsulta',
|
|
},
|
|
{
|
|
id: 'apt-003',
|
|
date: '2026-04-07',
|
|
time: '11:00',
|
|
patient: 'Diego Alves',
|
|
patientId: 'diego-alves',
|
|
professional: 'Dr. Rafael Nunes',
|
|
type: 'Acompanhamento',
|
|
room: 'Sala 03',
|
|
status: 'Aguardando',
|
|
mode: 'Presencial',
|
|
},
|
|
{
|
|
id: 'apt-004',
|
|
date: '2026-04-07',
|
|
time: '14:30',
|
|
patient: 'Bruno Lima',
|
|
patientId: 'bruno-lima',
|
|
professional: 'Dr. Rafael Nunes',
|
|
type: 'Retorno',
|
|
room: 'Sala virtual 2',
|
|
status: 'Confirmada',
|
|
mode: 'Teleconsulta',
|
|
},
|
|
]
|
|
|
|
export const careQueue = [
|
|
{
|
|
id: 'queue-001',
|
|
patient: 'Ana Souza',
|
|
patientId: 'ana-souza',
|
|
status: 'Em triagem',
|
|
priority: 'Moderada',
|
|
wait: '12 min',
|
|
reason: 'Controle glicemico',
|
|
},
|
|
{
|
|
id: 'queue-002',
|
|
patient: 'Bruno Lima',
|
|
patientId: 'bruno-lima',
|
|
status: 'Aguardando medico',
|
|
priority: 'Alta',
|
|
wait: '25 min',
|
|
reason: 'Pressao elevada',
|
|
},
|
|
{
|
|
id: 'queue-003',
|
|
patient: 'Carla Mendes',
|
|
patientId: 'carla-mendes',
|
|
status: 'Finalizada',
|
|
priority: 'Baixa',
|
|
wait: '0 min',
|
|
reason: 'Consulta inicial',
|
|
},
|
|
]
|
|
|
|
export const conversations = [
|
|
{
|
|
id: 'conv-ana',
|
|
patient: 'Ana Souza',
|
|
patientId: 'ana-souza',
|
|
subject: 'Duvida sobre exame',
|
|
unread: 2,
|
|
lastMessage: 'Enviei o resultado pelo portal.',
|
|
status: 'Aguardando equipe',
|
|
messages: [
|
|
{
|
|
from: 'patient',
|
|
body: 'Bom dia, consegui enviar a hemoglobina glicada pelo app?',
|
|
time: '08:12',
|
|
},
|
|
{
|
|
from: 'team',
|
|
body: 'Sim, Ana. Recebemos o arquivo e a Dra. Marina vai revisar antes da consulta.',
|
|
time: '08:20',
|
|
},
|
|
{
|
|
from: 'patient',
|
|
body: 'Obrigada. Enviei o resultado pelo portal.',
|
|
time: '08:24',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 'conv-bruno',
|
|
patient: 'Bruno Lima',
|
|
patientId: 'bruno-lima',
|
|
subject: 'Pressao no fim do dia',
|
|
unread: 1,
|
|
lastMessage: 'Hoje marcou 15 por 9 novamente.',
|
|
status: 'Prioridade alta',
|
|
messages: [
|
|
{
|
|
from: 'patient',
|
|
body: 'Hoje marcou 15 por 9 novamente.',
|
|
time: '13:05',
|
|
},
|
|
{
|
|
from: 'team',
|
|
body: 'Bruno, vamos acompanhar no retorno de hoje. Traga as medidas da semana.',
|
|
time: '13:12',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 'conv-carla',
|
|
patient: 'Carla Mendes',
|
|
patientId: 'carla-mendes',
|
|
subject: 'Confirmacao de horario',
|
|
unread: 0,
|
|
lastMessage: 'Confirmado para quinta as 08:30.',
|
|
status: 'Respondida',
|
|
messages: [
|
|
{
|
|
from: 'team',
|
|
body: 'Carla, sua consulta ficou confirmada para quinta as 08:30.',
|
|
time: '17:42',
|
|
},
|
|
],
|
|
},
|
|
]
|
|
|
|
export const professionals = [
|
|
{
|
|
id: 'marina-lopes',
|
|
name: 'Dra. Marina Lopes',
|
|
role: 'Clinica geral',
|
|
schedule: 'Seg a sex, 08:00-16:00',
|
|
status: 'Disponivel',
|
|
nextSlot: 'Hoje, 15:30',
|
|
patients: 48,
|
|
},
|
|
{
|
|
id: 'rafael-nunes',
|
|
name: 'Dr. Rafael Nunes',
|
|
role: 'Cardiologista',
|
|
schedule: 'Ter e qui, 09:00-18:00',
|
|
status: 'Em atendimento',
|
|
nextSlot: 'Hoje, 17:00',
|
|
patients: 36,
|
|
},
|
|
{
|
|
id: 'clara-meireles',
|
|
name: 'Nutri. Clara Meireles',
|
|
role: 'Nutricionista',
|
|
schedule: 'Seg, qua e sex, 10:00-15:00',
|
|
status: 'Disponivel',
|
|
nextSlot: 'Amanha, 10:30',
|
|
patients: 21,
|
|
},
|
|
{
|
|
id: 'paulo-reis',
|
|
name: 'Enf. Paulo Reis',
|
|
role: 'Enfermagem',
|
|
schedule: 'Seg a sex, 07:00-13:00',
|
|
status: 'Triagem',
|
|
nextSlot: 'Hoje, 12:10',
|
|
patients: 64,
|
|
},
|
|
]
|
|
|
|
export const activityFeed = [
|
|
{
|
|
id: 'feed-001',
|
|
title: 'Receita enviada',
|
|
detail: 'Dra. Marina enviou orientacao para Ana Souza.',
|
|
time: '09:10',
|
|
},
|
|
{
|
|
id: 'feed-002',
|
|
title: 'Triagem aberta',
|
|
detail: 'Bruno Lima entrou na fila de atendimento.',
|
|
time: '09:45',
|
|
},
|
|
{
|
|
id: 'feed-003',
|
|
title: 'Documento pendente',
|
|
detail: 'Exame de Diego Alves aguarda revisao.',
|
|
time: '10:05',
|
|
},
|
|
]
|
|
|
|
export const reminders = [
|
|
'Confirmar retornos de alto risco ate 16:00.',
|
|
'Revisar documentos enviados pelos pacientes.',
|
|
'Atualizar fila de teleconsultas antes do plantao.',
|
|
]
|