public static function getByAgeAndSex($age, $sex, $measure_id, $lab_config_id) { # Fetches the reference range based on supplied age and sex values global $con; $measure_id = mysql_real_escape_string($measure_id, $con); $lab_config_id = mysql_real_escape_string($lab_config_id, $con); $age = mysql_real_escape_string($age, $con); $sex = mysql_real_escape_string($sex, $con); $saved_db = DbUtil::switchToLabConfig($lab_config_id); $query_string = "SELECT * FROM reference_range WHERE measure_id={$measure_id}"; $retval = null; $resultset = query_associative_all($query_string, $row_count); if ($resultset == null || count($resultset) == 0) { return $retval; } foreach ($resultset as $record) { $ref_range = ReferenceRange::getObject($record); if ($ref_range->ageMin == 0 && $ref_range->ageMax == 0) { # No agewise split if ($ref_range->sex == "B" || strtolower($ref_range->sex) == strtolower($sex)) { return $ref_range; } } else { if ($ref_range->ageMin <= $age && $ref_range->ageMax >= $age) { # Age wise split exists if ($ref_range->sex == "B" || strtolower($ref_range->sex) == strtolower($sex)) { return $ref_range; } } } } DbUtil::switchRestore($saved_db); }
foreach ($reference_ranges_list as $range_list) { $measure_id = $measures_to_retain[$measure_count]; if ($measure_id == "") { continue; } if (count($range_list) == 0) { # Not a numeric field continue; } foreach ($range_list as $range_entry) { $range_lower = $range_entry[0]; $range_upper = $range_entry[1]; $age_min = $range_entry[2]; $age_max = $range_entry[3]; $gender_option = $range_entry[4]; $ref_range = new ReferenceRange(); $ref_range->measureId = $measure_id; $ref_range->ageMin = $age_min; $ref_range->ageMax = $age_max; $ref_range->sex = $gender_option; $ref_range->rangeLower = $range_lower; $ref_range->rangeUpper = $range_upper; $ref_range->addToDb($_SESSION['lab_config_id']); } $measure_count++; } # Remove measure entries marked for deletion foreach ($measures_to_delete as $measure_id) { # Disabled for version 0.8.4. # TODO: Check existing result values before deleting a measure //delete_test_type_measure($test_type_id, $measure_id);