示例#1
0
function Main()
{
    header('Content-Type: text/html; charset=iso-8859-1');
    $usuarios = isset($_POST["u"]) ? $_POST["u"] : "";
    $msg = "";
    if (isset($_SESSION['caso']) && $_SESSION['caso'] != 0) {
        if ($usuarios != "") {
            try {
                $c = new Caso();
                $c->setCodigo($_SESSION['caso']);
                if ($c->DeletaTodosOsColaboradores()) {
                    $usuarios = split("-", $usuarios);
                    foreach ($usuarios as $usuario) {
                        $c->AdicionaColaboradorAoCaso($usuario);
                    }
                    echo "GRAVOU";
                } else {
                    $msg = "@lng[Não foi possível excluír o colaborador.]";
                }
            } catch (Exception $ex) {
                throw new Exception($ex->getMessage(), $ex->getCode());
            }
        } else {
            $msg = "@lng[Usuários não informados]";
        }
    } else {
        $msg = "@lng[Caso não identificado.]";
    }
    echo Comuns::Idioma($msg);
}
示例#2
0
function Main()
{
    header('Content-Type: text/html; charset=iso-8859-1');
    if (isset($_SESSION['caso']) && $_SESSION['caso'] > 0) {
        $u = unserialize($_SESSION['usu']);
        //$u = new Usuario();
        if ($u->TemPermissao(25)) {
            if ($_POST['p'] == "false" || $_POST['p'] == "true") {
                if ($_POST['p'] == "true") {
                    Log::RegistraLog("Publicou o caso clínico " . $_SESSION['caso']);
                    $acao = true;
                } else {
                    Log::RegistraLog("Despublicou o caso clínico " . $_SESSION['caso']);
                    $acao = false;
                }
                $c = new Caso();
                $c->setCodigo($_SESSION['caso']);
                $ret = $c->PublicaCaso($acao);
                if ($ret) {
                    echo "OK";
                } else {
                    echo $c->getErro();
                }
            } else {
                echo "@lng[Dados informados inválidos]";
            }
        } else {
            echo "@lng[Você não tem permissões suficientes para realizar esta operação]";
        }
    } else {
        echo "@lng[Erro ao localizar caso para ser publicado]";
    }
}
示例#3
0
文件: aluno.php 项目: GoPlaceIn/siacc
function Principal($tpl, $usu)
{
    $tpl_lista = file_get_contents("tpl/aluno/lst-casos.html");
    $usu->RegistraAcao("Acesso página inicial de casos clínicos");
    $casos = new Caso();
    $lista = $casos->ListaRecordSet($usu->getCodigo());
    $item = file_get_contents("tpl/aluno/caso-item-descricao.html");
    $casosnaoini = "";
    $casosini = "";
    $casosconc = "";
    foreach ($lista as $c) {
        $copia = $item;
        $copia = str_replace("<!--codcaso-->", base64_encode($c->Codigo), $copia);
        $copia = str_replace("<!--codres-->", is_null($c->CodResolucao) ? "" : base64_encode($c->CodResolucao), $copia);
        $copia = str_replace("<!--titulo-->", $c->Nome, $copia);
        $copia = str_replace("<!--dificuldade-->", $c->NivelDif, $copia);
        $copia = str_replace("<!--descricao-->", $c->Descricao, $copia);
        if ($c->CodSituacao == 1) {
            $casosnaoini .= $copia;
        } else {
            if ($c->CodSituacao == 2) {
                $casosini .= $copia;
            } else {
                if ($c->CodSituacao == 3) {
                    $casosconc .= $copia;
                }
            }
        }
    }
    if ($casosnaoini == '') {
        $casosnaoini = '@lng[Nenhum caso a listar]';
    }
    if ($casosini == '') {
        $casosini = '@lng[Nenhum caso a listar]';
    }
    if ($casosconc == '') {
        $casosconc = '@lng[Nenhum caso a listar]';
    }
    $tpl_lista = str_replace("<!--listacasos1-->", $casosnaoini, $tpl_lista);
    $tpl_lista = str_replace("<!--listacasos2-->", $casosini, $tpl_lista);
    $tpl_lista = str_replace("<!--listacasos3-->", $casosconc, $tpl_lista);
    $tpl = str_replace("<!--conteudo-->", $tpl_lista, $tpl);
    header('Content-Type: text/html; charset=iso-8859-1');
    echo Comuns::Idioma($tpl);
}
示例#4
0
function Main()
{
    header('Content-Type: text/html; charset=iso-8859-1');
    if (isset($_SESSION['caso']) && $_SESSION['caso'] != 0) {
        if (Caso::ConsultaSituacao($_SESSION['caso']) == 0) {
            $secao = $_POST['etapa'];
            $retorno = "";
            switch ($secao) {
                case "basicos":
                    //fntProcessaDadosBasicos();
                    break;
                case "objetivos":
                    $retorno = fntDeletaObjetivos();
                    break;
                case "anamnese":
                    //fntProcessaDadosAnamnese();
                    break;
                case "examefisico":
                    //fntProcessaDadosExameFisico();
                    break;
                case "hipoteses":
                    $retorno = fntDeletaHipoteses();
                    break;
                case "exames":
                    $retorno = fntDeletaExames();
                    break;
                case "diagnosticos":
                    $retorno = fntDeletaDiagnosticos();
                    break;
                case "tratamentos":
                    $retorno = fntDeletaTratamentos();
                    break;
                case "desfechos":
                    $retorno = fntDeletaDesfechos();
                    break;
                case "conteudos":
                    $retorno = fntDeletaConteudos();
                    break;
                case "exercicios":
                    //fntProcessaDadosExercicios();
                    break;
                case "montagem":
                    //fntProcessaDadosMontagem();
                    break;
            }
            echo Comuns::Idioma($retorno);
        } else {
            echo Comuns::Idioma("ERRO. @lng[Este caso está publicado, não será possível modificar seus dados.]");
        }
    } else {
        echo Comuns::Idioma("ERRO. @lng[Não foi possível excluir os dados.]");
    }
}
示例#5
0
function Main()
{
    if (isset($_SESSION['casores']) && $_SESSION['casores'] > 0) {
        $tpl = file_get_contents("tpl/aluno/opcoescaso.html");
        $infos = Caso::ConsultaInfosCaso($_SESSION['casores']);
        $tpl = str_replace('<!--titulocaso-->', $infos['nome'], $tpl);
        $tpl = str_replace('<!--codcaso-->', base64_encode($infos['codigo']), $tpl);
        echo $tpl;
    } else {
        $msg = base64_encode("@lng[Caso não informado]");
        header("Location:aluno.php?msg=" . $msg);
    }
}
function Main()
{
    if (isset($_SESSION['caso']) && $_SESSION['caso'] != 0) {
        $c = new Caso();
        $c->setCodigo($_SESSION['caso']);
        $rs = $c->ListaUsuariosColaboradores();
        if ($rs != 0) {
            if (mysql_num_rows($rs) > 0) {
                while ($linha = mysql_fetch_array($rs)) {
                    $opts .= '<option ' . ($linha["Ativo"] == true ? '' : 'class="item-inativo"') . ' value="' . $linha["Codigo"] . '">' . $linha["NomeCompleto"] . ' (' . $linha["NomeUsuario"] . ($linha["Ativo"] == true ? '' : ' - X') . ')</option>';
                }
            } else {
                $opts = '';
            }
        } else {
            $opts = '';
        }
        header('Content-Type: text/html; charset=iso-8859-1');
        echo $opts;
    } else {
        throw new Exception("@lng[Caso não identificado.]", 1000);
    }
}
示例#7
0
function Main()
{
    //header('Content-Type: text/html; charset=iso-8859-1');
    $acao = $_GET['act'];
    $acaoload = false;
    $tpl = file_get_contents("tpl/casos-inicio.html");
    if ($acao == "new") {
        $_SESSION['caso'] = 0;
    } else {
        if ($acao == "") {
            if ($_GET['cod'] != "" && is_numeric(base64_decode($_GET['cod'])) == true) {
                $_SESSION['caso'] = base64_decode($_GET['cod']);
            } else {
                if (!isset($_SESSION['caso'])) {
                    $_SESSION['caso'] = 0;
                }
            }
        }
    }
    $tpl = str_replace("<!--javaonload-->", $acao == "new" ? "fntLoadTela('basicos');" : "", $tpl);
    if (isset($_SESSION['caso']) && $_SESSION['caso'] > 0) {
        if (Caso::ConsultaSituacao($_SESSION['caso']) == 0) {
            $botoes = Botao::BotaoPublicar("fntPublicaCaso();", "@lng[Publicar o caso clínico]");
        } else {
            $botoes = Botao::BotaoDespublicar("fntDespublicaCaso();", "@lng[Cancelar publicação]");
        }
        $botoes .= Botao::BotaoVisualizar("fntInstanciaPreview('" . base64_encode($_SESSION['caso']) . "');", "@lng[Visualizar o caso clínico]");
        $tpl = str_replace("caso-estilo", '', $tpl);
        $infoscaso = Caso::ConsultaInfosCaso($_SESSION['caso']);
        $evento = "Acessou o caso clínico " . $infoscaso['nome'] . " (código " . $infoscaso['codigo'] . ")";
        Log::RegistraLog($evento);
    } else {
        $tpl = str_replace("caso-estilo", 'style="display:none;"', $tpl);
        $botoes = "";
    }
    $tpl = str_replace("<!--itens-toolbar-->", $botoes, $tpl);
    $tpl = str_replace("<!--CodCaso-->", base64_encode($_SESSION['caso']), $tpl);
    $tpl = str_replace("<!--Mensagem-->", isset($mensagem) && $mensagem != "" ? base64_decode($mensagem) : "", $tpl);
    $u = unserialize($_SESSION["usu"]);
    $mensagem = $_GET["m"];
    $tpl = str_replace("<!--telatopo-->", Comuns::GeraTopoPagina($u), $tpl);
    echo Comuns::Idioma($tpl);
}
示例#8
0
function Main()
{
    $u = unserialize($_SESSION['usu']);
    $res = new Resolucao();
    $res->setCodcaso($_SESSION['casores']);
    $res->setCodUsuario($u->getCodigo());
    $msg = "";
    if ($u->TemGrupo(1) || $u->TemGrupo(4)) {
        if (Caso::ConsultaSituacao($_SESSION['casores']) == 0) {
            if (!$res->LimpaResolucao()) {
                $msg = "@lng[Erro ao limpar histórico de resoluções.]" . " " . $res->getErro();
            } else {
                $msg = "OK";
            }
        } else {
            $msg = "@lng[Erro. Este caso está publicado e não é possível limpar suas resoluções]";
        }
    }
    echo Comuns::Idioma($msg);
}
示例#9
0
 public function ListaRelacoesExame($codcaso, $codexame)
 {
     if (Caso::ERespostaImediata($codcaso) == false) {
         $sql = "select hip.CodHipotese, hip.Descricao ";
         $sql .= ",case when relexames.codexame is null then 0 else 1 end as TemRelacao ";
         $sql .= "from mescasohipotdiagn hip ";
         $sql .= "left outer join mesrelhipotesesexames relexames ";
         $sql .= "\t\t\t on relexames.CodCaso = hip.CodCaso ";
         $sql .= "\t\t\tand relexames.CodHipotese = hip.CodHipotese ";
         $sql .= "\t\t\tand relexames.CodExame = :pCodExame ";
         $sql .= "where hip.CodCaso = :pCodCaso;";
         $cnn = Conexao2::getInstance();
         $cmd = $cnn->prepare($sql);
         $cmd->bindParam(":pCodExame", $codexame, PDO::PARAM_INT);
         $cmd->bindParam(":pCodCaso", $codcaso, PDO::PARAM_INT);
         $cmd->execute();
         if ($cmd->errorCode() == Comuns::QUERY_OK) {
             if ($cmd->rowCount() > 0) {
                 $cont = 1;
                 while ($hipo = $cmd->fetch(PDO::FETCH_OBJ)) {
                     $checks .= '<input type="checkbox" name="chkHipXExames[]" id="chkHipXExames_' . $cont . '" value="' . base64_encode($hipo->CodHipotese) . '" ' . ($hipo->TemRelacao == 0 ? "" : 'checked="checked"') . ' class="checkrels campo" />' . $hipo->Descricao . '<br />';
                     $cont++;
                 }
             } else {
                 $checks = "@lng[Nenhuma hipótese diagnóstica cadastrada]";
             }
             return $checks;
         } else {
             $msg = $cmd->errorInfo();
             $this->msg_erro = $msg[2];
             return $this->msg_erro;
         }
     } else {
         $checks = "Este Caso de estudo é do tipo Feedback instantaneo e por isso não possui relações";
         return $checks;
     }
 }
示例#10
0
 public function ListaHipotesesCaso($codcaso)
 {
     try {
         $sql = "select CodHipotese, Descricao, Correto, Justificativa, ConteudoAdicional ";
         $sql .= "from mescasohipotdiagn hip ";
         $sql .= "where hip.CodCaso = :pCodCaso;";
         $cnn = Conexao2::getInstance();
         $cmd = $cnn->prepare($sql);
         $cmd->bindParam(":pCodCaso", $codcaso, PDO::PARAM_INT);
         $cmd->execute();
         if ($cmd->rowCount() > 0) {
             $tiporesp = Caso::BuscaConfiguracao($codcaso, "hipoteses", "TipoResp");
             switch ($tiporesp) {
                 case "CE":
                     $labelResposta = "Correto";
                     break;
                 case "ORD":
                     $labelResposta = "Ordem de chance";
                     break;
             }
             $tabela = Comuns::TopoTabelaListagem("Hipóteses cadastradas", "hipoteses", array("Nome", $labelResposta, "Ações"));
             while ($hipotese = $cmd->fetch(PDO::FETCH_OBJ)) {
                 $tabela .= '<tr>';
                 $tabela .= '  <td>' . $hipotese->Descricao . "</td>";
                 $tabela .= '  <td>' . ($tiporesp == "CE" ? SimNao::Descreve($hipotese->Correto) : $hipotese->Correto) . "</td>";
                 $tabela .= '  <td>';
                 $tabela .= '  <a href="javascript:void(0);" onclick="javascript:fntExibeCadastroEtapa(\'' . base64_encode($hipotese->CodHipotese) . '\');">' . Comuns::IMG_ACAO_EDITAR . '</a>';
                 $tabela .= '  <a href="javascript:void(0);" onclick="javascript:fntDeletaHipotese(\'' . base64_encode($hipotese->CodHipotese) . '\');">' . Comuns::IMG_ACAO_DELETAR . '</a>';
                 $tabela .= '  </td>';
                 $tabela = str_replace("##id##", "", $tabela);
                 $tabela .= "</tr>";
             }
             $tabela .= "</tbody></table>";
         } else {
             $tabela = "@lng[Nenhuma hipótese cadastrada até o momento]";
         }
     } catch (PDOException $ex) {
         $this->msg_erro = $ex->getMessage();
         $tabela = $this->msg_erro;
     }
     header('Content-Type: text/html; charset=iso-8859-1');
     return $tabela;
 }
示例#11
0
function Main()
{
    $codcaso = $_GET['c'];
    $direcao = $_POST['d'];
    $codcaso = is_null($codcaso) ? "" : $codcaso;
    $direcao = is_null($direcao) ? "f" : $direcao;
    if ($direcao != "p" && $direcao != "f") {
        $direcao = "p";
    }
    if ($codcaso == "") {
        if (!isset($_SESSION['casores']) || is_null('casores')) {
            $msg = base64_encode("@lng[Não foi informado nenhum caso de estudos]");
            header("Location:aluno.php?msg=" . $msg);
        }
    } else {
        $_SESSION['casores'] = base64_decode($codcaso);
        $_SESSION['status'] = false;
        $_SESSION['codresolucao'] = null;
        $_SESSION['chaveanterior'] = null;
        $_SESSION['chaveatual'] = null;
        $_SESSION['tipocont'] = null;
        $_SESSION['organizador'] = null;
        $_SESSION['ordem'] = null;
    }
    $chave = $_GET['k'];
    if (is_null($chave)) {
        $chave = "";
    }
    $tpl = file_get_contents("tpl/aluno/resolve.html");
    $u = unserialize($_SESSION["usu"]);
    //$u = new Usuario();
    $res = new Resolucao();
    $res->setCodcaso($_SESSION['casores']);
    $res->setCodusuario($u->getCodigo());
    if (!$_SESSION['status']) {
        $_SESSION['status'] = $res->BuscaStatusAndamento();
        if ($_SESSION['status'] == 1) {
            $res->IniciaResolucao();
        } else {
            if ($_SESSION['status'] == 2) {
                if ($_SESSION['codresolucao'] == null) {
                    $_SESSION['codresolucao'] = base64_decode($_GET['r']);
                }
                $res->setCodresolucao($_SESSION['codresolucao']);
                $res->RegistraAcesso($u->getIdAcessoAtual());
            } else {
                if ($_SESSION['status'] == 3) {
                    $res->IniciaResolucao();
                } else {
                    $_SESSION['status'] = false;
                    die("Inconsistencia localizada. " . $res->getErro());
                }
            }
        }
    }
    if ($_SESSION['status'] !== false) {
        $c = new Caso();
        $c->setCodigo($_SESSION['casores']);
        $c->CarregarCaso();
        //$conteudo = $c->BuscaProximoConteudo($chave, $direcao);
        $conteudo = $res->BuscaProximoConteudo($direcao);
        if (!$conteudo) {
            echo $res->getErro();
            return;
        }
        $tpl = str_replace("<!--titulocaso-->", $c->getNome(), $tpl);
        $tpl = str_replace("<!--titulosecao-->", $conteudo->getValue("titulosecao"), $tpl);
        $tpl = str_replace("<!--menusecao-->", $conteudo->getValue("menu"), $tpl);
        $tpl = str_replace("<!--conteudosecao-->", $conteudo->getValue("conteudo"), $tpl);
        $tpl = str_replace("<!--chave-->", $conteudo->getValue("chave"), $tpl);
        //$tpl = str_replace("<!--of-->", $conteudo->getValue("Obrigatorio"), $tpl);
        if ($conteudo->ContainsKey("javascript")) {
            $tpl = str_replace("<!--javascriptload-->", $conteudo->getValue("javascript"), $tpl);
        } else {
            $tpl = str_replace("<!--javascriptload-->", "", $tpl);
        }
        echo $tpl;
    } else {
        die("@lng[Status do caso não pode ser localizado. Detalhes:] " . $res->getErro());
    }
}
示例#12
0
function TrataDadosMontagem($template)
{
    if (isset($_SESSION['caso']) && $_SESSION['caso'] != 0) {
        $cas = new Caso();
        $itens = $cas->CarregaMontagem($_SESSION['caso']);
        if ($itens != false) {
            foreach ($itens as $item) {
                //$html .= '<li class="ui-state-default' . (($item->Fixo == 1) ? ' fixo' : '') . '" id="' . $item->Prefixo . $item->Chave . '">' . $item->Item . (($item->Fixo == 1) ? ' (Fixo)' : '') . '</li>';
                $html .= '<li class="conteudo-caso ' . ($item->Fixo == 1 ? 'ui-state-default' : 'ui-state-hover') . ' " id="' . $item->Prefixo . $item->Chave . '" title="' . strip_tags($item->Item) . '">' . strip_tags(substr($item->Item, 0, 90)) . '</li>';
            }
            $template = str_replace("<!--montagemcaso-->", $html, $template);
            return $template;
        } else {
            return $cas->getErro();
        }
    } else {
        return "@lng[Erro ao localizar o caso de estudo]";
    }
}
示例#13
0
function fntProcessaDadosMontagem()
{
    if ($_SESSION['caso'] > 0) {
        $itens = $_POST['item'];
        $c = new Caso();
        $c->setCodigo($_SESSION['caso']);
        $ret = $c->SalvaMontagem($itens);
        if ($ret == true) {
            echo "OK";
        } else {
            echo $c->getErro();
        }
    }
}
示例#14
0
 private function RenderAnamnese($parte = 1)
 {
     $an = new Anamnese();
     if ($an->Carrega($this->codcaso)) {
         $hash = new HashTable();
         $ca = new Caso();
         $ca->setCodigo($this->codcaso);
         $ca->CarregarCaso();
         if ($parte == 1) {
             if (!is_null($ca->getImagemPaciente())) {
                 $html .= '<img src="img/pe_' . $ca->getImagemPaciente() . '.png" class="img-paciente" alt="@lng[Imagem: Paciente]" title="@lng[Imagem: Paciente]" />';
             }
             $html .= '<div class="item-cont">@lng[Identificação]</div>';
             $html .= nl2br($an->getIdentificacao());
             $html .= '<div class="item-cont">@lng[Queixa principal]</div>';
             $html .= nl2br($an->getQueixapri());
             $html .= '<div class="item-cont">@lng[História atual]</div>';
             $html .= nl2br($an->getHistatual());
             $comandos = $this->BuscaMenusItem('an');
         } else {
             if ($parte == 2) {
                 $html .= '<div class="item-cont">@lng[História pregressa]</div>';
                 $html .= nl2br($an->getHistpregressa());
                 $html .= '<div class="item-cont">@lng[História familiar]</div>';
                 $html .= nl2br($an->getHistfamiliar());
                 if (strip_tags($an->getPerfilpsicosocial()) != '') {
                     $html .= '<div class="item-cont">@lng[Perfil psicosocial]</div>';
                     $html .= nl2br($an->getPerfilpsicosocial());
                 }
                 $html .= '<div class="item-cont">@lng[Revisão de sistemas]</div>';
                 $html .= nl2br($an->getRevsistemas());
                 $comandos = $this->BuscaMenusItem('aninv');
             }
         }
         //$comandos = $this->MontaAcoesVisualizacaoCaso($prefixo, $tipocaso, $chave);
         $hash->AddItem("titulosecao", $parte == 1 ? "@lng[Anamnese (identificação)]" : "@lng[Anamnese (investigação)]");
         $hash->AddItem("conteudo", $html);
         $hash->AddItem("menu", $comandos);
         $hash->AddItem("save", 'N');
         return $hash;
     } else {
         $msg = $cmd->errorInfo();
         $this->msg_erro = $msg[2];
         return false;
     }
 }
示例#15
0
function fntGeraNovaVersaoCaso()
{
    if (isset($_SESSION['caso']) && $_SESSION['caso'] != 0) {
        $c = new Caso();
        $c->setCodigo($_SESSION['caso']);
        if ($c->CriaNovaVersao()) {
            echo "SUCESSO";
        } else {
            echo "ERRO: " . $c->getErro();
        }
    } else {
        echo Comuns::Idioma("ERRO @lng[Não foi possível atualizar os dados.]");
    }
}
示例#16
0
 public function ListaRelacoesDesfecho($codcaso, $coddesfecho)
 {
     if (Caso::ERespostaImediata($codcaso) == false) {
         $sql = "select trat.CodTratamento, trat.Titulo ";
         $sql .= ",case when des.CodDesfecho is null then 0 else 1 end as TemRelacao ";
         $sql .= "from mescasotratamento trat ";
         $sql .= "left outer join mesreltratamentodesfecho des ";
         $sql .= "\t\t\t on des.CodCaso = trat.CodCaso ";
         $sql .= "\t\t\tand des.CodTratamento = trat.CodTratamento ";
         $sql .= "\t\t\tand des.CodDesfecho = :pCodDesfecho ";
         $sql .= "where trat.CodCaso = :pCodCaso;";
         $cnn = Conexao2::getInstance();
         $cmd = $cnn->prepare($sql);
         $cmd->bindParam(":pCodDesfecho", $coddesfecho, PDO::PARAM_INT);
         $cmd->bindParam(":pCodCaso", $codcaso, PDO::PARAM_INT);
         $cmd->execute();
         if ($cmd->errorCode() == Comuns::QUERY_OK) {
             if ($cmd->rowCount() > 0) {
                 $cont = 1;
                 while ($trat = $cmd->fetch(PDO::FETCH_OBJ)) {
                     $checks .= '<input type="checkbox" name="chkTratXDesf[]" id="chkTratXDesf_' . $cont . '" value="' . base64_encode($trat->CodTratamento) . '" ' . ($trat->TemRelacao == 0 ? "" : 'checked="checked"') . ' class="checkrels campo" />' . $trat->Titulo . '<br />';
                     $cont++;
                 }
             } else {
                 $checks = "@lng[Nenhum tratamento cadastrado]";
             }
             return $checks;
         } else {
             $msg = $cmd->errorInfo();
             $this->msg_erro = $msg[2];
             return $this->msg_erro;
         }
     } else {
         $checks = "@lng[Este Caso de estudo é do tipo Feedback instantaneo e por isso não possui relações]";
         return $checks;
     }
 }
示例#17
0
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);
}