示例#1
0
 function getStatsPages()
 {
     global $session;
     // Date de lancement des statistiques.
     $datestats = new clDate(DATESTATS);
     // On récupère la liste des utilisateurs s'étant déjà connectés.
     $param['cw'] = "WHERE idapplication=" . IDAPPLICATION;
     $req = new clResultQuery();
     $res = $req->Execute("Fichier", "getSessionsPersonnes", $param, "ResultQuery");
     // Fabrication du tableau attendu par ModeliXe.
     $tab['%'] = "globales";
     for ($i = 0; isset($res['uid'][$i]); $i++) {
         $tab[$res['uid'][$i]] = "de " . $res['uid'][$i] . " (" . $res['somme'][$i] . ")";
     }
     // Initialisation de l'utilisateur sélectionné et du filtre MySQL correspondant.
     if (!isset($_POST['choix'])) {
         if (isset($_GET['choix'])) {
             $_POST['choix'] = $_GET['choix'];
         } else {
             $_POST['choix'] = "%";
         }
     }
     // Application du filtre MySQL pour aller récupérer les statistiques de l'utilisateur.
     $param['cw'] = "WHERE uid LIKE '" . $_POST['choix'] . "' AND idapplication=" . IDAPPLICATION;
     $param['cs'] = "";
     $req = new clResultQuery();
     $res = $req->Execute("Fichier", "getSessionsStatistiques", $param, "ResultQuery");
     // Pour chaque statistique récupérées, on incrémente une case d'un tableau avec son nombre de clic. Il y a une case
     // par partie du Terminal.
     $stats["Total de clics"] = 0;
     for ($i = 0; isset($res['idstats'][$i]); $i++) {
         if ($res['loc2'][$i]) {
             if ($res['loc1'][$i]) {
                 if (isset($stats[$res['loc1'][$i] . "->" . $res['loc2'][$i]])) {
                     $stats[$res['loc1'][$i] . "->" . $res['loc2'][$i]] += $res['nombre'][$i];
                 } else {
                     $stats[$res['loc1'][$i] . "->" . $res['loc2'][$i]] = $res['nombre'][$i];
                 }
             }
         } else {
             if ($res['loc1'][$i]) {
                 if (isset($stats[$res['loc1'][$i]])) {
                     $stats[$res['loc1'][$i]] += $res['nombre'][$i];
                 } else {
                     $stats[$res['loc1'][$i]] = $res['nombre'][$i];
                 }
             }
         }
         // Calcul du nombre total de clic pour cet utilisateur.
         $stats["Total de clics"] += $res['nombre'][$i];
     }
     // Chargement du template ModeliXe.
     $mod = new ModeliXe("SessionsStatistiques.mxt");
     $mod->SetModeliXe();
     // Chargement du template ListMaker pour faire le tableau.
     $list = new ListMaker("template/SessionsStatistiques.html");
     // Passage des variables à transmettre et de leurs valeurs.
     $list->addUserVar('navi', $session->genNavi($session->getNavi(0), $session->getNavi(1)));
     $list->addUrlVar('navi', $session->genNavi($session->getNavi(0), $session->getNavi(1)));
     $list->addUserVar('choix', $_POST['choix']);
     $list->addUrlVar('choix', $_POST['choix']);
     // Nom des colonnes du tableau.
     $list->setSortColumn('col1', 'Page', 'page');
     $list->setSortColumn('col2', 'Clics', 'clics');
     // On alterne les couleurs en fonction de la parité de la ligne.
     $list->setAlternateColor("pair", "impair");
     // On parcourt le tableau précédemment calculé contenant les statistiques,
     // et on les ajoute au template ListMaker.
     if (is_array($stats)) {
         for ($i = 0; list($key, $val) = each($stats); $i++) {
             $item['page'] = $key;
             $item['clics'] = $val;
             $list->addItem($item);
         }
     }
     // Affichage d'informations complémentaires si nous ne sommes pas dans le cas
     // de statistiques globales.
     if ($_POST['choix'] != "%") {
         // Si l'utilisateur est connecté, on affiche un message le signalant.
         $param['cw'] = "WHERE uid LIKE '" . $_POST['choix'] . "' AND idapplication=" . IDAPPLICATION;
         $req = new clResultQuery();
         $res = $req->Execute("Fichier", "getSessionsActuelles", $param, "ResultQuery");
         if ($res['INDIC_SVC'][2]) {
             $infos = "Cet utilisateur est actuellement connecté.<br />";
         }
         // Sinon, on affiche les informations de sa dernière connexion.
         if (!isset($infos) or !$infos) {
             // Récupération des informations.
             $param['cw'] = "WHERE uid LIKE '" . $_POST['choix'] . "' AND idapplication=" . IDAPPLICATION . " ORDER BY dateslast DESC";
             $req = new clResultQuery();
             $res = $req->Execute("Fichier", "getSessionsHistorique", $param, "ResultQuery");
             // Calcul de la durée de connexion et affichage des différentes dates.
             $last = new clDate(isset($res['dateslast'][0]) ? $res['dateslast'][0] : '');
             $date = new clDate(isset($res['dateshisto'][0]) ? $res['dateshisto'][0] : '');
             $duree = new clDuree($last->getDifference($date));
             if ((isset($res['nombre'][0]) ? $res['nombre'][0] : '0') > 1) {
                 $sc = "s";
             } else {
                 $sc = '';
             }
             if ($duree->getMinutes() > 1) {
                 $sm = "s";
             } else {
                 $sm = '';
             }
             if ($duree->getSeconds() > 1) {
                 $ss = "s";
             } else {
                 $ss = '';
             }
             if ($duree->getMinutes() > 0) {
                 $temps = $duree->getMinutes() . " minute{$sm}";
             } else {
                 $temps = $duree->getSeconds() . " seconde{$ss}";
             }
             $infos = "Dernière connexion le " . $date->getDateTextFull("à") . " (" . (isset($res['nombre'][0]) ? $res['nombre'][0] : '0') . " clic{$sc}, durée de {$temps})<br />";
             $infos .= "Déconnexion enregistrée le " . $last->getDateTextFull("à") . "<br />";
         }
         $mod->MxText("informations", $infos);
     } else {
         $mod->MxText("informations", '--');
     }
     // On affiche la date à laquelle les stats ont commencé être enregistrées.
     $mod->MxText("datestats", $datestats->getDateText());
     // Affichage du tableau de stats.
     $mod->MxText("table", $list->getList(isset($pagination) ? $pagination : ''));
     // Affichage de la liste des personnes à sélectionner.
     $mod->MxSelect("choix", "choix", $_POST['choix'], $tab, '', '', "onChange=reload(this.form)");
     // Variable de navigation.
     $mod->MxHidden("hidden", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1)));
     //$this->genGraphs ( $mod ) ;
     $mod->MxCheckerField("graph", "checkbox", 'graph', 1, isset($_POST['graph']) ? $_POST['graph'] ? true : false : false, "title='Graphiques' onChange=reload(this.form)");
     if (isset($_POST['graph']) and $_POST['graph']) {
         $this->genGraphs($mod);
         $mod->MxText("graphs.clicsHeure", "<img src=\"cache/image1.png\" alt=\"Clics par heure\"></img>");
         $mod->MxText("graphs.tempsHeure", "<img src=\"cache/image2.png\" alt=\"Temps par clics moyen par heure\"></img>");
         $mod->MxText("graphs.clicsJour", "<img src=\"cache/image3.png\" alt=\"Clics par jour\"></img>");
     } else {
         $mod->MxBloc("graphs", "delete");
     }
     //$mod -> MxText ( "tempsJour", "<img src=cache/image4.png></img>" ) ;
     // Récupération du code HTML généré.
     return $mod->MxWrite("1");
 }
示例#2
0
文件: clHL7.php 项目: jeromecc/tuv2
 function addPatientHL7($data, $table, $base = BDD)
 {
     global $errs;
     global $options;
     // Calcul de la durée depuis lequel le patient est admis.
     $d1 = new clDate();
     $d2 = new clDate($data['dt_admission']);
     $duree = new clDuree($d1->getDifference($d2));
     $duree->invertNegatif();
     // Procédure anti-fantôme : si aucun de ces champs n'est saisi, on ne fait pas l'ajout du patient.
     if ($data['nom'] or $data['prenom'] or $data['sexe'] or $data['ilp']) {
         // Appel de la classe Requete.
         $requete = new clRequete($base, $table, $data);
         // Exécution de la requete.
         $res = $requete->addRecord();
         // eko ( "On ajoute un nouveau patient (nsej=$nsej)" ) ;
         // Si le patient est admis depuis plus de 30 minutes, alors il est placé dans la table des sortis
         if ($duree->getMinutes() > $options->getOption('ImportsBasculeSortis')) {
             $pat = new clPatient($res['cur_id'], '', $base);
             $pat->sortirPatient('simple');
         }
         $this->news1++;
     }
 }
示例#3
0
function addPatientSQL($idimport, $table)
{
    global $errs;
    global $news1;
    global $mods1;
    global $errs1;
    global $news2;
    global $mods2;
    global $errs2;
    // Récupération des informations sur le patient à créer.
    $param['cw'] = "WHERE idimport='{$idimport}'";
    $req = new clResultQuery();
    $res = $req->Execute("Fichier", "getImports", $param, "ResultQuery");
    $i = 0;
    if ($res['uf'][$i] == '6004') {
        $base = 'terminal2_tuv2';
        $news2++;
    } else {
        $base = BDD;
        $news1++;
    }
    if ($res['INDIC_SVC'][2]) {
        $ras = $req->Execute("Fichier", "getMaxIdToulon", $param, "ResultQuery");
        $max = 1;
        for ($j = 0; isset($ras['idpatient'][$j]); $j++) {
            if ($ras['idpatient'][$j] > $max) {
                $max = $ras['idpatient'][$j];
            }
        }
        $max++;
        $data['idpatient'] = $max;
        $data['idu'] = $res['idu'][$i];
        $data['ilp'] = $res['ilp'][$i];
        $data['nsej'] = $res['idpass'][$i];
        $data['uf'] = $res['uf'][$i];
        $data['nom'] = $res['nom'][$i];
        $data['prenom'] = $res['prenom'][$i];
        $data['sexe'] = $res['sexe'][$i];
        $data['dt_naissance'] = $res['dt_naissance'][$i];
        $data['adresse_libre'] = $res['adresse_libre'][$i];
        $data['adresse_cp'] = $res['adresse_cp'][$i];
        $data['adresse_ville'] = $res['adresse_ville'][$i];
        $data['telephone'] = $res['telephone'][$i];
        $data['prevenir'] = str_replace('^', '<br/>', $res['prevenir'][$i]);
        $data['medecin_traitant'] = $res['medecin_traitant'][$i];
        $data['dt_admission'] = $res['dt_admission'][$i];
        $data['mode_admission'] = $res['mode_admission'][$i];
        $data['iduser'] = "******";
        $data['manuel'] = 0;
        //newfct ( gen_affiche_tableau, $data ) ;
        // Calcul de la durée depuis lequel le patient est admis.
        $d1 = new clDate();
        $d2 = new clDate($data['dt_admission']);
        $duree = new clDuree($d1->getDifference($d2));
        $duree->invertNegatif();
        // Appel de la classe Requete.
        $requete = new clRequete($base, $table, $data);
        // Exécution de la requete.
        $res = $requete->addRecord();
        // Si le patient est admis depuis plus de 30 minutes, alors il est placé dans la table des sortis
        if ($duree->getMinutes() > 30) {
            $pat = new clPatient($res['cur_id'], '', $base);
            $pat->sortirPatient('simple');
        }
        // Mise à jour de la date de traitement de l'import.
        $date = new clDate();
        $data2['dt_traitement'] = $date->getDatetime();
        // Appel de la classe Requete.
        $requete = new clRequete(BDD, IMPORTS, $data2);
        // Exécution de la requete.
        $requete->updRecord("idimport='{$idimport}'");
    } else {
        // En cas d'erreur, on la signale...
        $errs->addErreur("clImportation : Impossible d'importer ce nouveau patient, l'identifiant de l'import est introuvable (idimport=\"{$idimport}\").");
        $errs1++;
        $errs2++;
    }
}
示例#4
0
 function getLast()
 {
     global $options;
     if ($_POST['idSessionATQ']) {
         $session = $_POST['idSessionATQ'];
     }
     if ($_GET['idSessionATQ']) {
         $session = $_GET['idSessionATQ'];
     }
     if ($session) {
         $this->index = $session;
     } else {
         $this->index = "";
     }
     // Récupération de la date de dernier clic.
     $date = new clDate($_SESSION['last' . $this->index]);
     // Calcul de la durée entre ce dernier clic et maintenant.
     $dateN = new clDate();
     $duree = new clDuree();
     $duree->setValues($dateN->getDifference($date));
     // On calcule une clé de session s'il n'y en a pas déjà une.
     if (!$_SESSION['sidtuv2' . $this->index]) {
         $_SESSION['sidtuv2' . $this->index] = $this->genIdSession(16);
         // Affichage pour débugage.
         if (DEBUGSESSION) {
             print "<br />Génération de l'idSession : " . $_SESSION['sidtuv2' . $this->index];
         }
     } else {
         // Affichage pour débugage.
         if (DEBUGSESSION) {
             print "<br />idSession : " . $_SESSION['sidtuv2' . $this->index];
         }
     }
     // On vérifie que la session est toujours valide <=> que la durée calculée n'est pas supérieure
     // à la durée maximum d'inactivité.
     if ($duree->getMinutes() <= ($options->getOption("DureeSession") < 480 ? $options->getOption("DureeSession") : 480)) {
         $_SESSION['last' . $this->index] = $dateN->getDatetime();
         //	print affTab ( $_SESSION['informations'.$this->index] ) ;
         //	eko (  $_SESSION['informations'.$this->index] ) ;
         /*
         		mail( Erreurs_Mail, 'Trace connexion', 'Connexion active après '.$duree->getSeconds ( ).' secondes d\'inactivité.' .
         '\nHeure du clic : '.$dateN->getDatetime ( ).
         '\nHeure du précédent clic : '.$date->getDatetime ( )."<br/>" ) ;
         */
         /*
         		eko ( 'Connexion active après '.$duree->getSeconds ( ).' secondes d\'inactivité.' .
         		'<br/>Heure du clic : '.$dateN->getDatetime ( ).
         		'<br/>Heure du précédent clic : '.$date->getDatetime ( )."<br/>" ) ;
         */
         return $_SESSION['informations' . $this->index];
     } else {
         /*
               	$errs -> addErreur ( 'Déconnexion après '.$duree->getMinutes ( ).' minutes d\'inactivité.' .
         '<br/>Heure du clic : '.$dateN->getDatetime ( ).
         '<br/>Heure du précédent clic : '.$date->getDatetime ( ) ) ;
         */
         $entete = "<html><head><title>{$subject}</title><body>";
         $fin = "</ul></body></html>";
         $headers = "MIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1\r\n";
         $headers .= "To: " . Erreurs_Mail . "\r\nFrom: " . Erreurs_NomApp . "<" . Erreurs_MailApp . ">\r\n";
         /*
               		mail( '', '[XHAM V1] Trace connexion', $entete.' - Perte de la connexion après <b>'.$duree->getSeconds ( ).'</b> secondes d\'inactivité.<br/>' .
         ' - Heure du clic : <b>'.$dateN->getDatetime ( ).'</b><br/> - Heure du précédent clic : <b>'.$date->getDatetime ( ).'</b><br/>' .
         ' - Application : <b>'.NOMAPPLICATION.'</b><br/> - Durée maximale : <b>'.$options -> getOption ( "DureeSession" ).' minutes</b><br/>'.$fin, $headers ) ;
         */
         /*print 'Déconnexion après '.$duree->getMinutes ( ).' minutes d\'inactivité.' .
         		'<br/>Heure du clic : '.$dateN->getDatetime ( ).
         		'<br/>Heure du précédent clic : '.$date->getDatetime ( )."<br/>";*/
     }
     $_SESSION['last' . $this->index] = $dateN->getDatetime();
 }