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; }
/** * * @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 { } }