diff --git a/src/components/AgendarConsulta/FormNovaConsulta.jsx b/src/components/AgendarConsulta/FormNovaConsulta.jsx index 39575c2..2a00702 100644 --- a/src/components/AgendarConsulta/FormNovaConsulta.jsx +++ b/src/components/AgendarConsulta/FormNovaConsulta.jsx @@ -1,11 +1,12 @@ import InputMask from "react-input-mask"; import "./style/formagendamentos.css"; import { useState, useEffect, useCallback } from "react"; -import { GetPatientByCPF } from "../utils/Functions-Endpoints/Patient"; +import { GetPatientByCPF, GetAllPatients } from "../utils/Functions-Endpoints/Patient"; import { GetAllDoctors } from "../utils/Functions-Endpoints/Doctor"; import { useAuth } from "../utils/AuthProvider"; import API_KEY from "../utils/apiKeys"; + const FormNovaConsulta = ({ onCancel, onSave, setAgendamento, agendamento }) => { const { getAuthorizationHeader } = useAuth(); @@ -19,6 +20,10 @@ const FormNovaConsulta = ({ onCancel, onSave, setAgendamento, agendamento }) => const [horarioTermino, setHorarioTermino] = useState(''); const [horariosDisponiveis, sethorariosDisponiveis] = useState([]); + const [todosPacientes, setTodosPacientes] = useState([]) + const [pacientesFiltrados, setPacientesFiltrados] = useState([]) + const [isDropdownPacienteOpen, setIsDropdownPacienteOpen] = useState(false) + const [status, setStatus] = useState("confirmed") let authHeader = getAuthorizationHeader() @@ -70,6 +75,13 @@ const FormNovaConsulta = ({ onCancel, onSave, setAgendamento, agendamento }) => setTodosProfissionais(Medicos); }, [authHeader]); + const ChamarPacientes = useCallback (async () => { + const Pacientes = await GetAllPatients(authHeader); + setTodosPacientes(Pacientes) + console.log("pacientes") + console.log(Pacientes) + }, [authHeader]) + useEffect(() => { console.log("Horario","tessssste" ) @@ -82,6 +94,11 @@ const FormNovaConsulta = ({ onCancel, onSave, setAgendamento, agendamento }) => ChamarMedicos(); }, [ChamarMedicos]); + useEffect(() => { + + ChamarPacientes() + }, [ChamarPacientes]) + useEffect(() => { if (!agendamento.dataAtendimento || !agendamento.doctor_id) return; @@ -126,6 +143,25 @@ const FormNovaConsulta = ({ onCancel, onSave, setAgendamento, agendamento }) => setIsDropdownOpen(filtered.length > 0); }; + const handleSearchPaciente = (e) => { + const term = e.target.value; + handleChange(e); + + if (term.trim() === '') { + setPacientesFiltrados([]); + setIsDropdownPacienteOpen(false); + return; + } + + const filtered = todosPacientes.filter(p => + p.full_name.toLowerCase().includes(term.toLowerCase()) + ); + console.log(filtered.length > 0, "filtrados") + + setPacientesFiltrados(filtered); + setIsDropdownPacienteOpen(filtered.length > 0); + } + const handleSelectProfissional = (profissional) => { setAgendamento(prev => ({ ...prev, @@ -136,6 +172,18 @@ const FormNovaConsulta = ({ onCancel, onSave, setAgendamento, agendamento }) => setIsDropdownOpen(false); }; + const handleSelectPaciente = (paciente) => { + setAgendamento(prev => ({ + ...prev, + patient_id:paciente.id, + paciente_nome: paciente.full_name, + paciente_cpf: paciente.cpf + })) + setProfissionaisFiltrados([]) + setIsDropdownPacienteOpen(false) + + } + const formatarHora = (datetimeString) => { return datetimeString?.substring(11, 16) || ''; }; @@ -211,17 +259,7 @@ const FormNovaConsulta = ({ onCancel, onSave, setAgendamento, agendamento }) =>

Informações do paciente

-
- - -
- +
name="paciente_nome" placeholder="Insira o nome do paciente" required + onChange={(e) => handleSearchPaciente(e)} + value={agendamento?.paciente_nome || ""} + autoComplete="off" + /> +
+ {isDropdownPacienteOpen && pacientesFiltrados.length > 0 && ( +
+ {pacientesFiltrados.map((paciente) => ( +
handleSelectPaciente(paciente)} + > + {`${paciente.full_name.split(" ")[0]} ${paciente.full_name.split(" ")[1]} - ${paciente.cpf}`} +
+ ))} +
+ )} +
+ +
+ +
@@ -320,29 +384,6 @@ const FormNovaConsulta = ({ onCancel, onSave, setAgendamento, agendamento }) => -
- -
- - -

{sessoes}

- - -
-
-
); }; -export default FormNovaConsulta; \ No newline at end of file +export default FormNovaConsulta; diff --git a/src/components/AgendarConsulta/style/formagendamentos.css b/src/components/AgendarConsulta/style/formagendamentos.css index 76ac620..d3fc9ae 100644 --- a/src/components/AgendarConsulta/style/formagendamentos.css +++ b/src/components/AgendarConsulta/style/formagendamentos.css @@ -668,4 +668,25 @@ html[data-bs-theme="dark"] .modal-confirm-btn:hover { html[data-bs-theme="dark"] .horario-termino-readonly { background-color: #2d3748 !important; color: #a0aec0 !important; +} + +.campo-cpf{ + margin-left: 40px; +} + +input[name="paciente_cpf"]{ + width: 12rem; +} + +.dropdown-pacientes{ + position: absolute; + top: 100%; + left: 0; + + background-color: white; + border: 1px solid #ccc; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + z-index: 100; + max-height: 200px; + overflow-y: auto; } \ No newline at end of file diff --git a/src/components/utils/Functions-Endpoints/General.js b/src/components/utils/Functions-Endpoints/General.js index 17b2711..1235901 100644 --- a/src/components/utils/Functions-Endpoints/General.js +++ b/src/components/utils/Functions-Endpoints/General.js @@ -38,4 +38,10 @@ const UserInfos = async (access_token) => { } }; -export { UserInfos }; \ No newline at end of file +const SearchCep = async (cep) => { + fetch(`https://brasilapi.com.br/api/cep/v1/${cep}`) + .then(response => console.log(response)) +} + + +export { UserInfos,SearchCep }; diff --git a/src/perfis/Perfil_paciente/Perfilpaciente.jsx b/src/perfis/Perfil_paciente/Perfilpaciente.jsx index 45e9971..9155987 100644 --- a/src/perfis/Perfil_paciente/Perfilpaciente.jsx +++ b/src/perfis/Perfil_paciente/Perfilpaciente.jsx @@ -6,17 +6,9 @@ import LaudoManager from "../../pages/LaudoManager"; import ConsultaCadastroManager from "../../PagesPaciente/ConsultaCadastroManager"; import ConsultasPaciente from "../../PagesPaciente/ConsultasPaciente"; import ConsultaEditPage from "../../PagesPaciente/ConsultaEditPage"; - -// 1. IMPORTAÇÃO ADICIONADA -import BotaoVideoPaciente from "../../components/BotaoVideoPaciente"; - function PerfilPaciente({ onLogout }) { - - -const [DictInfo, setDictInfo] = useState({}) - - +const [dadosConsulta, setConsulta] = useState({}) return (
@@ -25,19 +17,14 @@ const [DictInfo, setDictInfo] = useState({})
} /> - } /> + } /> } /> - } /> + } /> } /> Página não encontrada} />
- - {/* 2. COMPONENTE ADICIONADO AQUI */} - -
- ); }