コード例 #1
0
ファイル: index.php プロジェクト: joseilsonjunior/nutrif
/**
 * 
 * @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 {
    }
}
コード例 #2
0
 public static function calculaVCT($anamnese)
 {
     $entrevistado = $anamnese->getEntrevistado();
     $sexo = strtoupper($entrevistado->getSexo());
     $idade = DataUtil::calcularIdadeAnos($entrevistado->getNascimento());
     // Altura em cm.
     $alturaCm = $anamnese->getAltura();
     // Conversão para metro.
     $numeroUtil = NumeroUtil::singleton();
     $alturaMetro = $numeroUtil->formatDouble($alturaCm / FATOR_CENTIMETRO);
     $peso = $anamnese->getPeso();
     $nivelEsporte = $anamnese->getNivelEsporte();
     $vlNivelEsporte = 0;
     $taxaMetabolicaBasal = 0;
     //Verificando valores para os níveis de atividade física.
     if ($nivelEsporte == NIVEL_ESPORTE_LEVE) {
         if ($sexo == MASCULINO) {
             $vlNivelEsporte = 1.55;
         } else {
             if ($sexo == FEMININO) {
                 $vlNivelEsporte = 1.56;
             }
         }
     } else {
         if ($nivelEsporte == NIVEL_ESPORTE_MODERADO) {
             if ($sexo == MASCULINO) {
                 $vlNivelEsporte = 1.78;
             } else {
                 if ($sexo == FEMININO) {
                     $vlNivelEsporte = 1.64;
                 }
             }
         } else {
             if ($nivelEsporte == NIVEL_ESPORTE_INTENSO) {
                 if ($sexo == MASCULINO) {
                     $vlNivelEsporte = 2.1;
                 } else {
                     if ($sexo == FEMININO) {
                         $vlNivelEsporte = 1.82;
                     }
                 }
             }
         }
     }
     // Cálculo da taxa metabolica basal por idade e sexo.
     if (strtoupper($sexo) == MASCULINO) {
         if ($idade >= 10 && $idade < 18) {
             $taxaMetabolicaBasal = 16.6 * $peso + 77 * $alturaMetro + 572;
         } else {
             if ($idade >= 18 && $idade < 30) {
                 $taxaMetabolicaBasal = 15.4 * $peso + 27 * $alturaMetro + 717;
             } else {
                 if ($idade >= 30 && $idade <= 60) {
                     $taxaMetabolicaBasal = 11.3 * $peso + 16 * $alturaMetro + 901;
                 } else {
                     if ($idade > 60) {
                         $taxaMetabolicaBasal = 8.800000000000001 * $peso + 1.128 * $alturaMetro - 1071;
                     }
                 }
             }
         }
     } else {
         if (strtoupper($sexo) == FEMININO) {
             if ($idade >= 10 && $idade < 18) {
                 $taxaMetabolicaBasal = 7.4 * $peso + 482 * $alturaMetro + 217;
             } else {
                 if ($idade >= 18 && $idade < 30) {
                     $taxaMetabolicaBasal = 13.3 * $peso + 334 * $alturaMetro + 35;
                 } else {
                     if ($idade >= 30 && $idade <= 60) {
                         $taxaMetabolicaBasal = 8.699999999999999 * $peso - 255 * $alturaMetro + 865;
                     } else {
                         if ($idade > 60) {
                             $taxaMetabolicaBasal = 9.199999999999999 * $peso + (637 * $alturaMetro - 302);
                         }
                     }
                 }
             }
         }
     }
     $vct = new Vct();
     // VCT = Taxa Metabolica Basal * Nivel esporte
     $valorVct = $numeroUtil->formatDouble($taxaMetabolicaBasal * $vlNivelEsporte);
     $vct->setValor($valorVct);
     return $vct;
 }