function getSessions() { global $session; // Préparation de deux objets clDate. $date = new clDate(); $last = new clDate(); // Chargement du template ModeliXe. $mod = new ModeliXe("SessionsActuelles.mxt"); $mod->SetModeliXe(); // Chargement du template ListMaker. $list = new ListMaker("template/SessionsActuelles.html"); // Transmission de la variable de navigation à ListMaker. $list->addUserVar('navi', $session->genNavi($session->getNavi(0), $session->getNavi(1))); $list->addUrlVar('navi', $session->genNavi($session->getNavi(0), $session->getNavi(1))); // Nom des colonnes. $list->setSortColumn('col1', 'Utilisateur', 'uid'); $list->setSortColumn('col2', 'Type', 'type'); $list->setSortColumn('col3', 'Adresse IP', 'ip'); $list->setSortColumn('col4', 'Date de connexion', 'date'); $list->setSortColumn('col5', 'Dernière action', 'last'); $list->setSortColumn('col6', 'Page parcourue', 'localisation'); // Tri automatique sur la colonne de la date de la dernière action effectuée. $list->setdefaultSort('col5'); // Choix des couleurs à alterner d'une ligne sur l'autre. $list->setAlternateColor("pair", "impair"); // Récupération des sessions actuelles. $param['cw'] = "WHERE idapplication=" . IDAPPLICATION . " ORDER BY last DESC"; $req = new clResultQuery(); $res = $req->Execute("Fichier", "getSessionsActuelles", $param, "ResultQuery"); // On parcourt les sessions récupérées. for ($i = 0; isset($res['idsactu'][$i]); $i++) { // Initialisation des dates. $date->setDate($res['date'][$i]); $last->setDate($res['last'][$i]); // Préparation du lien pour aller directement sur la page parcourue par l'utilisateur. if (ENCODERURL) { $lien = '<a href="' . URLNAVI . $res['localisation'][$i] . '">' . base64_decode($res['localisation'][$i]) . '</a>'; } else { $lien = '<a href="' . URLNAVI . $res['localisation'][$i] . '">' . $res['localisation'][$i] . '</a>'; } // Préparation des différentes colonnes : uid, type, ip, date, last et localisation. $item['uid'] = $res['uid'][$i]; $item['type'] = $res['type'][$i]; $item['ip'] = $res['ip'][$i]; $item['date'] = $date->getDateTextFull(); $item['last'] = $last->getDateTextFull(); $item['localisation'] = $lien; $list->addItem($item); } // Récupération du résultat de ListMaker dans ModeliXe. $mod->MxText("table", $list->getList(isset($pagination) ? $pagination : '')); // Récupération du code généré par ModeliXe. return $mod->MxWrite("1"); }
function launchAES() { global $options; $mails = ''; $codes = ''; $contenu = ''; $config[type] = "MySQL"; $config[host] = MYSQL_HOST; $config[login] = MYSQL_USER; $config[password] = MYSQL_PASS; $config[db] = BDD; $date = new clDate(); $date_naissance = new clDate(); $date_admission = new clDate(); //$aujourdhui =getdate(); //$date ->getHours ( ) $date1 = $date->getDate("Y-m-d"); // aujourdhui J $date->addDays("-1"); $date2 = $date->getDate("Y-m-d"); // date J-1 $heure = $date->getDate("H:i:00"); $date->addHours("-8"); $hour1 = $date->getDate("H:i:00"); $date->addHours("8"); $date->addHours("-16"); $hour2 = $date->getDate("H:i:00"); $requete = new clResultQuery(); $listeGen = new clListesGenerales("recup"); $listeMails = $listeGen->getListeItems("Mails Alertes AES", "1", '', '', "1"); $listeCodesR = $listeGen->getListeItems("Alertes AES - Code Recours", "1", '', '', "1"); $listeCodesD = $listeGen->getListeItems("Alertes AES - Code Diagnostics", "1", '', '', "1"); while (list($key, $val) = each($listeMails)) { if ($mails) { $virgule = ','; } else { $virgule = ''; } if ($val != "--") { $mails .= $virgule . $val; } } //print "Mails : $mails" ; while (list($key, $val) = each($listeCodesR)) { if ($codes) { $or = ' OR '; } else { $or = ''; } if ($val != "--") { $codes .= $or . "recours_code='" . $val . "'"; } } while (list($key, $val) = each($listeCodesD)) { if ($codes) { $or = ' OR '; } else { $or = ''; } if ($val != "--") { $codes .= $or . "diagnostic_code='" . $val . "'"; } } if ($heure >= "15:00:00") { $req2 = "SELECT * FROM patients_sortis WHERE ({$codes}) AND dt_sortie BETWEEN '{$date1} {$hour1}' AND '{$date1} {$heure}'"; $res1 = $requete->Execute("Query", $req2, $config); } else { $req2 = "SELECT * FROM patients_sortis WHERE ({$codes}) AND dt_sortie BETWEEN '{$date2} {$hour2}' AND '{$date1} {$heure}'"; $res1 = $requete->Execute("Query", $req2, $config); } $contenu1 = $contenu1 . "\n"; if ($res1[idpatient] > 0) { if ($options->getOption("typeMail") == "HTML") { $contenu1 = "<table align=\"center\" border =1>\n\t\t\t <tr bgcolor=\"Silver\">\n\t\t\t <th colspan=\"5\">Informations AES (Patients sortis)</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr bgcolor=\"Silver\">\n\t\t\t\t<th>Nom</th>\n\t\t\t\t<th>Prénom</th>\n\t\t\t\t<th>Né(e) le</th>\n\t\t\t\t<th>Admission le</th>\n\t\t\t\t<th>Médecin Urg.</th>\n\t\t\t\t</tr>"; } else { $contenu1 = "Informations AES (Patients sortis)\tNom\tPrénom\tNé(e) le\tAdmission le\tMédecin Urg.\n"; } for ($i = 0; isset($res1[idpatient][$i]); ++$i) { // Affectation de resultats dans le tableau entrants $date_naissance->setDate($res1[dt_naissance][$i]); $date_admission->setDate($res1[dt_admission][$i]); if ($options->getOption("typeMail") == "HTML") { $contenu1 .= "<tr>"; $contenu1 .= "<td>" . $res1[nom][$i] . "</td>"; $contenu1 .= "<td>" . $res1[prenom][$i] . "</td>"; $contenu1 .= "<td>" . $date_naissance->getDate('d-m-Y H:i:s') . "</td>"; $contenu1 .= "<td>" . $date_admission->getDate('d-m-Y H:i:s') . "</td>"; $contenu1 .= "<td>Dr " . $res1[medecin_urgences][$i] . "</td>"; $contenu1 .= "</tr>"; //Ecriture du log } else { $contenu1 .= $res1[nom][$i] . "\t" . $res1[prenom][$i] . "\t"; $contenu1 .= $date_naissance->getDate('d-m-Y H:i:s') . "\t"; $contenu1 .= $date_admission->getDate('d-m-Y H:i:s') . "\t"; $contenu1 .= "Dr " . $res1[medecin_urgences][$i] . '\\n'; } $text_log1 .= $text_log1 . "\n"; $text_log1 .= $res1[nom][$i] . ";"; $text_log1 .= $res1[prenom][$i] . ";"; $text_log1 .= $res1[dt_naissance][$i] . ";"; $text_log1 .= $res1[dt_admission][$i] . ";"; $text_log1 .= $res1[medecin_urgences][$i] . ";"; $text_log1 .= " patients sortis "; $fp = fopen("fichier_log.txt", "a"); fputs($fp, $text_log1); } if ($options->getOption("typeMail") == "HTML") { $contenu1 .= "</table>"; } eko($contenu1); } else { $verif2 = 1; eko("Aucun enregistrement correspondant à la requête de patients sortis."); $contenu1 .= "Aucun enregistrement correspondant à la requête de patients sortis."; } // Paramètre de mail $reply = Erreurs_MailApp; if ($options->getOption("typeMail") == "HTML") { $comment = "<hr><i>Ce message a été envoyé automatiquement par un serveur !</i> "; } else { $comment = "\n\nCe message a été envoyé automatiquement par un serveur !"; } $contenu2 = $contenu; $contenu2 .= $contenu1; $contenu2 .= $comment; //$contenu2 .= "<br>req1 : $req<br>" ; //$contenu2 .= "req2 : $req2<br>" ; $from = Erreurs_MailApp; //$dest_mail = "*****@*****.**" ; $dest_mail = $mails; eko("\nContenu : {$contenu2}\n"); if ($options->getOption("typeMail") == "HTML") { $content = "Content-Type: text/html; charset=\"iso-8859-1\""; } else { $content = "Content-Type: text/plain; charset=\"iso-8859-1\""; } $head = "From: {$from}\n{$content}\n"; $obj = "Alerte AES"; if ($verif2) { $dest_mail = "*****@*****.**"; $obj = "Alerte AES (RAS)"; } else { mail($dest_mail, $obj, $contenu2, $head); } eko($comment); }
function genListeTodo() { $req = new XhamRequete(BASEXHAM, 'todo', array(), MYSQL_HOST, MYSQL_USER, MYSQL_PASS); switch ($this->xham->getr('Categorie')) { case 'all': $filtreCates = "1=1"; break; case '#': $filtreCates = "categorie=''"; break; default: $filtreCates = "categorie='" . utf8_decode($this->xham->getr('Categorie')) . "'"; break; } switch ($this->xham->getr('idUser')) { case 'all': $filtreUsers = "(idUser='******' OR public=1)"; break; case '#': $filtreUsers = "idUser='******'"; break; default: $filtreUsers = "idUser='******'idUser') . "'"; break; } switch ($this->xham->getr('Mode')) { default: $filtreModes = "etat like '" . $this->xham->getr('Mode') . "'"; break; } $filtre = " {$filtreCates} and {$filtreUsers} and {$filtreModes} "; $res = $req->getGen("{$filtre} order by etat, date", "resultQuery"); $ras = $req->getGen("{$filtreCates} and {$filtreUsers} and etat='afaire' order by etat", "resultQuery", 'sum(importance) nbHeures'); $rus = $req->getGen("{$filtreCates} and {$filtreUsers} and etat='encours' order by etat", "resultQuery", 'sum(importance) nbHeures'); $ris = $req->getGen("{$filtreCates} and {$filtreUsers} and etat='termines' order by etat", "resultQuery", 'sum(importance) nbHeures'); //print affTab ( $ras['INDIC_SVC'] ) ; $mod = new ModeliXe("TodoListe.html"); $mod->SetModeliXe(); $mod->MxText('recap', 'A faire : ' . ($ras['nbHeures'][0] ? $ras['nbHeures'][0] : '0') . 'h - En cours : ' . ($rus['nbHeures'][0] ? $rus['nbHeures'][0] : '0') . 'h - Terminés : ' . ($ris['nbHeures'][0] ? $ris['nbHeures'][0] : '0') . 'h'); $date = new clDate(); if ($res['INDIC_SVC'][2] == 0) { $mod->MxBloc('todo', 'replace', '<td colspan="6">Aucun todo.</td>'); } else { for ($i = 0; isset($res['idTodo'][$i]); $i++) { $js = XhamTools::genAjax('onClick', 'refreshTodo', 'ajax=changeStatus&idTodo=' . $res['idTodo'][$i] . '&navi=' . $this->xham->genNaviFull()); /* if ( $res['etat'][$i] != 'termines' ) $mod -> MxText ( 'todo.js', $js ) ; else $mod -> MxText ( 'todo.js', '' ) ; */ $mod->MxText('todo.js', $js); $mod->MxText('todo.class', $res['etat'][$i]); $mod->MxText('todo.idUser', $res['idUser'][$i]); $mod->MxText('todo.categorie', $res['categorie'][$i]); $mod->MxText('todo.nom', $res['nom'][$i]); $date->setDate($res['date'][$i]); $mod->MxText('todo.date', $date->getDate('Y-m-d H:i:s')); if ($res['dateLimite'][$i] != '0000-00-00 00:00:00') { $date->setDate($res['dateLimite'][$i]); $mod->MxText('todo.dateLimite', $date->getDate('Y-m-d')); } else { $mod->MxText('todo.dateLimite', VIDEDEFAUT); } $mod->MxText('todo.importance', $res['importance'][$i]); $mod->MxBloc('todo', 'loop'); } } $af = $mod->MxWrite("1"); if ($this->ajax) { $this->af .= $af; } else { return $af; } }
function genSalon() { global $options; # paramètres $mg = 5; // Marge de gauche => initial 17 $mh = 4; // Marge du haut => initial 9 $md = 15; // Marge de droite $mb = 9; // Marge du bas $largeur_etiquette = 42; // largeur_etiquette => initial 60 $espace_etiquettes = 13; // => initial 7 $nb_ligne_etiquettes = 4; $nb_etiquette_ligne = 5; // Préparation du document PDF. $pdf = new FPDF('L', 'mm', 'A4'); $pdf->Open(); $pdf->SetLeftMargin($mg); $pdf->SetTopMargin($mh); $pdf->SetAutoPageBreak(1, 0); $pdf->AddPage(); // Gestion des fonts $pdf->AddFont('code39', '', 'IDAutomation_Code_39.php'); $pdf->SetFont('times', '', 12); // Préparation des informations. $nom = strtoupper($this->patient->getNom()); $prenom = strtoupper($this->patient->getPrenom()); $date = new clDate($this->patient->getDateNaissance()); $duree = new clDuree(); $dateN = $date->getDate("d/m/Y"); $dateN .= " (" . $duree->getAge($date->getTimestamp()) . ")"; if ($this->patient->getSexe() == "F") { $sexe = "Féminin"; $e = "e"; } elseif ($this->patient->getSexe() == "M") { $sexe = "Masculin"; $e = ""; } else { $sexe = "Indéterminé"; $e = ""; } $date->setDate($this->patient->getDateAdmission()); $le = $date->getDate("d/m/Y H:i"); $led = $date->getDate("d/m/Y"); $leh = $date->getDate("H:i"); $ipp = $this->patient->getILP(); $nsej = $this->patient->getNSej(); $uf = $this->patient->getUF(); $sexe = $this->patient->getSexe(); if ($uf == $options->getOption('numUFexec')) { $loc = '(URGENCES)'; } else { $loc = '(UHCD)'; } $tel = $this->patient->getTel(); $adresse = $this->patient->getAdresse(); $cpv = $this->patient->getCodePostal() . " " . $this->patient->getVille(); $prev = $this->patient->getPrevenir(); $medt = $this->patient->getMedecinTraitant(); $modet = $this->patient->getMedecinTraitant(); $adresseur = $this->patient->getAdresseur(); $modeadm = $this->patient->getModeAdmission(); // Grosse étiquette $pdf->Cell(20, 4, "", 0, 0, L); // Ligne 1 $pdf->Cell(4 * $largeur_etiquette, 5, "CENTRE HOSPITALIER DE CARPENTRAS", 0, 1, L); // Ligne 2 $pdf->Cell(11, 5, "Date : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(23, 5, "{$led}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(13, 5, "Heure : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(27, 5, "{$leh}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(21, 5, "N° Patient : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(22, 5, "{$ipp}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(18, 5, "N° URG : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(22, 5, "{$nsej}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(18, 5, "N° ARCHIVE : ", 0, 1, L); // Ligne 3 $pdf->Cell(11, 5, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(63, 5, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(13, 5, "Nom naissance : ", 0, 1, L); // Ligne 4 $pdf->Cell(16, 5, "Prénom : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(58, 5, ucfirst(strtolower($prenom)), 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(12, 5, "Sexe : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(29, 5, "{$sexe}", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(12, 5, "N° S.S : ", 0, 1, L); // Ligne 5 $pdf->Cell(17, 5, "Né(e) le : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(57, 5, $dateN, 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(12, 5, "A : ", 0, 1, L); // Ligne 6 $pdf->Cell(17, 4, "Adresse : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(57, 4, $adresse, 0, 1, L); $pdf->SetFont('times', '', 12); // Ligne 5 $pdf->Cell(115, 4, "", 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(9, 4, "Tél : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(20, 4, $tel, 0, 1, L); $pdf->SetFont('times', '', 12); // Ligne 6 $pdf->Cell(17, 4, "", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(98, 4, $cpv, 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(9, 4, "Pays : ", 0, 1, L); // Ligne 7 $pdf->Cell(17, 5, "Nom du tuteur : ", 0, 1, L); // Ligne 8 $pdf->Cell(37, 5, "Personne à prévenir : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(98, 5, $prev, 0, 1, L); $pdf->SetFont('times', '', 12); // Ligne 9 $pdf->Cell(23, 5, "Adressé par : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(51, 5, $adresseur, 0, 0, L); $pdf->SetFont('times', '', 12); $pdf->Cell(30, 5, "Médecin traitant : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(98, 5, $medt, 0, 1, L); $pdf->SetFont('times', '', 12); // Ligne 10 $pdf->Cell(34, 5, "Mode de transport : ", 0, 0, L); $pdf->SetFont('times', 'B', 12); $pdf->Cell(98, 5, $modeadm, 0, 1, L); $pdf->SetFont('times', '', 12); // Saut $pdf->Cell(1, 5.8, "", 0, 1); $pdf->SetFont('times', '', 9); for ($i = 1; $i <= $nb_ligne_etiquettes; $i++) { // Entrée $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Entrée du : {$led} à {$leh}", 0, 1, L); // D/Nais $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "D/nais : {$dateN}", 0, 1, L); // Nom $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 9); $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 9); $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 9); $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 0, L); $pdf->SetFont('times', '', 9); $pdf->Cell($largeur_etiquette - 30, 4, "Nom : ", 0, 0, L); $pdf->SetFont('times', 'B', 9); $pdf->Cell(43, 4, strtoupper($nom), 0, 1, L); $pdf->SetFont('times', '', 9); // Prénom $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "Prénom : " . ucfirst(strtolower($prenom)), 0, 1, L); // NJF $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 0, L); $pdf->Cell($espace_etiquettes, 4, "", 0, 0, L); $pdf->Cell($largeur_etiquette, 4, "NJF : ", 0, 1, L); // N° SS $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 0, L); $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 0, L); $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 0, L); $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 0, L); $pdf->Cell(9, 4, "NSej : ", 0, 0, L); $pdf->Cell(46, 4, "{$nsej}", 0, 1, L); // inter _etiquettes $pdf->Cell(1, 11, "", 0, 1); } $pdf->Output(); }
function genXML($dat = '') { global $options; global $session; // On prend la date passée en paramètre si elle existe. if ($dat) { $date = new clDate($dat); } else { // Sinon, on initialise avec la date de la veille. $date = new clDate(); $date->addDays(-1); } //eko ( $_REQUEST ) ; $_REQUEST['dateRPU'] = $date->getDate('Y-m-d'); // Calcul de la date minimum (J-7). $dateMin = new clDate($date->getDatetime()); $nbJours = $options->getOption('RPU_NombreJours'); $dateMin->addDays(-$nbJours); // Création des instances de dates. $dateN = new clDate(); $dateS = new clDate(); $dateE = new clDate(); if (!$options->getOption('RPU_Manuels_Actif')) { $fmanuel = 'manuel!=1 AND '; } else { $fmanuel = ''; } // Fabrication de la requête en fonction du nombre de jours. if ($nbJours == 1) { $param['cw'] = "WHERE " . $fmanuel . " dt_admission LIKE '" . $date->getDate('Y-m-d') . "%' AND valide>=1 AND type_destination!='X'"; } else { $param['cw'] = "WHERE " . $fmanuel . " dt_admission BETWEEN '" . $dateMin->getDate('Y-m-d 00:00:00') . "' AND '" . $date->getDate('Y-m-d 23:59:59') . "' AND valide>=1 AND type_destination!='X'"; } $req = new clResultQuery(); // Exécution de la requête. $res = $req->Execute("Fichier", "getPatientsRPU", $param, "ResultQuery"); eko($res['INDIC_SVC']); // Chargement du template ModeliXe. $mod = new ModeliXe("rpu.html"); $mod->SetModeliXe(); // On remplit les champs "fixes" fu fichier RPU. $mod->MxText('idActeur', $options->getOption('RPU_IdActeur')); $mod->MxText('cleActeur', $options->getOption('RPU_CleActeur')); $mod->MxText('AR', $options->getOption('RPU_AR_Actif')); $mod->MxText('mailAR', $options->getOption('RPU_AR_Mail')); // On parcourt les différents passages trouvés par la requête. for ($i = 0; isset($res['idpatient'][$i]); $i++) { // Récupération des actes du passage dans la base "xham_ccam". if ($options->getOption("ActiverModuleActes")) { $param['idEvent'] = $res['idpatient'][$i]; $param['idDomaine'] = 1; $diags = $req->Execute("Fichier", "CCAM_getDiagCotes", $param, "ResultQuery"); $ccam = $req->Execute("Fichier", "CCAM_getCcamCotes", $param, "ResultQuery"); //eko ( $ccam['INDIC_SVC'] ) ; } else { // TODO : Récupération des informations nécessaires dans CORA. $param['idEvent'] = $res['idpatient'][$i]; $param['idDomaine'] = 1; $diags = $req->Execute("Fichier", "CCAM_getDiagCotes", $param, "ResultQuery"); unset($param); $param['nsej'] = $res['nsej'][$i]; $ccam = $req->Execute("Fichier", "CCAM_CoraCCAM", $param, "ResultQuery"); } // Calcul de la "date_event". $dateE->setDate($res['dt_admission'][$i]); if ($res['dt_admission'][$i] != '0000-00-00 00:00:00') { $mod->MxText('rpu.date_event', $dateE->getDate('d/m/Y H:i')); } else { $mod->MxText('rpu.date_event', ''); } // Calcul de la date d'examen $dateE->setDate($res['dt_examen'][$i]); if ($res['dt_examen'][$i] != '0000-00-00 00:00:00') { $mod->MxText('rpu.medic', $dateE->getDate('d/m/Y H:i')); } else { $mod->MxText('rpu.medic', ''); } // CP & Ville $mod->MxText('rpu.cp', $res['adresse_cp'][$i]); $mod->MxText('rpu.commune', $res['adresse_ville'][$i]); // Calcul de la date de naissance. $dateN->setDate($res['dt_naissance'][$i]); if ($res['dt_naissance'][$i] != '0000-00-00 00:00:00') { $mod->MxText('rpu.naissance', $dateN->getDate('d/m/Y')); } else { $mod->MxText('rpu.naissance', ''); } // Sexe $mod->MxText('rpu.sexe', $res['sexe'][$i]); // Calcul de la date d'admission. $dateE->setDate($res['dt_admission'][$i]); if ($res['dt_admission'][$i] != '0000-00-00 00:00:00') { $mod->MxText('rpu.entree', $dateE->getDate('d/m/Y H:i')); } else { $mod->MxText('rpu.entree', ''); } // Calcul de la provenance, du mode d'entrée et du transport. $prov = $res['provenance'][$i]; $trans = explode(' ', $res['mode_admission'][$i]); $mod->MxText('rpu.mode_entree', $prov[0]); $mod->MxText('rpu.provenance', $prov[1]); $mod->MxText('rpu.transport', $trans[0]); $mod->MxText('rpu.transport_pec', $trans[1]); // Recours & gravité $mod->MxText('rpu.motif', $res['recours_code'][$i]); $mod->MxText('rpu.gravite', $res['code_gravite'][$i]); // Diagnostic principal $mod->MxText('rpu.dp', $diags['identifiant'][0]); // Hash de l'IDU $mod->MxText('rpu.idpatientetab', sha1($res['idu'][$i])); // Affichage des diagnostics secondaires. if ($diags['INDIC_SVC'][2] <= 1) { $mod->MxBloc('rpu.da', 'delete'); } else { for ($j = 1; isset($diags['identifiant'][$j]); $j++) { $mod->MxText('rpu.da.da', $diags['identifiant'][$j]); $mod->MxBloc('rpu.da', 'loop'); } } // Affichage des actes. if ($ccam['INDIC_SVC'][2] == 0) { $mod->MxBloc('rpu.acte', 'delete'); } else { for ($j = 0; isset($ccam['identifiant'][$j]); $j++) { $mod->MxText('rpu.acte.acte', $ccam['identifiant'][$j]); $mod->MxBloc('rpu.acte', 'loop'); } } // Calcul de la date de sortie. $dateS->setDate($res['dt_sortie'][$i]); if ($res['dt_sortie'][$i] != '0000-00-00 00:00:00') { $mod->MxText('rpu.sortie', $dateS->getDate('d/m/Y H:i')); } else { $mod->MxText('rpu.sortie', '00/00/0000 00:00'); } // Calcul du mode de sortie. $dest = $res['type_destination'][$i]; switch ($res['type_destination'][$i]) { case 'T': $modeS = '7'; break; case 'H': $modeS = '6'; break; case 'D': $modeS = '9'; break; default: $modeS = '8'; break; } $mod->MxText('rpu.mode_sortie', $modeS); // Calcul de la destination et de l'orientation. if ($dest == '6' or $dest == '7') { $destP = $dest; $ori = ''; } elseif ($dest == 'F') { $ori = 'FUGUE'; $destP = ''; // { OR $dest == 'S' OR $dest == 'P' OR $dest == 'R' ) { } elseif ($dest == 'S') { $ori = 'SCAM'; $destP = ''; } elseif ($dest == 'P') { $ori = 'PSA'; $destP = ''; } elseif ($dest == 'R') { $ori = 'REO'; $destP = ''; } elseif ($dest) { $destP = $res['dest_pmsi'][$i]; $ori = $res['orientation'][$i]; } $mod->MxText('rpu.destination', $destP); $mod->MxText('rpu.orient', $ori); $mod->MxBloc('rpu', 'loop'); } $mod->MxText('data_supplementaire', $this->xmlH1N1); // Récupération du code HTML généré. $this->xmlRpu = $mod->MxWrite("1"); //$this->af .= nl2br(htmlentities($this->xmlRpu)) ; }
function getDates($type = '') { // Initialisation des dates. $dateT = new clDate(); $date = new clDate($dateT->getDate()); if ((!$this->dateMin or !$this->dateMax) and !isset($this->setDate)) { $dateA = new clDate(isset($_GET['dateMin']) ? $_GET['dateMin'] : $date->getDate('Y-m-d')); $date->addDays(1); $dateB = new clDate(isset($_GET['dateMax']) ? $_GET['dateMax'] : $date->getDate('Y-m-d')); $date->addDays(-1); if ($dateA->getTimestamp() > $dateB->getTimestamp()) { $this->dateMax = $dateA->getTimestamp(); $this->dateMin = $dateB->getTimestamp(); } else { $this->dateMax = $dateB->getTimestamp(); $this->dateMin = $dateA->getTimestamp(); } } // Fabrication de la liste de dates de la dernière année. $date->addYears(-1); $oneYear = $date->getTimestamp(); $date->addYears(1); $date->addDays(1); $today = $date->getTimestamp(); for ($i = $today; $i >= $oneYear; $i -= 86400) { $date->setDate($i); $tab[$i] = $date->getDate("d-m-Y"); } return is_array($tab) ? $tab : array(); }
function HistoriqueUrgences() { // Récupération des passages précédents. $param['cw'] = "WHERE idu='" . $this->patient->getIDU() . "'"; $param['table'] = PSORTIS; $req = new clResultQuery(); $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); // Chargement du template ModeliXe. $mod = new ModeliXe("HistoriquePatientUrgences.mxt"); $mod->SetModeliXe(); $date = new clDate(DATELANCEMENT); $mod->MxText('dateHistorique', $date->getDate("d/m/Y")); // Affichage des différents champs. if (!$res['INDIC_SVC'][2]) { $mod->MxBloc("nomscolonnes", "modify", " "); $mod->MxBloc("passages", "modify", " "); } else { $mod->MxBloc("aucunpassage", "modify", " "); for ($i = 0; isset($res['nsej'][$i]); $i++) { $mod->MxText("passages.nsej", $res['nsej'][$i]); $date->setDate($res['dt_admission'][$i]); $mod->MxText("passages.entree", $date->getDate('d/m/y H:i')); $mod->MxText("passages.diag", $res['diagnostic_libelle'][$i]); $date->setDate($res['dt_sortie'][$i]); $mod->MxText("passages.sortie", $date->getDate('d/m/y H:i')); // Boucle sur le bloc hospitalisations. $mod->MxBloc("passages", "loop"); } } // Récupération du code HTML généré. return $mod->MxWrite("1"); }
function genListe() { global $session; $res = $this->genRequete(); //eko ( $res ) ; //print affTab ( $res ) ; $list = new ListMaker("template/RadioListe.html"); $navi = $session->genNavi("Radio"); $list->addUserVar('navi', $navi); $list->addUrlVar('navi', $navi); $list->addUserVar('typeListe', $_SESSION['typeListe']); $list->addUrlVar('typeListe', $_SESSION['typeListe']); $list->setSortColumn('col0', 'UF', 'uf'); $list->setSortColumn('col1', 'Patient', 'nomD'); $list->setSortColumn('col2', 'Age', 'ageD'); $list->setSortColumn('col3', 'Arrivée', 'arriveeD'); $list->setSortColumn('col4', 'Soignants', 'soignants'); $list->setSortColumn('col5', 'Motif', 'motif'); $list->setSortColumn('col6', 'Date demande', 'demande'); $list->setSortColumn('col7', 'Description', 'description'); $list->setSortColumn('col8', 'Etat', 'etatD'); $list->setSortColumn('col9', 'Détail', 'detail'); $list->setdefaultSort('col8'); $item = array(); $dureead = new clDuree(); $date = new clDate(); // Parcours de la liste des patients récupérés par la requête. for ($i = 0; isset($res['idradio'][$i]); $i++) { $ras = $this->getInfosPatient($res['idpatient'][$i], $res['idapplication'][$i]); if ($session->getDroit("Liste_Radio", "m")) { $j = XhamTools::genAjax('onClick', 'mod', 'navi=' . $session->genNavi('Ajax', 'modRadios', $res['idradio'][$i])); } else { $j = ''; } $item['js'] = $j; $item['ItemColor'] = 'rad' . $res['etat'][$i]; $item['etatD'] = $res['etat'][$i]; switch ($res['etat'][$i]) { case 'a': $date->setDate($res['dt_creation'][$i]); $duree = $dureead->getAge($date->getDatetime()); if (!$dureead->invertNegatif()) { $item['etat'] = 'Non pris en charge<br/>Depuis ' . $duree; } else { $temp = explode(" ", $res['dt_creation'][$i]); list($annee, $mois, $jour) = explode("-", $temp[0]); $item['etat'] = 'A prendre en charge<br/>Dans ' . $dureead->getAge() . "<br>le " . $jour . "/" . $mois . "/" . $annee . " à " . $temp[1]; $item['ItemColor'] = 'rad' . 'elephant'; } break; case 'b': $date->setDate($res['dt_pec'][$i]); $duree = $dureead->getAge($date->getDatetime()); $item['etat'] = 'Pris en charge<br/>Depuis ' . $duree; break; case 'c': $date->setDate($res['dt_encours'][$i]); $duree = $dureead->getAge($date->getDatetime()); $item['etat'] = 'En cours<br/>Depuis ' . $duree; break; case 'd': $date->setDate($res['dt_fin'][$i]); $duree = $dureead->getAge($date->getDatetime()); $item['etat'] = 'Terminé<br/>Depuis ' . $duree; break; } // Calcul du sexe de la personne... (?!). switch ($ras['sexe'][0]) { case 'M': $img = URLIMG . "homme.png"; break; case 'F': $img = URLIMG . "femme.png"; break; default: $img = URLIMG . "Indefini.png"; break; } $item['sexe'] = "<img src=\"{$img}\" alt=\"" . $ras['sexe'][0] . "\" />"; // Calcul de l'âge. $date = new clDate($ras['dt_naissance'][0]); $age = new clDuree($date->getTimestamp()); $str = $age->getAgePrecis($date->getTimestamp()); if ($ras['dt_naissance'][0] != "0000-00-00 00:00:00") { $item['age'] = $str; $item['ageD'] = $date->getTimestamp(); } else { $item['age'] = VIDEDEFAUT; $item['ageD'] = VIDEDEFAUT; } global $ufs; $item['uf'] = isset($ufs[$ras['uf'][0]]) ? $ufs[$ras['uf'][0]] : $ras['uf'][0]; if ($ras['dt_admission'][0] != "0000-00-00 00:00:00") { $datead = new clDate($ras['dt_admission'][0]); $dateSimple = $datead->getDate("d-m-Y"); $dateHeure = $datead->getDate("H\\hi"); $item['arrivee'] = $dateSimple . "<br />" . $dateHeure; $item['arriveeD'] = $datead->getTimestamp(); } else { $item['arrivee'] = VIDEDEFAUT; $item['arriveeD'] = VIDEDEFAUT; } // Médecin et IDE. switch ($res['idapplication'][$i]) { case '1': if ($ras['medecin_urgences'][0]) { $med = "Dr " . $ras['medecin_urgences'][0]; } else { $med = VIDEDEFAUT; } if ($ras['ide'][0]) { $ide = "Ide " . $ras['ide'][0]; } else { $ide = VIDEDEFAUT; } $item['soignants'] = $med . "<br />" . $ide; if ($ras['salle_examen'][0]) { $sal = $ras['salle_examen'][0]; } else { $sal = VIDEDEFAUT; } $item['salle'] = $sal; break; case '24': if ($ras['medecin'][0]) { $med = "Dr " . $ras['medecin'][0]; } else { $med = VIDEDEFAUT; } if ($ras['chirurgien'][0]) { $ide = "Chir " . $ras['chirurgie'][0]; } else { $ide = VIDEDEFAUT; } $item['soignants'] = $med . "<br />" . $ide; if ($ras['chambre'][0]) { $sal = $ras['chambre'][0]; } else { $sal = VIDEDEFAUT; } $item['salle'] = $sal; break; default: if ($ras['medecin_urgences'][0]) { $med = "Dr " . $ras['medecin_urgences'][0]; } else { $med = VIDEDEFAUT; } if ($ras['ide'][0]) { $ide = "Ide " . $ras['ide'][0]; } else { $ide = VIDEDEFAUT; } $item['soignants'] = $med . "<br />" . $ide; if ($ras['salle_examen'][0]) { $sal = $ras['salle_examen'][0]; } else { $sal = VIDEDEFAUT; } $item['salle'] = $sal; break; } // Motif de recours. if ($ras['motif_recours'][0]) { $item['motif'] = $ras['motif_recours'][0]; } else { $item['motif'] = VIDEDEFAUT; } // Patient $item['urlpatient'] = URLNAVI . $session->genNavi($session->getNavi(0), "FichePatient", $res['idpatient'][$i]); // Concaténation du nom et du prénom. $item['patient'] = "<span " . clPatient::genInfoBulle($ras, 0, $res['idapplication'][$i]) . ">" . strtoupper($ras['nom'][0]) . "</span><br />" . ucfirst(strtolower($ras['prenom'][0]) . "<br/>" . $ras['nsej'][0]); if ($res['dt_creation'][$i] != "0000-00-00 00:00:00") { $datead = new clDate($res['dt_creation'][$i]); $dateSimple = $datead->getDate("d-m-Y"); $dateHeure = $datead->getDate("H\\hi"); $item['demande'] = $dateSimple . "<br />" . $dateHeure; $item['demandeD'] = $datead->getTimestamp(); } else { $item['arrivee'] = VIDEDEFAUT; $item['arriveeD'] = VIDEDEFAUT; } $parp = '&etape=' . $res['etat'][$i] . '&idradio=' . $res['idradio'][$i]; //$item['detail'] = "<a onmouseout=\"request('".URLNAVI."QWpheHxnZXRSYWRpb3M=',null,'getRadios') ;\" href=\"".URLNAVI.$session->genNavi("Radio","",$res['idpatient'][$i],$ras['idu'][0],$ras['nsej'][0])."$parp&Formulaire2print=radio&FormX_ext_goto_=".$res['id_instance'][$i]."&act_print=1\" target=\"_blank\">" ; $jo = 'onClick="setWait(\'navigation\');location.reload();"'; //$jo = 'onClick=""' ; $item['detail'] = "<a {$jo} href=\"" . URLNAVI . $session->genNavi("Radio", "", $res['idpatient'][$i], $ras['idu'][0], $ras['nsej'][0]) . "{$parp}&Formulaire2print=radio&FormX_ext_goto_=" . $res['id_instance'][$i] . "&act_print=1\" target=\"_blank\">"; $item['detail'] .= "<img src=\"images/pdf.png\" alt=\"Afficher le PDF\"/></a>"; $rel = new clRequete(BDD, '', '', MYSQL_HOST, MYSQL_USER, MYSQL_PASS); $rese = $rel->exec_requete("select * from radios_enquetes where idradio=" . $res['idradio'][$i], 'resultquery'); global $pi; if ($rese['INDIC_SVC'][2]) { if ($rese['date'][0] == '0000-00-00 00:00:00') { $img = 'formko.gif'; } else { $img = 'formok.gif'; } if ($session->getDroit("Liste_Radio", "m")) { $j = XhamTools::genAjax('onClick', 'mod', 'navi=' . $session->genNavi('Ajax', 'modRadiosEnquetes', $res['idradio'][$i])); } else { $j = ''; } $item['detail'] .= ' <img ' . $j . ' src="images/' . $img . '" ' . $pi->genInfoBulle("Ouvrir le formulaire d'enquête.") . ' style="cursor: pointer; pointer: hand;" />'; } if ($res['retour'][$i]) { $dateR = new clDate($res['dt_retour'][$i]); $retour = '<b>Formulaire de retour saisi par les urgences :</b>'; $retour .= '<br/><u>Auteur :</u> ' . $res['retourid'][$i]; $retour .= '<br/><u>Date :</u> ' . $dateR->getDate('d/m/Y H:i:s'); switch ($res['retour'][$i]) { case 'Oui': $resultat = 'Anomalie détectée avec cette radio.'; break; case 'Non': $resultat = 'Aucune anomalie détectée avec cette radio.'; break; case 'NR': $resultat = "L'utilisateur signale que cette radio n'a pas été réalisée."; break; case 'NI': $resultat = "L'utilisateur n'a pas interprété cette radio."; break; default: $resultat = "L'utilisateur n'a pas rempli le formulaire."; break; } $retour .= '<br/><u>Résultat :</u> ' . $resultat; $retour .= '<br/><u>Commentaire :</u>' . ($res['commentaire'][$i] ? $res['commentaire'][$i] : 'Aucun commentaire.'); $item['detail'] .= " <img src=\"" . URLIMGOBS . "\" " . $pi->genInfoBulle($retour) . " alt=\"Comm.\" />"; } $html = $this->getDetailRadio($res, $i); $item['description'] = $html; $ok = 0; switch ($_SESSION['typeListe']) { case 'all': $ok = 1; break; case 'alm': $ok = 1; break; case 'd': $ok = 1; break; case 'rall': if (eregi('RADIO', $html)) { $ok = 1; } break; case 'ralm': if (eregi('RADIO', $html)) { $ok = 1; } break; case 'rd': if (eregi('RADIO', $html)) { $ok = 1; } break; case 'eall': if (eregi('ECHO', $html)) { $ok = 1; } break; case 'ealm': if (eregi('ECHO', $html)) { $ok = 1; } break; case 'ed': if (eregi('ECHO', $html)) { $ok = 1; } break; case 'sall': if (eregi('SCAN', $html)) { $ok = 1; } break; case 'salm': if (eregi('SCAN', $html)) { $ok = 1; } break; case 'sd': if (eregi('SCAN', $html)) { $ok = 1; } break; case 'ec': $nb = 200; $ok = 1; break; case 'et': $nb = 200; $ok = 1; break; default: $nb = 50; $ok = 1; break; } if ($ok) { $list->addItem($item); } } // Récupération du code HTML généré. return $list->getList($nb); }
function addToTab($tab, $prc, $filtre) { global $session; $req = new clResultQuery(); $param['table'] = PPRESENTS; //$param['cw'] = "WHERE $filtre UNION SELECT * FROM patients_sortis WHERE $filtre" ; $param['cw'] = "WHERE {$filtre} AND manuel=0 AND iduser!='SUPPRIME' UNION SELECT * FROM patients_sortis WHERE {$filtre} AND manuel=0 AND iduser!='SUPPRIME' ORDER BY dt_admission, nom"; $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); $date = new clDate(); for ($i = 0; isset($res['idpatient'][$i]); $i++) { if (!isset($tab[$res['idpatient'][$i]])) { $tab[$res['idpatient'][$i]]['survol'] = clPatient::genInfoBulle($res, $i); if ($res['dt_sortie'][$i] == '0000-00-00 00:00:00') { $auttable = PPRESENTS; } else { $auttable = PSORTIS; } if ($this->p['dt_sortie'][0] == '0000-00-00 00:00:00') { $mantable = PPRESENTS; } else { $mantable = PSORTIS; } //$js = XhamTools::genAjax ( 'onclick', 'fusion', 'ajax=1&navi='.$session->genNavi ( 'Administration', 'FusionsV2', 'setFusions', $this->p['idpatient'][0], $mantable, $res['idpatient'][$i], $auttable) ) ; $nomAut = $res['nom'][$i] . " " . $res['prenom'][$i]; $nomMan = $this->p['nom'][0] . " " . $this->p['prenom'][0]; $js = "onclick=\"if (window.confirm('Etes-vous certain de vouloir fusionner le patient manuel " . addslashes($nomMan) . " et le patient automatique " . addslashes($nomAut) . " ?')){request('index.php?ajax=1&navi=" . $session->genNavi('Administration', 'FusionsV2', 'setFusions', $this->p['idpatient'][0], $mantable, $res['idpatient'][$i], $auttable) . "',null,'fusion');return true;} else {return false;}\""; $tab[$res['idpatient'][$i]]['js'] = $js; $tab[$res['idpatient'][$i]]['suppr'] = ''; $tab[$res['idpatient'][$i]]['nom'] = $res['nom'][$i]; $tab[$res['idpatient'][$i]]['nsej'] = $res['nsej'][$i]; $tab[$res['idpatient'][$i]]['nom'] = $res['nom'][$i]; $tab[$res['idpatient'][$i]]['prenom'] = $res['prenom'][$i]; $tab[$res['idpatient'][$i]]['sexe'] = $res['sexe'][$i]; $tab[$res['idpatient'][$i]]['sexe'] = $res['sexe'][$i]; $tab[$res['idpatient'][$i]]['sexe'] = $res['sexe'][$i]; $date->setDate($res['dt_naissance'][$i]); $tab[$res['idpatient'][$i]]['dt_naissance'] = $date->getDate('d-m-Y'); $date->setDate($res['dt_admission'][$i]); $tab[$res['idpatient'][$i]]['dt_admission'] = $date->getDate('d-m-Y H:i'); $tab[$res['idpatient'][$i]]['prc'] = $prc; $this->nbRes++; } //elseif ( $tab[$res['idpatient'][$i]]['prc'] < 99 ) $tab[$res['idpatient'][$i]]['prc']++ ; } return $tab; //print affTab ( $tab ) ; }