Começo da criação de mostrar as consultas separadas por dias
This commit is contained in:
parent
ffea77d911
commit
b949971a28
@ -16,15 +16,148 @@ import './style/FilaEspera.css';
|
|||||||
|
|
||||||
const Agendamento = () => {
|
const Agendamento = () => {
|
||||||
|
|
||||||
|
// Dados mocados para simular consultas com a API de Hugo
|
||||||
|
const Agendamentos = [
|
||||||
|
{
|
||||||
|
id: "9d5c7233-0437-4283-84cd-668714b1c6af",
|
||||||
|
order_number: "APT-2025-0001",
|
||||||
|
patient_id: "47902ada-7d04-480a-a759-bae8a211973a",
|
||||||
|
appointment_type: "presencial",
|
||||||
|
cancellation_reason: null,
|
||||||
|
cancelled_at: null,
|
||||||
|
checked_in_at: null,
|
||||||
|
chief_complaint: "Dor de cabeça há 3",
|
||||||
|
completed_at: null,
|
||||||
|
created_at: "2025-10-10T15:56:59.112231+00:00",
|
||||||
|
created_by: "87f2662c-9da7-45c0-9e05-521d9d92d105",
|
||||||
|
doctor_id: "16e93000-7239-4865-85f6-7f89af3ce5cd",
|
||||||
|
duration_minutes: 30,
|
||||||
|
insurance_provider: "Unimed",
|
||||||
|
notes: null,
|
||||||
|
patient_notes: "Prefiro horário pela manhã",
|
||||||
|
scheduled_at: "2025-10-10T15:56:58.937+00:00",
|
||||||
|
status: "requested",
|
||||||
|
updated_at: "2025-10-10T15:56:59.112231+00:00",
|
||||||
|
updated_by: null
|
||||||
|
},
|
||||||
|
// mesma data
|
||||||
|
{
|
||||||
|
id: "c8d87a3a-f221-4e88-a71e-947c03f3a9c2",
|
||||||
|
order_number: "APT-2025-0002",
|
||||||
|
patient_id: "4b102ada-7d04-480a-a759-bae8a211973b",
|
||||||
|
appointment_type: "presencial",
|
||||||
|
chief_complaint: "Retorno de consulta",
|
||||||
|
created_at: "2025-10-10T09:30:00.000+00:00",
|
||||||
|
scheduled_at: "2025-10-10T09:30:00.000+00:00",
|
||||||
|
doctor_id: "16e93000-7239-4865-85f6-7f89af3ce5cd",
|
||||||
|
duration_minutes: 45,
|
||||||
|
insurance_provider: "Amil",
|
||||||
|
status: "requested"
|
||||||
|
},
|
||||||
|
// dia anterior 1
|
||||||
|
{
|
||||||
|
id: "a3b77a12-1f11-45f8-912b-99372cd6a711",
|
||||||
|
order_number: "APT-2025-0003",
|
||||||
|
patient_id: "57902ada-7d04-480a-a759-bae8a211973a",
|
||||||
|
appointment_type: "teleconsulta",
|
||||||
|
chief_complaint: "Tosse persistente",
|
||||||
|
created_at: "2025-10-09T10:15:00.000+00:00",
|
||||||
|
scheduled_at: "2025-10-09T10:15:00.000+00:00",
|
||||||
|
doctor_id: "16e93000-7239-4865-85f6-7f89af3ce5cd",
|
||||||
|
duration_minutes: 20,
|
||||||
|
insurance_provider: "Bradesco Saúde",
|
||||||
|
status: "confirmed"
|
||||||
|
},
|
||||||
|
// dia anterior 2
|
||||||
|
{
|
||||||
|
id: "f77a42e1-b1a3-41af-8b4f-b92e8372bb20",
|
||||||
|
order_number: "APT-2025-0004",
|
||||||
|
patient_id: "5a902ada-7d04-480a-a759-bae8a211973a",
|
||||||
|
appointment_type: "presencial",
|
||||||
|
chief_complaint: "Check-up anual",
|
||||||
|
created_at: "2025-10-09T14:00:00.000+00:00",
|
||||||
|
scheduled_at: "2025-10-09T14:00:00.000+00:00",
|
||||||
|
doctor_id: "16e93000-7239-4865-85f6-7f89af3ce5cd",
|
||||||
|
duration_minutes: 60,
|
||||||
|
insurance_provider: "Unimed",
|
||||||
|
status: "requested"
|
||||||
|
},
|
||||||
|
// dia seguinte
|
||||||
|
{
|
||||||
|
id: "b832a7e3-7319-4c22-b17b-922a6d4a9287",
|
||||||
|
order_number: "APT-2025-0005",
|
||||||
|
patient_id: "6c902ada-7d04-480a-a759-bae8a211973a",
|
||||||
|
appointment_type: "presencial",
|
||||||
|
chief_complaint: "Dor lombar",
|
||||||
|
created_at: "2025-10-11T11:45:00.000+00:00",
|
||||||
|
scheduled_at: "2025-10-11T11:45:00.000+00:00",
|
||||||
|
doctor_id: "16e93000-7239-4865-85f6-7f89af3ce5cd",
|
||||||
|
duration_minutes: 30,
|
||||||
|
insurance_provider: "SulAmérica",
|
||||||
|
status: "requested"
|
||||||
|
},
|
||||||
|
// outro qualquer (para variedade)
|
||||||
|
{
|
||||||
|
id: "d112f76a-24a1-41de-8d03-9e8a20a73b54",
|
||||||
|
order_number: "APT-2025-0006",
|
||||||
|
patient_id: "78902ada-7d04-480a-a759-bae8a211973a",
|
||||||
|
appointment_type: "teleconsulta",
|
||||||
|
chief_complaint: "Acompanhamento pós-cirurgia",
|
||||||
|
created_at: "2025-10-10T18:00:00.000+00:00",
|
||||||
|
scheduled_at: "2025-10-10T18:00:00.000+00:00",
|
||||||
|
doctor_id: "16e93000-7239-4865-85f6-7f89af3ce5cd",
|
||||||
|
duration_minutes: 25,
|
||||||
|
insurance_provider: "Unimed",
|
||||||
|
status: "requested"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const [FiladeEspera, setFiladeEspera] = useState(false);
|
const [FiladeEspera, setFiladeEspera] = useState(false);
|
||||||
const [tabela, setTabela] = useState('diario');
|
const [tabela, setTabela] = useState('diario');
|
||||||
const [PageNovaConsulta, setPageConsulta] = useState(false);
|
const [PageNovaConsulta, setPageConsulta] = useState(false);
|
||||||
const [searchTerm, setSearchTerm] = useState('');
|
const [searchTerm, setSearchTerm] = useState('');
|
||||||
const [agendamentos, setAgendamentos] = useState()
|
const [agendamentos, setAgendamentos] = useState()
|
||||||
const {getAuthorizationHeader} = useAuth()
|
const {getAuthorizationHeader} = useAuth()
|
||||||
|
const [DictAgendamentosOrganizados, setAgendamentosOrganizados ] = useState({})
|
||||||
|
|
||||||
|
const [AgendamentoFiltrado, setAgendamentoFiltrado] = useState()
|
||||||
|
|
||||||
|
|
||||||
let authHeader = getAuthorizationHeader()
|
let authHeader = getAuthorizationHeader()
|
||||||
|
|
||||||
|
|
||||||
|
// id do doutor
|
||||||
|
// dias
|
||||||
|
|
||||||
|
const FiltrarAgendamentos = (listaTodosAgendamentos) => {
|
||||||
|
|
||||||
|
|
||||||
|
// cria um dicionário temporário
|
||||||
|
let DictAgendamentosOrganizados = {};
|
||||||
|
|
||||||
|
for (let i = 0; i < listaTodosAgendamentos.length; i++) {
|
||||||
|
const agendamento = listaTodosAgendamentos[i];
|
||||||
|
const DiaAgendamento = agendamento.scheduled_at.split("T")[0];
|
||||||
|
|
||||||
|
console.log(DictAgendamentosOrganizados)
|
||||||
|
|
||||||
|
if (DiaAgendamento in DictAgendamentosOrganizados) {
|
||||||
|
// já existe a data → adiciona na lista
|
||||||
|
DictAgendamentosOrganizados[DiaAgendamento].push(agendamento);
|
||||||
|
} else {
|
||||||
|
// não existe → cria nova key com uma lista
|
||||||
|
DictAgendamentosOrganizados[DiaAgendamento] = [agendamento];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// faz o set de uma vez só ✅
|
||||||
|
setAgendamentosOrganizados(DictAgendamentosOrganizados);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
const handleSave = (Dict) => {
|
const handleSave = (Dict) => {
|
||||||
let DataAtual = dayjs()
|
let DataAtual = dayjs()
|
||||||
var myHeaders = new Headers();
|
var myHeaders = new Headers();
|
||||||
@ -58,7 +191,7 @@ fetch("https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/appointments", requestOp
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Requisição inicial para mnostrar os agendamentos do banco de dados
|
// Requisição inicial para mostrar os agendamentos do banco de dados
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
var myHeaders = new Headers();
|
var myHeaders = new Headers();
|
||||||
myHeaders.append("Authorization", authHeader);
|
myHeaders.append("Authorization", authHeader);
|
||||||
@ -72,7 +205,7 @@ fetch("https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/appointments", requestOp
|
|||||||
|
|
||||||
fetch("https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/appointments?select&doctor_id&patient_id&status&scheduled_at&order&limit&offset", requestOptions)
|
fetch("https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/appointments?select&doctor_id&patient_id&status&scheduled_at&order&limit&offset", requestOptions)
|
||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
.then(result => setAgendamentos(result))
|
.then(result => {FiltrarAgendamentos(Agendamentos); console.log(Agendamentos)})
|
||||||
.catch(error => console.log('error', error));
|
.catch(error => console.log('error', error));
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user