O medico pode alterar as consultas

This commit is contained in:
joao_pedro 2025-11-04 07:37:53 -03:00
parent 0b7e863461
commit c502b73a95
7 changed files with 130 additions and 25 deletions

View File

@ -0,0 +1,89 @@
import React, { useState, useEffect } from 'react'
import FormNovaConsulta from '../components/AgendarConsulta/FormNovaConsulta'
import API_KEY from '../components/utils/apiKeys'
import { useAuth } from '../components/utils/AuthProvider'
import { UserInfos } from '../components/utils/Functions-Endpoints/General'
const DoctorAgendamentoEditPage = ({DictInfo}) => {
const {getAuthorizationHeader} = useAuth();
const [consultaToPut, setConsultaToPUT] = useState({})
const [idUsuario, setIdUsuario] = useState("")
const authHeader = getAuthorizationHeader()
useEffect(() => {
const fetchUserInfo = async () => {
const InfosUser = await UserInfos(authHeader)
console.log("Informações", InfosUser)
setIdUsuario(InfosUser.id)
}
setConsultaToPUT(DictInfo)
fetchUserInfo()
}, [])
const handleSave = (DictParaPatch) => {
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append('apikey', API_KEY)
myHeaders.append("authorization", authHeader)
console.log(DictParaPatch)
var raw = JSON.stringify({"patient_id": DictParaPatch.patient_id,
"doctor_id": DictParaPatch.doctor_id,
"duration_minutes": 30,
"chief_complaint": "Dor de cabeça há 3 ",
"created_by": idUsuario,
"scheduled_at": `${DictParaPatch.dataAtendimento}T${DictParaPatch.horarioInicio}:00.000Z`,
"appointment_type": DictParaPatch.tipo_consulta,
"patient_notes": "Prefiro horário pela manhã",
"insurance_provider": DictParaPatch.convenio,
"status": DictParaPatch.status,
"created_by": idUsuario
});
// console.log(DictParaPatch)
//console.log(id)
var requestOptions = {
method: 'PATCH',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch(`https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/appointments?id=eq.${consultaToPut.id}`, requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
}
return (
<div>
<FormNovaConsulta agendamento={consultaToPut} setAgendamento={setConsultaToPUT} onSave={handleSave}/>
</div>
)
}
export default DoctorAgendamentoEditPage

View File

@ -13,7 +13,7 @@ import { useAuth } from '../components/utils/AuthProvider.js';
// NOVO: Caminho de importação corrigido com base na sua estrutura de pastas
import AgendamentosMes from '../components/AgendarConsulta/DadosConsultasMock.js';
import { UserInfos } from '../components/utils/Functions-Endpoints/General.js';
import dayjs from 'dayjs';
import "../pages/style/Agendamento.css";
import '../pages/style/FilaEspera.css';
@ -35,11 +35,6 @@ const Agendamento = ({setDictInfo}) => {
const [DictAgendamentosOrganizados, setAgendamentosOrganizados ] = useState({})
const [showDeleteModal, setShowDeleteModal] = useState(false)
const [AgendamentoFiltrado, setAgendamentoFiltrado] = useState()
const [ListaDeMedicos, setListaDeMedicos] = useState([])
const [FiltredTodosMedicos, setFiltredTodosMedicos] = useState([])
const [searchTermDoctor, setSearchTermDoctor] = useState('');
const [coresConsultas, setCoresConsultas] = useState([])
@ -47,6 +42,8 @@ const Agendamento = ({setDictInfo}) => {
const [motivoCancelamento, setMotivoCancelamento] = useState("")
const [user, setUser] = useState({})
let authHeader = getAuthorizationHeader()
@ -125,8 +122,23 @@ const Agendamento = ({setDictInfo}) => {
setfilaEsperaData(ListaFilaDeEspera);
};
useEffect(() => {
console.log(user, "usuario")
}, [user])
// Requisição inicial para mostrar os agendamentos do banco de dados
useEffect(() => {
async function fetchDadosUser (){
let dado = await UserInfos(authHeader)
setUser(dado)
}
fetchDadosUser()
var myHeaders = new Headers();
myHeaders.append("Authorization", authHeader);
myHeaders.append("apikey", API_KEY)
@ -285,7 +297,7 @@ const deleteConsulta = (selectedPatientId) => {
</section>
</div>
) : (
<AgendamentoCadastroManager setPageConsulta={setPageConsulta} />
<AgendamentoCadastroManager setPageConsulta={setPageConsulta} Dict={{nome_medico:user?.profile?.full_name}}/>
)}
{showDeleteModal && (

View File

@ -7,7 +7,6 @@ import "./style/card-consulta.css"
const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, setDictInfo, setSelectedId, setShowConfirmModal, corModal, selectedID, coresConsultas, setListaConsultaID, listaConsultasID} ) => {
const navigate = useNavigate();
console.log(DadosConsulta)
const {getAuthorizationHeader} = useAuth()
const authHeader = getAuthorizationHeader()
@ -16,7 +15,9 @@ const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, se
const [decidirBotton, setDecidirBotton] = useState("")
console.log(DadosConsulta, "NOME DO PACIENTE"
)
const ids = useMemo(() => {
return {
@ -47,18 +48,10 @@ const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, se
BuscarMedicoEPaciente();
}, [ids, authHeader]);
let nameArrayPaciente = DadosConsulta.medico_nome?.split(' ')
let nameArrayMedico = DadosConsulta?.paciente_nome.split(' ')
let nameArrayPaciente = DadosConsulta?.medico_nome?.split(' ')
let nameArrayMedico = DadosConsulta?.paciente_nome?.split(' ')
let indice_cor = listaConsultasID.indexOf(DadosConsulta.id)
// console.log(coresConsultas)
//console.log(indice_cor,"indice no cores")
return (
<div className={`container-cardconsulta container-cardconsulta-${TabelaAgendamento} ` }>
@ -86,8 +79,8 @@ const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, se
<div className='actions-container'>
<button className="btn btn-sm btn-edit-custom"
onClick={() => {navigate(`2/edit`)
setDictInfo({...DadosConsulta,paciente_cpf:Paciente.cpf, paciente_nome:Paciente.full_name, nome_medico:Medico.full_name})
onClick={() => {navigate(`edit`)
setDictInfo({...DadosConsulta,paciente_cpf:"", paciente_nome:DadosConsulta?.paciente_nome, nome_medico:DadosConsulta?.medico_nome})
}}
>

View File

@ -12,6 +12,9 @@ const TabelaAgendamentoMes = ({ ListarDiasdoMes, agendamentos, setShowDeleteModa
const AnoAtual = dataHoje.year();
const mes = dataHoje.month() + 1;
console.log(agendamentos)
let ListaDiasDatas = ListarDiasdoMes(AnoAtual, mes);
const [AgendamentosSemanaisOrganizados, setAgendamentosSemanaisOrganizados] = useState({})
const [indice, setIndice] = useState("10")

View File

@ -12,7 +12,7 @@
{
"name": "Seus Agendamentos",
"icon": "calendar",
"url": "/medico/agendamentoMedico"
"url": "/medico/agendamento"
},
{

View File

@ -18,7 +18,8 @@ const AgendamentoCadastroManager = ({setPageConsulta, Dict}) => {
if(!Dict){setAgendamento({})}
else{
setAgendamento(...Dict)
console.log(Dict)
setAgendamento(Dict)
}
const ColherInfoUsuario =async () => {

View File

@ -1,6 +1,6 @@
import { Routes, Route } from "react-router-dom";
import Sidebar from "../../components/Sidebar";
import { useState } from "react";
import DoctorRelatorioManager from "../../PagesMedico/DoctorRelatorioManager";
import Prontuario from "../../PagesMedico/prontuario";
import Relatorio from "../../PagesMedico/relatorio";
@ -11,7 +11,13 @@ import FormNovoRelatorio from "../../PagesMedico/FormNovoRelatorio";
import EditPageRelatorio from "../../PagesMedico/EditPageRelatorio";
// ...existing code...
import DoctorAgendamentoEditPage from "../../PagesMedico/DoctorAgendamentoEditPage";
function PerfilMedico() {
const [dictInfo, setDictInfo] = useState({})
return (
<div id="app" className="active">
@ -23,7 +29,8 @@ function PerfilMedico() {
<Route path="/relatorios/:id/edit" element={<EditPageRelatorio />} />
<Route path="/prontuario" element={<Prontuario />} />
<Route path="/relatorios" element={<DoctorRelatorioManager />} />
<Route path="/agendamentoMedico" element={<DoctorAgendamentoManager />} />
<Route path="/agendamento" element={<DoctorAgendamentoManager setDictInfo={setDictInfo}/>} />
<Route path="/agendamento/edit" element={<DoctorAgendamentoEditPage DictInfo={dictInfo}/>} />
<Route path="/chat" element={<Chat />} />
</Routes>
</div>