Azure Health Bot e do Azure AI Health Insights.
IA Livia https://livia.careintelligence.ai/?utm_source=copilot.com
https://apidog.com/pt/blog/free-open-source-llm-apis-pt/?utm_source=copilot.com
https://www.medgpt.net/
MedGPT / ClinicalBERT

//
<!--[main]-->
<li>
<b>GestorWeb informa:</b>
</li>
<ol>
    <b>
    <li>
    Sobre o suporte: Atendimento para esclarecer dúvidas sobre ao funcionamento.
    </li>
    </b>
    <br>
    <b>    
    <li>
    Horário de atendimento: Segunda a Sexta de 08:00 às 19:00 (horário de Brasília), exceto em feriados nacionais, que será divulgado a forma de atendimento.
    </li>
    </b>    
    <br>
    <b>    
    <li>
    Para ter uma melhor visualização do sistema: Recomendamos que utilize a resolução 1920 x 1080.
    </li>
    </b>    
    <br>
    <b>
    <li>
    Dicas:<br> 
    <i class="fas fa-asterisk" style="color:#FB0300;"></i>  Indica que o campo é obrigatório e precisa ser preenchido. </font> <br>
    <i class="fas fa-question" style="color:#fa931f;"></i>  Indica uma ajuda para o campo. </font> <br>  
    <i class="fas fa-ban"      style="color:#FB0300;"></i>  Em alguns pontos do GestorWeb, caso veja está imagem indica que está bloqueado para executar alguma ação. </font><br>
    <i class= " "></i> <strong style="color: #007bff;">(*)</strong> Indica que o campo em questão possui um recurso de ordenação, para utilizar clique na figura <strong style="color: #007bff;">(*)</strong>. </font> <br>
    </li>
    <li>
    Acesso rápido:<br> 
    </li>
    </b>    
</ol>

<div style="padding-left:20px; display:flex; gap:10px; flex-wrap:wrap;">
    <a href="index.php?class=PessoaList&method=onShow&adianti_open_tab=1&adianti_tab_name=Pessoas"
    class="btn btn-default"
    style="border:1px solid #ccc;background:#f5f5f5;padding:8px 0;border-radius:4px;color:#333;text-decoration:none;width:180px;text-align:center;">
    <i class="fas fa-street-view" style="color:#2196F3;"></i> Pessoa
    </a>

    <a href="index.php?class=AgendamentoList&method=onShow&adianti_open_tab=1&adianti_tab_name=Agendamento"
    class="btn btn-default"
    style="border:1px solid #ccc;background:#f5f5f5;padding:8px 0;border-radius:4px;color:#333;text-decoration:none;width:180px;text-align:center;">
    <i class="far fa-calendar-alt" style="color:#4CAF50;"></i> Agendamento
    </a>

    <a href="index.php?class=AgendamentoListAtendimento&method=onShow&adianti_open_tab=1&adianti_tab_name=Agenda%20de%20atendimento"
    class="btn btn-default"
    style="border:1px solid #ccc;background:#f5f5f5;padding:8px 0;border-radius:4px;color:#333;text-decoration:none;width:180px;text-align:center;">
    <i class="far fa-calendar" style="color:#035EA6;"></i> Agenda de atendimento
    </a>

    <a href="index.php?class=AgendamentoTarefasList02&method=onShow&adianti_open_tab=1&adianti_tab_name=Minhas%20tarefas"
    class="btn btn-default"
    style="border:1px solid #ccc;background:#f5f5f5;padding:8px 0;border-radius:4px;color:#333;text-decoration:none;width:180px;text-align:center;">
    <i class="fas fa-history" style="color:#C9302C;"></i> Minhas tarefas
    </a>
</div>

<!--[/main]-->

    public static function btnonVerContatosPaciente($param = null) 
    {
        //Aqui pode incluir---------------------------------------------------------------------        
        try 
        {

            $id = $param['key'] ?? $param['id'] ?? null;

            if (empty($id))
            {
                new TMessage('error', 'ID nao informado.');
                return;
            }

            TTransaction::open(self::$database);
            $agendamento = Agendamento::find($id);

            if (!$agendamento || empty($agendamento->paciente_id))
            {
                TTransaction::close();
                new TMessage('warning', 'Paciente nao encontrado.');
                return;
            }

            $paciente_id = $agendamento->paciente_id;
            $contatos    = PessoaParentesco::where('pessoa_id', '=', $paciente_id)->load();
            TTransaction::close();

            $expand_id = "contatos_row_{$id}";
            $row_id    = "row_{$id}";

            if (empty($contatos))
            {
                $inner = '<td colspan="30" style="padding:12px 20px;background:#fff8e1;border-top:3px solid #ffc107;">'
                       . 'Nenhum contato cadastrado para este paciente.'
                       . '</td>';
            }
            else
            {
                $linhas = '';
                foreach ($contatos as $i => $c)
                {
                    $bg      = ($i % 2 === 0) ? '#f0f4ff' : '#e8f5e9';
                    $nome    = htmlspecialchars($c->nome_parentesco  ?? '--');
                    $celular = htmlspecialchars($c->celular          ?? '--');
                    $email   = htmlspecialchars($c->email_parentesco ?? '--');
                    $obs     = htmlspecialchars($c->obs_parentesco   ?? '--');
                    $emerg   = ($c->emergencia_parentesco === 'S')
                                ? '<span style="color:#fff;background:#F44336;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:bold;">SIM</span>'
                                : '<span style="color:#fff;background:#9E9E9E;padding:2px 8px;border-radius:10px;font-size:11px;">Nao</span>';

                    $linhas .= '<tr style="background:' . $bg . ';border-bottom:1px solid #ddd;">'
                             . '<td style="padding:7px 14px;font-weight:bold;">' . $nome    . '</td>'
                             . '<td style="padding:7px 14px;">'                  . $celular . '</td>'
                             . '<td style="padding:7px 14px;">'                  . $email   . '</td>'
                             . '<td style="padding:7px 14px;text-align:center;">' . $emerg  . '</td>'
                             . '<td style="padding:7px 14px;color:#666;">'       . $obs     . '</td>'
                             . '</tr>';
                }

                $inner = '<td colspan="30" style="padding:0;border-top:3px solid #1976D2;border-bottom:3px solid #1976D2;">'
                       . '<table style="width:100%;border-collapse:collapse;font-size:12px;">'
                       . '<thead><tr style="background:#1976D2;color:#fff;">'
                       . '<th style="padding:7px 14px;text-align:left;">Nome</th>'
                       . '<th style="padding:7px 14px;text-align:left;">Celular</th>'
                       . '<th style="padding:7px 14px;text-align:left;">E-mail</th>'
                       . '<th style="padding:7px 14px;text-align:center;">Emergencia</th>'
                       . '<th style="padding:7px 14px;text-align:left;">Obs</th>'
                       . '</tr></thead>'
                       . '<tbody>' . $linhas . '</tbody>'
                       . '</table>'
                       . '</td>';
            }

            $html_linha = '<tr id="' . $expand_id . '">' . $inner . '</tr>';
            $b64        = base64_encode($html_linha);

            TScript::create("
                setTimeout(function() {
                    var existing = document.getElementById('{$expand_id}');
                    if (existing) {
                        existing.parentNode.removeChild(existing);
                        return;
                    }
                    var row = document.getElementById('{$row_id}');
                    if (row) {
                        var tmp = document.createElement('tbody');
                        tmp.innerHTML = atob('{$b64}');
                        row.parentNode.insertBefore(tmp.firstChild, row.nextSibling);
                    }
                }, 200);
            ");

            //</autoCode>
        }
        catch (Exception $e) 
        {
            new TMessage('error', '<b>' . TSession::getValue('username') . '</b> - ' . $e->getMessage());
        }
    }

tenho um sistema feito em php e preciso que ao logar ele sempre mantenha se atualizado porque ao atualizar o servidor existe um delay de tempo que esta afetando as estações de trabalho com a versão antiga , qual a melhor metodologia para trabalhar com isso atualmente e gere de preferencia uma classe para ser impletamentado em madbuilder fork do adianti framework 7.4