src/Helper/HealthHelper.php line 136

Open in your IDE?
  1. <?php
  2. namespace App\Helper;
  3. use App\Entity\CardiometabolicProfiles;
  4. use App\Entity\CardiovascularScore;
  5. use App\Entity\ScoreRisk;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. class HealthHelper
  8. {
  9.     public static function getLdlLimit(CardiometabolicProfiles $profile)
  10.     {
  11.         $afflictions = [
  12.             $profile->getMyocardialInfarction(),
  13.             $profile->getAnginaPectoris(),
  14.             $profile->getCoronaryArteryBypass(),
  15.             $profile->getArthritis(),
  16.             $profile->getStroke(),
  17.             $profile->getAngioplasty()
  18.         ];
  19.         if ($profile->getDiabetes() && in_array(true$afflictionstrue)) {
  20.             return 55;
  21.         } elseif ($profile->getDiabetes()) {
  22.             return 70;
  23.         }
  24.         return 100;
  25.     }
  26.     public static function waterCalculation($weight$sex)
  27.     {
  28.         $water $weight 32;
  29.         if ($sex == 2) {
  30.             if ($water 2.5) {
  31.                 $water 2.5;
  32.             }
  33.             if ($water 3.7) {
  34.                 $water 3.7;
  35.             }
  36.         } else {
  37.             if ($water 2) {
  38.                 $water 2;
  39.             }
  40.             if ($water 2.7) {
  41.                 $water 2.7;
  42.             }
  43.         }
  44.         return number_format($water2'.''');
  45.     }
  46.     public static function imcCalculation($height$weight)
  47.     {
  48.         $heightTemp = ($height 100) * ($height 100);
  49.         $imc $weight $heightTemp;
  50.         $imc round($imc 100) / 100.0;
  51.         return number_format($imc2'.''');
  52.     }
  53.     public static function weightLoss($height$weight)
  54.     {
  55.         $heightTemp = ($height 100) * ($height 100);
  56.         $optimalWeight $heightTemp 24.99;
  57.         $weightLoss round($weight $optimalWeight);
  58.         return max($weightLoss0);
  59.     }
  60.     public static function caloriesCalculation($weight$height$sex$age$physicalActivity$imc)
  61.     {
  62.         $calories = (10 $weight) + (6.25 $height) - ($age);
  63.         if ($sex == 2) {
  64.             $calories $calories 5;
  65.         } else {
  66.             $calories $calories 161;
  67.         }
  68.         switch ($physicalActivity) {
  69.             case 0:
  70.                 $calories $calories 1.2;
  71.                 break;
  72.             case 1:
  73.                 $calories $calories 1.375;
  74.                 break;
  75.             case 2:
  76.                 $calories $calories 1.55;
  77.                 break;
  78.             case 3:
  79.                 $calories $calories 1.725;
  80.                 break;
  81.             case 4:
  82.                 $calories $calories 1.9;
  83.                 break;
  84.         }
  85.         if ($imc 10) {
  86.             $calories $calories 800;
  87.         } elseif ($imc >= 10 && $imc 13) {
  88.             $calories $calories 600;
  89.         } elseif ($imc >= 13 && $imc 16) {
  90.             $calories $calories 400;
  91.         } elseif ($imc >= 16 && $imc 17) {
  92.             $calories $calories 200;
  93.         } elseif ($imc >= 17 && $imc 18.5) {
  94.             $calories $calories 100;
  95.         } elseif ($imc >= 25 && $imc 30) {
  96.             $calories $calories 200;
  97.         } elseif ($imc >= 30 && $imc 35) {
  98.             $calories $calories 400;
  99.         } elseif ($imc >= 35 && $imc 40) {
  100.             $calories $calories 600;
  101.         } elseif ($imc >= 40) {
  102.             $calories $calories 800;
  103.         }
  104.         $caloriesInteger round($calories);
  105.         return (int)$caloriesInteger;
  106.     }
  107.     public static function getSex($gender)
  108.     {
  109.         if ($gender === 1) {
  110.             return 'Female';
  111.         } else {
  112.             return 'Male';
  113.         }
  114.     }
  115.     public static function getScoreRisk(
  116.         CardiometabolicProfiles $profile,
  117.         ?ScoreRisk $selectedScoreRisk,
  118.         EntityManagerInterface $em
  119.     ) {
  120.         if ($profile->getDiabetes() && $profile->getTotalCholesterol() > && $profile->getHdlCholesterol() > 0) {
  121.             $scoreRisk $em->getRepository(ScoreRisk::class)->find(2);
  122.         }
  123.         if (
  124.             $profile->getMyocardialInfarction() ||
  125.             $profile->getAnginaPectoris() ||
  126.             $profile->getCoronaryArteryBypass() ||
  127.             $profile->getArthritis() ||
  128.             $profile->getAngioplasty() ||
  129.             $profile->getStroke()
  130.         ) {
  131.             $scoreRisk $em->getRepository(ScoreRisk::class)->find(3);
  132.     }
  133.     if ($scoreRisk && $selectedScoreRisk)
  134.         return $scoreRisk->getId() > $selectedScoreRisk->getId() ? 
  135.             $scoreRisk $selectedScoreRisk;
  136.         return $scoreRisk ?? $selectedScoreRisk;
  137.     }
  138.     public static function getScore(CardiometabolicProfiles $profile, ?CardiovascularScore $cvdScore, ?ScoreRisk $risk)
  139.     {
  140.         return $cvdScore?->getScore();
  141.     }
  142.     public static function parseScoreToArray($score)
  143.     {
  144.         return $score ? ['score' => $score] : null;
  145.     }
  146.     public static function diabetStatus($hba1c$fasting_blood_sugar)
  147.     {
  148.         $diabetes_status 0;
  149.         if ($hba1c >= 48 && $fasting_blood_sugar >= 126) {
  150.             $diabetes_status 1;
  151.         } else if ($hba1c >= 48 || $fasting_blood_sugar >= 126) {
  152.             $diabetes_status 2;
  153.         } else {
  154.             $diabetes_status 3;
  155.         }
  156.         if ($hba1c >= 39 && $hba1c <= 47) {
  157.             $diabetes_status 4;
  158.         }
  159.         return $diabetes_status;
  160.     }
  161. }