function _notifiable_report() {
 //
 // main API to reports
 //
     if (func_num_args()>0) {
         $arg_list = func_get_args();
         $menu_id = $arg_list[0];
         $post_vars = $arg_list[1];
         $get_vars = $arg_list[2];
         $validuser = $arg_list[3];
         $isadmin = $arg_list[4];
         //print_r($arg_list);
     }
     // always check dependencies
     if ($exitinfo = $this->missing_dependencies('notifiable')) {
         return print($exitinfo);
     }
     print "<span class='patient'>".FTITLE_NOTIFIABLE_REPORTS."</span><br/><br/>";
     $n = new notifiable_report;
     $g = new graph;
     $n->report_menu($menu_id, $post_vars, $get_vars);
     print "<table><tr><td>";
     // column 1
     switch($get_vars["report_menu"]) {
     case "TCL":
         if ($post_vars["submitreport"]) {
             $n->process_inclusive_dates($menu_id, $post_vars, $get_vars);
         }
         $n->form_inclusive_dates($menu_id, $post_vars, $get_vars);
         $n->display_tcl_inclusive_dates($menu_id, $post_vars, $get_vars);
         break;
     case "SUMMARY":
         $n->form_inclusive_dates($menu_id, $post_vars, $get_vars);
         if ($post_vars["submitreport"]) {
             $n->generate_summary($menu_id, $post_vars, $get_vars);
         }
         break;
     case "GRAPHS":
         $g->graph_menu($menu_id, $post_vars, $get_vars);
         switch($get_vars["graph"]) {
         case "LINE":
             $get_vars["module"] = $this->module;
             $g->graph_line($menu_id, $post_vars, $get_vars);
             break;
         case "BAR":
             $get_vars["module"] = $this->module;
             $g->graph_bar($menu_id, $post_vars, $get_vars);
             break;
         case "PIE":
             $get_vars["module"] = $this->module;
             $g->graph_pie($menu_id, $post_vars, $get_vars);
             break;
         }
         break;
     }
     print "</td></tr></table>";
 }