input->get(); $order_header_id = $gets["PID"]; $report = $gets["__report"]; $report_name = $this->create_report_name($order_header_id,$report); $this->dl_report($gets,$report_name); } function create_report_name($id,$rpt) { $sql = "select T_OrderHeaderLabNumberExt, fn_get_name(T_OrderHeaderM_PatientID) name from t_orderheader where T_OrderHeaderID = ? "; $query = $this->db->query($sql,array($id)); $nolab = "unknown-$id"; $name = "unknown"; if ($query) { $rows = $query->result_array(); if (count($rows) > 0 ) { $name = str_replace(" ", "_", $rows[0]["name"]); $nolab = $rows[0]["T_OrderHeaderLabNumberExt"]; } } $pos = strpos($rpt, "rpt_"); $rptname = "DEFAULT"; if ($pos > 0 ) { $epos = strpos($rpt,"_email"); if ($epos > 0 && $epos > $pos ) { $rptname = substr($rpt, $pos + 4 , $epos - $pos - 4 ); $rptname = strtoupper($rptname); } } switch($rptname) { case "TEST" : $rptname = "LAB"; break; } return $rptname . "-" . $nolab . "-" . $name . ".pdf"; } function dl_report($prm, $name) { $url = "http://localhost/birt/frameset?" ; $qry = ""; foreach($prm as $k => $v) { if ($qry != "" ) $qry .= "&"; $qry .= $k . "=" . urlencode($v); } $url .= $qry ; $data = file_get_contents($url); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . $name); header('Content-Transfer-Encoding: binary'); header('Connection: Keep-Alive'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); //header('Content-Length: ' . $size); echo $data; } }