Ejemplo n.º 1
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();
 }
Ejemplo n.º 2
0
 function genEnvoi()
 {
     global $options;
     global $errs;
     //Attention, jour concerné = lendemain des données
     $dateJourConcerne = new clDate();
     $tsp = $dateJourConcerne->getTimestamp();
     define(nomForm, "URG");
     define(idActeur, $options->getOption('RPU_IdActeur'));
     define(arRequis, $options->getOption('RPU_AR_Actif'));
     define(cleDepot, $options->getOption('RPU_CleActeur'));
     define(mail, $options->getOption('RPU_AR_Mail'));
     define(cfg_expediteur_alerte, "terminal_urgences");
     define(chemin, URLRPU . 'arh/');
     define(date_jour, date("Ymd", $tsp));
     define(jour, substr(date_jour, 6, 2));
     define(mois, substr(date_jour, 4, 2));
     define(annee, substr(date_jour, 0, 4));
     define(date_file, date("YmdHis"));
     define(date_envoi, date("d/m/Y à H:i:s"));
     define(date_event, date("d/m/Y", mktime(0, 0, 0, mois, jour - 1, annee)));
     define(from, date("Y-m-d H:i:s", mktime(0, 0, 0, mois, jour - 1, annee)));
     define(to, date("Y-m-d H:i:s", mktime(23, 59, 59, mois, jour - 1, annee)));
     $req = "select idpatient, uf , dt_naissance , type_destination\r\n        from  patients_sortis\r\n\t    where manuel!=1 and dt_admission between '" . from . "' and '" . to . "' and type_destination!='X' and valide>=1\r\n\t\tUNION\r\n\t\tselect idpatient, uf , dt_naissance , type_destination\r\n\t\tfrom  patients_presents\r\n\t\twhere manuel!=1 and dt_admission between '" . from . "' and '" . to . "' and type_destination!='X' and valide>=1";
     $config[type] = "MySQL";
     $config[host] = MYSQL_HOST;
     $config[login] = MYSQL_USER;
     $config[password] = MYSQL_PASS;
     $config[db] = BDD;
     $requete = new clResultQuery();
     // On récupère le résultat de la requête sous la forme ResultQuery.
     $res = $requete->Execute("requete", $req, $config);
     eko($res[INDIC_SVC]);
     $age1 = 0;
     $age75 = 0;
     $NbHospit = 0;
     $NbUHCD = 0;
     $NbTransfert = 0;
     $ufUHCD = $options->getOption("numUFUHCD");
     //eko ( $res['INDIC_SVC'] ) ;
     if ($res[INDIC_SVC][2]) {
         $NbPassages = $res[INDIC_SVC][2];
         // On a le nombre de passages
         while (list($key, $val) = each($res[dt_naissance])) {
             $dateN = new clDate($val);
             $dateA = new clDate(from);
             $duree = new clDuree();
             $duree->setValues($dateA->getDifference($dateN));
             $age = $duree->getYears();
             if ($age < 1) {
                 $age1++;
                 // Constitution du nb de passage < à 1 an
             } elseif ($age > 75) {
                 $age75++;
                 // Constitution du nb de passage > 75 ans
             }
             // Hospitalisations
             if ($res[type_destination][$key] == "H" and $res[uf][$key] != $ufUHCD) {
                 $NbHospit++;
             }
             // UHCD
             if ($res[uf][$key] == $ufUHCD) {
                 $NbUHCD++;
             }
             // Transferts
             if ($res[type_destination][$key] == "T") {
                 $NbTransfert++;
             }
             //echo $val."--=> ".$res[type_destination][$key]." ".$age   ." ans <br>";
         }
         $balise_element = "\n<entete>";
         $balise_element .= "\n<idActeur>" . idActeur . "</idActeur>";
         $balise_element .= "\n<cleActeur>" . cleDepot . "</cleActeur>";
         $balise_element .= "\n<arRequis>" . arRequis . "</arRequis>";
         $balise_element .= "\n<mail>" . mail . "</mail>";
         $balise_element .= "\n</entete>";
         $balise_element .= "\n<element>";
         $balise_element .= "\n<nomForm>" . nomForm . "</nomForm>";
         $balise_element .= "\n<date_event>" . date_event . "</date_event>";
         $balise_element .= "\n<NbPassages>{$NbPassages}</NbPassages>";
         $balise_element .= "\n<NbPassInf1An>{$age1}</NbPassInf1An>";
         $balise_element .= "\n<NbPassageSup75Ans>{$age75}</NbPassageSup75Ans>";
         $balise_element .= "\n<NbHospit>{$NbHospit}</NbHospit>";
         $balise_element .= "\n<NbHospitUHCD>{$NbUHCD}</NbHospitUHCD>";
         $balise_element .= "\n<NbTransfert>{$NbTransfert}</NbTransfert>";
         $balise_element .= "\n</element>";
         $nom_fic = idActeur . "_" . date_file . ".xml";
         $nom_fic_export = chemin . $nom_fic;
         $xml_data = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" standalone=\"yes\"?>\r\n\t\t\t\n<result>" . $balise_element . "\n</result>";
         $fp = fopen($nom_fic_export, "w");
         if (!fwrite($fp, $xml_data)) {
             eko("pb ecriture fichier xml");
         }
         fclose($fp);
         copy($nom_fic_export, URLLOCAL . 'rpu/logs/' . $nom_fic);
         $affichage = "<center><h2>Export des données Urgences - CH-Hyères</h2></center>\r\n\t\t\t<u>Date d'export:</u> le " . date_envoi . "<br>\r\n\t\t\t<u>Contenu exporté :</u> {$balise_element}<br>\r\n\t\t\t<u>Fichier d'export :</u> {$nom_fic_export}";
         // Cryptage du fichier.
         $mailE = $options->getOption('RPU_Envoi_Mail');
         $gpg = new gnuPG(false, GNUPG);
         $gpg->EncryptFile($mailE, $nom_fic_export);
         if (!$gpg->error) {
             $this->message .= "<font color=\"green\">Le cryptage du fichier ({$nom_fic_export}.gpg) s'est bien déroulé.<br/></font>";
         } else {
             $this->message .= "<font color=\"red\">Le cryptage du fichier ({$nom_fic_export}.gpg) a échoué :" . $gpg->error . "<br/></font>";
         }
         if ($options->getOption('RPU_TypeEnvoi') == 'mail') {
             // Envoi du fichier RPU.
             $contenuFic = fread(fopen($nom_fic_export . '.gpg', "r"), filesize($nom_fic_export . '.gpg'));
             // eko ( $contenuFic ) ;
             $mail = new mime_mail();
             $mail->to = $options->getOption("RPU_Envoi_Mail");
             //$mail->to = "*****@*****.**" ;
             //eko ( $options->getOption ( "RPU_Envoi_Mail" ) ) ;
             $mail->subject = "Données urgences (" . date_envoi . ")";
             $mail->body = "Données urgences (" . date_envoi . ")";
             $mail->from = Erreurs_MailApp;
             $mail->attach($contenuFic, $nom_fic . '.gpg');
             if ($mail->sendXham()) {
                 $this->message .= "<font color=\"green\">L'envoi du fichier ({$nom_fic_export}.gpg) s'est bien déroulé.<br/></font>";
             } else {
                 $this->message .= "<font color=\"red\">L'envoi du fichier ({$nom_fic_export}.gpg) a échoué.<br/></font>";
             }
         } else {
             rename($nom_fic_export, chemin . 'ok/' . $nom_fic);
             $this->message .= "Connexion au serveur FTP '" . $options->getOption('RPU_FTP_Host') . ':' . $options->getOption('RPU_FTP_Port') . "' -> ";
             $con = ftp_connect($options->getOption('RPU_FTP_Host'));
             if (!$con) {
                 $this->message .= "<font color='red'>KO</font><br/>";
                 $errs->addErreur('RPU : Impossible de se connecter au serveur "' . $options->getOption('RPU_FTP_Host') . ':' . $options->getOption('RPU_FTP_Port') . '"');
             } else {
                 $this->message .= "<font color='green'>OK</font><br/>";
                 $this->message .= "Authentification au serveur FTP avec l'utilisateur '" . $options->getOption('RPU_FTP_User') . "' -> ";
                 $log = ftp_login($con, $options->getOption('RPU_FTP_User'), $options->getOption('RPU_FTP_Pass'));
                 if (!$log) {
                     $this->message .= "<font color='red'>KO</font><br/>";
                     $errs->addErreur('RPU : Impossible de se connecter au serveur avec l\'utilisateur "' . $options->getOption('RPU_FTP_User') . '"');
                 } else {
                     $this->message .= "<font color='green'>OK</font><br/>";
                     $r = opendir('rpu/arh/');
                     while ($fic = readdir($r)) {
                         if ($fic != "." and $fic != ".." and $fic != "ok" and $fic != "logs" and $fic != 'arh') {
                             $this->message .= "Envoi du fichier '{$fic}' -> ";
                             $put = ftp_put($con, $fic, chemin . $fic, FTP_BINARY);
                             if (!$put) {
                                 $this->message .= "<font color='red'>KO</font><br/>";
                                 $errs->addErreur('RPU : Impossible d\'envoyer le fichier "' . $fic . '".');
                             } else {
                                 $this->message .= "<font color='green'>OK</font><br/>";
                                 rename(chemin . $fic, chemin . 'ok/' . $fic);
                             }
                         }
                     }
                 }
             }
         }
         $this->af = $affichage . "<br/>" . $this->message;
     } else {
         $this->af .= "Aucun patient retourné par la requête : envoi impossible.";
     }
 }