Beispiel #1
0
function Main()
{
    $u = unserialize($_SESSION['usu']);
    $tpl = file_get_contents("tpl/frm-montagem.html");
    $botoes = "";
    //$botoes = Botao::BotaoSalvar("fntSalvaMontagem();", "Salvar a montagem atual");
    $botoes .= Botao::BotaoAdd("fntAddFolha();", "@lng[Adicionar o item selecionado a montagem]");
    $botoes .= Botao::BotaoExcluir("fntRemoverItemMontagem()", "@lng[Remover o item selecionado da montagem]");
    $botoes .= Botao::BotaoConfigs("fntMostraConfigs();", "@lng[Permite modificar as configurações do item selecionado]");
    //$botoes .= Botao::BotaoSalvar("fntSalvaConfigs();", "Salvar as configurações do item selecionado");
    $botoes .= Botao::BotaoCancelar("fntVoltaTelaOpcoes();", "@lng[Voltar para a tela inicial do caso]");
    $mon = new Montagem();
    $mon->setCodCaso($_SESSION['caso']);
    $rais = $mon->ExisteArvore();
    if (is_null($rais)) {
        $rais = $mon->AddRais();
    }
    $arvore = $mon->RetornaArvoreLista();
    $anexos = $mon->RetornaComboConteudosExtras();
    if ($arvore != false) {
        //echo($arvore);
        //return;
        $tpl = str_replace("<!--arvore-->", $arvore, $tpl);
    } else {
        $tpl = str_replace("<!--arvore-->", $mon->getErro(), $tpl);
    }
    $tpl = str_replace("<!--selConteudos-->", $anexos, $tpl);
    $tpl = str_replace("<!--telatopo-->", Comuns::GeraTopoPagina($u), $tpl);
    $tpl = str_replace("<!--itens-toolbar-->", $botoes, $tpl);
    echo Comuns::Idioma($tpl);
}
function Main()
{
    header('Content-Type: text/html; charset=iso-8859-1');
    $arrInfos = split('_', $_POST['chave']);
    $fe = new Fechamento();
    $fe->setCodcaso($_SESSION['casores']);
    $contUnico = 1;
    if ($arrInfos[1] != 'perg' && $arrInfos[1] != 'grupo-perg') {
        $res = new Resolucao();
        $res->setCodcaso($_SESSION['casores']);
        $respostas = $res->BuscaRespostas($arrInfos[3]);
        $alternativas = $fe->RetornaConteudosDoItemDaMontagem($arrInfos[3], $arrInfos[1]);
        if ($alternativas) {
            $htmlInterativas .= '<div><strong>' . Montagem::RetornaDescricaoItem($_SESSION['casores'], 1, $arrInfos[3]) . '</strong></div>';
            $htmlInterativas .= '<div class="det-etapa-int">';
            $htmlInterativas .= '<table class="listadados">';
            $htmlInterativas .= '<tr class="head">';
            $htmlInterativas .= '<td class="td-col-alt">@lng[Alternativa]</td>';
            $htmlInterativas .= '<td class="td-col-correto">@lng[Gabarito]</td>';
            $htmlInterativas .= '<td class="td-col-escolha">@lng[Você marcou]</td>';
            $htmlInterativas .= '<td class="td-col-jus">&nbsp;</td>';
            $htmlInterativas .= '<td class="td-col-compl">&nbsp;</td>';
            $htmlInterativas .= '</tr>';
            $contAlt = 1;
            foreach ($alternativas as $alternativa) {
                $htmlInterativas .= '<tr class="norm">';
                $htmlInterativas .= '<td class="dado td-col-alt">' . $alternativa->Titulo . '</td>';
                $htmlInterativas .= '<td class="td-col-correto">' . ($alternativa->Correto == 1 ? Comuns::IMG_STATUS_CERTO : Comuns::IMG_STATUS_ERRADO) . '</td>';
                $htmlInterativas .= '<td class="td-col-escolha">' . ((intval($respostas) & intval($alternativa->ValorOpt)) > 0 ? Comuns::IMG_ITEM_PINO : '') . '</td>';
                $htmlInterativas .= '<td class="td-col-jus">' . trim(strip_tags(nl2br($alternativa->Justificativa)) != '' ? '<a href="javascript:void(0);" onclick="javascript:fntDetItem(\'j\', \'' . $contUnico . '\', \'' . $contAlt . '\');">@lng[Ver detalhes]</a>' : '') . '</td>';
                $htmlInterativas .= '<td class="td-col-compl">' . trim(strip_tags(nl2br($alternativa->ConteudoAdicional)) != '' ? '<a href="javascript:void(0);" onclick="javascript:fntDetItem(\'c\', \'' . $contUnico . '\', \'' . $contAlt . '\');">@lng[Ver complemento]</a>' : '') . '</td>';
                $htmlInterativas .= '</tr>';
                if (trim(strip_tags($alternativa->Justificativa)) != '') {
                    $htmlInterativas .= '<tr style="display:none;" id="jus-' . $contUnico . '-' . $contAlt . '">';
                    $htmlInterativas .= '<td colspan="5" class="apre-just"><div class="cont-just">' . $alternativa->Justificativa . '</div></td>';
                    $htmlInterativas .= '</tr>';
                }
                if (trim(strip_tags($alternativa->ConteudoAdicional)) != '') {
                    $htmlInterativas .= '<tr style="display:none;" id="contadi-' . $contUnico . '-' . $contAlt . '">';
                    $htmlInterativas .= '<td colspan="5" class="apre-compl"><div class="cont-compl">' . $alternativa->ConteudoAdicional . '</div></td>';
                    $htmlInterativas .= '</tr>';
                }
                $contAlt++;
                $contUnico++;
            }
            $htmlInterativas .= '</table>';
            $htmlInterativas .= '</div>';
        } else {
            die($fe->getErro() . ' Alternativas');
        }
        $htmlInterativas .= '<div class="espacador"></div>';
    } else {
        if ($arrInfos[1] == 'perg') {
            $res = new Resolucao();
            $res->setCodcaso($_SESSION['casores']);
            $itens = $res->BuscaConteudosAgrupador($arrInfos[3]);
            if ($itens) {
                foreach ($itens as $p) {
                    // Chave, TipoConteudo, ChavePai, Organizador, ContReferencia, ValorOpt, Ordem
                    $perg = new Pergunta();
                    $perg->Carregar($p->ContReferencia);
                    if (!is_null($perg->getTextoExplicacaoGeral()) && $perg->getTextoExplicacaoGeral() != '') {
                        $boolExplicacao = true;
                    } else {
                        $boolExplicacao = false;
                    }
                    $htmlInterativas .= '<div>@lng[Etapa:] <strong>' . $perg->getTexto() . '</strong>' . ($boolExplicacao ? '<span style="float:right;"><a href="javascript:void(0);" onclick="javascript:fntMostraOculta(\'exp-' . $perg->getCodigo() . '\');"><img src="img/info.gif" alt="@lng[Mais informações]" title="@lng[Mais informações]" /></a></span>' : '') . '</div>';
                    if ($boolExplicacao) {
                        $htmlInterativas .= '<div class="explicacao-item" id="exp-' . $perg->getCodigo() . '" style="display:none;">' . $perg->getTextoExplicacaoGeral() . '</div>';
                    }
                    $respostas = $res->BuscaRespostas($arrInfos[3], $perg->getCodigo());
                    $alternativas = $fe->RetornaAlternativasDaPergunta($perg->getCodigo());
                    if ($alternativas) {
                        $htmlInterativas .= '<div class="det-etapa-int">';
                        $htmlInterativas .= '<table class="listadados">';
                        $htmlInterativas .= '<tr class="head">';
                        $htmlInterativas .= '<td class="td-col-alt">@lng[Alternativa]</td>';
                        $htmlInterativas .= '<td class="td-col-correto">@lng[Gabarito]</td>';
                        $htmlInterativas .= '<td class="td-col-escolha">@lng[Você marcou]</td>';
                        $htmlInterativas .= '<td class="td-col-jus">&nbsp;</td>';
                        $htmlInterativas .= '<td class="td-col-compl">&nbsp;</td>';
                        $htmlInterativas .= '</tr>';
                        $contAlt = 1;
                        foreach ($alternativas as $alternativa) {
                            $htmlInterativas .= '<tr class="norm">';
                            $htmlInterativas .= '<td class="dado td-col-alt">' . $alternativa->Alternativa . '</td>';
                            $htmlInterativas .= '<td class="td-col-correto">' . ($alternativa->Correto == 1 ? Comuns::IMG_STATUS_CERTO : Comuns::IMG_STATUS_ERRADO) . '</td>';
                            $htmlInterativas .= '<td class="td-col-escolha">' . ((intval($respostas) & intval($alternativa->ValorOpt)) > 0 ? Comuns::IMG_ITEM_PINO : '') . '</td>';
                            $htmlInterativas .= '<td class="td-col-jus">' . (!is_null($alternativa->Explicacao) && strip_tags(trim(nl2br($alternativa->Explicacao))) != '' ? '<a href="javascript:void(0);" onclick="javascript:fntDetItem(\'j\', \'' . $contUnico . '\', \'' . $contAlt . '\');">@lng[Ver detalhes]</a>' : '') . '</td>';
                            $htmlInterativas .= '<td class="td-col-compl">&nbsp;</td>';
                            $htmlInterativas .= '</tr>';
                            if (trim(strip_tags($alternativa->Explicacao)) != '') {
                                $htmlInterativas .= '<tr style="display:none;" id="jus-' . $contUnico . '-' . $contAlt . '">';
                                $htmlInterativas .= '<td colspan="5" class="apre-just"><div class="cont-just">' . $alternativa->Explicacao . '</div></td>';
                                $htmlInterativas .= '</tr>';
                            }
                            $contAlt++;
                            $contUnico++;
                        }
                        $htmlInterativas .= '</table>';
                        $htmlInterativas .= '</div>';
                    } else {
                        die($fe->getErro() . ' Alternativas pergunta');
                    }
                    $htmlInterativas .= '<div class="espacador"></div>';
                }
            } else {
                $htmlInterativas = "Erro linha 34";
            }
        } else {
            if ($arrInfos[1] == 'grupo-perg') {
                $res = new Resolucao();
                $res->setCodcaso($_SESSION['casores']);
                $agrupadores = $res->BuscaConteudosAgrupador($arrInfos[3]);
                if ($agrupadores) {
                    foreach ($agrupadores as $agrup) {
                        $grupo = new GrupoPergunta();
                        if ($grupo->Carrega($agrup->ContReferencia)) {
                            $perguntas = $grupo->getPerguntas();
                            if (!is_null($grupo->getExplicacao()) && trim(strip_tags($grupo->getExplicacao())) != '') {
                                $boolExplicacao = true;
                            } else {
                                $boolExplicacao = false;
                            }
                        } else {
                            die($grupo->getErro());
                        }
                        $htmlInterativas .= '<div class="item-interativo">@lng[Etapa:] <strong>' . $grupo->getTexto() . '</strong>' . ($boolExplicacao ? '<span style="float:right"><a href="javascript:void(0);" onclick="javascript:fntMostraOculta(\'exp-' . $grupo->getCodgrupo() . '\');"><img src="img/info.gif" alt="@lng[Mais informações]" title="@lng[Mais informações]" /></a></span>' : '') . '</div>';
                        if ($boolExplicacao) {
                            $htmlInterativas .= '<div class="explicacao-item" id="exp-' . $grupo->getCodgrupo() . '" style="display:none;">' . $grupo->getExplicacao() . '</div>';
                        }
                        foreach ($perguntas as $perg) {
                            $p = new Pergunta();
                            $p->Carregar($perg);
                            $respostas = $res->BuscaRespostas($arrInfos[3], $perg);
                            $alternativas = $fe->RetornaAlternativasDaPergunta($perg);
                            if ($alternativas) {
                                $htmlInterativas .= '<div class="sub-etapa">' . $p->getTexto() . '</div>';
                                $htmlInterativas .= '<div class="det-etapa-int">';
                                $htmlInterativas .= '<table class="listadados">';
                                $htmlInterativas .= '<tr class="head">';
                                $htmlInterativas .= '<td class="td-col-alt">@lng[Alternativa]</td>';
                                $htmlInterativas .= '<td class="td-col-correto">@lng[Gabarito]</td>';
                                $htmlInterativas .= '<td class="td-col-escolha">@lng[Você marcou]</td>';
                                $htmlInterativas .= '<td class="td-col-jus">&nbsp;</td>';
                                $htmlInterativas .= '<td class="td-col-compl">&nbsp;</td>';
                                $htmlInterativas .= '</tr>';
                                $contAlt = 1;
                                foreach ($alternativas as $alternativa) {
                                    $htmlInterativas .= '<tr class="norm">';
                                    $htmlInterativas .= '<td class="dado td-col-alt">' . $alternativa->Alternativa . '</td>';
                                    $htmlInterativas .= '<td class="td-col-correto">' . ($alternativa->Correto == 1 ? Comuns::IMG_STATUS_CERTO : Comuns::IMG_STATUS_ERRADO) . '</td>';
                                    $htmlInterativas .= '<td class="td-col-escolha">' . ((intval($respostas) & intval($alternativa->ValorOpt)) > 0 ? Comuns::IMG_ITEM_PINO : '') . '</td>';
                                    $htmlInterativas .= '<td class="td-col-jus">' . (trim(strip_tags(nl2br($alternativa->Explicacao))) != '' ? '<a href="javascript:void(0);" onclick="javascript:fntDetItem(\'j\', \'' . $contUnico . '\', \'' . $contAlt . '\');">@lng[Ver detalhes]</a>' : '') . '</td>';
                                    $htmlInterativas .= '<td class="td-col-compl">&nbsp;</td>';
                                    $htmlInterativas .= '</tr>';
                                    if (trim(strip_tags($alternativa->Explicacao)) != '') {
                                        if (!is_null($alternativa->Explicacao)) {
                                            $htmlInterativas .= '<tr style="display:none;" id="jus-' . $contUnico . '-' . $contAlt . '">';
                                            $htmlInterativas .= '<td colspan="5" class="apre-just"><div class="cont-just">' . $alternativa->Explicacao . '</div></td>';
                                            $htmlInterativas .= '</tr>';
                                        }
                                    }
                                    $contAlt++;
                                    $contUnico++;
                                }
                                $htmlInterativas .= '</table>';
                                $htmlInterativas .= '</div>';
                            } else {
                                die($fe->getErro() . ' alternativas grupo pergunta');
                            }
                            $htmlInterativas .= '<div class="espacador"></div>';
                        }
                    }
                } else {
                    $htmlInterativas = "Erro linha 122";
                }
            }
        }
    }
    echo Comuns::Idioma($htmlInterativas);
}
function Main()
{
    header('Content-Type: text/html; charset=iso-8859-1');
    if (isset($_SESSION['caso']) && $_SESSION['caso'] > 0) {
        $mon = new Montagem();
        $mon->setCodCaso($_SESSION['caso']);
        if ($_REQUEST['a'] == "inc") {
            $ok = true;
            $erro = "";
            $sTipo = $_POST['item'];
            $sIdPai = split("_", $_POST['pai']);
            $sOrg = $_POST['org'];
            $iOrd = $_POST['ord'];
            $sRegPai = $sIdPai[3];
            if (isset($_POST['cont']) && !is_null($_POST['cont']) && $_POST['cont'] != "") {
                $iContRefe = $_POST['cont'];
            } else {
                $iContRefe = $sIdPai[1];
            }
            $sChave = $mon->AddItem($sTipo, $iOrd, $sRegPai, $iContRefe, $sOrg);
            if ($sChave != false) {
                Log::RegistraLog("Adicionado o item " . $sChave . " à montagem do caso clínico");
                echo $sChave;
            } else {
                Log::RegistraLog("Erro ao tentar adicionado um item à montagem do caso clínico. Detalhes: " . $mon->getErro());
                echo "ERRO: " . $mon->getErro();
            }
        } else {
            if ($_REQUEST['a'] == "rem") {
                $idNodo = $_POST['nodo'];
                $itens = split("_", $idNodo);
                $chave = $itens[3];
                if ($mon->ExcluiItem($chave)) {
                    Log::RegistraLog("Removido o item " . $chave . " da montagem do caso clínico");
                    echo "OK";
                } else {
                    Log::RegistraLog("Erro ao tentar remover o item " . $chave . " da montagem do caso clínico. Detalhes: " . $mon->getErro());
                    echo "ERRO: " . $mon->getErro();
                }
            } else {
                if ($_REQUEST['a'] == "mov") {
                    $idNodo = $_POST['nodo'];
                    $idNodoPai = $_POST['nodopai'];
                    $posAnt = $_POST['posant'];
                    $posNova = $_POST['posnova'];
                    $itens = split("_", $idNodo);
                    $itensPai = split("_", $idNodoPai);
                    $chave = $itens[3];
                    $chavePai = $itensPai[3];
                    if ($mon->ReordenaItem($chave, $chavePai, $posAnt, $posNova)) {
                        Log::RegistraLog("O item " . $chave . " foi reordenado da posição " . $posAnt . " para a posição " . $posNova . " na montagem do caso clínico");
                        echo "OK";
                    } else {
                        Log::RegistraLog("Erro ao tentar mover o item " . $chave . " na montagem do caso clínico. Detalhes: " . $mon->getErro());
                        echo "ERRO: " . $mon->getErro();
                    }
                } else {
                    if ($_REQUEST['a'] == "par") {
                        $idNodo = $_POST['nodo'];
                        $itens = split("_", $idNodo);
                        $chave = $itens[3];
                        $erro = false;
                        $deserro = "";
                        foreach ($_POST as $campo => $valor) {
                            if (stripos($campo, "Config") !== false) {
                                $campo = split("_", $campo);
                                $config = $campo[1];
                                if (substr($campo[0], 0, 3) == "txt") {
                                    $valor = urldecode($valor);
                                }
                                if (!$mon->SalvaParamItem($chave, $config, $valor)) {
                                    $erro = true;
                                    Log::RegistraLog("Erro ao tentar gravar a configuração. Caso: " . $_SESSION['caso'] . ". Item: " . $chave . ". Config: " . $config . ". Valor: " . $valor . ". Erro: " . $mon->getErro());
                                    $deserro .= ($deserro != "" ? "\r\n" : "") . $mon->getErro();
                                } else {
                                    Log::RegistraLog("Gravada configuração para o item " . $chave . " na montagem do caso " . $_SESSION['caso'] . ". Config: " . $config . ". Valor: " . $valor);
                                }
                            }
                        }
                        if ($erro) {
                            echo "ERRO: " . $deserro;
                        } else {
                            echo "OK";
                        }
                    } else {
                        if ($_REQUEST['a'] == "retpar") {
                            //cont_an_0_129120D92796F7AF13882551731A996C
                            $idNodo = $_POST['nodo'];
                            $itens = split("_", $idNodo);
                            $tipo = $itens[1];
                            $chave = $itens[3];
                            Log::RegistraLog("Tipo do item informado: " . $tipo . ". Chave informada: " . $chave);
                            $xmlconfigs = $mon->RetornaConfigs($tipo, $chave);
                            $saltos = $mon->RetornaListaConfSaltos($chave);
                            $anexos = $mon->RetornaListaConfAnexos($chave);
                            $ret = "";
                            if ($xmlconfigs !== false) {
                                $ret = $xmlconfigs;
                            }
                            if ($saltos !== false) {
                                $ret .= '<divDesviosSalvos>' . $saltos . '</divDesviosSalvos>';
                            }
                            if ($anexos !== false) {
                                $ret .= '<divAnexosSalvos>' . $anexos . '</divAnexosSalvos>';
                            }
                            echo Comuns::Idioma($ret);
                        }
                    }
                }
            }
        }
    } else {
        echo "ERRO: @lng[Caso não informado]";
    }
}
Beispiel #4
0
function Main()
{
    header('Content-Type: text/html; charset=iso-8859-1');
    if (isset($_SESSION['caso']) && $_SESSION['caso'] > 0) {
        if ($_POST['tip'] == "tree") {
            $mon = new Montagem();
            $mon->setCodCaso($_SESSION['caso']);
            $html = $mon->RetornaArvoreLista();
            if ($html) {
                $html = str_replace('<div id="tree">', '<div id="' . $_POST['id'] . '">', $html);
            } else {
                $html = "ERRO: " . $mon->getErro();
            }
            echo $html;
        } else {
            if ($_POST['tip'] == "opts") {
                if (!$_POST['perg']) {
                    $res = new Resolucao();
                    $res->setCodcaso($_SESSION['caso']);
                    $hash = $res->BuscaConteudoPelaChave($_POST['nodo'], true);
                    if ($hash != false) {
                        echo $hash->ToXML();
                    } else {
                        echo "ERRO. Hash voltou false";
                    }
                } else {
                    $pergunta = new Pergunta();
                    $pergunta->Carregar($_POST['perg']);
                    if ($pergunta->getTipo()->getCodigo() == 1) {
                        $cont = 1;
                        foreach ($pergunta->getAlternativas() as $alternativa) {
                            $html .= '<div class="alt-img">';
                            $html .= '<input type="checkbox" name="rdoAlternativa_' . $pergunta->getCodigo() . '[]" id="rdoAlt_' . $pergunta->getCodigo() . '_' . $cont . '" value="' . $alternativa->getCodBinario() . '" class="opcao-resposta" />' . $alternativa->getTexto();
                            $html .= '<div id="img"><img src="' . $alt->getImagem() . '" alt="' . $alt->getTexto() . '" title="' . $alt->getTexto() . '" class="img-preview" /></div>';
                            $html .= '</div>';
                            $cont++;
                        }
                    } else {
                        $cont = 1;
                        foreach ($pergunta->getAlternativas() as $alternativa) {
                            $html .= '<div class="alt-txt">';
                            $html .= '<input type="checkbox" name="rdoAlternativa_' . $pergunta->getCodigo() . '[]" id="rdoAlt_' . $pergunta->getCodigo() . '_' . $cont . '" value="' . $alternativa->getCodBinario() . '" class="opcao-resposta" />' . $alternativa->getTexto();
                            $html .= '</div>';
                            $cont++;
                        }
                    }
                    echo '<conteudo>' . $html . '</conteudo>';
                }
            } else {
                if ($_POST['tip'] == 'pergs') {
                    //$arrNodo = split("_", $_POST['nodo']);
                    Log::RegistraLog("Vai consultas as perguntas vinculadas ao nodo: " . $arrNodo[3]);
                    $mon = new Montagem();
                    $mon->setCodCaso($_SESSION['caso']);
                    $lista = $mon->ListaPerguntasNodo($_POST['nodo']);
                    if ($lista) {
                        $html .= '<option value="-1">@lng[Selecione]</option>';
                        foreach ($lista as $perg) {
                            $html .= '<option value="' . $perg->Codigo . '">' . substr($perg->Texto, 0, 100) . '</option>';
                        }
                    } else {
                        $html .= '<option>' . $mon->getErro() . '</option>';
                    }
                    echo $html;
                } else {
                    if ($_POST['tip'] == 'salvacond') {
                        $arrNodoAtual = split("_", $_POST['nodoatual']);
                        $arrNodoDestino = split("_", $_POST['nododes']);
                        if ($_POST['nodocond']) {
                            $arrNodoCond = split("_", $_POST['nodocond']);
                            $strChaveCond = $arrNodoCond[3];
                            if ($_POST['perg']) {
                                $intPerg = $_POST['perg'];
                            } else {
                                $intPerg = null;
                            }
                            $intResp = $_POST['resp'];
                        } else {
                            $strChaveCond = null;
                            $intResp = null;
                            $intPerg = null;
                        }
                        $strChaveAtual = $arrNodoAtual[3];
                        $strChaveDestino = $arrNodoDestino[3];
                        $mon = new Montagem();
                        $mon->setCodCaso($_SESSION['caso']);
                        $desvio = $mon->InsereSalto($strChaveAtual, $strChaveDestino, $strChaveCond, $intPerg, $intResp);
                        if ($desvio) {
                            $html = $mon->RetornaListaConfSaltos($strChaveAtual);
                            if ($html) {
                                echo $html;
                            } else {
                                echo "ERRO: " . $mon->getErro();
                            }
                        } else {
                            echo "ERRO: " . $mon->getErro();
                        }
                    } else {
                        if ($_POST['tip'] == 'mudaprior') {
                            $mon = new Montagem();
                            $mon->setCodCaso($_SESSION['caso']);
                            if ($mon->AlteraPrioridadeSalto($_POST['mm'], base64_decode($_POST['chaveOri']), base64_decode($_POST['chaveDest']))) {
                                echo $mon->RetornaListaConfSaltos(base64_decode($_POST['chaveOri']));
                            } else {
                                echo "ERRO: " . $mon->getErro();
                            }
                        } else {
                            if ($_POST['tip'] == 'delsalto') {
                                $mon = new Montagem();
                                $mon->setCodCaso($_SESSION['caso']);
                                if ($mon->DeletaSalto(base64_decode($_POST['chaveOri']), base64_decode($_POST['chaveDest']))) {
                                    echo $mon->RetornaListaConfSaltos(base64_decode($_POST['chaveOri']));
                                } else {
                                    echo "ERRO: " . $mon->getErro();
                                }
                            } else {
                                if ($_POST['tip'] == 'vincanexo') {
                                    $mon = new Montagem();
                                    $mon->setCodCaso($_SESSION['caso']);
                                    $nodo = $_POST['item'];
                                    $cont = $_POST['cont'];
                                    $strTipoCont = substr($cont, 0, 1);
                                    $arr = split("_", $nodo);
                                    $u = unserialize($_SESSION['usu']);
                                    if ($mon->InsereAnexo($arr[3], base64_decode(substr($cont, 1)), $strTipoCont, $u->getCodigo())) {
                                        echo $mon->RetornaListaConfAnexos($arr[3]);
                                    } else {
                                        echo 'ERRO: ' . $mon->getErro();
                                    }
                                } else {
                                    if ($_POST['tip'] == 'delanexo') {
                                        $mon = new Montagem();
                                        $mon->setCodCaso($_SESSION['caso']);
                                        $nodo = base64_decode($_POST['item']);
                                        $cont = $_POST['cont'];
                                        $strTipoCont = substr($cont, 0, 1);
                                        //$arr = split("_", $nodo);
                                        //die("ERRO: " . $nodo . ' ' . base64_decode(substr($cont, 1)));
                                        if ($mon->DeletaAnexo($nodo, base64_decode(substr($cont, 1)), $strTipoCont)) {
                                            $listagem = $mon->RetornaListaConfAnexos($nodo);
                                            if ($listagem !== false) {
                                                echo $listagem;
                                            } else {
                                                echo "ERRO: " . $mon->getErro();
                                            }
                                        } else {
                                            echo 'ERRO: ' . $mon->getErro();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    } else {
        echo "ERRO: @lng[Caso não informado]";
    }
}
function Main()
{
    //header('Content-Type: text/html; charset=iso-8859-1');
    if (!$_GET['c']) {
        if (!isset($_SESSION['casores']) || is_null('casores')) {
            $msg = base64_encode("@lng[Não foi informado nenhum caso de estudo]");
            header("Location:aluno.php?msg=" . $msg);
        }
    } else {
        if (Caso::CasoValido(base64_decode($_GET['c']))) {
            $_SESSION['casores'] = base64_decode($_GET['c']);
            $_SESSION['status'] = false;
            $_SESSION['codresolucao'] = null;
        } else {
            $msg = base64_encode("@lng[Caso de estudo informado não é um caso válido]");
            header("Location:aluno.php?msg=" . $msg);
        }
    }
    $u = unserialize($_SESSION['usu']);
    //$u = new Usuario();
    $tpl = file_get_contents("tpl/frm-resolucao-off.html");
    // Armazena a árvore de forma oculta
    $mon = new Montagem();
    $mon->setCodCaso($_SESSION['casores']);
    $arvore = $mon->RetornaArvoreLista();
    $tpl = str_replace("<!--arvore-->", $arvore, $tpl);
    $res = new Resolucao();
    $res->setCodcaso($_SESSION['casores']);
    $res->setCodusuario($u->getCodigo());
    if ($_GET['m'] == 'pre') {
        $tpl = str_replace("<!--region_close_preview-->", file_get_contents("tpl/close-preview.html"), $tpl);
        if ($_GET['t'] == 'I') {
            if ($u->TemGrupo(1) || $u->TemGrupo(4)) {
                if (Caso::ConsultaSituacao($_SESSION['casores']) == 0) {
                    if (!$res->LimpaResolucao()) {
                        echo Comuns::Idioma("@lng[Erro ao limpar histórico de resoluções.]") . " " . $res->getErro();
                        return;
                    }
                } else {
                    echo Comuns::Idioma("@lng[Este caso está publicado e não é possível lipar suas resoluções]");
                    return;
                }
            } else {
                echo Comuns::Idioma("@lng[Você não tem permissõo para excluir as resoluções deste caso]");
                return;
            }
        }
    }
    if (!$_SESSION['status']) {
        $_SESSION['status'] = $res->BuscaStatusAndamento();
        $raiz = "";
        if ($_SESSION['status'] == 1) {
            $raiz = $res->BuscaNodoRaiz();
            $raiz = "fntInicia('raiz_raiz_0_" . $raiz . "');";
            $res->IniciaResolucao();
        } else {
            if ($_SESSION['status'] == 2) {
                if ($_SESSION['codresolucao'] == null) {
                    if ($_GET['r']) {
                        if (Resolucao::ResolucaoValida($_SESSION['casores'], $u->getCodigo(), base64_decode($_GET['r']))) {
                            $_SESSION['codresolucao'] = base64_decode($_GET['r']);
                        } else {
                            $msg = base64_encode("@lng[Dados informados inválidos]");
                            header("Location:aluno.php?msg=" . $msg);
                        }
                    } else {
                        $codresolucao = Resolucao::BuscaUltimaResolucaoCaso($_SESSION['casores'], $u->getCodigo(), $_SESSION['status']);
                        if ($codresolucao !== false) {
                            $_SESSION['codresolucao'] = $codresolucao;
                        } else {
                            $msg = base64_encode("@lng[Não foi possível localilzar a resolução deste caso]");
                            header("Location:aluno.php?msg=" . $msg);
                        }
                    }
                }
                $res->setCodresolucao($_SESSION['codresolucao']);
                $res->RegistraAcesso($u->getIdAcessoAtual());
                $raiz = $res->BuscaUltimoNodoVisitado();
                if ($raiz !== false) {
                    if ($raiz != -1) {
                        $strPossiveis = $res->BuscaTodosMenosUltimoVisitado();
                        if ($strPossiveis !== false) {
                            $strJaVisitados = $res->BuscaTodosNodosVisitados();
                            Log::RegistraLog("Nodos possíveis para o caminho de volta: " . $strPossiveis);
                            $raiz = "fntInicia('" . $raiz . "'); fntGeraCaminhoVolta('" . $strPossiveis . "'); fntGeraVisitados('" . $strJaVisitados . "');";
                        } else {
                            // Se não retornou nenhum é porque o ultimo visto foi a raiz e dai não precisa gerar histórico de volta
                            $raiz = "fntInicia('" . $raiz . "');";
                        }
                    } else {
                        $raiz = $res->BuscaNodoRaiz();
                        $raiz = "fntInicia('raiz_raiz_0_" . $raiz . "');";
                    }
                } else {
                    $msg = base64_encode("@lng[Erro durante a recuperação das informações.]" . $res->getErro());
                    header("Location:aluno.php?msg=" . $msg);
                }
            } else {
                if ($_SESSION['status'] == 3) {
                    if ($_GET['re'] && $_GET['re'] == true) {
                        $raiz = $res->BuscaNodoRaiz();
                        $raiz = "fntInicia('raiz_raiz_0_" . $raiz . "');";
                        $res->IniciaResolucao();
                    } else {
                        header("Location:vwopcoescaso.php?c=" . base64_encode($_SESSION['casores']));
                    }
                } else {
                    $_SESSION['status'] = false;
                    die("Inconsistencia localizada. " . $res->getErro());
                }
            }
        }
        if ($u->getNome() == "Anonimo") {
            $raiz .= "fntOcultaHome();";
        }
        $tpl = str_replace("<!--javascriptload-->", $raiz, $tpl);
    }
    // Busca o nome do caso clínico
    $infos = Caso::ConsultaInfosCaso($_SESSION['casores']);
    $tpl = str_replace("<!--titulocaso-->", $infos['nome'], $tpl);
    echo Comuns::Idioma($tpl);
}