src/Entity/CardiometabolicProfiles.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Serializer\Annotation\Groups;
  5. use Symfony\Component\Serializer\Annotation\SerializedName;
  6. use App\Helper\Enums\BaseEnum;
  7. use App\Helper\ConvertUnitMeasures;
  8. /**
  9.  * CardiometabolicProfiles
  10.  *
  11.  * @ORM\Table(name="cardiometabolic_profiles")
  12.  * @ORM\Entity(repositoryClass="App\Repository\CardiometabolicProfilesRepository")
  13.  */
  14. class CardiometabolicProfiles
  15. {
  16.     /**
  17.      * @var int
  18.      *
  19.      * @ORM\Column(name="id", type="integer")
  20.      * @ORM\Id
  21.      * @ORM\GeneratedValue(strategy="AUTO")
  22.      * @Groups({"profile", "data_export"})
  23.      */
  24.     private $id;
  25.     /**
  26.      * @var int
  27.      *
  28.      * @ORM\Column(name="user_id", type="integer")
  29.      * @ORM\ManyToOne(targetEntity=Users::class)
  30.      * @ORM\JoinColumn(onDelete="CASCADE")
  31.      */
  32.     private $userId;
  33.     /**
  34.      * @var int
  35.      *
  36.      * @ORM\Column(name="country_id", type="integer")
  37.      * @Groups({"profile", "data_export"})
  38.      */
  39.     private $countryId;
  40.     /**
  41.      * @var int
  42.      *
  43.      * @ORM\Column(name="gender", type="smallint")
  44.      * @Groups({"profile", "data_export"})
  45.      */
  46.     private $gender;
  47.     /**
  48.      * @var int
  49.      *
  50.      * @ORM\Column(name="age", type="smallint")
  51.      * @Groups({"profile", "data_export"})
  52.      */
  53.     private $age;
  54.     /**
  55.      * @var float
  56.      *
  57.      * @ORM\Column(name="weight", type="float")
  58.      * @Groups({"profile", "data_export"})
  59.      */
  60.     private $weight;
  61.     /**
  62.      * @var float
  63.      *
  64.      * @ORM\Column(name="height", type="float")
  65.      * @Groups({"profile", "data_export"})
  66.      */
  67.     private $height;
  68.     /**
  69.      * @var int
  70.      *
  71.      * @ORM\Column(name="physical_activity_level", type="smallint")
  72.      * @Groups({"profile", "data_export"})
  73.      */
  74.     private $physicalActivityLevel;
  75.     /**
  76.      * @var bool
  77.      *
  78.      * @ORM\Column(name="smoker", type="boolean")
  79.      * @Groups({"profile", "data_export"})
  80.      */
  81.     private $smoker;
  82.     /**
  83.      * @var bool
  84.      *
  85.      * @ORM\Column(name="systolic_blood_pressure", type="smallint")
  86.      * @Groups({"profile", "data_export"})
  87.      */
  88.     private $systolicBloodPressure;
  89.     /**
  90.      * @var bool
  91.      *
  92.      * @ORM\Column(name="hypertension_treatment", type="boolean")
  93.      * @Groups({"profile", "data_export"})
  94.      */
  95.     private $hypertensionTreatment;
  96.     /**
  97.      * @var int
  98.      * 
  99.      * total cholesterol value in mg/dL
  100.      *
  101.      * @ORM\Column(name="total_cholesterol", type="float")
  102.      * @Groups({"profile", "data_export"})
  103.      */
  104.     private $totalCholesterol;
  105.     /**
  106.      * @var int
  107.      * 
  108.      * hdl cholesterol value in mg/dL
  109.      *
  110.      * @ORM\Column(name="hdl_cholesterol", type="float")
  111.      * @Groups({"profile", "data_export"})
  112.      */
  113.     private $hdlCholesterol;
  114.     /**
  115.      * @var int
  116.      * 
  117.      * non hdl cholesterol value in mg/dL
  118.      *
  119.      * @ORM\Column(name="non_hdl_cholesterol", type="float")
  120.      * @Groups({"profile", "data_export"})
  121.      */
  122.     private $nonHdlCholesterol;
  123.     /**
  124.      * @var bool
  125.      *
  126.      * @ORM\Column(name="myocardial_infarction", type="boolean")
  127.      * @Groups({"profile", "data_export"})
  128.      */
  129.     private $myocardialInfarction;
  130.     /**
  131.      * @var bool
  132.      *
  133.      * @ORM\Column(name="angina_pectoris", type="boolean")
  134.      * @Groups({"profile", "data_export"})
  135.      */
  136.     private $anginaPectoris;
  137.     /**
  138.      * @var bool
  139.      *
  140.      * @ORM\Column(name="coronary_artery_bypass", type="boolean")
  141.      * @Groups({"profile", "data_export"})
  142.      */
  143.     private $coronaryArteryBypass;
  144.     /**
  145.      * @var bool
  146.      *
  147.      * @ORM\Column(name="arthritis", type="boolean")
  148.      * @Groups({"profile", "data_export"})
  149.      */
  150.     private $arthritis;
  151.     /**
  152.      * @var bool
  153.      *
  154.      * @ORM\Column(name="stroke", type="boolean")
  155.      * @Groups({"profile", "data_export"})
  156.      */
  157.     private $stroke;
  158.     /**
  159.      * @var bool
  160.      *
  161.      * @ORM\Column(name="angioplasty", type="boolean")
  162.      * @Groups({"profile", "data_export"})
  163.      */
  164.     private $angioplasty;
  165.     /**
  166.      * @var bool
  167.      *
  168.      * @ORM\Column(name="diabetes", type="boolean")
  169.      * @Groups({"profile", "data_export"})
  170.      */
  171.     private $diabetes;
  172.     /**
  173.      * @var float
  174.      *
  175.      * @ORM\Column(name="water", type="float")
  176.      * @Groups({"profile", "data_export"})
  177.      */
  178.     private $water;
  179.     /**
  180.      * @var float
  181.      *
  182.      * @ORM\Column(name="imc", type="float")
  183.      * @Groups({"profile", "data_export"})
  184.      */
  185.     private $imc;
  186.     /**
  187.      * @var float
  188.      *
  189.      * @ORM\Column(name="calories", type="float")
  190.      * @Groups({"profile", "data_export"})
  191.      */
  192.     private $calories;
  193.     /**
  194.      * @var int
  195.      * 
  196.      * hba1c value in %
  197.      *
  198.      * @ORM\Column(name="hba1c", type="decimal", precision=20, scale=2)
  199.      * @Groups({"profile", "data_export"})
  200.      */
  201.     private $hba1c;
  202.     /**
  203.      * @var unitMeasureHba1cType
  204.      * @SerializedName("unit_measure_hba1c")
  205.      * 
  206.      * unit measure the hba1c value will be displayed in (doesn't affect the value of hba1c in the database)
  207.      * 
  208.      * @ORM\Column(name="unit_measure_hba1c", type="unit_measure_hba1c_enum_type", options={"default" : UnitMeasureHba1cType::PERCENT})
  209.      * @Groups({"profile", "data_export"})
  210.      */
  211.     private $unitMeasureHba1c;
  212.     /**
  213.      * @var float
  214.      * 
  215.      * fasting blood sugar value in mg/dL
  216.      *
  217.      * @ORM\Column(name="fasting_blood_sugar", type="decimal", precision=20, scale=2)
  218.      * @Groups({"profile", "data_export"})
  219.      */
  220.     private $fasting_blood_sugar;
  221.     /**
  222.      * @var float
  223.      *
  224.      * @ORM\Column(name="creatinine", type="float", nullable="true")
  225.      * @Groups({"profile", "data_export"})
  226.      */
  227.     private $creatinine;
  228.     /**
  229.      * @var float
  230.      *
  231.      * @ORM\Column(name="urea", type="float", nullable="true")
  232.      * @Groups({"profile", "data_export"})
  233.      */
  234.     private $urea;
  235.     /**
  236.      * @var float
  237.      * @SerializedName("egfr")
  238.      *
  239.      * @ORM\Column(name="egfr", type="float", nullable="true")
  240.      * @Groups({"profile", "data_export"})
  241.      */
  242.     private $eGFR;
  243.     /**
  244.      * @var UnitMeasureConcentrationType
  245.      * @SerializedName("unit_measure_concentration")
  246.      *
  247.      * unit measure the fasting blood sugar and cholesterol values will be displayed in
  248.      * (doesn't affect the values of fasting blood sugar and cholesterol in the database)
  249.      * 
  250.      * @ORM\Column(name="unit_measure_concentration", type="unit_measure_concentration_enum_type", options={"default" : UnitMeasureConcentrationType::MG_PER_DL})
  251.      * @Groups({"profile", "data_export"})
  252.      */
  253.     private $unitMeasureConcentration;
  254.     /**
  255.      * @var int
  256.      *
  257.      * @ORM\Column(name="cvd_score_id", type="integer")
  258.      * @Groups({"profile", "data_export"})
  259.      */
  260.     private $cvdScoreId;
  261.     /**
  262.      * @var bool
  263.      *
  264.      * @ORM\Column(name="master_profile", type="boolean")
  265.      * @Groups({"profile"})
  266.      */
  267.     private $masterProfile;
  268.     /**
  269.      * @var \DateTime
  270.      *
  271.      * @ORM\Column(name="created_at", type="datetime")
  272.      * @Groups({"profile", "data_export"})
  273.      */
  274.     private $createdAt;
  275.     /**
  276.      * @ORM\Column(type="integer")
  277.      * @Groups({"profile", "data_export"})
  278.      */
  279.     private $favourite_menus;
  280.     /**
  281.      * @ORM\Column(type="integer")
  282.      * @Groups({"profile", "data_export"})
  283.      */
  284.     private $diabetes_status;
  285.     /**
  286.      * @var int
  287.      * @SerializedName("diabetes_diagnosis_year")
  288.      * 
  289.      * @ORM\Column(name="diabetes_diagnosis_year", type="integer", options={"default" : 0})
  290.      * @Groups({"profile", "data_export"})
  291.      */
  292.     private $diabetesDiagnosisYear;
  293.     /**
  294.      * Get id
  295.      *
  296.      * @return int
  297.      */
  298.     public function getId()
  299.     {
  300.         return $this->id;
  301.     }
  302.     /**
  303.      * Set userId
  304.      *
  305.      * @param integer $userId
  306.      *
  307.      * @return CardiometabolicProfiles
  308.      */
  309.     public function setUserId($userId)
  310.     {
  311.         $this->userId $userId;
  312.         return $this;
  313.     }
  314.     /**
  315.      * Get userId
  316.      *
  317.      * @return int
  318.      */
  319.     public function getUserId()
  320.     {
  321.         return $this->userId;
  322.     }
  323.     /**
  324.      * Set countryId
  325.      *
  326.      * @param integer $countryId
  327.      *
  328.      * @return CardiometabolicProfiles
  329.      */
  330.     public function setCountryId($countryId)
  331.     {
  332.         $this->countryId $countryId;
  333.         return $this;
  334.     }
  335.     /**
  336.      * Get countryId
  337.      *
  338.      * @return int
  339.      */
  340.     public function getCountryId()
  341.     {
  342.         return $this->countryId;
  343.     }
  344.     /**
  345.      * Set gender
  346.      *
  347.      * @param integer $gender
  348.      *
  349.      * @return CardiometabolicProfiles
  350.      */
  351.     public function setGender($gender)
  352.     {
  353.         $this->gender $gender;
  354.         return $this;
  355.     }
  356.     /**
  357.      * Get gender
  358.      *
  359.      * @return int
  360.      */
  361.     public function getGender()
  362.     {
  363.         return $this->gender;
  364.     }
  365.     /**
  366.      * Set age
  367.      *
  368.      * @param integer $age
  369.      *
  370.      * @return CardiometabolicProfiles
  371.      */
  372.     public function setAge($age)
  373.     {
  374.         $this->age $age;
  375.         return $this;
  376.     }
  377.     /**
  378.      * Get age
  379.      *
  380.      * @return int
  381.      */
  382.     public function getAge()
  383.     {
  384.         return $this->age;
  385.     }
  386.     /**
  387.      * Set weight
  388.      *
  389.      * @param float $weight
  390.      *
  391.      * @return CardiometabolicProfiles
  392.      */
  393.     public function setWeight($weight)
  394.     {
  395.         $this->weight $weight;
  396.         return $this;
  397.     }
  398.     /**
  399.      * Get weight
  400.      *
  401.      * @return float
  402.      */
  403.     public function getWeight()
  404.     {
  405.         return $this->weight;
  406.     }
  407.     /**
  408.      * Set height
  409.      *
  410.      * @param float $height
  411.      *
  412.      * @return CardiometabolicProfiles
  413.      */
  414.     public function setHeight($height)
  415.     {
  416.         $this->height $height;
  417.         return $this;
  418.     }
  419.     /**
  420.      * Get height
  421.      *
  422.      * @return float
  423.      */
  424.     public function getHeight()
  425.     {
  426.         return $this->height;
  427.     }
  428.     /**
  429.      * Set physicalActivityLevel
  430.      *
  431.      * @param integer $physicalActivityLevel
  432.      *
  433.      * @return CardiometabolicProfiles
  434.      */
  435.     public function setPhysicalActivityLevel($physicalActivityLevel)
  436.     {
  437.         $this->physicalActivityLevel $physicalActivityLevel;
  438.         return $this;
  439.     }
  440.     /**
  441.      * Get physicalActivityLevel
  442.      *
  443.      * @return int
  444.      */
  445.     public function getPhysicalActivityLevel()
  446.     {
  447.         return $this->physicalActivityLevel;
  448.     }
  449.     /**
  450.      * Set smoker
  451.      *
  452.      * @param boolean $smoker
  453.      *
  454.      * @return CardiometabolicProfiles
  455.      */
  456.     public function setSmoker($smoker)
  457.     {
  458.         $this->smoker $smoker;
  459.         return $this;
  460.     }
  461.     /**
  462.      * Get smoker
  463.      *
  464.      * @return bool
  465.      */
  466.     public function getSmoker()
  467.     {
  468.         return $this->smoker;
  469.     }
  470.     /**
  471.      * Set systolicBloodPressure
  472.      *
  473.      * @param integer $systolicBloodPressure
  474.      *
  475.      * @return CardiometabolicProfiles
  476.      */
  477.     public function setSystolicBloodPressure($systolicBloodPressure)
  478.     {
  479.         $this->systolicBloodPressure $systolicBloodPressure;
  480.         return $this;
  481.     }
  482.     /**
  483.      * Get systolicBloodPressure
  484.      *
  485.      * @return int
  486.      */
  487.     public function getSystolicBloodPressure()
  488.     {
  489.         return $this->systolicBloodPressure;
  490.     }
  491.     /**
  492.      * Set hypertensionTreatment
  493.      *
  494.      * @param boolean $hypertensionTreatment
  495.      *
  496.      * @return CardiometabolicProfiles
  497.      */
  498.     public function setHypertensionTreatment($hypertensionTreatment)
  499.     {
  500.         $this->hypertensionTreatment = (int)$hypertensionTreatment;
  501.         return $this;
  502.     }
  503.     /**
  504.      * Get hypertensionTreatment
  505.      *
  506.      * @return bool
  507.      */
  508.     public function getHypertensionTreatment()
  509.     {
  510.         return $this->hypertensionTreatment;
  511.     }
  512.     /**
  513.      * Set totalCholesterol
  514.      *
  515.      * @param float $totalCholesterol
  516.      *
  517.      * @return CardiometabolicProfiles
  518.      */
  519.     public function setTotalCholesterol($totalCholesterol)
  520.     {
  521.         $this->totalCholesterol $totalCholesterol;
  522.         return $this;
  523.     }
  524.     /**
  525.      * Get totalCholesterol
  526.      *
  527.      * @return float
  528.      */
  529.     public function getTotalCholesterol($convert=false)
  530.     {
  531.     if ($convert)
  532.       return ConvertUnitMeasures::convertCholesterol(
  533.         $this->totalCholesterol$this->unitMeasureConcentration);
  534.     return $this->totalCholesterol;
  535.     }
  536.     /**
  537.      * Set hdlCholesterol
  538.      *
  539.      * @param float $hdlCholesterol
  540.      *
  541.      * @return CardiometabolicProfiles
  542.      */
  543.     public function setHdlCholesterol($hdlCholesterol)
  544.     {
  545.         $this->hdlCholesterol $hdlCholesterol;
  546.         return $this;
  547.     }
  548.     /**
  549.      * Get hdlCholesterol
  550.      *
  551.      * @return float
  552.      */
  553.     public function getHdlCholesterol($convert=false)
  554.     {
  555.     if ($convert)
  556.       return ConvertUnitMeasures::convertCholesterol(
  557.         $this->hdlCholesterol$this->unitMeasureConcentration);
  558.         return $this->hdlCholesterol;
  559.     }
  560.     /**
  561.      * Set nonHdlCholesterol
  562.      *
  563.      * @param float $nonHdlCholesterol
  564.      *
  565.      * @return CardiometabolicProfiles
  566.      */
  567.     public function setNonHdlCholesterol($nonHdlCholesterol)
  568.     {
  569.         $this->nonHdlCholesterol $nonHdlCholesterol;
  570.         return $this;
  571.     }
  572.     /**
  573.      * Get nonHdlCholesterol
  574.      *
  575.      * @return float
  576.      */
  577.     public function getNonHdlCholesterol($convert=false)
  578.     {
  579.     if ($convert)
  580.       return ConvertUnitMeasures::convertCholesterol(
  581.             $this->nonHdlCholesterol$this->unitMeasureConcentration);
  582.         return $this->nonHdlCholesterol;
  583.     }
  584.     /**
  585.      * Set myocardialInfarction
  586.      *
  587.      * @param boolean $myocardialInfarction
  588.      *
  589.      * @return CardiometabolicProfiles
  590.      */
  591.     public function setMyocardialInfarction($myocardialInfarction)
  592.     {
  593.         $this->myocardialInfarction = (int)$myocardialInfarction;
  594.         return $this;
  595.     }
  596.     /**
  597.      * Get myocardialInfarction
  598.      *
  599.      * @return bool
  600.      */
  601.     public function getMyocardialInfarction()
  602.     {
  603.         return $this->myocardialInfarction;
  604.     }
  605.     /**
  606.      * Set anginaPectoris
  607.      *
  608.      * @param boolean $anginaPectoris
  609.      *
  610.      * @return CardiometabolicProfiles
  611.      */
  612.     public function setAnginaPectoris($anginaPectoris)
  613.     {
  614.         $this->anginaPectoris = (int)$anginaPectoris;
  615.         return $this;
  616.     }
  617.     /**
  618.      * Get anginaPectoris
  619.      *
  620.      * @return bool
  621.      */
  622.     public function getAnginaPectoris()
  623.     {
  624.         return $this->anginaPectoris;
  625.     }
  626.     /**
  627.      * Set coronaryArteryBypass
  628.      *
  629.      * @param boolean $coronaryArteryBypass
  630.      *
  631.      * @return CardiometabolicProfiles
  632.      */
  633.     public function setCoronaryArteryBypass($coronaryArteryBypass)
  634.     {
  635.         $this->coronaryArteryBypass = (int)$coronaryArteryBypass;
  636.         return $this;
  637.     }
  638.     /**
  639.      * Get coronaryArteryBypass
  640.      *
  641.      * @return bool
  642.      */
  643.     public function getCoronaryArteryBypass()
  644.     {
  645.         return $this->coronaryArteryBypass;
  646.     }
  647.     /**
  648.      * Set arthritis
  649.      *
  650.      * @param boolean $arthritis
  651.      *
  652.      * @return CardiometabolicProfiles
  653.      */
  654.     public function setArthritis($arthritis)
  655.     {
  656.         $this->arthritis = (int)$arthritis;
  657.         return $this;
  658.     }
  659.     /**
  660.      * Get arthritis
  661.      *
  662.      * @return bool
  663.      */
  664.     public function getArthritis()
  665.     {
  666.         return $this->arthritis;
  667.     }
  668.     /**
  669.      * Set stroke
  670.      *
  671.      * @param boolean $stroke
  672.      *
  673.      * @return CardiometabolicProfiles
  674.      */
  675.     public function setStroke($stroke)
  676.     {
  677.         $this->stroke = (int)$stroke;
  678.         return $this;
  679.     }
  680.     /**
  681.      * Get stroke
  682.      *
  683.      * @return bool
  684.      */
  685.     public function getStroke()
  686.     {
  687.         return $this->stroke;
  688.     }
  689.     /**
  690.      * Set angioplasty
  691.      *
  692.      * @param boolean $angioplasty
  693.      *
  694.      * @return CardiometabolicProfiles
  695.      */
  696.     public function setAngioplasty($angioplasty)
  697.     {
  698.         $this->angioplasty $angioplasty;
  699.         return $this;
  700.     }
  701.     /**
  702.      * Get angioplasty
  703.      *
  704.      * @return bool
  705.      */
  706.     public function getAngioplasty()
  707.     {
  708.         return $this->angioplasty;
  709.     }
  710.     /**
  711.      * Set cvdScoreId
  712.      *
  713.      * @param integer $cvdScoreId
  714.      *
  715.      * @return CardiometabolicProfiles
  716.      */
  717.     public function setCvdScoreId($cvdScoreId)
  718.     {
  719.         $this->cvdScoreId $cvdScoreId;
  720.         return $this;
  721.     }
  722.     /**
  723.      * Get cvdScoreId
  724.      *
  725.      * @return int
  726.      */
  727.     public function getCvdScoreId()
  728.     {
  729.         return $this->cvdScoreId;
  730.     }
  731.     /**
  732.      * Set createdAt
  733.      *
  734.      * @param \DateTime $createdAt
  735.      *
  736.      * @return CardiometabolicProfiles
  737.      */
  738.     public function setCreatedAt($createdAt)
  739.     {
  740.         $this->createdAt $createdAt;
  741.         return $this;
  742.     }
  743.     /**
  744.      * Get createdAt
  745.      *
  746.      * @return \DateTime
  747.      */
  748.     public function getCreatedAt()
  749.     {
  750.         return $this->createdAt;
  751.     }
  752.     /**
  753.      * Set water
  754.      *
  755.      * @param float $water
  756.      *
  757.      * @return CardiometabolicProfiles
  758.      */
  759.     public function setWater($water)
  760.     {
  761.         $this->water $water;
  762.         return $this;
  763.     }
  764.     /**
  765.      * Get water
  766.      *
  767.      * @return float
  768.      */
  769.     public function getWater()
  770.     {
  771.         return $this->water;
  772.     }
  773.     /**
  774.      * Set imc
  775.      *
  776.      * @param float $imc
  777.      *
  778.      * @return CardiometabolicProfiles
  779.      */
  780.     public function setImc($imc)
  781.     {
  782.         $this->imc $imc;
  783.         return $this;
  784.     }
  785.     /**
  786.      * Get imc
  787.      *
  788.      * @return float
  789.      */
  790.     public function getImc()
  791.     {
  792.         return $this->imc;
  793.     }
  794.     /**
  795.      * Set calories
  796.      *
  797.      * @param float $calories
  798.      *
  799.      * @return CardiometabolicProfiles
  800.      */
  801.     public function setCalories($calories)
  802.     {
  803.         $this->calories $calories;
  804.         return $this;
  805.     }
  806.     /**
  807.      * Get calories
  808.      *
  809.      * @return float
  810.      */
  811.     public function getCalories()
  812.     {
  813.         return $this->calories;
  814.     }
  815.     /**
  816.      * @return bool
  817.      */
  818.     public function getDiabetes(): bool
  819.     {
  820.         return $this->diabetes;
  821.     }
  822.     /**
  823.      * @param bool $diabetes
  824.      */
  825.     public function setDiabetes(bool $diabetes): void
  826.     {
  827.         $this->diabetes $diabetes;
  828.     }
  829.     /**
  830.      * @return bool
  831.      */
  832.     public function getMasterProfile(): bool
  833.     {
  834.         return $this->masterProfile;
  835.     }
  836.     /**
  837.      * @param bool $masterProfile
  838.      */
  839.     public function setMasterProfile(bool $masterProfile): void
  840.     {
  841.         $this->masterProfile $masterProfile;
  842.     }
  843.     /**
  844.      * @return float
  845.      */
  846.     public function getHba1c($convert false): float
  847.     {
  848.     if ($convert)
  849.       return ConvertUnitMeasures::convertHba1c(
  850.             $this->hba1c$this->unitMeasureHba1c);
  851.         return $this->hba1c;
  852.     }
  853.     /**
  854.      * @param float $hba1c
  855.      */
  856.     public function setHba1c(float $hba1c): void
  857.     {
  858.         $this->hba1c $hba1c;
  859.     }
  860.     /**
  861.      * @return int
  862.      */
  863.     public function getFastingBloodSugar($convert=false): float
  864.     {
  865.     if ($convert)
  866.       return ConvertUnitMeasures::convertFastingBloodSugar(
  867.             $this->fasting_blood_sugar$this->unitMeasureConcentration);
  868.         return $this->fasting_blood_sugar;
  869.     }
  870.     /**
  871.      * @param int $fasting_blood_sugar
  872.      */
  873.     public function setFastingBloodSugar(float $fasting_blood_sugar): void
  874.     {
  875.         $this->fasting_blood_sugar $fasting_blood_sugar;
  876.     }
  877.     public function getFavouriteMenus(): ?int
  878.     {
  879.         return $this->favourite_menus;
  880.     }
  881.     public function setFavouriteMenus(int $favourite_menus): self
  882.     {
  883.         $this->favourite_menus $favourite_menus;
  884.         return $this;
  885.     }
  886.     public function addFavouriteMenus(int $favourite_menus): self
  887.     {
  888.         $this->favourite_menus += $favourite_menus;
  889.         return $this;
  890.     }
  891.     public function getDiabetesStatus(): ?int
  892.     {
  893.         return $this->diabetes_status;
  894.     }
  895.     public function setDiabetesStatus(int $diabetes_status): self
  896.     {
  897.         $this->diabetes_status $diabetes_status;
  898.         return $this;
  899.     }
  900.     /**
  901.      * Get the value of urea
  902.      */
  903.     public function getUrea($convert=false)
  904.     {
  905.     if ($convert)
  906.           return ConvertUnitMeasures::convertUrea(
  907.             $this->urea$this->unitMeasureConcentration);
  908.         return $this->urea;
  909.     }
  910.     /**
  911.      * Set the value of urea
  912.      */
  913.     public function setUrea($urea): self
  914.     {
  915.     $this->urea $urea;
  916.     return $this;
  917.     }
  918.     /**
  919.      * Get the value of unitMeasureHba1c
  920.      */
  921.     public function getUnitMeasureHba1c()
  922.     {
  923.         return $this->unitMeasureHba1c;
  924.     }
  925.     /**
  926.      * Set the value of unitMeasureHba1c
  927.      */
  928.     public function setUnitMeasureHba1c($unitMeasureHba1c): self
  929.     {
  930.     $this->unitMeasureHba1c UnitMeasureHba1cType::validate(
  931.         $unitMeasureHba1c ?? UnitMeasureHba1cType::MMOL_PER_MOL->value);
  932.         return $this;
  933.     }
  934.     /**
  935.      * Get the value of creatinine
  936.      */
  937.     public function getCreatinine($convert=false)
  938.     {
  939.     if ($convert)
  940.           return ConvertUnitMeasures::convertCreatinine(
  941.             $this->creatinine$this->unitMeasureConcentration);
  942.         return $this->creatinine;
  943.     }
  944.     /**
  945.      * Set the value of creatinine
  946.      */
  947.     public function setCreatinine($creatinine): self
  948.     {
  949.         $this->creatinine $creatinine;
  950.         return $this;
  951.     }
  952.     /**
  953.      * Get the value of eGFR
  954.      */
  955.     public function getEGFR()
  956.     {
  957.         return $this->eGFR;
  958.     }
  959.     /**
  960.      * Set the value of eGFR
  961.      */
  962.     public function setEGFR($eGFR): self
  963.     {
  964.         $this->eGFR $eGFR;
  965.         return $this;
  966.     }
  967.     /**
  968.      * Get the value of unitMeasureConcentration
  969.      */
  970.     public function getUnitMeasureConcentration()
  971.     {
  972.         return $this->unitMeasureConcentration;
  973.     }
  974.     /**
  975.      * Set the value of unitMeasureConcentration
  976.      */
  977.     public function setUnitMeasureConcentration($unitMeasureConcentration): self
  978.     {
  979.     $this->unitMeasureConcentration 
  980.         UnitMeasureConcentrationType::validate(
  981.             $unitMeasureConcentration ?? 
  982.                 UnitMeasureConcentrationType::MG_PER_DL->value);
  983.         return $this;
  984.     }
  985.     public function hasOneOrMoreSevereRiskConditions() : bool
  986.     {
  987.         return  $this->diabetes ||
  988.                 $this->myocardialInfarction ||
  989.                 $this->anginaPectoris ||
  990.                 $this->coronaryArteryBypass ||
  991.                 $this->arthritis ||
  992.                 $this->angioplasty ||
  993.                 $this->stroke;
  994.     }
  995.     /**
  996.      * Get the value of diabetesDiagnosisYear
  997.      */
  998.     public function getDiabetesDiagnosisYear()
  999.     {
  1000.         return $this->diabetesDiagnosisYear;
  1001.     }
  1002.     /**
  1003.      * Set the value of diabetesDiagnosisYear
  1004.      */
  1005.     public function setDiabetesDiagnosisYear($diabetesDiagnosisYear): self
  1006.     {
  1007.         $this->diabetesDiagnosisYear $diabetesDiagnosisYear;
  1008.         return $this;
  1009.     }
  1010. }
  1011. enum UnitMeasureHba1cTypestring
  1012. {
  1013.     use BaseEnum;
  1014.     case PERCENT '%';
  1015.     case MMOL_PER_MOL 'mmol/mol';
  1016. }
  1017. enum UnitMeasureConcentrationTypestring
  1018. {
  1019.     use BaseEnum;
  1020.     case MG_PER_DL 'mg/dL';
  1021.     case MMOL_PER_L 'mmol/L';
  1022. }