예제 #1
0
     $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);