{"id":1473,"date":"2025-11-07T06:41:37","date_gmt":"2025-11-07T09:41:37","guid":{"rendered":"https:\/\/sbmicrobiologia.org.br\/33cbm2025\/?page_id=1473"},"modified":"2026-04-14T10:17:08","modified_gmt":"2026-04-14T13:17:08","slug":"anais","status":"publish","type":"page","link":"https:\/\/sbmicrobiologia.org.br\/33cbm2025\/anais\/","title":{"rendered":"ISSN: 2176-414X &#8211; LIVRO ELETR\u00d4NICO &#8211; Anais do 33\u00ba Congresso Brasileiro de Microbiologia 2025"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1473\" class=\"elementor elementor-1473\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e48b4f8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e48b4f8\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-674db6d\" data-id=\"674db6d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-32742fa elementor-widget elementor-widget-heading\" data-id=\"32742fa\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.21.0 - 18-04-2024 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h2 class=\"elementor-heading-title elementor-size-default\">ISSN: 2176-414X - LIVRO ELETR\u00d4NICO - Anais do 33\u00ba Congresso Brasileiro de Microbiologia 2025\n<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3ed3440 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3ed3440\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b2294cc\" data-id=\"b2294cc\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-949d2a2 elementor-widget elementor-widget-html\" data-id=\"949d2a2\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\n<html lang=\"pt-br\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Trabalhos - DataTables (Select2 com Busca e PDF)<\/title>\n    \n    <!-- Depend\u00eancias do Bootstrap para estilo -->\n    <link rel=\"stylesheet\" href=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.5.2\/css\/bootstrap.min.css\">\n    \n    <!-- Depend\u00eancias do DataTables (Substitu\u00eddo CDN oficial por JSDelivr) -->\n    <link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/datatables.net-bs4@1.10.22\/css\/dataTables.bootstrap4.min.css\">\n    \n    <!-- Depend\u00eancias do Select2 (CSS) -->\n    <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/select2@4.1.0-rc.0\/dist\/css\/select2.min.css\" rel=\"stylesheet\" \/>\n    <!-- Sobrescreve o estilo do Select2 para o Bootstrap 4 -->\n    <link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/@ttskch\/select2-bootstrap4-theme@1.5.2\/dist\/select2-bootstrap4.min.css\">\n\n    <!-- \u00cdcones (Font Awesome 5, necess\u00e1rio para o \u00edcone de PDF) -->\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/5.15.4\/css\/all.min.css\">\n\n    <style>\n        \/* Estilos e \u00cdcones *\/\n        .details-control {\n            background: none !important;\n            cursor: pointer;\n            margin-right: 8px;\n            display: inline-block;\n            width: 16px;\n            height: 16px;\n            text-align: center;\n            line-height: 14px;\n            font-size: 14px;\n            font-weight: bold;\n            color: #007bff;\n            border: 1px solid #007bff;\n            border-radius: 3px;\n            vertical-align: middle;\n            transition: all 0.1s ease;\n            user-select: none;\n        }\n        \n        .details-control::before {\n            content: '+';\n        }\n        \n        tr.shown .details-control::before {\n            content: '\u2212';\n        }\n\n        .resumo-detail {\n            background-color: #f9f9f9;\n            padding: 15px;\n            border-left: 5px solid #007bff;\n            margin: 5px 0;\n            white-space: pre-wrap;\n        }\n        .spinner-border {\n            width: 3rem;\n            height: 3rem;\n        }\n        .table-responsive {\n            overflow-x: auto;\n        }\n        \/* Ajuste para garantir que o Select2 n\u00e3o seja cortado *\/\n        .select2-container {\n            width: 100% !important;\n        }\n        \/* Estilo para a coluna PDF *\/\n        .pdf-link {\n            text-align: center;\n        }\n    <\/style>\n<\/head>\n<body>\n\n<div class=\"container-fluid py-4\">\n\n    <!-- \u00c1rea de Filtros Personalizados -->\n    <div class=\"row mb-4\">\n        <!-- Filtro 1: N\u00ba do Trabalho (Busca simples por digita\u00e7\u00e3o) -->\n        <div class=\"col-md-4\">\n            <div class=\"form-group\">\n                <label for=\"filtroTrabalho\">Buscar N\u00ba do Trabalho (ID):<\/label>\n                <input type=\"text\" id=\"filtroTrabalho\" class=\"form-control\" placeholder=\"Digite o n\u00ba do trabalho\">\n            <\/div>\n        <\/div>\n        \n        <!-- Filtro 2: Institui\u00e7\u00e3o (SELECT com busca via Select2) -->\n        <div class=\"col-md-4\">\n            <div class=\"form-group\">\n                <label for=\"filtroInstituicao\">Buscar Institui\u00e7\u00e3o:<\/label>\n                <select id=\"filtroInstituicao\" class=\"form-control\" data-column=\"3\">\n                    <option value=\"\">Todas as Institui\u00e7\u00f5es<\/option>\n                <\/select>\n            <\/div>\n        <\/div>\n        \n        <!-- Filtro 3: Categoria\/\u00c1rea (SELECT com busca via Select2) -->\n        <div class=\"col-md-4\">\n            <div class=\"form-group\">\n                <label for=\"filtroCategoria\">Buscar \u00c1rea:<\/label>\n                <select id=\"filtroCategoria\" class=\"form-control\" data-column=\"4\">\n                    <option value=\"\">Todas as \u00c1reas<\/option>\n                <\/select>\n            <\/div>\n        <\/div>\n    <\/div>\n    \n    <!-- Tabela DataTables -->\n    <div class=\"table-responsive\">\n        <table id=\"tabelaTrabalhos\" class=\"table table-striped table-bordered\" style=\"width:100%\">\n            <thead>\n                <tr>\n                    <th>N\u00ba do Trabalho<\/th>\n                    <th>T\u00edtulo<\/th>\n                    <th>Autores<\/th>\n                    <th>Institui\u00e7\u00e3o<\/th>\n                    <th>\u00c1rea<\/th>\n                    <th class=\"pdf-link\">PDF<\/th>\n                    <th>Resumo<\/th>\n                <\/tr>\n            <\/thead>\n            <tbody>\n            <\/tbody>\n        <\/table>\n    <\/div>\n    <div id=\"loading-message\" class=\"text-center text-primary mt-5\">\n        <div class=\"spinner-border\" role=\"status\">\n            <span class=\"sr-only\">Carregando dados...<\/span>\n        <\/div>\n        <p>Carregando dados do CSV...<\/p>\n    <\/div>\n\n<\/div>\n\n<!-- Scripts -->\n<script src=\"https:\/\/code.jquery.com\/jquery-3.5.1.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/papaparse@5.3.0\/papaparse.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/popper.js@1.16.1\/dist\/umd\/popper.min.js\"><\/script>\n<script src=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.5.2\/js\/bootstrap.min.js\"><\/script>\n<!-- Scripts do Select2 (DEVE VIR DEPOIS DO JQUERY) -->\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/select2@4.1.0-rc.0\/dist\/js\/select2.min.js\"><\/script>\n\n<!-- Scripts do DataTables (Substitu\u00eddo CDN oficial por JSDelivr) -->\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/datatables.net@1.10.22\/js\/jquery.dataTables.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/datatables.net-bs4@1.10.22\/js\/dataTables.bootstrap4.min.js\"><\/script>\n\n<script>\n   $(document).ready(function() {\n        \/\/ 1. BYPASS DE CACHE: O timestamp no final for\u00e7a o navegador a baixar a vers\u00e3o mais nova do CSV\n        const fileUrl = 'https:\/\/sbmicrobiologia.org.br\/33cbm2025\/wp-content\/uploads\/trabalhos8.csv?nocache=' + new Date().getTime();\n        \n        const delimiter = ';';\n        let table;\n\n        const $loading = $('#loading-message');\n        $loading.show();\n\n        Papa.parse(fileUrl, {\n            download: true,\n            header: true,\n            delimiter: delimiter,\n            skipEmptyLines: true,\n            quoteChar: '\"', \/\/ Garante que a leitura de aspas seja rigorosa\n            complete: function(results) {\n                $loading.hide();\n\n                \/\/ 2. DEBUG DE ERROS: Se a linha 2399 quebrar, o erro vai aparecer no Console (F12)\n                if (results.errors && results.errors.length > 0) {\n                    console.warn(\"\u26a0\ufe0f PapaParse encontrou problemas em algumas linhas do CSV:\", results.errors);\n                }\n\n                const rawData = results.data;\n                \n                if (rawData.length === 0 || !rawData[0]['TrabalhoID']) {\n                    $('#tabelaTrabalhos').before('<div class=\"alert alert-danger\">\u26a0\ufe0f **ERRO DE CARREGAMENTO:** N\u00e3o foi poss\u00edvel carregar o arquivo CSV ou ele est\u00e1 vazio.<\/div>');\n                    return;\n                }\n\n                const dataset = [];\n                const instituicoes = new Set();\n                const categorias = new Set();\n\n                const colNames = {\n                    id: 'TrabalhoID',\n                    titulo: 'Titulo',\n                    autores: 'Autores - corrigido',\n                    instituicao: 'Instituicao',\n                    categoria: 'Categoria',\n                    resumo: 'Resumo'\n                };\n                \n                rawData.forEach(item => {\n                    const instituicao = item[colNames.instituicao] ? item[colNames.instituicao].trim() : '';\n                    const categoria = item[colNames.categoria] ? item[colNames.categoria].trim() : '';\n                    \n                    const trabalhoId = item[colNames.id] ? item[colNames.id].trim() : '';\n                    \n                    const rowData = [\n                        trabalhoId, \/\/ 0: N\u00ba do Trabalho\n                        item[colNames.titulo] || '', \/\/ 1: T\u00edtulo\n                        item[colNames.autores] || '', \/\/ 2: Autores\n                        instituicao, \/\/ 3: Institui\u00e7\u00e3o\n                        categoria, \/\/ 4: Categoria\/\u00c1rea\n                        trabalhoId, \/\/ 5: ID duplicado (Para a coluna PDF)\n                        item[colNames.resumo] || '' \/\/ 6: Resumo (Oculto)\n                    ];\n                    \n                    if (trabalhoId) {\n                        dataset.push(rowData);\n                        if (instituicao) instituicoes.add(instituicao);\n                        if (categoria) categorias.add(categoria);\n                    }\n                });\n                \n                \/\/ Popula os Selects\n                instituicoes.forEach(inst => {\n                    $('#filtroInstituicao').append(new Option(inst, inst));\n                });\n                categorias.forEach(cat => {\n                    $('#filtroCategoria').append(new Option(cat, cat));\n                });\n\n                \/\/ Inicializa o Select2\n                $('#filtroInstituicao').select2({ theme: 'bootstrap4' });\n                $('#filtroCategoria').select2({ theme: 'bootstrap4' });\n\n                \/\/ Inicializar o DataTables\n                table = $('#tabelaTrabalhos').DataTable({\n                    data: dataset,\n                    columns: [\n                        { data: 0 }, \n                        { \n                            data: 1, \n                            render: function (data, type, row, meta) {\n                                if (type === 'display') {\n                                    return '<span class=\"details-control\"><\/span>' + data;\n                                }\n                                return data;\n                            }\n                        }, \n                        { data: 2, responsivePriority: 3 }, \n                        { data: 3, responsivePriority: 2 }, \n                        { data: 4, responsivePriority: 4 }, \n                        { \n                            data: 5, \n                            orderable: false, \n                            searchable: false,\n                            className: 'pdf-link',\n                            responsivePriority: 1,\n                            render: function (data, type, row) {\n                                if (type === 'display' && data) {\n                                    const baseUrl = 'https:\/\/sbmicrobiologia.org.br\/33cbm2025\/wp-content\/uploads\/emitir-resumo.php?id=';\n                                    const id = row[0]; \n                                    return `<a href=\"${baseUrl}${id}\" target=\"_blank\" title=\"Visualizar PDF do Trabalho ${id}\"><i class=\"fas fa-file-pdf fa-lg text-danger\"><\/i><\/a>`;\n                                }\n                                return '';\n                            }\n                        },\n                        { data: 6, visible: false }\n                    ],\n                    order: [[0, 'asc']],\n                    language: {\n                        \"sEmptyTable\": \"Nenhum registro encontrado\",\n                        \"sInfo\": \"Mostrando de _START_ at\u00e9 _END_ de _TOTAL_ registros\",\n                        \"sInfoEmpty\": \"Mostrando 0 at\u00e9 0 de 0 registros\",\n                        \"sInfoFiltered\": \"(Filtrados de _MAX_ registros)\",\n                        \"sInfoPostFix\": \"\",\n                        \"sInfoThousands\": \".\",\n                        \"sLengthMenu\": \"_MENU_ resultados por p\u00e1gina\",\n                        \"sLoadingRecords\": \"Carregando...\",\n                        \"sProcessing\": \"Processando...\",\n                        \"sZeroRecords\": \"Nenhum registro encontrado\",\n                        \"sSearch\": \"Pesquisar\",\n                        \"oPaginate\": {\n                            \"sNext\": \"Pr\u00f3ximo\",\n                            \"sPrevious\": \"Anterior\",\n                            \"sFirst\": \"Primeiro\",\n                            \"sLast\": \"\u00daltimo\"\n                        },\n                        \"oAria\": {\n                            \"sSortAscending\": \": Ordenar colunas de forma ascendente\",\n                            \"sSortDescending\": \": Ordenar colunas de forma descendente\"\n                        }\n                    },\n                    dom: '<\"top\"l>rt<\"bottom\"ip><\"clear\">'\n                });\n                \n                \/\/ Configurar expans\u00e3o\n                $('#tabelaTrabalhos tbody').on('click', 'td:nth-child(2)', function (e) {\n                    if ($(e.target).hasClass('details-control')) {\n                        var tr = $(this).closest('tr');\n                        var row = table.row(tr);\n                        \n                        if (row.child.isShown()) {\n                            row.child.hide();\n                            tr.removeClass('shown');\n                        } else {\n                            row.child(format(row.data()[6])).show();\n                            tr.addClass('shown');\n                        }\n                    }\n                });\n\n                \/\/ Filtros\n                $('#filtroTrabalho').on('keyup', function() {\n                    table.column(0).search(this.value, false, true).draw();\n                });\n                \n                $('#filtroInstituicao, #filtroCategoria').on('change', function() {\n                    const value = $(this).val();\n                    const columnIndex = $(this).data('column');\n                    const searchTerm = value ? '^' + $.fn.dataTable.util.escapeRegex(value) + '$' : '';\n                    table.column(columnIndex).search(searchTerm, true, false).draw();\n                });\n\n            },\n            error: function(error, file) {\n                $loading.hide();\n                console.error(\"Erro fatal na requisi\u00e7\u00e3o ou parsing:\", error);\n                $('#tabelaTrabalhos').before('<div class=\"alert alert-danger\">N\u00e3o foi possivel carregar os dados, verifique sua conex\u00e3o e tente novamente.<\/div>');\n            }\n        });\n    });\n    function format(resumo) {\n    \/\/ Retorna uma tabela simples ou uma div contendo o texto do resumo\n    return '<div class=\"resumo-detail\">' +\n           '<strong>Resumo:<\/strong><br>' + \n           (resumo ? resumo : 'Nenhum resumo dispon\u00edvel.') + \n           '<\/div>';\n}\n<\/script>\n\n<\/body>\n<\/html>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>ISSN: 2176-414X &#8211; LIVRO ELETR\u00d4NICO &#8211; Anais do 33\u00ba Congresso Brasileiro de Microbiologia 2025 Trabalhos &#8211; DataTables (Select2 com Busca e PDF) Buscar N\u00ba do Trabalho (ID): Buscar Institui\u00e7\u00e3o: Todas as Institui\u00e7\u00f5es Buscar \u00c1rea: Todas as \u00c1reas N\u00ba do Trabalho T\u00edtulo Autores Institui\u00e7\u00e3o \u00c1rea PDF Resumo Carregando dados&#8230; Carregando dados do CSV&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":[],"_links":{"self":[{"href":"https:\/\/sbmicrobiologia.org.br\/33cbm2025\/wp-json\/wp\/v2\/pages\/1473"}],"collection":[{"href":"https:\/\/sbmicrobiologia.org.br\/33cbm2025\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sbmicrobiologia.org.br\/33cbm2025\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sbmicrobiologia.org.br\/33cbm2025\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sbmicrobiologia.org.br\/33cbm2025\/wp-json\/wp\/v2\/comments?post=1473"}],"version-history":[{"count":172,"href":"https:\/\/sbmicrobiologia.org.br\/33cbm2025\/wp-json\/wp\/v2\/pages\/1473\/revisions"}],"predecessor-version":[{"id":1657,"href":"https:\/\/sbmicrobiologia.org.br\/33cbm2025\/wp-json\/wp\/v2\/pages\/1473\/revisions\/1657"}],"wp:attachment":[{"href":"https:\/\/sbmicrobiologia.org.br\/33cbm2025\/wp-json\/wp\/v2\/media?parent=1473"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}