develop #83

Merged
M-Gabrielly merged 426 commits from develop into main 2025-12-04 04:13:15 +00:00
Showing only changes of commit 15e90a4ea9 - Show all commits

View File

@ -1294,14 +1294,56 @@ const ProfissionalPage = () => {
// helper to load laudos for the patients assigned to the logged-in user // helper to load laudos for the patients assigned to the logged-in user
const loadAssignedLaudos = async () => { const loadAssignedLaudos = async () => {
try { try {
// Primeiro, tenta carregar laudos criados pelo próprio médico
console.log('[LaudoManager] Tentando carregar laudos criados pelo médico:', user?.id);
try {
const reportsMod = await import('@/lib/reports');
const allMyReports = await loadReports();
if (Array.isArray(allMyReports) && allMyReports.length > 0) {
// Filtrar apenas os criados por mim
const createdByMe = allMyReports.filter((r: any) => {
const creator = ((r.created_by ?? r.executante ?? r.createdBy) || '').toString();
return user?.id && creator && creator === user.id;
});
if (createdByMe.length > 0) {
console.log('[LaudoManager] Encontrados', createdByMe.length, 'laudos criados pelo médico');
const enriched = await (async (reportsArr: any[]) => {
if (!reportsArr || !reportsArr.length) return reportsArr;
const pids = reportsArr.map(r => String(getReportPatientId(r))).filter(Boolean);
if (!pids.length) return reportsArr;
try {
const patients = await buscarPacientesPorIds(pids);
const map = new Map((patients || []).map((p: any) => [String(p.id), p]));
return reportsArr.map((r: any) => {
const pid = String(getReportPatientId(r));
return { ...r, paciente: r.paciente ?? map.get(pid) ?? r.paciente } as any;
});
} catch (e) {
console.warn('[LaudoManager] Erro ao enriquecer pacientes:', e);
return reportsArr;
}
})(createdByMe);
setLaudos(enriched || []);
return;
}
}
} catch (e) {
console.warn('[LaudoManager] erro ao carregar laudos criados pelo médico:', e);
}
// Fallback: carregar laudos de pacientes atribuídos
const assignments = await import('@/lib/assignment').then(m => m.listAssignmentsForUser(user?.id || '')); const assignments = await import('@/lib/assignment').then(m => m.listAssignmentsForUser(user?.id || ''));
const patientIds = Array.isArray(assignments) ? assignments.map(a => String(a.patient_id)).filter(Boolean) : []; const patientIds = Array.isArray(assignments) ? assignments.map(a => String(a.patient_id)).filter(Boolean) : [];
if (patientIds.length === 0) { if (patientIds.length === 0) {
console.log('[LaudoManager] Nenhum paciente atribuído, laudos vazios');
setLaudos([]); setLaudos([]);
return; return;
} }
console.log('[LaudoManager] Carregando laudos de', patientIds.length, 'pacientes atribuídos');
try { try {
const reportsMod = await import('@/lib/reports'); const reportsMod = await import('@/lib/reports');
if (typeof reportsMod.listarRelatoriosPorPacientes === 'function') { if (typeof reportsMod.listarRelatoriosPorPacientes === 'function') {
@ -1393,7 +1435,7 @@ const ProfissionalPage = () => {
return; return;
} }
} catch (e) { } catch (e) {
console.warn('[LaudoManager] erro ao carregar laudos para pacientes atribuídos:', e); console.warn('[LaudoManager] erro ao carregar laudos:', e);
setLaudos(reports || []); setLaudos(reports || []);
} }
}; };