$data[$axe] = array("options" => array("title" => utf8_encode("Durée d'attente"), "yaxis" => array("title" => "Nombre de passages"), "y2axis" => array("title" => "Temps (min.)")), "series" => array()); $series =& $data[$axe]['series']; computeAttente(array(array("Nombre de passages")), $series, $where, $ljoin, $dates, $period, $sejour, $total, "sejour.entree", "consultation._datetime"); break; case "diag_infirmier": $data[$axe] = array('options' => array('title' => utf8_encode('Par diagnostique infirmier')), 'series' => array()); $ds = CSQLDataSource::get("std"); $rpu = new CRPU(); $ljoin = array('sejour' => 'rpu.sejour_id = sejour.sejour_id'); unset($where["sejour.type"]); $where["diag_infirmier"] = "IS NOT NULL"; $group = CGroups::loadCurrent(); $group_id = $group->_id; $where['sejour.group_id'] = " = '{$group_id}'"; $where['sejour.entree'] = "BETWEEN '" . reset($dates) . "' AND '" . end($dates) . "'"; $nb_rpus = $rpu->countList($where, null, $ljoin); $percent = CValue::get("_percent") * $nb_rpus; $percent = $percent / 100; $sql = "SELECT TRIM(TRAILING '\r\n' from substring_index( `diag_infirmier` , '\\n', 1 )) AS categorie, COUNT(*) as nb_diag\n FROM `rpu`\n LEFT JOIN `sejour` ON `rpu`.sejour_id = `sejour`.sejour_id\n WHERE `diag_infirmier` IS NOT NULL\n AND `group_id` = '{$group_id}'\n AND `entree` BETWEEN '" . reset($dates) . "' AND '" . end($dates) . "'\n GROUP BY categorie\n HAVING nb_diag > {$percent}"; $result = $ds->exec($sql); $areas = array(); while ($row = $ds->fetchArray($result)) { $areas[] = $row["categorie"]; } $areas[] = "AUTRES DIAGNOSTICS"; foreach ($areas as &$_area) { $_area = rtrim($_area); $_area = CMbString::removeDiacritics($_area); $_area = strtoupper($_area); } $areas = array_unique($areas);