static function getDataTransfertsSamu(clDate $date1, clDate $date2) { $strDate1 = $date1->getDate(); $strDate2 = $date2->addDays(1)->getDate(); $obRequete = new clRequete(BDD, 'patients_sortis', array(), MYSQL_HOST, MYSQL_USER, MYSQL_PASS); $requete = "SELECT * FROM `patients_sortis` WHERE `dt_admission` >= '{$strDate1}' and dt_sortie <= '{$strDate2}' AND `type_destination` = 'T' AND moyen_transport LIKE '%SMUR%' "; return $obRequete->exec_requete($requete, 'tab'); }
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 genGraphs($mod, $dateG = '', $nbDays = '7') { $param['cs'] = "*"; $req = new clResultQuery(); $date = new clDate($dateG); $dateT = new clDate($date->getDate("Y-m-d 00:00:00")); $dateT->addDays(-1); $dateH = new clDate($dateT->getDate("Y-m-d")); $dateT->addDays(1); $dateT->addDays(-$nbDays); $dateS = new clDate($dateT->getDate("Y-m-d")); $dateT->addDays($nbDays); $j = 0; for ($dateDeb = $dateH; $dateDeb->getTimestamp() < $dateT->getTimestamp();) { $heureA = $dateDeb->getHours(); $dateA = $dateDeb->getDatetime(); $dateDeb->addHours(1); $param['cs'] = "*"; $param['cw'] = "WHERE iduser LIKE '" . $_POST['choix'] . "' AND ( date BETWEEN '" . $dateA . "' AND '" . $dateDeb->getDatetime() . "' ) AND idapplication=" . IDAPPLICATION . " AND type='navi'"; $res = $req->Execute("Fichier", "getLogs", $param, "ResultQuery"); $tab[0][0][] = $res['INDIC_SVC'][2]; //eko ( $res['INDIC_SVC'] ) ; $tab[1][0][$j] = 0; $tab[1][1][$j] = 0; // $tab[0][1][$j] = 0 ; $titres[1][] = $heureA . "h - " . $dateDeb->getHours() . "h"; for ($i = 0; isset($res['idlog'][$i]); $i++) { $tab[1][0][$j] += $res['tempsPage'][$i]; $tab[1][1][$j] += $res['tempsSQL'][$i]; //$tab[0][1][$j] += $res['nombreSQL'][$i] ; } if ($res['INDIC_SVC'][2]) { $tab[1][0][$j] = $tab[1][0][$j] / $res['INDIC_SVC'][2]; $tab[1][1][$j] = $tab[1][1][$j] / $res['INDIC_SVC'][2]; } $j++; } $dateH->addDays(-1); $jpG = new clJpGraph(); $jpG->arh_graph("Nombre de clics et requetes par heure (" . $_POST['choix'] . ") - " . $dateH->getDateText(), '', '', $tab[0], array('Clics', 'Requetes'), array('#DDCC55', '#CC3355'), 800, 500, "image1.png", $titres[1], "45", '#C8DE3D', "groupbar", '#FFFFFF', "%d"); $jpG->arh_graph("Temps moyen par heure (" . $_POST['choix'] . ") - " . $dateH->getDateText(), '', '', $tab[1], array('Temps total', 'Temps SQL'), array('#DDCC55', '#CC3355'), 800, 400, "image2.png", $titres[1], "45", '#C8DE3D', "groupbar", '#FFFFFF', "%2.2f"); $j = 0; for ($dateDeb = $dateS; $dateDeb->getTimestamp() < $dateT->getTimestamp();) { $jourA = $dateDeb->getDayWeek(); $dateA = $dateDeb->getDatetime(); $dateDeb->addDays(1); $param['cs'] = "*"; $param['cw'] = "WHERE iduser LIKE '" . $_POST['choix'] . "' AND ( date BETWEEN '" . $dateA . "' AND '" . $dateDeb->getDatetime() . "' ) AND idapplication=" . IDAPPLICATION . " AND type='navi'"; $res = $req->Execute("Fichier", "getLogs", $param, "ResultQuery"); $tab[2][0][] = $res['INDIC_SVC'][2]; $titres[2][] = $jourA; /* //eko ( $res['INDIC_SVC'] ) ; $tab[3][0][$j] = 0 ; $tab[3][1][$j] = 0 ; //$tab[2][1][$j] = 0 ; $titres[2][] = $jourA ; for ( $i = 0 ; isset ( $res['idlog'][$i] ) ; $i++ ) { $tab[3][0][$j] += $res['tempsPage'][$i] ; $tab[3][1][$j] += $res['tempsSQL'][$i] ; //$tab[2][1][$j] += $res['nombreSQL'][$i] ; } if ( $res['INDIC_SVC'][2] ) { $tab[3][0][$j] = $tab[3][0][$j] / $res['INDIC_SVC'][2] ; $tab[3][1][$j] = $tab[3][1][$j] / $res['INDIC_SVC'][2] ; } $j++ ; */ } // eko ( $tab[3][1] ) ; $jpG->arh_graph("Nombre de clics et requetes par jour (" . $_POST['choix'] . ") ", '', '', $tab[2], array('Clics', 'Requetes'), array('#DDCC55', '#CC3355'), 800, 500, "image3.png", $titres[2], "45", '#C8DE3D', "groupbar", '#FFFFFF', "%d"); //$jpG->arh_graph( "Temps moyen par jour - ".$date->getDateText ( ),'','', $tab[3], array ( 'Temps total', 'Temps SQL' ), array ( '#DDCC55', '#CC3355' ), 800, 400, "image4.png", $titres[2], "45", '#C8DE3D', "groupbar", '#FFFFFF', "%2.2f" ) ; }
function genAffichage() { global $session; global $options; // Chargement du template ModeliXe. $outputLignes = array(); $mod = new ModeliXe("ExportAPHM.mxt"); $mod->SetModeliXe(); // Initialisation des dates en fonction de l'état actuel : // A la date du jour si aucune valeur n'a été passée. if ($_POST['date2']) { $dt1 = new clDate($_POST['date1']); $dt2 = new clDate($_POST['date2']); } else { $dt2 = new clDate(date("Y-m-d 00:00:00")); $dt1 = new clDate(date("Y-m-d 00:00:00")); $dt1->addDays(-1); } // Retrait d'un jour à la date1 si date1 == date2 if ($dt1->getTimestamp() == $dt2->getTimestamp()) { $dt1->addDays(-1); } // Inversion des dates 1 et 2 si la date 1 est supérieur à la date 2. if ($dt1->getTimestamp() > $dt2->getTimestamp()) { $tmp_dt3 = $dt1->getTimestamp(); $tmp_dt4 = $dt2->getTimestamp(); $dt1 = new clDate($tmp_dt4); $dt2 = new clDate($tmp_dt3); } // Calcul de la liste des valeurs possibles pour la date1. $old = ''; for ($dt = new clDate(DATELANCEMENT); $dt->getTimestamp() < $dt2->getTimestamp(); $dt->addDays(1)) { if ($old == $dt->getDate("Y-m-d")) { $dt->addHours(5); $enleverHeure = 1; } else { $enleverHeure = 0; } $old = $dt->getDate("Y-m-d"); $dttmp = new clDate($dt->getDate("Y-m-d")); $listeDates1[$dttmp->getTimestamp()] = $dt->getDate("d-m-Y"); // if ( $enleverHeure ) $dt -> addHours ( -2 ) ; //eko ( $dttmp->getDatetime ( ).' -> '.$dt->getDatetime ( ) ) ; } if (!is_array($listeDates1)) { $listeDates1 = array(); } // Calcul de la liste des valeurs possibles pour la date2. $dtj = new clDate(date("Y-m-d 00:00:00")); $dtj->addDays(1); $dt = new clDate(DATELANCEMENT); $old = ''; for ($dt->addDays(1); $dt->getTimestamp() <= $dtj->getTimestamp(); $dt->addDays(1)) { if ($old == $dt->getDate("Y-m-d")) { $dt->addHours(5); $enleverHeure = 1; } else { $enleverHeure = 0; } $old = $dt->getDate("Y-m-d"); $dttmp = new clDate($dt->getDate("Y-m-d")); $listeDates2[$dttmp->getTimestamp()] = $dt->getDate("d-m-Y"); //if ( $enleverHeure ) $dt -> addHours ( -2 ) ; //eko ( $dttmp->getDatetime ( ).' -> '.$dt->getDatetime ( ) ) ; } if (!is_array($listeDates2)) { $listeDates2 = array(); } // Fabrication des listes dans ModeliXe. $mod->MxSelect("date1", "date1", $dt1->getTimestamp(), $listeDates1); $mod->MxSelect("date2", "date2", $dt2->getTimestamp(), $listeDates2); // Si le bouton "Chercher" n'a pas été pressé, alors on n'affiche pas // le bloc contenant le lien vers l'export. if (!$_POST['Chercher'] and !$_POST['Chercher_x']) { $mod->MxBloc("donnees", "modify", " "); } else { // Affichage du lien vers le fichier contenant l'export. // Récupération de tous les patients entre les deux dates données. //Le calcul commence ici $req = new clResultQuery(); $param[table] = PSORTIS; /* // En fonction du filtre sélectionné. switch ( $_POST['filtre'] ) { //case 'norm': $filter = "AND salle_examen NOT LIKE 'UHCD%'" ; break ; ca//se 'uhcd': $filter = "AND salle_examen LIKE 'UHCD%'" ; break; case 'norm': $filter = "AND uf!=".$options->getOption('numUFUHCD')."" ; break ; case 'uhcd': $filter = "AND uf=".$options->getOption('numUFUHCD')."" ; break; default: $filter = "" ; break ; } */ if ($_POST['idpassage']) { $param['cw'] = " WHERE ilp = '" . $_POST['idpassage'] . "' "; } else { $param['cw'] = " WHERE dt_admission BETWEEN '" . $dt1->getDatetime() . "' AND '" . $dt2->getDatetime() . "' "; } //$param[cw] = " p, logs_mails m WHERE p.idpatient=m.idpatient AND dt_naissance>'1932-01-01 00:00:00' AND `dt_mail` >= '2006-10-01 00:00:00' AND type_mail='Procédure dépistage maltraitance'" ; $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); // newfct ( gen_affiche_tableau, $res[INDIC_SVC] ) ; //eko ( $res['INDIC_SVC'] ) ; if ($res[INDIC_SVC][2] > 1) { $s = "s"; } // Affichage d'un résumé des résultats. $mod->MxText("donnees.nombre", $res[INDIC_SVC][2]); $mod->MxText("donnees.resultat", "entrée{$s} exportée{$s}"); if (!$options->getOption('CCAMExterne')) { $jj = new clCCAMExportActesDiags(array('dateDebut' => $dt1->getDate('Y-m-d'), 'dateFin' => $dt2->getDate('Y-m-d'))); $jj->initTableauActesDiag($res); } // Parcours des différents résultats. $tabResFinal = array(); $nbMaxActesNGAP = 0; $indiceMaxNbActesNgap = 0; //PARCOURS for ($i = 0; isset($res[idpatient][$i]); $i++) { // Préparation des différentes dates pour affichage. $tabLigne = array(); $naissance = new clDate($res[dt_naissance][$i]); $dtn = $naissance->getDate("d/m/Y"); if ($res[dt_admission][$i] != '0000-00-00 00:00:00') { $admission = new clDate($res[dt_admission][$i]); $dta = $admission->getDate("d/m/Y"); $hma = $admission->getDate("H:i"); } else { $dta = '--'; $hma = '--'; } if ($res[dt_examen][$i] != '0000-00-00 00:00:00') { $examen = new clDate($res[dt_examen][$i]); $dte = $examen->getDate("d/m/Y"); $hme = $examen->getDate("H:i"); } else { $dte = '--'; $hme = '--'; } if ($res[dt_sortie][$i] != '0000-00-00 00:00:00') { $sortie = new clDate($res[dt_sortie][$i]); $dts = $sortie->getDate("d/m/Y"); $hms = $sortie->getDate("H:i"); } else { $dts = '--'; $hme = '--'; } $uf = $res[uf][$i]; $ufUHCD = $options->getOption('numUFUHCD'); $ufUHCDrepere = $options->getOption('numUFUHCDrepere'); if ($ufUHCD && ereg($ufUHCD, $uf) or $ufUHCDrepere && ereg($ufUHCDrepere, $uf)) { $isuhcd = 1; } else { $isuhcd = 0; } //le patient est uhcd mais pas dans une salle uhcd ? $isVirtualUhcd = false; if ($ufUHCD && !ereg($options->getOption('FiltreSalleUHCD'), $res['salle_examen'][$i])) { $isVirtualUhcd = true; $codeUm = $options->getOption('UMUHCDFictif'); } // Préparation des différents champs de l'enregistrement parcouru. if ($res[ilp][$i]) { $ilp = $res[ilp][$i]; } else { $ilp = "-"; } if ($res[uf][$i]) { $uf = $res[uf][$i]; } else { $uf = "-"; } if ($res[dt_UHCD][$i] and $isuhcd) { $dtUHCD = $res[dt_UHCD][$i]; } else { $dtUHCD = "0000-00-00 00:00:00"; } $nbSecPassage = $sortie->getDifference($admission); $nbHeurepassage = floor($nbSecPassage / 3600); $nbMinpassage = floor(($nbSecPassage - $nbHeurepassage * 3600) / 60); $strDureePassage = ($nbHeurepassage > 9 ? '' : '0') . $nbHeurepassage . ':' . ($nbMinpassage > 9 ? '' : '0') . $nbMinpassage; $tabActesNGAP = clExportAphm::getTabListeCodesNGAP($i, $jj->tabExport); //eko($tabActesNGAP); $tabLigneCCAM['CODE_HOMON'] = '1'; $tabLigneCCAM['NUMSEJ'] = $res['nsej'][$i] . 'B'; $tabLigneCCAM['UM'] = $isVirtualUhcd ? $codeUm : ''; $tabLigneCCAM['DATENT'] = $dta . ' ' . $hma; $tabLigneCCAM['DIAG_PPAL'] = $res['diagnostic_code'][$i]; $tabLigneCCAM['DIAG_RELI'] = ''; //eko(clExportAphm::getTabListeDiagsCCAM ($i,$jj -> tabExport)); $tabLigneCCAM['DIAG_ASSO'] = implode(' ', clExportAphm::getTabListeDiagsCCAM($i, $jj->tabExport)); $tabLigneCCAM['NPI'] = $res['ilp'][$i] . 'B'; $tabLigneCCAM['DAT_EXAM'] = $dte . ' ' . $hme; $tabLigneCCAM['NOM_PATRO'] = $res['nom'][$i]; $tabLigneCCAM['PRENOM'] = $res['prenom'][$i]; $tabLigneCCAM['MARITAL'] = ''; $tabLigneCCAM['SEXE'] = $res['sexe'][$i] == 'M' ? 'H' : 'F'; $tabLigneCCAM['DDN'] = $dtn; $tabLigneCCAM['UF_EXEC'] = $res['uf'][$i]; $tabLigneCCAM['ACTES'] = implode(' ', clExportAphm::getTabListeCodesCCAM($i, $jj->tabExport)); $tabLigneCCAM['DEST_SOUHA'] = $res['dest_souhaitee'][$i]; $tabLigneCCAM['DEST_ATTEN'] = $res['dest_attendue'][$i]; $tabLigneCCAM['DUR_PASSAGE'] = $strDureePassage; $tabLigneCCAM['CODE_GRAV'] = $res['code_gravite'][$i]; $tabLigneNGAP['NUMSEJ'] = $res['nsej'][$i] . 'B'; $tabLigneNGAP['NOM_PATRO'] = $res['nom'][$i]; $tabLigneNGAP['PRENOM'] = $res['prenom'][$i]; $tabLigneNGAP['DAT_EXAM'] = $dte . ' ' . $hme; $tabLigneNGAP['NOM_MARITAL'] = ''; $tabLigneNGAP['DATE_PASSAGE'] = $dte . ' ' . $hme; $tabLigneNGAP['MAJORATIONS_EVENTUELLES'] = clExportAphm::getMajoration($examen, $naissance); for ($cmptActe = 1; isset($tabActesNGAP[$cmptActe - 1]); $cmptActe++) { $nbMaxActesNGAP = max($nbMaxActesNGAP, $cmptActe); $tabLigneNGAP['ACTE_' . $cmptActe] = $tabActesNGAP[$cmptActe - 1]; } $cmptActe--; if ($nbMaxActesNGAP == $cmptActe) { $tabTypeNGAP = $tabLigneNGAP; } $outputLignesCCAM[] = implode("\t", $tabLigneCCAM); $outputLignesNGAP[] = implode("\t", $tabLigneNGAP); } $headerCCAM = array(); if (isset($tabLigneCCAM)) { foreach ($tabLigneCCAM as $k => $v) { $headerCCAM[] = $k; } } $headerNGAP = array(); foreach ($tabTypeNGAP as $k => $v) { $headerNGAP[] = $k; } $ficCCAM = implode("\t", $headerCCAM) . "\n" . implode("\n", $outputLignesCCAM); $ficNGAP = implode("\t", $headerNGAP) . "\n" . implode("\n", $outputLignesNGAP); // Calcul du nom du fichier temporaire. $nomfic = "exportCCAM" . date("YmdHis") . ".xls"; $nomfic2 = "exportNGAP" . date("YmdHis") . ".xls"; // Création, écriture et fermeture du fichier. $FIC = fopen(URLCACHE . $nomfic, "w"); $FIC2 = fopen(URLCACHE . $nomfic2, "w"); fwrite($FIC, $ficCCAM); fwrite($FIC2, $ficNGAP); fclose($FIC); fclose($FIC2); // Calcul du lien vers ce fichier. $mod->MxUrl("donnees.lienExport", URLCACHEWEB . $nomfic); $mod->MxUrl("donnees.lienExport2", URLCACHEWEB . $nomfic2); // On purge le répertoire temporaire de tous les fichiers qui ont plus de deux heures. $poub = new clPoubelle(URLCACHE); $poub->purgerRepertoire("2"); $isExport = true; } // Variable de navigation. $mod->MxHidden("hidden", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2))); // On retourne le code HTML généré par le template. $this->af .= $mod->MxWrite("1"); }
function genAffichage($dt1, $dt2) { global $session; global $options; global $jj; global $titreCCMU; global $titreGEMSA; global $titreTraumato; $fic = ''; // Chargement du template ModeliXe. $mod = new ModeliXe("Export.mxt"); $mod->SetModeliXe(); // Initialisation des dates en fonction de l'état actuel : // A la date du jour si aucune valeur n'a été passée. // Retrait d'un jour à la date1 si date1 == date2 if ($dt1->getTimestamp() == $dt2->getTimestamp()) { $dt1->addDays(-1); } // Inversion des dates 1 et 2 si la date 1 est supérieur à la date 2. if ($dt1->getTimestamp() > $dt2->getTimestamp()) { $tmp_dt3 = $dt1->getTimestamp(); $tmp_dt4 = $dt2->getTimestamp(); $dt1 = new clDate($tmp_dt4); $dt2 = new clDate($tmp_dt3); } // Calcul de la liste des valeurs possibles pour la date1. $old = ''; for ($dt = new clDate(DATELANCEMENT); $dt->getTimestamp() < $dt2->getTimestamp(); $dt->addDays(1)) { if ($old == $dt->getDate("Y-m-d")) { $dt->addHours(5); $enleverHeure = 1; } else { $enleverHeure = 0; } $old = $dt->getDate("Y-m-d"); $dttmp = new clDate($dt->getDate("Y-m-d")); $listeDates1[$dttmp->getTimestamp()] = $dt->getDate("d-m-Y"); // if ( $enleverHeure ) $dt -> addHours ( -2 ) ; //eko ( $dttmp->getDatetime ( ).' -> '.$dt->getDatetime ( ) ) ; } if (!is_array($listeDates1)) { $listeDates1 = array(); } // Calcul de la liste des valeurs possibles pour la date2. $dtj = new clDate(date("Y-m-d 00:00:00")); $dtj->addDays(1); $dt = new clDate(DATELANCEMENT); $old = ''; for ($dt->addDays(1); $dt->getTimestamp() <= $dtj->getTimestamp(); $dt->addDays(1)) { if ($old == $dt->getDate("Y-m-d")) { $dt->addHours(5); $enleverHeure = 1; } else { $enleverHeure = 0; } $old = $dt->getDate("Y-m-d"); $dttmp = new clDate($dt->getDate("Y-m-d")); $listeDates2[$dttmp->getTimestamp()] = $dt->getDate("d-m-Y"); //if ( $enleverHeure ) $dt -> addHours ( -2 ) ; //eko ( $dttmp->getDatetime ( ).' -> '.$dt->getDatetime ( ) ) ; } if (!is_array($listeDates2)) { $listeDates2 = array(); } // Fabrication des listes dans ModeliXe. $mod->MxSelect("date1", "date1", $dt1->getTimestamp(), $listeDates1, '', '', "onChange=\"reload(this.form)\""); $mod->MxSelect("date2", "date2", $dt2->getTimestamp(), $listeDates2, '', '', "onChange=\"reload(this.form)\""); // Gestion du filtre avec des bouttons radio. if (!isset($_POST['filtre'])) { $_POST['filtre'] = "tous"; } $mod->MxCheckerField("filtre1", "radio", "filtre", "tous", $_POST['filtre'] == "tous" ? true : false); $mod->MxCheckerField("filtre2", "radio", "filtre", "norm", $_POST['filtre'] == "norm" ? true : false); $mod->MxCheckerField("filtre3", "radio", "filtre", "uhcd", $_POST['filtre'] == "uhcd" ? true : false); // Si le bouton "Chercher" n'a pas été pressé, alors on n'affiche pas // le bloc contenant le lien vers l'export. if (!$_POST['Chercher'] and !$_POST['Chercher_x']) { $mod->MxBloc("donnees", "modify", " "); } else { // Affichage du lien vers le fichier contenant l'export. // Récupération de tous les patients entre les deux dates données. $req = new clResultQuery(); $param[table] = PSORTIS; // En fonction du filtre sélectionné. switch ($_POST['filtre']) { /* case 'norm': $filter = "AND salle_examen NOT LIKE 'UHCD%'" ; break ; case 'uhcd': $filter = "AND salle_examen LIKE 'UHCD%'" ; break; */ case 'norm': $filter = "AND uf!=" . $options->getOption('numUFUHCD') . ""; break; case 'uhcd': $filter = "AND uf=" . $options->getOption('numUFUHCD') . ""; break; default: $filter = ""; break; } $param[cw] = "WHERE dt_admission BETWEEN '" . $dt1->getDatetime() . "' AND '" . $dt2->getDatetime() . "' {$filter}"; //$param[cw] = " p, logs_mails m WHERE p.idpatient=m.idpatient AND dt_naissance>'1932-01-01 00:00:00' AND `dt_mail` >= '2006-10-01 00:00:00' AND type_mail='Procédure dépistage maltraitance'" ; $res = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); // newfct ( gen_affiche_tableau, $res[INDIC_SVC] ) ; //eko ( $res['INDIC_SVC'] ) ; if ($res[INDIC_SVC][2] > 1) { $s = "s"; } // Affichage d'un résumé des résultats. $mod->MxText("donnees.nombre", $res[INDIC_SVC][2]); $mod->MxText("donnees.resultat", "entrée{$s} exportée{$s}"); if (!$options->getOption('CCAMExterne')) { $jj = new clCCAMExportActesDiags(array('dateDebut' => $dt1->getDate('Y-m-d'), 'dateFin' => $dt2->getDate('Y-m-d'))); $jj->initTableauActesDiag($res); } if ($options->getOption("GestionCCMU")) { if ($res[ccmu][$i]) { $ccmu = "\t" . $res[ccmu][$i]; } else { $ccmu = "\t"; } $titreCCMU = "\tCCMU"; } else { $ccmu = ''; $titreCCMU = ''; } if ($options->getOption("GestionGEMSA")) { if ($res[gemsa][$i]) { $gemsa = "\t" . $res[gemsa][$i]; } else { $gemsa = "\t"; } $titreGEMSA = "\tGEMSA"; } else { $gemsa = ''; $titreGEMSA = ''; } if ($options->getOption("GestionTraumato")) { if ($res[traumato][$i]) { $traumato = "\t" . $res[traumato][$i]; } else { $traumato = "\t"; } $titreTraumato = "\tTraumato"; } else { $traumato = ''; $titreTraumato = ''; } // Parcours des différents résultats. for ($i = 0; isset($res[idpatient][$i]); $i++) { // Préparation des différentes dates pour affichage. set_time_limit(30); $naissance = new clDate($res[dt_naissance][$i]); $dtn = $naissance->getDate("d/m/Y"); if ($res[dt_admission][$i] != '0000-00-00 00:00:00') { $admission = new clDate($res[dt_admission][$i]); $dta = $admission->getDate("d/m/Y"); $hma = $admission->getDate("H:i"); } else { $dta = '--'; $hma = '--'; } if ($res[dt_examen][$i] != '0000-00-00 00:00:00') { $examen = new clDate($res[dt_examen][$i]); $dte = $examen->getDate("d/m/Y"); $hme = $examen->getDate("H:i"); } else { $dte = '--'; $hme = '--'; } if ($res[dt_sortie][$i] != '0000-00-00 00:00:00') { $sortie = new clDate($res[dt_sortie][$i]); $dts = $sortie->getDate("d/m/Y"); $hms = $sortie->getDate("H:i"); } else { $dts = '--'; $hme = '--'; } $uf = $res[uf][$i]; $ufUHCD = $options->getOption('numUFUHCD'); $ufUHCDrepere = $options->getOption('numUFUHCDrepere'); if ($ufUHCD && ereg($ufUHCD, $uf) or $ufUHCDrepere && ereg($ufUHCDrepere, $uf)) { $isuhcd = 1; } else { $isuhcd = 0; } //eko($jj -> tabExport); // Préparation des différents champs de l'enregistrement parcouru. if ($res[ilp][$i]) { $ilp = $res[ilp][$i]; } else { $ilp = "-"; } if ($res[uf][$i]) { $uf = $res[uf][$i]; } else { $uf = "-"; } $dateUhcd = new clDate($res[dt_UHCD][$i]); if ($res[dt_UHCD][$i] and $isuhcd) { $dtUHCD = $dateUhcd->getDate('Y-m-d H:i:00'); } else { $dtUHCD = ""; } if ($res[nsej][$i]) { $nsej = $res[nsej][$i]; } else { $nsej = "-"; } if ($res[nom][$i]) { $nom = $res[nom][$i]; } else { $nom = "-"; } if ($res[prenom][$i]) { $prenom = $res[prenom][$i]; } else { $prenom = "-"; } if ($res[sexe][$i]) { $sexe = $res[sexe][$i]; } else { $sexe = "-"; } if ($res[adresse_cp][$i]) { $adresse_cp = $res[adresse_cp][$i]; } else { $adresse_cp = "-"; } if ($res[medecin_traitant][$i]) { $medecin_traitant = preg_replace("/(\r\n|\n|\r)/", " ", $res[medecin_traitant][$i]); } else { $medecin_traitant = "-"; } if ($res[adresseur][$i]) { $adresseur = $res[adresseur][$i]; } else { $adresseur = "-"; } if ($res[mode_admission][$i]) { $mode_admission = $res[mode_admission][$i]; } else { $mode_admission = "-"; } if ($res[medecin_urgences][$i]) { $medecin_urgences = $res[medecin_urgences][$i]; } else { $medecin_urgences = "-"; } if ($res[salle_examen][$i]) { $salle_examen = $res[salle_examen][$i]; } else { $salle_examen = "-"; } if ($res[recours_categorie][$i]) { $recours_categorie = $res[recours_categorie][$i]; } else { $recours_categorie = "-"; } if ($res[motif_recours][$i]) { $motif_recours = $res[motif_recours][$i]; } else { $motif_recours = "-"; } if (!$options->getOption('getRecoursCIM10')) { if ($res[recours_code][$i]) { $recours_code = $res[recours_code][$i]; } else { $recours_code = "-"; } } else { if ($res[recours_code][$i]) { $recours_code = strtr($res[recours_code][$i], '.', ''); } else { $recours_code = "-"; } } if ($res[code_gravite][$i]) { $code_gravite = $res[code_gravite][$i]; } else { $code_gravite = "-"; } if ($res[dest_souhaitee][$i]) { $dest_souhaitee = $res[dest_souhaitee][$i]; } else { $dest_souhaitee = "-"; } if ($res[dest_attendue][$i]) { $dest_attendue = ' ' . $res[dest_attendue][$i]; } else { $dest_attendue = "-"; } if ($res[ide][$i]) { $ide = $res[ide][$i]; } else { $ide = "-"; } if ($res[motif_transfert][$i]) { $motif_transfert = $res[motif_transfert][$i]; } else { $motif_transfert = "-"; } if ($res[moyen_transport][$i]) { $moyen_transport = $res[moyen_transport][$i]; } else { $moyen_transport = "-"; } if ($res[type_destination][$i]) { $type_destination = $res[type_destination][$i]; } else { $type_destination = "-"; } if ($res[diagnostic_categorie][$i]) { $diagnostic_categorie = $res[diagnostic_categorie][$i]; } else { $diagnostic_categorie = "-"; } if ($res[diagnostic_libelle][$i]) { $diagnostic_libelle = $res[diagnostic_libelle][$i]; } else { $diagnostic_libelle = "-"; } if ($res[diagnostic_code][$i]) { $diagnostic_code = $res[diagnostic_code][$i]; } else { $diagnostic_code = "-"; } if ($options->getOption("GestionCCMU")) { if ($res[ccmu][$i]) { $ccmu = "\t" . $res[ccmu][$i]; } else { $ccmu = "\t"; } $titreCCMU = "\tCCMU"; } else { $ccmu = ''; $titreCCMU = ''; } if ($options->getOption("GestionGEMSA")) { if ($res[gemsa][$i]) { $gemsa = "\t" . $res[gemsa][$i]; } else { $gemsa = "\t"; } $titreGEMSA = "\tGEMSA"; } else { $gemsa = ''; $titreGEMSA = ''; } if ($options->getOption("GestionTraumato")) { if ($res[traumato][$i]) { $traumato = "\t" . $res[traumato][$i]; } else { $traumato = "\t"; } $titreTraumato = "\tTraumato"; } else { $traumato = ''; $titreTraumato = ''; } // Génération de la ligne correspondant à l'enregistrement. // $fic .= "$ilp\t$nsej\t$nom\t$prenom\t$dtn\t$sexe\t$adresse_cp\t$medecin_traitant\t$dta\t$hma\t$adresseur\t$mode_admission\t$dte\t$hme\t$medecin_urgences\t$salle_examen\t$recours_categorie\t$motif_recours\t$recours_code\t$code_gravite\t$dest_souhaitee\t$dest_attendue\t$dts\t$hms\t$ide\t$moyen_transport\t$motif_transfert\t$type_destination\t$diagnostic_categorie\t$diagnostic_libelle\t$diagnostic_code\n" ; if ($options->getOption('CCAMExterne')) { $fic .= "{$ilp}\t{$nsej}\t{$uf}\t{$dtn}\t{$sexe}\t{$adresse_cp}\t{$medecin_traitant}\t{$dta}\t{$hma}\t{$mode_admission}\t{$dte}\t{$hme}\t{$medecin_urgences}\t{$salle_examen}\t{$recours_categorie}\t{$motif_recours}\t{$recours_code}\t{$code_gravite}\t{$dtUHCD}" . $gemsa . $ccmu . $traumato . "\t{$dest_souhaitee}\t{$dest_attendue}\t{$dts}\t{$hms}\t{$ide}\t{$moyen_transport}\t{$motif_transfert}\t{$type_destination}\t{$diagnostic_categorie}\t{$diagnostic_libelle}\t{$diagnostic_code}\n"; } else { $fic .= "{$ilp}\t{$nsej}\t{$uf}\t{$dtn}\t{$sexe}\t{$adresse_cp}\t{$medecin_traitant}\t{$dta}\t{$hma}\t{$mode_admission}\t{$dte}\t{$hme}\t{$medecin_urgences}\t{$salle_examen}\t{$recours_categorie}\t{$motif_recours}\t{$recours_code}\t{$code_gravite}\t{$dtUHCD}" . $gemsa . $ccmu . $traumato . "\t{$dest_souhaitee}\t{$dest_attendue}\t{$dts}\t{$hms}\t{$ide}\t{$moyen_transport}\t{$motif_transfert}\t{$type_destination}\t{$diagnostic_categorie}\t{$diagnostic_libelle}\t{$diagnostic_code}\t" . $jj->getActesDiagsPatient($i); } } // Calcul du lien vers ce fichier. } return $fic; }
function gestSend() { global $session; // Chargement du template ModeliXe. $mod = new ModeliXe("rpuGestSend.html"); $mod->SetModeliXe(); $dateL = new clDate(DATELANCEMENT); $dateA = new clDate(); $dateA->addDays(-1); $tabDate[$dateA->getDate('Y-m-d')] = 'Hier'; $dateA->addDays(-1); for (; $dateL->getTimestamp() < $dateA->getTimestamp(); $dateA->addDays(-1)) { $tabDate[$dateA->getDate('Y-m-d')] = $dateA->getDateText(); } $mod->MxSelect('listeDates', 'dateRPU', $_POST['dateRPU'], $tabDate, '', '', 'onChange="reload(this.form)"'); $mod->MxHidden('hidden', 'navi=' . $session->genNavi($session->getNavi(0), $session->getNavi(1))); $this->genXMLH1N1($_POST['dateRPU']); $this->genXML($_POST['dateRPU']); $mod->MxText('xmlRpu', '<p>' . nl2br(htmlentities($this->xmlRpu)) . '</p>'); $mod->MxText('message', $this->sendXML($_REQUEST['EnvoyerRPU'])); $this->af .= $mod->MxWrite("1"); }
function getListeDates() { $dateDeb = new clDate(DATELANCEMENT); $dateFin = new clDate(); $tDeb = $dateDeb->getTimestamp(); $tab = array(); for (; $dateFin->getTimestamp() >= $tDeb; $dateFin->addDays(-1)) { $tab[$dateFin->getDate("Y-m-d")] = $dateFin->getDate("d/m/Y"); } return $tab; }
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(); }
static function getMondayFromWeekNumber($year, $weekNumber) { for ($date = new clDate('01/01/' . $year); $date->getDayWeekNumber() != 1; $date->addDays(-1)) { true; } $date->addDays(7 * ($weekNumber - 1)); return $date; }
function genRequete() { $date = new clDate(); //$date -> addDays ( -1 ) ; $date->addHours(-12); $reqDate = " AND (dt_fin>'" . $date->getDatetime() . "' OR (dt_fin='0000-00-00 00:00:00' AND etat!=d))"; $date->addHours(-12); $reqDate2 = " AND (dt_fin>'" . $date->getDatetime() . "' OR (dt_fin='0000-00-00 00:00:00' AND etat!=d))"; // Préparation de la requête. $req = new clResultQuery(); //$param['tp'] = PPRESENTS ; if ($_POST['typeListe']) { $_SESSION['typeListe'] = $_POST['typeListe']; } elseif (!isset($_SESSION['typeListe'])) { $_SESSION['typeListe'] = 'all'; } //print "Type Liste : ".$_SESSION['typeListe'].'<br/>' ; //print affTab ( $_SESSION ) ; $date = new clDate(); switch ($_SESSION['typeListe']) { case 'all': $and = $reqDate; break; case 'alm': $and = "AND (etat='a' OR etat='b' OR etat='c')"; break; case 'd': $and = "AND etat='d'" . $reqDate2; break; case 'd024': $and = "AND etat='d' AND dt_fin LIKE '" . $date->getDate('Y-m-d') . "%'"; break; case 'd2448': $date->addDays(-1); $and = "AND etat='d' AND dt_fin LIKE '" . $date->getDate('Y-m-d') . "%'"; break; case 'd4872': $date->addDays(-2); $and = "AND etat='d' AND dt_fin LIKE '" . $date->getDate('Y-m-d') . "%'"; break; case 'd7296': $date->addDays(-3); $and = "AND etat='d' AND dt_fin LIKE '" . $date->getDate('Y-m-d') . "%'"; break; case 'd96120': $date->addDays(-4); $and = "AND etat='d' AND dt_fin LIKE '" . $date->getDate('Y-m-d') . "%'"; break; case 'd120144': $date->addDays(-5); $and = "AND etat='d' AND dt_fin LIKE '" . $date->getDate('Y-m-d') . "%'"; break; case 'd144168': $date->addDays(-6); $and = "AND etat='d' AND dt_fin LIKE '" . $date->getDate('Y-m-d') . "%'"; break; case 'd168192': $date->addDays(-7); $and = "AND etat='d' AND dt_fin LIKE '" . $date->getDate('Y-m-d') . "%'"; break; case 'rall': $and = $reqDate; break; case 'npec': $and = "AND etat='a' "; break; case 'ralm': $and = "AND (etat='a' OR etat='b' OR etat='c')"; break; case 'rd': $and = "AND etat='d'" . $reqDate2; break; case 'eall': $and = $reqDate; break; case 'ealm': $and = "AND (etat='a' OR etat='b' OR etat='c')"; break; case 'ed': $and = "AND etat='d'" . $reqDate2; break; case 'sall': $and = $reqDate; break; case 'salm': $and = "AND (etat='a' OR etat='b' OR etat='c')"; break; case 'sd': $and = "AND etat='d'" . $reqDate2; break; case 'ec': $param['cw'] = ', radios_enquetes e where 1=1 AND r.idradio=e.idradio AND e.date=\'0000-00-00 00:00:00\'' . $and; //$param['cw2'] = 'where r.idpatient=p.idpatient' ; // Exécution de la requête. $res = $req->Execute("Fichier", "getRadiosGlob", $param, "ResultQuery"); eko($res['INDIC_SVC']); return $res; break; case 'et': $param['cw'] = ', radios_enquetes e where 1=1 AND r.idradio=e.idradio AND e.date!=\'0000-00-00 00:00:00\'' . $and; //$param['cw2'] = 'where r.idpatient=p.idpatient' ; // Exécution de la requête. $res = $req->Execute("Fichier", "getRadiosGlob", $param, "ResultQuery"); return $res; break; default: $and = $and = "AND (etat='a' OR etat='b' OR etat='c')"; break; } $param['cw'] = 'where 1=1 ' . $and . ' ORDER BY dt_fin'; //$param['cw2'] = 'where r.idpatient=p.idpatient' ; // Exécution de la requête. $res = $req->Execute("Fichier", "getRadiosGlob", $param, "ResultQuery"); eko($res['INDIC_SVC']); return $res; }
function getFusionsProposees($idpatient) { $tab = array(); $req = new clResultQuery(); $param['table'] = PPRESENTS; // Récupération des informations sur le patient à fusionner. $param['cw'] = "WHERE idpatient={$idpatient} UNION SELECT * FROM patients_sortis WHERE idpatient={$idpatient} ORDER BY dt_sortie, nom ASC"; $p = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); $this->p = $p; $pre = addslashes($p['prenom'][0]); $nom = addslashes($p['nom'][0]); $sex = $p['sexe'][0]; $date = new clDate($p['dt_naissance'][0]); $dtn = $date->getDate('Y-m-d'); $ann = $date->getDate('Y'); $date->setDate($p['dt_admission'][0]); $dta = $date->getDate('Y-m-d'); $date->addDays(1); $dtap = $date->getDate('Y-m-d'); $date->addDays(-2); $dtam = $date->getDate('Y-m-d'); $this->nbRes = 0; set_time_limit(0); // Saisie parfaite $tab = $this->addToTab($tab, 100, "prenom='{$pre}' AND nom='{$nom}' AND sexe='{$sex}' AND dt_naissance LIKE '{$dtn}%' AND dt_admission LIKE '{$dta}%'"); // Variation de la date d'admission à + ou - 1 jour et erreur dans la date de naissance. if (!$this->nbRes) { $tab = $this->addToTab($tab, 96, "prenom LIKE '%{$pre}%' AND nom LIKE '%{$nom}%' AND sexe='{$sex}' AND dt_naissance LIKE '{$dtn}%' AND dt_admission LIKE '{$dta}%'"); } if (!$this->nbRes) { $tab = $this->addToTab($tab, 84, "prenom LIKE '%{$pre}%' AND nom LIKE '%{$nom}%' AND sexe='{$sex}' AND dt_naissance LIKE '{$ann}%' AND dt_admission LIKE '{$dta}%'"); } if (!$this->nbRes) { $tab = $this->addToTab($tab, 76, "prenom LIKE '%{$pre}%' AND nom LIKE '%{$nom}%' AND sexe='{$sex}' AND dt_admission LIKE '{$dta}%'"); } if (!$this->nbRes) { $tab = $this->addToTab($tab, 72, "prenom LIKE '%{$pre}%' AND nom LIKE '%{$nom}%' AND sexe='{$sex}' AND dt_naissance LIKE '{$dtn}%' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%')"); } if (!$this->nbRes) { $tab = $this->addToTab($tab, 68, "prenom LIKE '%{$pre}%' AND nom LIKE '%{$nom}%' AND sexe='{$sex}' AND dt_naissance LIKE '{$ann}%' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%')"); } if (!$this->nbRes) { $tab = $this->addToTab($tab, 63, "prenom LIKE '%{$pre}%' AND nom LIKE '%{$nom}%' AND sexe='{$sex}' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%')"); } // Erreur de sexe if (!$this->nbRes) { $tab = $this->addToTab($tab, 56, "prenom LIKE '%{$pre}%' AND nom LIKE '%{$nom}%' AND dt_naissance LIKE '{$ann}%' AND dt_admission LIKE '{$dta}%'"); } if (!$this->nbRes) { $tab = $this->addToTab($tab, 51, "prenom LIKE '%{$pre}%' AND nom LIKE '%{$nom}%' AND dt_admission LIKE '{$dta}%'"); } // Cas de l'inversion nom / prenom. if (!$this->nbRes) { $tab = $this->addToTab($tab, 49, "prenom LIKE '%{$nom}%' AND nom LIKE '%{$pre}%' AND sexe='{$sex}' AND dt_naissance LIKE '{$dtn}%' AND dt_admission LIKE '{$dta}%'"); } if (!$this->nbRes) { $tab = $this->addToTab($tab, 46, "prenom LIKE '%{$nom}%' AND nom LIKE '%{$pre}%' AND sexe='{$sex}' AND dt_naissance LIKE '{$ann}%' AND dt_admission LIKE '{$dta}%'"); } if (!$this->nbRes) { $tab = $this->addToTab($tab, 43, "prenom LIKE '%{$nom}%' AND nom LIKE '%{$pre}%' AND sexe='{$sex}' AND dt_admission LIKE '{$dta}%'"); } if (!$this->nbRes) { $tab = $this->addToTab($tab, 44, "prenom LIKE '%{$nom}%' AND nom LIKE '%{$pre}%' AND sexe='{$sex}' AND dt_naissance LIKE '{$dtn}%' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%')"); } if (!$this->nbRes) { $tab = $this->addToTab($tab, 41, "prenom LIKE '%{$nom}%' AND nom LIKE '%{$pre}%' AND sexe='{$sex}' AND dt_naissance LIKE '{$ann}%' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%')"); } if (!$this->nbRes) { $tab = $this->addToTab($tab, 35, "prenom LIKE '%{$nom}%' AND nom LIKE '%{$pre}%' AND sexe='{$sex}' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%')"); } if (!$this->nbRes) { // On cherche seulement sur les 4 premiers caractères du nom et du prénom $tab = $this->addToTab($tab, 40, "nom LIKE '%" . substr($nom, 0, 4) . "%' AND prenom LIKE '%" . substr($pre, 0, 4) . "%' AND sexe='{$sex}' AND dt_naissance LIKE '{$dtn}%' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%' OR dt_admission LIKE '{$dta}%')"); $tab = $this->addToTab($tab, 35, "nom LIKE '%" . substr($nom, 0, 4) . "%' AND prenom LIKE '%" . substr($pre, 0, 4) . "%' AND sexe='{$sex}' AND dt_naissance LIKE '{$ann}%' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%' OR dt_admission LIKE '{$dta}%')"); $tab = $this->addToTab($tab, 30, "nom LIKE '%" . substr($nom, 0, 4) . "%' AND prenom LIKE '%" . substr($pre, 0, 4) . "%' AND sexe='{$sex}' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%' OR dt_admission LIKE '{$dta}%')"); // On cherche seulement sur le nom ou le prénom $tab = $this->addToTab($tab, 25, "nom LIKE '%{$nom}%' AND sexe='{$sex}' AND dt_naissance LIKE '{$dtn}%' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%' OR dt_admission LIKE '{$dta}%')"); $tab = $this->addToTab($tab, 20, "nom LIKE '%{$nom}%' AND sexe='{$sex}' AND dt_naissance LIKE '{$ann}%' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%' OR dt_admission LIKE '{$dta}%')"); $tab = $this->addToTab($tab, 15, "nom LIKE '%{$nom}%' AND sexe='{$sex}' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%' OR dt_admission LIKE '{$dta}%')"); $tab = $this->addToTab($tab, 20, "prenom LIKE '%{$pre}%' AND sexe='{$sex}' AND dt_naissance LIKE '{$dtn}%' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%' OR dt_admission LIKE '{$dta}%')"); $tab = $this->addToTab($tab, 15, "prenom LIKE '%{$pre}%' AND sexe='{$sex}' AND dt_naissance LIKE '{$ann}%' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%' OR dt_admission LIKE '{$dta}%')"); $tab = $this->addToTab($tab, 10, "prenom LIKE '%{$pre}%' AND sexe='{$sex}' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%' OR dt_admission LIKE '{$dta}%')"); // On cherche seulement sur les 2 premiers caractères $tab = $this->addToTab($tab, 15, "nom LIKE '%" . substr($nom, 0, 2) . "%' AND prenom LIKE '%" . substr($pre, 0, 2) . "%' AND sexe='{$sex}' AND dt_naissance LIKE '{$dtn}%' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%' OR dt_admission LIKE '{$dta}%')"); $tab = $this->addToTab($tab, 10, "nom LIKE '%" . substr($nom, 0, 2) . "%' AND prenom LIKE '%" . substr($pre, 0, 2) . "%' AND sexe='{$sex}' AND dt_naissance LIKE '{$ann}%' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%' OR dt_admission LIKE '{$dta}%')"); $tab = $this->addToTab($tab, 5, "nom LIKE '%" . substr($nom, 0, 2) . "%' AND prenom LIKE '%" . substr($pre, 0, 2) . "%' AND sexe='{$sex}' AND (dt_admission LIKE '{$dtap}%' OR dt_admission LIKE '{$dtam}%' OR dt_admission LIKE '{$dta}%')"); } if (!$this->nbRes) { $date->addHours(16); $datmin = $date->getDate('Y-m-d H:i:s'); $date->addHours(16); $datmax = $date->getDate('Y-m-d H:i:s'); $tab = $this->addToTab($tab, 0, "(dt_admission BETWEEN '{$datmin}' AND '{$datmax}')"); } return $tab; }
function genListes() { global $session; // Chargement du template ModeliXe. $mod = new ModeliXe("FusionPatients.mxt"); $mod->SetModeliXe(); // Affichage ou non du champs d'informations. if ($this->infos) { $mod->MxText("informations.infos", $this->infos); } else { $mod->MxBloc("informations", "modify", " "); } // Affichage ou non du champs d'erreurs. if ($this->erreurs) { $mod->MxText("erreurs.erreurs", $this->erreurs); } else { $mod->MxBloc("erreurs", "modify", " "); } // Initialisation des variables. if (isset($_POST['valeurNom'])) { $_SESSION['valeurNom'] = $_POST['valeurNom']; } if (isset($_POST['valeurPrenom'])) { $_SESSION['valeurPrenom'] = $_POST['valeurPrenom']; } if (isset($_POST['valeurAnnee'])) { $_SESSION['valeurAnnee'] = $_POST['valeurAnnee']; } // Génération des champs du formulaire. $mod->MxFormField("nom", "text", "valeurNom", stripslashes($_SESSION['valeurNom'])); $mod->MxFormField("prenom", "text", "valeurPrenom", stripslashes($_SESSION['valeurPrenom'])); // Fabrication du filtre pour la requête. $dateVal = new clDate($_POST['filtreDate']); if (($_SESSION['valeurNom'] or $_SESSION['valeurPrenom']) and $_POST['valeurDate']) { $this->filtre = "AND nom LIKE '" . $_SESSION['valeurNom'] . "%' " . ($_SESSION['valeurPrenom'] ? " AND prenom LIKE '" . $_SESSION['valeurPrenom'] . "%'" : '') . " AND dt_admission LIKE '" . $dateVal->getDate("Y-m-d") . "%'"; } elseif ($_SESSION['valeurNom'] or $_SESSION['valeurPrenom']) { $this->filtre = "AND nom LIKE '" . $_SESSION['valeurNom'] . "%'" . ($_SESSION['valeurPrenom'] ? " AND prenom LIKE '" . $_SESSION['valeurPrenom'] . "%'" : ''); } elseif ($_POST['filtreDate']) { $this->filtre = "AND dt_admission LIKE '" . $dateVal->getDate("Y-m-d") . "%'"; } elseif (!isset($_POST['filtreDate'])) { $this->filtre = "AND dt_admission LIKE '" . date("Y-m-d") . "%'"; } // Génération des dates possibles. //$dt = new clDate ( DATELANCEMENT ) ; $dt = new clDate(); $dt->addWeeks(-13); $this->filtre .= " AND dt_admission>='" . $dt->getDate('Y-m-d') . "%'"; $listeDates[] = "Pas de filtre"; // Calcul de la liste des valeurs possibles pour la date. $dta = new clDate(date("Y-m-d 00:00:00")); if (!isset($_POST['filtreDate'])) { $_POST['filtreDate'] = $dta->getTimestamp(); } for (; $dt->getTimestamp() <= $dta->getTimestamp(); $dta->addDays(-1)) { $listeDates[$dta->getTimestamp()] = $dta->getDate("d-m-Y"); } // Si on n'a aucune date, on initialise la variable avec un tableau vide (pour ModeliXe). if (!is_array($listeDates)) { $listeDates = array(); } // Passage du tableau de dates à ModeliXe. $mod->MxSelect("date", "filtreDate", $_POST['filtreDate'], $listeDates, '', '', "onChange=\"reload(this.form)\""); // Récupération et ajout dans ModeliXe de la liste des patients entrés manuellement. $manuels = $this->getPatientsManuels(); $mod->MxSelect("manuels", "manuel", isset($_POST['manuel']) ? $_POST['manuel'] : '', $manuels, '', '', "size=\"25\""); // Récupération et ajout dans ModeliXe de la liste des patients entrés automatiquement. $automatiques = $this->getPatientsAutomatiques(); $mod->MxSelect("automatiques", "automatique", isset($_POST['automatique']) ? $_POST['automatique'] : '', $automatiques, '', '', "size=\"25\""); // Génération de la variable de navigation. $mod->MxHidden("hidden", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1))); // Affichage du bouton "Fusionner" en fonction des droits. if (!$session->getDroit("Administration_Fusions", "w")) { $mod->MxBloc("fusionner", "modify", " "); } // On enlève le bouton "Supprimer" pour le moment. $mod->MxBloc("supprimer", "modify", " "); // Récupération du code généré par ModeliXe. $this->af .= $mod->MxWrite("1"); }