public static function determinarDiagnosticoNutricional($curva)
 {
     if (!empty($curva)) {
         // Percentis
         $percentilMediano = $curva->getPercentilMediano();
         $percentilInferior = $curva->getPercentilInferior();
         $percentilSuperior = $curva->getPercentilSuperior();
         if (!empty($percentilMediano) || !empty($percentilInferior) || !empty($percentilSuperior)) {
             //captura o diagnóstico avaliando o percentil
             $diagnostico = PercentilController::determinarDiagnosticoPercentil($curva);
         } else {
             //captura o diagnóstico avaliando o imc
             $imc = $curva->getImc();
             $diagnostico = IMCController::determinarDiagnosticoIMC($imc);
         }
     }
     return $diagnostico;
 }
Esempio n. 2
0
/**
 * 
 * @param type $name Description
 * 
 * @return type Description
 */
function calcularPerfilAntropometrico()
{
    /**
     * Anamnese: Peso, altura, idade, sexo
     * Acima de 19 calcular IMC
     * Abaixo de 19 anos verificar percentil: IMC x Idade.
     */
    $request = \Slim\Slim::getInstance()->request();
    $body = $request->getBody();
    $anamneseJson = json_decode($body);
    // Entrevistado
    $nascimento = $anamneseJson->entrevistado->nascimento;
    $sexo = strtoupper($anamneseJson->entrevistado->sexo);
    // Anamnese.
    $peso = $anamneseJson->peso;
    $altura = $anamneseJson->altura;
    $validacao = PerfilAntropometricoValidate::validate($peso, $altura, $sexo, $nascimento);
    if ($validacao == VALIDO) {
        $anamnese = new Anamnese();
        $anamnese->setPeso($peso);
        $anamnese->setAltura($altura);
        // Entrevistado
        $entrevistado = new Entrevistado();
        $entrevistado->setNascimento($nascimento);
        $entrevistado->setSexo($sexo);
        $anamnese->setEntrevistado($entrevistado);
        // Calcular IMC
        $imcValor = IMCController::calculaIMC($peso, $altura);
        $idadeMeses = DataUtil::calcularIdadeMeses($nascimento);
        $idadeAnos = DataUtil::calcularIdadeAnos($nascimento);
        $curva = new Curva();
        // Acima de 19 calcular IMC.
        if ($idadeMeses > IDADE_PERCENTIL_19) {
            // Cálculo do IMC para entrevistado acima de 19 anos.
            $imc = new Imc();
            $imc->setValor($imcValor);
            $curva->setImc($imc);
        } else {
            $percentilMediano = PercentilController::calcularPercentil($imcValor, $sexo, $nascimento);
            if (!empty($percentilMediano)) {
                $curva->setPercentilMediano($percentilMediano);
            } else {
                $curva = PercentilController::calcularPercentilMargens($imcValor, $sexo, $nascimento);
            }
        }
        // IMC padrão.
        $imc = new Imc();
        $imc->setValor($imcValor);
        $curva->setImc($imc);
        $diagnostico = PercentilController::determinarDiagnosticoNutricional($curva);
        $curva->setDiagnostico($diagnostico);
        echoRespnse(HTTP_OK, $curva);
    } else {
    }
}