public static function getAllVitals(array $filters, $dateOfBirth = null)
 {
     $data = array();
     $dates = array();
     $results = VitalSignGroup::getVitalsByFilters($filters);
     self::$_vitalSigns = array();
     foreach ($results as $result) {
         self::$_vitalSigns[] = $result;
         // get the age the date taken
         if (!isset($dates[$result['vitalSignGroupId']])) {
             $v = $result['vitalSignGroupId'];
             if ($dateOfBirth !== null) {
                 $v = GrowthChartBase::calculateMonthsDiff($dateOfBirth, strtotime($result['dateTime']), true);
             }
             $dates[$result['vitalSignGroupId']] = $v;
             $data["{$v}"] = array();
         }
         $convertedValues = VitalSignValue::convertValues($result['vital'], $result['value'], $result['units']);
         if ($convertedValues !== false) {
             $x = explode(' ', $convertedValues['metric']);
             $unit = array_pop($x);
             $y = implode(' ', $x);
         } else {
             $y = $result['value'];
         }
         $data["{$dates[$result['vitalSignGroupId']]}"][$result['vital']] = $y;
     }
     return $data;
 }