function selectUsuarioEntrevistado($cdEntrevistado) { $entrevistado = null; $stmt = $this->conn->prepare("SELECT usuario.cd_usuario, " . "usuario.dt_nascimento, usuario.nm_sexo, usuario.cd_tipousuario " . "FROM tb_usuario AS usuario " . "WHERE usuario.cd_usuario = ?"); $stmt->bind_param("i", $cdEntrevistado); $stmt->execute(); $resultStmt = $stmt->store_result(); if ($resultStmt && $stmt->num_rows > 0) { // Campos de retorno do usuário. $stmt->bind_result($codigo, $nascimento, $sexo, $tipoUsuario); $stmt->fetch(); $entrevistado = new Entrevistado(); $entrevistado->setCodigo($codigo); $entrevistado->setNascimento($nascimento); $entrevistado->setSexo($sexo); $entrevistado->setTipoUsuario($tipoUsuario); } $stmt->close(); return $entrevistado; }
/** * * @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 { } }