/** * Descrição * @param type $matricula * @return array */ public function selectAnamnesesEntrevistado($matricula) { $anamneses = array(); // Montar consulta. $sql = "SELECT e.cd_entrevistado, e.nr_matricula, u.dt_nascimento," . " u.nm_sexo, a.nr_peso, a.nr_altura, a.nr_nivel_esporte" . " FROM tb_entrevistado AS e, tb_usuario AS u, tb_anamnese AS a" . " WHERE e.cd_usuario = u.cd_usuario" . " AND e.cd_entrevistado = a.cd_entrevistado" . " AND e.nr_matricula = " . $matricula; $result = $this->conn->query($sql); if ($result) { while ($row = $result->fetch_assoc()) { $entrevistado = new Entrevistado(); $entrevistado->setCodigo($row["cd_entrevistado"]); $entrevistado->setMatricula($row["nr_matricula"]); $entrevistado->setNascimento($row["dt_nascimento"]); $entrevistado->setSexo($row["nm_sexo"]); $anamnese = new Anamnese(); $anamnese->setPeso($row["nr_peso"]); $anamnese->setAltura($row["nr_altura"]); $anamnese->setEntrevistado($entrevistado); array_push($anamneses, $anamnese); } } return $anamneses; }
/** * * @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 { } }