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; }